This commit was manufactured by cvs2svn to create tag 'I20061017-1600'.

Sprout from master 2006-10-16 20:24:52 UTC Tod Creasey <tod> 'Temporary fix for Bug 161037 Compile warnings in N20061014-0010/compilelogs/platform.doc.isv.javadoc.txt'
Cherrypick from master 2006-10-17 19:57:33 UTC Boris Bokowski <bbokowski> 'Updated the map file with fix for FastView bug just in case a rebuild happens':
    bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/FastViewBar.java
    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/component.xml
    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/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.jface.databinding/.classpath
    bundles/org.eclipse.jface.databinding/.cvsignore
    bundles/org.eclipse.jface.databinding/.project
    bundles/org.eclipse.jface.databinding/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.jface.databinding/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.jface.databinding/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.jface.databinding/META-INF/MANIFEST.MF
    bundles/org.eclipse.jface.databinding/about.html
    bundles/org.eclipse.jface.databinding/build.properties
    bundles/org.eclipse.jface.databinding/component.xml
    bundles/org.eclipse.jface.databinding/plugin.properties
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindSpec.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/Binding.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingAdapter.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingEvent.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingException.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/DataBindingContext.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/IBindingListener.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/AbstractObservable.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/Diffs.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IChangeListener.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IDiff.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IObservable.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IObservableCollection.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IStaleListener.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/ObservableTracker.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/Observables.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/AbstractObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/IListChangeListener.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/IObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ListDiff.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ListDiffEntry.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/WritableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/IObservableFactory.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/MasterDetailObservables.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/AbstractObservableSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/IObservableSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ISetChangeListener.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ListToSetAdapter.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/MappedSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ObservableSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/SetDiff.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/UnionSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/WritableSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/AbstractObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/AbstractVetoableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ChangeVetoException.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ComputedValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IValueChangeListener.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IValueChangingListener.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IVetoableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ValueDiff.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/WritableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/util/ILogger.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/util/Policy.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/BindingMessages.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ClassLookupSupport.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/IdentityWrapper.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/LazyListBinding.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ListBinding.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/Pair.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/RandomAccessListIterator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ValidationErrorList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ValueBinding.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/messages.properties
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/IStalenessConsumer.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/ProxyObservableSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/StalenessTracker.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/UnmodifiableObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/AbstractDataBindingContextFactory.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindSpec.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/Binding.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingAdapter.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingEvent.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingException.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/DataBindingContext.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/IBindingListener.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertDate2String.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BigDecimal.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Boolean.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BooleanPrimitive.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Byte.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BytePrimitive.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Character.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Date.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Double.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2DoublePrimitive.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Float.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2FloatPrimitive.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Integer.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2IntegerPrimitive.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Long.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2LongPrimitive.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Short.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2ShortPrimitive.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/Converter.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/DateConversionSupport.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IConverter.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IdentityConverter.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ToStringConverter.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/ListModelDescription.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/NestedProperty.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/Property.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/TableModelDescription.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/BindSupportFactory.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactory.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindingFactory.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultObservableFactory.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/IBindingFactory.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/IObservableFactory.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/NestedObservableFactory.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/ILazyDataRequestor.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/ILazyListElementProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyDeleteEvent.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyInsertDeleteProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyInsertEvent.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/AbstractObservableMapping.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/AbstractObservableMultiMapping.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/BaseObservableMapping.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/BidirectionalMapping.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IBidirectionalMapping.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMapping.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMappingChangeListener.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMultiMapping.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMapping.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMappingWithDomain.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMultiMapping.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMultiMappingWithDomain.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/MappingDiff.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/ObservableMappingWithDomain.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/ObservableMultiMappingWithDomain.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/IDomainValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/IValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ObjectToPrimitiveValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ReadOnlyValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/RegexStringValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2BigDecimalValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2BytePrimitiveValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ByteValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DateValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DoublePrimitiveValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DoubleValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2FloatPrimitiveValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2FloatValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2IntegerPrimitiveValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2IntegerValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2LongPrimitiveValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2LongValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ShortPrimitiveValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ShortValidator.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ValidationError.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/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/component.xml
    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/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/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/IPageTransitionListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageTransitionProvider.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/PageTransitionEvent.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/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/images/title_banner.png
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ComboContentAdapter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ComboControlCreator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ContentProposalAdapter.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/IContentProposalProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlContentAdapter.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/content_proposal_cue.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/error_cue.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/warning_cue.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/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/AbstractColumnAdapter.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/TableColumnAdapter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TreeColumnAdapter.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/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/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/AbstractListViewer.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/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/ColumnWeightData.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboBoxCellEditor.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/DecorationContext.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/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/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/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/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/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/TableColumnViewerLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableEditorImpl.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/TableViewerRow.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TextCellEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ToolTipSupport.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeColumnViewerLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeEditorImpl.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/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/IShellProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/window/SameShellProvider.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/component.xml
    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/carbon/CarbonUIEnhancer.java
    bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/carbon/Messages.properties
    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/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/component.xml
    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/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/IFormPart.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IManagedForm.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/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/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/FormHeading.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/PixelConverter.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/WrappedPageBook.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/progress.gif
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/provisional/forms/FormDialog.java
    bundles/org.eclipse.ui.ide/.classpath
    bundles/org.eclipse.ui.ide/.cvsignore
    bundles/org.eclipse.ui.ide/.options
    bundles/org.eclipse.ui.ide/.project
    bundles/org.eclipse.ui.ide/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.ide/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.ide/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.ide/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.ide/about.html
    bundles/org.eclipse.ui.ide/build.properties
    bundles/org.eclipse.ui.ide/component.xml
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IContributorResourceAdapter.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IFileEditorInput.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerActionFilter.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerHelpRegistry.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolution.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolution2.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolutionGenerator.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolutionGenerator2.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IProjectActionFilter.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IResourceActionFilter.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IStorageEditorInput.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/ResourceWorkingSetFilter.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/AddBookmarkAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/AddTaskAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/BuildAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseResourceAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseUnrelatedProjectsAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyFilesAndFoldersOperation.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectOperation.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyResourceAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CreateFileAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CreateFolderAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/DeleteResourceAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/GlobalBuildAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveFilesAndFoldersOperation.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveProjectAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveResourceAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewExampleAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewProjectAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewWizardMenu.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenFileAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenResourceAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenSystemEditorAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenWithMenu.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/QuickStartAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/ReadOnlyStateChecker.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/RefreshAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/RenameResourceAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/ScrubLocalAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/SelectionListenerAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/TextActionHandler.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/WorkspaceAction.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/WorkspaceModifyDelegatingOperation.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/WorkspaceModifyOperation.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerGenerator.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerSelectionDialog.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/FileSelectionDialog.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/FilteredResourcesSelectionDialog.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/MarkerResolutionSelectionDialog.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/NewFolderDialog.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ProjectLocationMoveDialog.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ProjectLocationSelectionDialog.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ResourceListSelectionDialog.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ResourceSelectionDialog.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/SaveAsDialog.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardDataTransferPage.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardExportPage.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardExportResourcesPage.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardImportPage.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFileCreationPage.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFolderMainPage.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewLinkPage.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectCreationPage.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectReferencePage.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardResourceImportPage.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/model/WorkbenchContentProvider.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInput.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInputFactory.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileInPlaceEditorInput.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/MarkerTransfer.java
    bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/ResourceTransfer.java
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/addtsk_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/collapseall.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/configs.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/filter_ps.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/gotoobj_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/refresh_nav.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/selected_mode.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/showchild_mode.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/showcomplete_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/showerr_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/showtsk_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/showwarn_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/smartmode_co.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/step_current.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/step_done.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/synced.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/usearch_obj.gif
    bundles/org.eclipse.ui.ide/icons/full/dlcl16/workingsets.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/build_exec.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/export_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/exportdir_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/exportzip_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/import_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/importdir_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/importzip_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/newfile_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/newfolder_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/newprj_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/next_nav.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/prev_nav.gif
    bundles/org.eclipse.ui.ide/icons/full/dtool16/search_src.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/addtoworkset.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/addtsk_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/collapseall.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/configs.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/filter_ps.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/flatLayout.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/gotoobj_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/hierarchicalLayout.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/linkto_help.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/refresh_nav.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/removefromworkset.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/selected_mode.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/showchild_mode.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/showcomplete_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/showerr_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/showtsk_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/showwarn_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/smartmode_co.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/step_current.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/step_done.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/synced.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/usearch_obj.gif
    bundles/org.eclipse.ui.ide/icons/full/elcl16/workingsets.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/build_exec.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/export_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/exportdir_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/exportzip_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/import_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/importdir_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/importzip_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/newfile_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/newfolder_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/newprj_wiz.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/next_nav.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/prev_nav.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/problem_category.gif
    bundles/org.eclipse.ui.ide/icons/full/etool16/search_src.gif
    bundles/org.eclipse.ui.ide/icons/full/eview16/bkmrk_nav.gif
    bundles/org.eclipse.ui.ide/icons/full/eview16/filenav_nav.gif
    bundles/org.eclipse.ui.ide/icons/full/eview16/problems_view.gif
    bundles/org.eclipse.ui.ide/icons/full/eview16/pview.gif
    bundles/org.eclipse.ui.ide/icons/full/eview16/resource_persp.gif
    bundles/org.eclipse.ui.ide/icons/full/eview16/tasks_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/bkmrk_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/complete_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/cprj_obj.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/error_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/exportpref_obj.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/header_complete.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/header_priority.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/hprio_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/importpref_obj.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/incomplete_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/info_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/keyspref_obj.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/lprio_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/prj_obj.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/taskmrk_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/warn_tsk.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/warning.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_banner.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_editor.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_item.gif
    bundles/org.eclipse.ui.ide/icons/full/obj16/workset.gif
    bundles/org.eclipse.ui.ide/icons/full/ovr16/link_ovr.gif
    bundles/org.eclipse.ui.ide/icons/full/ovr16/linkwarn_ovr.gif
    bundles/org.eclipse.ui.ide/icons/full/wizban/exportdir_wiz.png
    bundles/org.eclipse.ui.ide/icons/full/wizban/exportzip_wiz.png
    bundles/org.eclipse.ui.ide/icons/full/wizban/importdir_wiz.png
    bundles/org.eclipse.ui.ide/icons/full/wizban/importproj_wiz.png
    bundles/org.eclipse.ui.ide/icons/full/wizban/importzip_wiz.png
    bundles/org.eclipse.ui.ide/icons/full/wizban/new_wiz.png
    bundles/org.eclipse.ui.ide/icons/full/wizban/newfile_wiz.png
    bundles/org.eclipse.ui.ide/icons/full/wizban/newfolder_wiz.png
    bundles/org.eclipse.ui.ide/icons/full/wizban/newprj_wiz.png
    bundles/org.eclipse.ui.ide/icons/full/wizban/quick_fix.png
    bundles/org.eclipse.ui.ide/icons/full/wizban/saveas_wiz.png
    bundles/org.eclipse.ui.ide/icons/full/wizban/workset_wiz.png
    bundles/org.eclipse.ui.ide/plugin.properties
    bundles/org.eclipse.ui.ide/plugin.xml
    bundles/org.eclipse.ui.ide/schema/filesystemSupport.exsd
    bundles/org.eclipse.ui.ide/schema/markerHelp.exsd
    bundles/org.eclipse.ui.ide/schema/markerImageProviders.exsd
    bundles/org.eclipse.ui.ide/schema/markerResolution.exsd
    bundles/org.eclipse.ui.ide/schema/markerSupport.exsd
    bundles/org.eclipse.ui.ide/schema/projectNatureImages.exsd
    bundles/org.eclipse.ui.ide/schema/resourceFilters.exsd
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/FileStoreEditorInput.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IContributorResourceAdapter2.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDE.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDEActionFactory.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDEEncoding.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IGotoMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IIDEActionConstants.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/ResourceUtil.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/AbstractEncodingFieldEditor.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/EncodingFieldEditor.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/PathVariableSelectionDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/ResourceEncodingFieldEditor.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/fileSystem/FileSystemContributor.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/fileSystem/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractCopyOrMoveResourcesOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractCreateResourcesOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractMarkersOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractResourcesOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractWorkspaceOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyProjectOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyResourcesOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateFileOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateFolderOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateMarkersOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateProjectOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/DeleteMarkersOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/DeleteResourcesOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/MoveProjectOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/MoveResourcesOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/UpdateMarkersOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/WorkspaceUndoUtil.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/AboutInfo.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceData.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/DefaultContributorResourceAdapter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/DialogUtil.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/EditorAreaDropAdapter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/FeatureSelectionDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEApplication.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEExceptionHandler.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEIdleHelper.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEInternalPreferences.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEInternalWorkbenchImages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEPreferenceInitializer.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDESelectionConversionService.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchActivityHelper.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchAdvisor.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchPlugin.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchWindowAdvisor.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IIDEHelpContextIds.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IMarkerImageProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/LineDelimiterEditor.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/LinkedResourceDecorator.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/Policy.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ProblemImageProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ResourcePerspective.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ResourceWorkingSetUpdater.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/StatusUtil.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/StringMatcher.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/TipsAndTricksAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/WorkbenchActionBuilder.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildCleanAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildSetAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildSetMenu.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildUtilities.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/CloseUnrelatedProjectsAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/OpenWorkspaceAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/ProjectPropertyDialogAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/QuickMenuAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/RetargetActionWithDefault.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/SelectBuildWorkingSetAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/ToggleAutoBuildAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/commands/ResourcePathConverter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/BuildOrderPreferencePage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CleanDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ConfigurationLogUpdateSection.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CreateLinkedResourceGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileFolderSelectionDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileStatesPage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileSystemSelectionArea.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEEditorsPreferencePage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEPerspectivesPreferencePage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEResourceInfoUtils.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEStartupPreferencePage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkbenchPreferencePage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkspacePreferencePage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IElementFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IFileStoreFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/InternalErrorDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/LinkedResourcesPreferencePage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/OpenResourceDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariableDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariablesGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectContentsLocationArea.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectReferencePage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceComparator.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceInfoPage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceWorkingSetPage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/SimpleListContentProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditor.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorActionContributor.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorCopyAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorInput.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorInputFactory.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeItem.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeParser.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemConfiguration.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemSupportRegistry.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/messages.properties
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/OpenResourceHandler.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowResourceByPathHandler.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/messages.properties
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/CheckboxTreeAndListGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerContentProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerSelectionGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/DisjointSet.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/OverlayIcon.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ResourceAndContainerGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/FileInputAdapterFactory.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/ResourceFactory.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/StandardPropertiesAdapterFactory.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchAdapterBuilder.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchAdapterFactory.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchFile.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchFolder.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchProject.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchResource.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchRootResource.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchStatus.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchWorkspace.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkingSetAdapterFactory.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkingSetResourceMapping.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkspaceFactory.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/IDERegistryReader.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerHelpRegistry.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerHelpRegistryReader.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerQuery.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerQueryResult.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/PerspectiveParameterValues.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/ProjectImageRegistry.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/ProjectImageRegistryReader.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FileDescription.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FolderDescription.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/MarkerDescription.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ProjectDescription.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ResourceDescription.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/UndoMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/WorkspaceUndoMonitor.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/messages.properties
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/update/ConfigurationManagerAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/update/InstallWizardAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/bookmarkexplorer/BookmarkMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/bookmarkexplorer/messages.properties
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/framelist/FrameListMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/framelist/messages.properties
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/navigator/ResourceNavigatorMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/navigator/messages.properties
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/properties/IDEPropertiesMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/properties/ideMessages.properties
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/tasklist/TaskListMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/tasklist/messages.properties
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ArchiveFileExportOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ArchiveFileManipulations.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/DataTransferMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExportOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExporter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/IDataTransferHelpContextIds.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/IFileExporter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ILeveledImportStructureProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/MinimizedFileSystemElement.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarEntry.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarException.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarFile.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarFileExporter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarInputStream.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarLeveledStructureProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarOutputStream.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardArchiveFileResourceExportPage1.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardArchiveFileResourceImportPage1.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceExportPage1.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipFileExporter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipLeveledStructureProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/messages.properties
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/newresource/ResourceMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/newresource/messages.properties
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkContentProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkLabelProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkNavigator.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkPropertiesDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkSorter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/CopyBookmarkAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/EditBookmarkAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/IBookmarkHelpContextIds.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/MarkerUtil.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/OpenBookmarkAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/PasteBookmarkAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/RemoveBookmarkAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/SelectAllAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/BackAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/ForwardAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/Frame.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameList.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameListMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/GoIntoAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/IFrameListHelpContextIds.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/IFrameSource.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/TreeFrame.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/TreeViewerFrameSource.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/UpAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/MarkerViewUtil.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/WorkbenchMarkerResolution.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/AbstractField.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionAddGlobalTask.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionCopyMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionDeleteCompleted.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionMarkCompleted.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionMarkerProperties.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionOpenMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionPasteMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionProblemProperties.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionRemoveMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionResolveMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionRevealMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionSelectAll.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionTaskProperties.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/AttributeMarkerGrouping.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkView.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/CategoryComparator.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ConcreteMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DefaultMarkerResourceAdapter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogBookmarkFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogMarkerFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogMarkerProperties.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogProblemFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogProblemProperties.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogTaskFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogTaskProperties.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldCategory.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldCreationTime.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldDone.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldDummy.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldFolder.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldId.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldLineNumber.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldMarkerGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldMessage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldPriority.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldResource.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldSeverityAndMessage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FilterEnablementAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FiltersAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IField.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IItemsChangedListener.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IMarkerChangedListener.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IMarkerResourceAdapter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ITableListener.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerAdapter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerGroupingEntry.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerLabelProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerList.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerNode.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerNodeRefreshRecord.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerResolutionDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSelectionProviderAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSelectionProviderAdapter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSorter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSupportRegistry.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerTreeContentProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerType.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerTypesModel.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerView.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerViewLabelProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerViewPreferenceDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemView.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/SortUtil.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableComparator.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableSortAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableSortDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableView.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableViewLabelProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskMarker.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskView.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/Util.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/messages.properties
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/CollapseAllAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/CopyAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/FilterSelectionAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/FiltersContentProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoActionGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoResourceAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoResourceDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/INavigatorHelpContextIds.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/IResourceNavigator.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/LocalSelectionTransfer.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/MainActionGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorDragAdapter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorDropAdapter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorFrameSource.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/OpenActionGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/PasteAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/RefactorActionGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceComparator.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigator.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorActionGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorMoveAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorRenameAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourcePatternFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceSelectionUtil.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceSorter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ShowInNavigatorAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/SortAndFilterActionGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/SortViewAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/StringMatcher.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ToggleLinkingAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/WorkspaceActionGroup.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/FilePropertySource.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/IDEPropertiesMessages.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/IResourcePropertyConstants.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/ResourcePropertySource.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/CopyTaskAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/DefaultTaskListResourceAdapter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/FiltersAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/FiltersDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/GotoTaskAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/IMarkerConstants.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ITaskListHelpContextIds.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ITaskListResourceAdapter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkCompletedAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerType.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerTypesModel.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerUtil.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/NewTaskAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/PasteTaskAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/PurgeCompletedAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/RemoveTaskAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ResolveMarkerAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/SelectAllTasksAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskList.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskListContentProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskPropertiesAction.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskPropertiesDialog.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskSorter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TasksFilter.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ExternalProjectImportWizard.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileStoreStructureProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemExportWizard.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemImportWizard.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemStructureProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/IImportStructureProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ImportOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/PopulateRootOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/SelectFilesOperation.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/WizardExternalProjectImportPage.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileExportWizard.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileImportWizard.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileStructureProvider.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/package.html
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewFileResourceWizard.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewFolderResourceWizard.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewProjectResourceWizard.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewResourceWizard.java
    bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/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/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.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/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/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/QuickMenuAction.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/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/ResourceComparator.java
    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/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.navigator/.classpath
    bundles/org.eclipse.ui.navigator/.cvsignore
    bundles/org.eclipse.ui.navigator/.project
    bundles/org.eclipse.ui.navigator/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.navigator/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.navigator/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.navigator/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.navigator/about.html
    bundles/org.eclipse.ui.navigator/build.properties
    bundles/org.eclipse.ui.navigator/component.xml
    bundles/org.eclipse.ui.navigator/icons/full/clcl16/collapseall.gif
    bundles/org.eclipse.ui.navigator/icons/full/clcl16/elipses.gif
    bundles/org.eclipse.ui.navigator/icons/full/clcl16/pause.gif
    bundles/org.eclipse.ui.navigator/icons/full/clcl16/synced.gif
    bundles/org.eclipse.ui.navigator/icons/full/elcl16/collapseall.gif
    bundles/org.eclipse.ui.navigator/icons/full/elcl16/filter_ps.gif
    bundles/org.eclipse.ui.navigator/icons/full/elcl16/synced.gif
    bundles/org.eclipse.ui.navigator/javadoc-images/framework-overview.jpg
    bundles/org.eclipse.ui.navigator/javadoc-images/navigator_logical_extension.jpg
    bundles/org.eclipse.ui.navigator/jdt-patch/org.eclipse.jdt.ui_patch.txt
    bundles/org.eclipse.ui.navigator/models/CommonNavigator.emx
    bundles/org.eclipse.ui.navigator/plugin.properties
    bundles/org.eclipse.ui.navigator/plugin.xml
    bundles/org.eclipse.ui.navigator/schema/linkHelper.exsd
    bundles/org.eclipse.ui.navigator/schema/navigatorContent.exsd
    bundles/org.eclipse.ui.navigator/schema/viewer.exsd
    bundles/org.eclipse.ui.navigator/scripts/src.jardesc
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/AdaptabilityUtility.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorActionGroup.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorManager.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorMessages.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteDelegate.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIEditorPartSiteDelegate.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIPageSiteDelegate.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIViewSiteDelegate.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/ContributorTrackingSet.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CustomAndExpression.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/INavigatorHelpContextIds.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorActivationService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceContentProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceDescriptionProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceLabelProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorFilterService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorImages.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPipelineService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPlugin.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSaveablesService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSiteEditor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/ReusableViewerLabel.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/StringMatcher.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/TextActionHandler.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/VisibilityAssistant.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CollapseAllAction.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CommonActionDescriptorManager.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CommonActionProviderDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/LinkEditorAction.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/CommonDropAdapterDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/CommonDropDescriptorManager.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorContentServiceTransfer.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorDnDService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorPluginDropAction.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/SkeletonCommonDropAssistant.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/Binding.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonActionExtensionSite.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonContentExtensionSite.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonDragAssistantDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonExtensionSite.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ExtensionPriorityComparator.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ExtensionStateModel.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ILinkHelperExtPtConstants.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/INavigatorContentExtPtConstants.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/INavigatorSiteEditor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/IViewerExtPtConstants.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperManager.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentDescriptorManager.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentExtension.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentRegistryReader.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorViewerDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorViewerDescriptorManager.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/OverridePolicy.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/RegistryReader.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SafeDelegateCommonLabelProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SafeDelegateTreeContentProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonActionProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonCommonDragAssistant.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonLabelProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonLinkHelper.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonTreeContentProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/StructuredViewerManager.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterContentProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterDescriptorManager.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterLabelProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterSelectionDialog.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFiltersTab.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ContentDescriptorContentProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ContentExtensionsTab.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CoreExpressionFilter.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CustomizationTab.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/FilterActionGroup.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/FilterDialogSelectionListener.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/SelectFiltersAction.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/SkeletonViewerFilter.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ToggleFilterAction.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/UpdateActiveExtensionsOperation.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/UpdateActiveFiltersOperation.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/messages.properties
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/CommonSorterDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/CommonSorterDescriptorManager.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/NavigatorSorterService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/SkeletonViewerSorter.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/CommonWizardDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/CommonWizardDescriptorManager.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/WizardShortcutAction.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonActionProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDragAdapter.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDragAdapterAssistant.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDropAdapter.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDropAdapterAssistant.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonNavigator.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewer.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewerSiteFactory.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewerSorter.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonActionConstants.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonActionExtensionSite.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonContentExtensionSite.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonContentProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonFilterDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonLabelProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonMenuConstants.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonViewerSite.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonViewerWorkbenchSite.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IDescriptionProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IExtensionActivationListener.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IExtensionStateModel.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ILinkHelper.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IMementoAware.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorActivationService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentExtension.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentServiceListener.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorDnDService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorFilterService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorPipelineService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorSaveablesService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorSorterService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorViewerDescriptor.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IPipelinedTreeContentProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/MenuInsertionPoint.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/NavigatorActionService.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/NavigatorContentServiceFactory.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/PipelinedShapeModification.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/PipelinedViewerUpdate.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/Priority.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/SaveablesProvider.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/WizardActionGroup.java
    bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/package.html
    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/component.xml
    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/SectionDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/Tab.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/AbstractPropertySection.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/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/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/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/component.xml
    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/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/PropertyDescriptor.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/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.examples.databinding/.classpath
    examples/org.eclipse.jface.examples.databinding/.cvsignore
    examples/org.eclipse.jface.examples.databinding/.project
    examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.jface.examples.databinding/META-INF/MANIFEST.MF
    examples/org.eclipse.jface.examples.databinding/about.html
    examples/org.eclipse.jface.examples.databinding/build.properties
    examples/org.eclipse.jface.examples.databinding/plugin.properties
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/DataBindingFactory1.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ExampleBinding.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/HelloWorld.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ModelObject.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/AbsoluteLayout.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/CompositeTable.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IDeleteHandler.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IInsertHandler.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IRowContentProvider.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IRowFocusListener.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/InternalCompositeTable.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/RowConstructionListener.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/RowFocusAdapter.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/ScrollEvent.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/ScrollListener.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/binding/CompositeTableObservableLazyDataRequestor.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/binding/IRowBinder.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/AbstractEventEditor.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableItemEvent.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableItemEventHandler.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableSelectionChangeListener.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditor.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditorSelection.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditorTest.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/NewEvent.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/SelectionChangeEvent.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/TODO.txt
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventDateTimeDiff.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorBindingDescription.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorObservableLazyDataRequestor.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorObservableLazyDataRequestorFactory.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/calendar-day-mode-binding.svg
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/DayEditorCalendarableItemControl.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/EventLayoutComputer.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/ICalendarableItemControl.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/TimeSlice.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/TimeSlot.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/clock.png
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/clock.svg
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/EmptyTablePlaceholder.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/ISelectableRegionControl.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/TableRow.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendar.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarSelectedDay.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarTest.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarableItemControl.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/Day.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/Week.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/WeekHeader.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/DuckType.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/ReflectedMethod.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/ReflectedProperty.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/RelaxedDuckType.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/CompositeTableTest.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/CompositeTableTestBinding.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Header.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Model.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Person.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Row.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Snippet004CompositeTable.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/CalendarableItem.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/CalendarableModel.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/DisposeListener.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/EventContentProvider.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/EventCountProvider.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/IEventEditor.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/AsynchronousTestSet.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/LabelProviderTest.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/LabelProviderTest2.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/RenamableItem.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/SimpleNode.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/SomeMathFunction.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/StructuredContentProviderTest.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/TreeContentProviderTest.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMask.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMaskParseException.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMaskTest.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/EditMaskLexerAndToken.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/EditMaskParser.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Account.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Adventure.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/AdventureFactory.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/AggregateObservableValue.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Cart.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Catalog.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Category.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Lodging.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/PriceModelObject.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SampleData.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Signon.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimpleModel.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimpleOrder.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimplePerson.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Transportation.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/nestedselection/BindingFactory.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/nestedselection/TestMasterDetail.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/radioGroup/RadioGroup.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/radioGroup/VetoableSelectionListener.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet000HelloWorld.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet001NestedSelectionWithCombo.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet002UpdateComboRetainSelection.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet003UpdateComboBindUsingViewer.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet004DataBindingContextErrorLabel.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/spreadsheet/Spreadsheet.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/GridDataFactory.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/GridLayoutFactory.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/LayoutConstants.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/LayoutGenerator.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/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/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/META-INF/MANIFEST.MF
    examples/org.eclipse.jface.snippets/build.properties
    examples/org.eclipse.ui.examples.contributions/.project
    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/ExampleDialog.java
    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/TaskAssistExampleMessages.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/actions/ShowDialogAction.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/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/ReadmeTrimWidget.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/FreeFormPage.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/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/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/.classpath
    tests/org.eclipse.jface.tests.databinding/.cvsignore
    tests/org.eclipse.jface.tests.databinding/.project
    tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.jdt.ui.prefs
    tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.pde.prefs
    tests/org.eclipse.jface.tests.databinding/JFace-Data Binding Test Suite.launch
    tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF
    tests/org.eclipse.jface.tests.databinding/about.html
    tests/org.eclipse.jface.tests.databinding/build.properties
    tests/org.eclipse.jface.tests.databinding/plugin.properties
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/radiogroup/RadioGroupTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/radiogroup/RadioGroupTestApplication.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CMClientFixture.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CMTimedEventFixture.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarControlTestSuite.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_TestTimedFindMethods.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_testInit.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_testRefreshResults.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/DayModel_testGetColumnsForEvents.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IdentityConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryBooleanPrimitiveTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryBytePrimitiveTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryDoublePrimitiveTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryFloatPrimitiveTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryIntTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryLongPrimitiveTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryShortPrimitiveTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ObjectToPrimitiveValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindSpecTests.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindingTestSuite.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/CalculatedValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/DatabindingContextTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/EventEditor.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/EventEditorObservableLazyDataRequestorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/IDiffsTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/JavaBeansScalarObservableValueFactoryTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/LazyDataRequestor.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/LazyListBindingTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/ObservableTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/RandomAccessListIteratorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/SelectionAwareObservableCollectionTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/mask/EditMaskLexerAndTokenTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/mask/EditMaskParserTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/observable/value/WritableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/AutomationUtil.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/BindingScenariosTestSuite.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ButtonControlScenario.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboScenarios.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboUpdatingTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboViewerScenario.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanBindSupportFactory.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanModelType.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanObservableFactory.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomConverterScenarios.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomScenarios.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/LabelControlScenario.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ListViewerScenario.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/MasterDetailScenarios.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/NPETestScenario.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/NewTableScenarios.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ObservableFactoriesTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/PropertyScenarios.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ScenariosTestCase.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/SpinnerControlScenario.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/TableScenarios.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/TextControlScenario.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/smoketest/swt.xswt
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AbstractGetAndSetSelectionObservableCollectionTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AutoSelectTableViewerCollectionExtendedTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AutoSelectTableViewerCollectionTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/CComboObservableCollectionTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ComboObservableCollectionTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/CopyOfAutoSelectTableViewerCollectionExtendedTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ListObservableCollectionTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ObservableCollectionViewerTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/TableViewerObservableCollectionTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/TextObservableValueTests.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/util/Mocks.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/util/MocksTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/examples/model/PersonTests.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/ValueBindingTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/observable/UnmodifiableObservableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SVOCWLTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/observable/AbstractObservableTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/observable/ObservablesTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/viewers/ViewersObservableFactoryTest.java
    tests/org.eclipse.jface.tests.databinding/test.xml
    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.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/UITestHarnessPlugin.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/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/PlatformUtil.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.navigator/.classpath
    tests/org.eclipse.ui.tests.navigator/.cvsignore
    tests/org.eclipse.ui.tests.navigator/.project
    tests/org.eclipse.ui.tests.navigator/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests.navigator/.settings/org.eclipse.jdt.ui.prefs
    tests/org.eclipse.ui.tests.navigator/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests.navigator/Navigator Test Suite.launch
    tests/org.eclipse.ui.tests.navigator/about.html
    tests/org.eclipse.ui.tests.navigator/build.properties
    tests/org.eclipse.ui.tests.navigator/plugin.properties
    tests/org.eclipse.ui.tests.navigator/plugin.xml
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/DisplayHelper.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/DisplayWaiter.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/EditorTestHelper.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/INavigatorContentServiceTests.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/NavigatorTestSuite.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/NavigatorTestsPlugin.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/OpenTest.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/PipelineTest.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/ProgrammaticOpenTest.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/SWTEventHelper.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/DependentAction.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/DependentActionProvider.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestAction.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestActionProvider.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestContentProvider.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestDataSorter.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestExtensionAdapterFactory.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestExtensionTreeData.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestItemsThatEndIn3.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestLabelDecorator.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestLabelProvider.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestNestedActionProvider.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/ProjectUnzipUtil.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/TestWorkspace.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/ExportWizard1.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/ImportWizard1.java
    tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/NewWizard1.java
    tests/org.eclipse.ui.tests.navigator/test.xml
    tests/org.eclipse.ui.tests.navigator/testdata/Test.zip
    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/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/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/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/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/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/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/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/GenerateIdentifiersTest.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/IPerformanceMeterArray.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/IntervalMeters.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/NullMeters.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/RCPTestWorkbenchAdvisor.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/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/TabbedPropertySheetPageTest.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/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/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/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/InputDialogTest.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/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/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/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/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/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/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/ui/tests/propertyPages/TestPropertyPage.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/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/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/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/EditorIconTest.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/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/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/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/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/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/CustomTitleView.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/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/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/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/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/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/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/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/NestedSyncExecDeadlockTest.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/ImportExistingTest.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/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/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/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/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/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/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/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/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/PopupMenuExpressionTest.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/TextSelectionActionExpressionTest.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/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/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/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/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/UIPreferencesManual.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/MarkerSupportRegistryTests.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/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/OrderingTest.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/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/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/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/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/ComboBoxPropertyDescriptorTest.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/PropertySheetTestSuite.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/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/SessionTests.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/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/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/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/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/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/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.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.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.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/testContentType.zip
    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/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/mockeditorpart1.gif
    tests/org.eclipse.ui.tests/icons/mockeditorpart2.gif
    tests/org.eclipse.ui.tests/icons/view.gif
    tests/org.eclipse.ui.tests/plugin.xml
    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 36620f3..0000000
--- a/bundles/org.eclipse.core.commands/.project
+++ /dev/null
@@ -1,28 +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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</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 4d101a3..0000000
--- a/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,79 +0,0 @@
-#Wed Apr 26 14:25:17 EDT 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.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.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 32cd6b1..0000000
--- a/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Fri Mar 03 15:48:20 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">/**\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.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 579c8d3..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.2.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 11cf43c..0000000
--- a/bundles/org.eclipse.core.commands/build.properties
+++ /dev/null
@@ -1,17 +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
-###############################################################################
-source.. = src/
-output.. = bin/
-src.includes = about.html
-bin.includes = about.html,\
-               plugin.properties,\
-               .,\
-               META-INF/
diff --git a/bundles/org.eclipse.core.commands/component.xml b/bundles/org.eclipse.core.commands/component.xml
deleted file mode 100644
index 6a334be..0000000
--- a/bundles/org.eclipse.core.commands/component.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<component xmlns="http://eclipse.org/component"
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://eclipse.org/component ../component.xsd "
-   name="Platform Core Commands">
-
-<plugin id="org.eclipse.core.commands" />
-
-<package name="org.eclipse.core.commands" >
-  <type name="AbstractHandler"/>
-  <type name="Category"/>
-  <type name="CategoryEvent" subclass="false"/>
-  <type name="Command"/>
-  <type name="CommandEvent" subclass="false"/>
-  <type name="CommandManager"/>
-  <type name="CommandManagerEvent"/>
-  <type name="ExecutionEvent"/>
-  <type name="ExecutionException" subclass="false"/>
-  <type name="HandlerEvent" subclass="false"/>
-  <type name="ICategoryListener"/>
-  <type name="ICommandListener"/>
-  <type name="ICommandManagerListener"/>
-  <type name="IHandler"/>
-  <type name="IHandlerAttributes"/>
-  <type name="IHandlerListener"/>
-  <type name="IParameter"/>
-  <type name="IParameterValues"/>
-  <type name="NotHandledException" subclass="false"/>
-  <type name="Parameterization"/>
-  <type name="ParameterizedCommand"/>
-  <type name="ParameterValuesException"/>
-</package>
-
-<package name="org.eclipse.core.commands.common" >
-  <type name="AbstractBitSetEvent"/>
-  <type name="AbstractNamedHandleEvent"/>
-  <type name="CommandException" subclass="false"/>
-  <type name="HandleObject"/>
-  <type name="NamedHandleObject"/>
-  <type name="NotDefinedException" subclass="false"/>
-</package>
-
-<package name="org.eclipse.core.commands.contexts" >
-  <type name="Context"/>
-  <type name="ContextEvent"/>
-  <type name="ContextManager"/>
-  <type name="ContextManagerEvent"/>
-  <type name="IContextListener"/>
-  <type name="IContextManagerListener"/>
-</package>
-
-<package name="org.eclipse.core.commands.operations" >
-  <type name="AbstractOperation"/>
-  <type name="ContextConsultingOperationApprover"/>
-  <type name="DefaultOperationHistory"/>
-  <type name="IContextOperationApprover"/>
-  <type name="IHistoryNotificationAwareOperation"/>
-  <type name="IOperationApprover"/>
-  <type name="IOperationHistory"/>
-  <type name="IOperationHistoryListener"/>
-  <type name="IUndoableOperation"/>
-  <type name="IUndoContext"/>
-  <type name="LinearUndoEnforcer"/>
-  <type name="LinearUndoViolationDetector"/>
-  <type name="ObjectUndoContext"/>
-  <type name="OperationHistoryEvent"/>
-  <type name="OperationHistoryFactory"/>
-  <type name="OperationStatus"/>
-  <type name="UndoContext"/>
-</package>
-
-<component-depends unrestricted="true"/>
-
-</component>
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 a1b6090..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandler.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.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 IHandler {
-
-	/**
-	 * @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.
-	 * 
-	 * @return <code>true</code>
-	 */
-	public boolean isEnabled() {
-		return true;
-	}
-
-	/**
-	 * 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 21effa3..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandlerWithState.java
+++ /dev/null
Binary files differ
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 3c0dc15..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractParameterValueConverter.java
+++ /dev/null
@@ -1,74 +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>
- * 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 143b53f..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Category.java
+++ /dev/null
@@ -1,188 +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.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 4f1af59..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CategoryEvent.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.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 3002dbc..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Command.java
+++ /dev/null
@@ -1,1024 +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.NotDefinedException;
-import org.eclipse.core.commands.util.Tracing;
-import org.eclipse.core.internal.commands.util.Util;
-import org.eclipse.core.runtime.ListenerList;
-
-/**
- * <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;
-
-	/**
-	 * 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."); //$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$
-					+ id);
-			fireNotDefined(exception);
-			throw exception;
-		}
-
-		// Perform the execution, if there is a handler.
-		if ((handler != null) && (handler.isHandled())) {
-			if (!isEnabled()) {
-				final NotEnabledException exception = new NotEnabledException(
-						"Trying to execute a disabled command"); //$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."); //$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];
-			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.
-	 * 
-	 * @return The current handler for this command; may be <code>null</code>.
-	 * @since 3.2
-	 */
-	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(String)} 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;
-		}
-
-		return handler.isHandled() && handler.isEnabled();
-	}
-
-	/**
-	 * 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);
-				}
-			}
-		}
-
-		// Update the handler, and flush the string representation.
-		this.handler = handler;
-		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));
-
-		return true;
-	}
-
-	/**
-	 * 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("Command("); //$NON-NLS-1$
-			stringBuffer.append(id);
-			stringBuffer.append(',');
-			stringBuffer.append(name);
-			stringBuffer.append(',');
-			stringBuffer.append(description);
-			stringBuffer.append(',');
-			stringBuffer.append(category);
-			stringBuffer.append(',');
-			stringBuffer.append(handler);
-			stringBuffer.append(',');
-			stringBuffer.append(parameters);
-			stringBuffer.append(',');
-			stringBuffer.append(returnType);
-			stringBuffer.append(',');
-			stringBuffer.append(defined);
-			stringBuffer.append(')');
-			string = stringBuffer.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() {
-		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));
-	}
-}
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 93a7441..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandEvent.java
+++ /dev/null
@@ -1,233 +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.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 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) {
-		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;
-		}
-	}
-
-	/**
-	 * 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);
-	}
-}
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 831337b..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManager.java
+++ /dev/null
@@ -1,946 +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 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()}. 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.
-	 * 
-	 * @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
-	 * @see ParameterizedCommand#escape(String)
-	 * @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 IExecutionListener 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 NotDefinedException
-	 *             if the command is not defined
-	 * @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;
-
-	}
-
-}
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 dc43327..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManagerEvent.java
+++ /dev/null
@@ -1,304 +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;
-
-/**
- * <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 ddf1919..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionEvent.java
+++ /dev/null
@@ -1,242 +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.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 2dec890..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionException.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.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 a71c91c..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/HandlerEvent.java
+++ /dev/null
@@ -1,97 +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.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 5eb29db..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListenerWithChecks.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;
-
-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 0a62fb1..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler.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.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.
-	 * 
-	 * @return <code>true</code> if the command is enabled; <code>false</code>
-	 *         otherwise.
-	 */
-	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/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 a5f4e86..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/INamedHandleStateIds.java
+++ /dev/null
Binary files differ
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 8a7c606..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IObjectWithState.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.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 34cf9ff..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterTypeListener.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;
-
-/**
- * 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 b7b3ad4..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IStateListener.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;
-
-/**
- * <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 5f0f3dd..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ITypedParameter.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.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 ace90b3..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NamedHandleObjectWithState.java
+++ /dev/null
Binary files differ
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 08ce643..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterType.java
+++ /dev/null
@@ -1,298 +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.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 dffca1b..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterTypeEvent.java
+++ /dev/null
@@ -1,63 +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.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 f3c976f..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValueConversionException.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.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 d7565bf..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterizedCommand.java
+++ /dev/null
@@ -1,625 +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.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
-	 * @see CommandManager#unescape(String)
-	 * @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);
-		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;
-	}
-
-	/**
-	 * 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;
-
-	/**
-	 * 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>. This
-	 *            argument is not copied; if you need to make changes to it
-	 *            after constructing this parameterized command, then make a
-	 *            copy yourself.
-	 */
-	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;
-		this.parameterizations = (parameterizations == null || parameterizations.length == 0) ? null
-				: parameterizations;
-	}
-
-	/*
-	 * (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 {
-		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(')');
-		}
-		return nameBuffer.toString();
-	}
-
-	/**
-	 * 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
-					+ Util.hashCode(parameterizations);
-			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 49808e3..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/SerializationException.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.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 6fef3df..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/State.java
+++ /dev/null
@@ -1,136 +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.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 5384633..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/CommandException.java
+++ /dev/null
@@ -1,64 +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 exception occured within the command architecture.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class CommandException extends Exception {
-	
-	/**
-	 * 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 12d688a..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java
+++ /dev/null
Binary files differ
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 ed5b902..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObject.java
+++ /dev/null
@@ -1,172 +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;
-
-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 c37319e..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObjectManager.java
+++ /dev/null
Binary files differ
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 e5f7b53..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/IIdentifiable.java
+++ /dev/null
Binary files differ
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 5eb321b..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObject.java
+++ /dev/null
@@ -1,78 +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;
-
-/**
- * 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 9eaaec2..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObjectComparator.java
+++ /dev/null
Binary files differ
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 efc0f42..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/Context.java
+++ /dev/null
@@ -1,284 +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.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 bb3b0ba..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextEvent.java
+++ /dev/null
@@ -1,86 +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.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 3ca1bb2..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManager.java
+++ /dev/null
@@ -1,245 +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;
-
-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();
-
-	/**
-	 * 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;
-		}
-
-		final Set previouslyActiveContextIds = new HashSet(activeContextIds);
-		activeContextIds.add(contextId);
-
-		if (DEBUG) {
-			Tracing.printTrace("CONTEXTS", activeContextIds.toString()); //$NON-NLS-1$
-		}
-
-		fireContextManagerChanged(new ContextManagerEvent(this, null, false,
-				true, previouslyActiveContextIds));
-	}
-
-	/**
-	 * 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;
-		}
-
-		final Set previouslyActiveContextIds = new HashSet(activeContextIds);
-		activeContextIds.remove(contextId);
-
-		if (DEBUG) {
-			Tracing.printTrace("CONTEXTS", activeContextIds.toString()); //$NON-NLS-1$
-		}
-
-		fireContextManagerChanged(new ContextManagerEvent(this, null, false,
-				true, previouslyActiveContextIds));
-	}
-
-	/**
-	 * 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;
-		}
-
-		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());
-		}
-
-		fireContextManagerChanged(new ContextManagerEvent(this, null, false,
-				true, previouslyActiveContextIds));
-	}
-}
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 59d0326..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/AbstractOperation.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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.
-	 */
-	public AbstractOperation(String 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.
-	 */
-	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 9c50010..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/DefaultOperationHistory.java
+++ /dev/null
@@ -1,1373 +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 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.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.OperationCanceledException;
-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);
-		}
-
-		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
-				operation.removeContext(context);
-			}
-		}
-	}
-
-	/*
-	 * 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);
-		}
-
-		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
-				operation.removeContext(context);
-			}
-		}
-		/*
-		 * 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) {
-		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) {
-		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(OperationHistoryEvent event) {
-		preNotifyOperation(event.getOperation(), event);
-
-		// copying listener list to array to prevent concurrent
-		// modification of the list. See
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=91343
-
-		final Object[] listenerArray = listeners.getListeners();
-
-		for (int i = 0; i < listenerArray.length; i++) {
-			try {
-				((IOperationHistoryListener) listenerArray[i])
-						.historyNotification(event);
-			} catch (Exception e) {
-				handleNotificationException(e);
-			}
-		}
-	}
-
-	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));
-	}
-
-	/*
-	 * A history notification is about to be sent. Notify the operation before
-	 * hand if it implements IHistoryNotificationAwareOperation.
-	 * 
-	 * This method is provided for legacy undo frameworks that rely on
-	 * notification from their undo managers before any listeners are notified
-	 * about changes in the operation.
-	 */
-
-	private void preNotifyOperation(IUndoableOperation operation,
-			OperationHistoryEvent event) {
-
-		if (operation instanceof IAdvancedUndoableOperation) {
-			try {
-				((IAdvancedUndoableOperation) operation).aboutToNotify(event);
-			} catch (Exception e) {
-				handleNotificationException(e);
-			}
-		}
-	}
-
-	/*
-	 * (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));
-		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);
-		}
-	}
-
-	/*
-	 * Handle an exception that occurred while sending a notification about
-	 * something happening in the operation history. When notifications fail,
-	 * execution should continue, but the exception should be logged.
-	 */
-	private void handleNotificationException(Throwable e) {
-		if (e instanceof OperationCanceledException) {
-			return;
-		}
-		// This plug-in is intended to run stand-alone outside of the
-		// platform, so we do not employ standard platform exception logging.
-		if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-			Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-					"Exception during notification callback " + e); //$NON-NLS-1$
-		}
-		e.printStackTrace();
-	}
-
-}
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 effdb90..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation2.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.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. This interface is
- * useful when implementing {@link IOperationApprover2}.
- * </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;
-}
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 ae4c937..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IContextReplacingOperation.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 706e728..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistory.java
+++ /dev/null
@@ -1,697 +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.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 89cecdc..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoableOperation.java
+++ /dev/null
@@ -1,242 +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.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 label
-	 */
-	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 7d0a8d8..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoViolationDetector.java
+++ /dev/null
@@ -1,142 +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 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 265cf07..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ObjectUndoContext.java
+++ /dev/null
@@ -1,141 +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 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 c158d48..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryEvent.java
+++ /dev/null
@@ -1,236 +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.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 085309e..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java
+++ /dev/null
@@ -1,465 +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 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 91f4f9d..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/util/Tracing.java
+++ /dev/null
Binary files differ
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 ae95127..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.jface.databinding/.classpath b/bundles/org.eclipse.jface.databinding/.classpath
deleted file mode 100644
index d512f63..0000000
--- a/bundles/org.eclipse.jface.databinding/.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/executionEnvironments/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.databinding/.cvsignore b/bundles/org.eclipse.jface.databinding/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.jface.databinding/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.jface.databinding/.project b/bundles/org.eclipse.jface.databinding/.project
deleted file mode 100644
index e65e985..0000000
--- a/bundles/org.eclipse.jface.databinding/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jface.databinding</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.jface.databinding/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.jface.databinding/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6013860..0000000
--- a/bundles/org.eclipse.jface.databinding/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,71 +0,0 @@
-#Thu Aug 24 16:37:29 EDT 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=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.indirectStaticAccess=error
-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=error
-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.missingJavadocTags=error
-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=error
-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.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-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.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.databinding/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.jface.databinding/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 59509e0..0000000
--- a/bundles/org.eclipse.jface.databinding/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Thu Aug 24 15:24:48 EDT 2006
-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.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.jface.databinding/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.jface.databinding/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index fee4b04..0000000
--- a/bundles/org.eclipse.jface.databinding/.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.databinding/META-INF/MANIFEST.MF b/bundles/org.eclipse.jface.databinding/META-INF/MANIFEST.MF
deleted file mode 100644
index 7e24d4e..0000000
--- a/bundles/org.eclipse.jface.databinding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,29 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jface.databinding
-Bundle-Version: 1.1.0.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.jface.databinding,
- org.eclipse.jface.databinding.observable,
- org.eclipse.jface.databinding.observable.list;x-internal:=false,
- org.eclipse.jface.databinding.observable.masterdetail,
- org.eclipse.jface.databinding.observable.set;x-internal:=false,
- org.eclipse.jface.databinding.observable.value;x-internal:=false,
- org.eclipse.jface.databinding.util,
- org.eclipse.jface.internal.databinding.internal;x-internal:=true,
- org.eclipse.jface.internal.databinding.internal.observable;x-internal:=true,
- org.eclipse.jface.internal.databinding.provisional;x-internal:=false,
- org.eclipse.jface.internal.databinding.provisional.conversion;x-internal:=false,
- org.eclipse.jface.internal.databinding.provisional.description;x-internal:=false,
- org.eclipse.jface.internal.databinding.provisional.factories;x-internal:=false,
- org.eclipse.jface.internal.databinding.provisional.observable;x-internal:=false,
- org.eclipse.jface.internal.databinding.provisional.observable.mapping;x-internal:=false,
- org.eclipse.jface.internal.databinding.provisional.validation;x-internal:=false
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)";resolution:=optional,
- org.eclipse.equinox.common;bundle-version="[3.2.0,4.0.0)";resolution:=optional
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.jface.databinding/about.html b/bundles/org.eclipse.jface.databinding/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.jface.databinding/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.databinding/build.properties b/bundles/org.eclipse.jface.databinding/build.properties
deleted file mode 100644
index 67499e3..0000000
--- a/bundles/org.eclipse.jface.databinding/build.properties
+++ /dev/null
@@ -1,17 +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
-###############################################################################
-bin.includes = .,\
-               META-INF/,\
-               plugin.properties,\
-               about.html
-output.databinding.jar = bin/
-src.includes = about.html
-source.. = src/
diff --git a/bundles/org.eclipse.jface.databinding/component.xml b/bundles/org.eclipse.jface.databinding/component.xml
deleted file mode 100644
index 95944ec..0000000
--- a/bundles/org.eclipse.jface.databinding/component.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<component xmlns="http://eclipse.org/component"
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://eclipse.org/component ../component.xsd "
-   name="JFace Data Binding">
- <plugin id="org.eclipse.jface.databinding" />
-
- <package name="org.eclipse.jface.internal.provisional.databinding" >
-   <type name="BindingException" subclass="false"/>
-   <type name="BindSpec"/>
-   <type name="ChangeEvent" subclass="false"/>
-   <type name="ConditionalUpdatableValue"/>
-   <type name="Converter"/>
-   <type name="DataBinding" subclass="false"/>
-   <type name="DefaultCellModifier" subclass="false"/>
-   <type name="IBindSpec" implement="false"/>
-   <type name="IBindSupportFactory"/>
-   <type name="IChangeEvent" implement="false"/>
-   <type name="IChangeListener"/>
-   <type name="IConverter"/>
-   <type name="IDataBindingContext" implement="false"/>
-   <type name="IdentityConverter" subclass="false"/>
-   <type name="IUpdatable" implement="false"/>
-   <type name="IUpdatableCollection"/>
-   <type name="IUpdatableFactory"/>
-   <type name="IUpdatableValue"/>
-   <type name="IValidationContext" implement="false"/>
-   <type name="IValidator"/>
-   <type name="PropertyDescription" subclass="false"/>
-   <type name="SettableValue"/>
-   <type name="TableViewerDescription" subclass="false"/>
-   <type name="Updatable"/>
-   <type name="UpdatableValue"/>
- </package>
-
- <component-depends unrestricted="true"/>
-
-</component>
diff --git a/bundles/org.eclipse.jface.databinding/plugin.properties b/bundles/org.eclipse.jface.databinding/plugin.properties
deleted file mode 100644
index e18f395..0000000
--- a/bundles/org.eclipse.jface.databinding/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindSpec.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindSpec.java
deleted file mode 100644
index 188cf35..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindSpec.java
+++ /dev/null
@@ -1,364 +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 135316)
- *******************************************************************************/
-package org.eclipse.jface.databinding;
-
-import org.eclipse.jface.internal.databinding.provisional.conversion.IConverter;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider;
-import org.eclipse.jface.internal.databinding.provisional.validation.IDomainValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.IValidator;
-
-
-/**
- * Data binding has three concerns, the target, the model, and the data flow
- * between the target and model. BindSpec contains values and settings that
- * influence how data binding manages this data flow between the target and the
- * model.
- * 
- * @since 1.0
- */
-public class BindSpec {
-
-	private IConverter[] modelToTargetConverters;
-
-	private IConverter[] targetToModelConverters;
-
-	private IValidator[] targetValidators;
-	
-	private LazyInsertDeleteProvider lazyInsertDeleteProvider = new LazyInsertDeleteProvider();
-
-	private IDomainValidator domainValidator;
-
-	private Integer modelUpdatePolicy;
-
-	private Integer validatePolicy;
-
-	private Integer targetUpdatePolicy;
-
-	private boolean updateModel = true;
-
-	private boolean updateTarget = true;
-
-	private static final IValidator[] EMPTY_VALIDATORS = new IValidator[0];
-
-	private static final IConverter[] EMPTY_CONVERTERS = new IConverter[0];
-
-	/**
-	 * Default constructor that initializes all objects to their defaults.
-	 */
-	public BindSpec() {
-	}
-	
-	/**
-	 * Creates a bind spec with the given converters, validators, and update
-	 * policies.
-	 * 
-	 * @param modelToTargetConverter
-	 * @param targetToModelConverter
-	 * @param targetValidator
-	 * @param domainValidator
-	 * @param modelUpdatePolicy
-	 * @param validatePolicy
-	 * @param targetUpdatePolicy
-	 * @param lazyInsertDeleteProvider 
-	 * 
-	 */
-	protected BindSpec(IConverter[] modelToTargetConverter,
-			IConverter[] targetToModelConverter, IValidator[] targetValidator,
-			IDomainValidator domainValidator, Integer modelUpdatePolicy,
-			Integer validatePolicy, Integer targetUpdatePolicy,
-			LazyInsertDeleteProvider lazyInsertDeleteProvider) {
-		
-		this.modelToTargetConverters = modelToTargetConverter;
-		this.targetToModelConverters = targetToModelConverter;
-		this.targetValidators = targetValidator;
-		this.domainValidator = domainValidator;
-		this.modelUpdatePolicy = modelUpdatePolicy;
-		this.validatePolicy = validatePolicy;
-		this.targetUpdatePolicy = targetUpdatePolicy;
-		this.lazyInsertDeleteProvider = lazyInsertDeleteProvider;
-	}
-
-	/**
-	 * Returns the converter to be used, or <code>null</code> if a default
-	 * converter should be used.
-	 * 
-	 * @return the converter, or <code>null</code>
-	 */
-	public IConverter getModelToTargetConverter() {
-		return (getModelToTargetConverters().length == 0) ? null
-				: getModelToTargetConverters()[0];
-	}
-
-	/**
-	 * Returns the converters to be used, or an empty array if a default
-	 * converter should be used.
-	 * 
-	 * @return the converters, or an empty array if none
-	 */
-	public IConverter[] getModelToTargetConverters() {
-		return (modelToTargetConverters == null) ? EMPTY_CONVERTERS
-				: modelToTargetConverters;
-	}
-
-	/**
-	 * Returns the converter to be used, or <code>null</code> if a default
-	 * converter should be used.
-	 * 
-	 * @return the converter, or <code>null</code>
-	 */
-	public IConverter getTargetToModelConverter() {
-		return (getTargetToModelConverters().length == 0) ? null
-				: getTargetToModelConverters()[0];
-	}
-
-	/**
-	 * Returns the converters to be used, or <code>null</code> if a default
-	 * converter should be used.
-	 * 
-	 * @return the converters, or an empty array if none
-	 */
-	public IConverter[] getTargetToModelConverters() {
-		return (targetToModelConverters == null) ? EMPTY_CONVERTERS
-				: targetToModelConverters;
-	}
-
-	/**
-	 * Returns the validator to be used, or <code>null</code> if a default
-	 * validator should be used.
-	 * 
-	 * @return the validator, or <code>null</code>
-	 */
-	public IValidator getTypeConversionValidator() {
-		return (getTypeConversionValidators().length == 0) ? null
-				: getTypeConversionValidators()[0];
-	}
-
-	/**
-	 * Returns the validators to be used, or an empty array if a default
-	 * validator should be used.
-	 * 
-	 * @return the validators or an empty array if none
-	 */
-	public IValidator[] getTypeConversionValidators() {
-		return (targetValidators == null) ? EMPTY_VALIDATORS : targetValidators;
-	}
-
-	/**
-	 * Returns the validator to be used, or <code>null</code> if a default
-	 * validator should be used.
-	 * 
-	 * @return the validator, or <code>null</code>
-	 */
-	public IDomainValidator getDomainValidator() {
-		return domainValidator;
-	}
-
-	/**
-	 * Returns the update policy to be used for updating the model when the
-	 * target has changed
-	 * 
-	 * @return the update policy, or <code>null</code> if unspecified
-	 * 
-	 * @see DataBindingContext#POLICY_AUTOMATIC
-	 * @see DataBindingContext#POLICY_EXPLICIT
-	 */
-	public Integer getModelUpdatePolicy() {
-		return modelUpdatePolicy;
-	}
-
-	/**
-	 * Returns the validate policy to be used for validating changes to the
-	 * target
-	 * 
-	 * @return the update policy, or <code>null</code> if unspecified
-	 * 
-	 * @see DataBindingContext#POLICY_AUTOMATIC
-	 * @see DataBindingContext#POLICY_EXPLICIT
-	 */
-	public Integer getValidatePolicy() {
-		return validatePolicy;
-	}
-
-	/**
-	 * Returns the update policy to be used for updating the target when the
-	 * model has changed
-	 * 
-	 * @return the update policy, or <code>null</code> if unspecified
-	 * 
-	 * @see DataBindingContext#POLICY_AUTOMATIC
-	 * @see DataBindingContext#POLICY_EXPLICIT
-	 */
-	public Integer getTargetUpdatePolicy() {
-		return targetUpdatePolicy;
-	}
-
-	/**
-	 * Sets the model to target converter.
-	 * 
-	 * @param converter <code>null</code> allowed and will remove all existing converters.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setModelToTargetConverter(IConverter converter) {
-		return (converter == null) ? setModelToTargetConverters(null)
-				: setModelToTargetConverters(new IConverter[] { converter });
-	}
-
-	/**
-	 * Sets the model to target converters.
-	 * 
-	 * @param converters <code>null</code> allowed and will remove all existing converters.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setModelToTargetConverters(IConverter[] converters) {
-		this.modelToTargetConverters = converters;
-		return this;
-	}
-
-	/**
-	 * Sets the target to model converter.
-	 * 
-	 * @param converter <code>null</code> allowed and will remove all existing converters.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setTargetToModelConverter(IConverter converter) {
-		return (converter == null) ? setTargetToModelConverters(null)
-				: setTargetToModelConverters(new IConverter[] { converter });
-	}
-
-	/**
-	 * Sets the target to model converters.
-	 * 
-	 * @param converters <code>null</code> allowed and will remove all existing converters.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setTargetToModelConverters(IConverter[] converters) {
-		this.targetToModelConverters = converters;
-		return this;
-	}
-
-	/**
-	 * Sets the validator.
-	 * 
-	 * @param validator <code>null</code> allowed and will remove all existing validators.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setValidator(IValidator validator) {
-		return (validator == null) ? setValidators(null)
-				: setValidators(new IValidator[] { validator });
-	}
-
-	/**
-	 * Sets the validators.
-	 * 
-	 * @param validators <code>null</code> allowed and will remove all existing validators.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setValidators(IValidator[] validators) {
-		this.targetValidators = validators;
-		return this;
-	}
-
-	/**
-	 * Sets the domain validator.
-	 * 
-	 * @param validator <code>null</code> allowed
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setDomainValidator(IDomainValidator validator) {
-		this.domainValidator = validator;
-		return this;
-	}
-
-	/**
-	 * @return true if the model should be updated by the binding
-	 */
-	public boolean isUpdateModel() {
-		return updateModel;
-	}
-
-	/**
-	 * @return true if the target should be updated by the binding
-	 */
-	public boolean isUpdateTarget() {
-		return updateTarget;
-	}
-
-	/**
-	 * @param updateModel
-	 *            The updateModel to set.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setUpdateModel(boolean updateModel) {
-		this.updateModel = updateModel;
-		return this;
-	}
-
-	/**
-	 * @param updateTarget
-	 *            The updateTarget to set.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setUpdateTarget(boolean updateTarget) {
-		this.updateTarget = updateTarget;
-		return this;
-	}
-
-	/**
-	 * @param modelUpdatePolicy
-	 *            The modelUpdatePolicy to set.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setModelUpdatePolicy(Integer modelUpdatePolicy) {
-		this.modelUpdatePolicy = modelUpdatePolicy;
-		return this;
-	}
-
-	/**
-	 * @param targetUpdatePolicy
-	 *            The targetUpdatePolicy to set.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setTargetUpdatePolicy(Integer targetUpdatePolicy) {
-		this.targetUpdatePolicy = targetUpdatePolicy;
-		return this;
-	}
-
-	/**
-	 * @param validatePolicy
-	 *            The validatePolicy to set.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setValidatePolicy(Integer validatePolicy) {
-		this.validatePolicy = validatePolicy;
-		return this;
-	}
-
-	
-	/**
-	 * @return Returns the lazyInsertDeleteProvider.
-	 */
-	public LazyInsertDeleteProvider getLazyInsertDeleteProvider() {
-		return lazyInsertDeleteProvider;
-	}
-	
-
-	/**
-	 * @param lazyInsertDeleteProvider The lazyInsertDeleteProvider to set.
-	 * @return this BindSpec, to enable chaining of method calls
-	 */
-	public BindSpec setLazyInsertDeleteProvider(
-			LazyInsertDeleteProvider lazyInsertDeleteProvider) {
-		this.lazyInsertDeleteProvider = lazyInsertDeleteProvider;
-		return this;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/Binding.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/Binding.java
deleted file mode 100644
index b3bbfa0..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/Binding.java
+++ /dev/null
@@ -1,134 +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.databinding;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * The interface that represents a binding between a model and a target.
- * 
- * This interface is not intended to be implemented by clients.
- * 
- * @since 1.0
- */
-public abstract class Binding {
-
-	private List bindingEventListeners = new ArrayList();
-
-	protected DataBindingContext context;
-
-	/**
-	 * @param context
-	 */
-	public Binding(DataBindingContext context) {
-		this.context = context;
-	}
-
-	/**
-	 * Add a listener to the set of listeners that will be notified when an
-	 * event occurs in the data flow pipeline that is managed by this Binding.
-	 * 
-	 * @param listener
-	 *            The listener to add.
-	 */
-	public void addBindingEventListener(IBindingListener listener) {
-		bindingEventListeners.add(listener);
-	}
-
-	/**
-	 * Fires the given event to the binding event listeners, exiting early when
-	 * one of the listeners flags a validation error. If no listener flags a
-	 * validation error, the data binding context's binding listeners will be
-	 * notified in the same manner.
-	 * 
-	 * @param event
-	 * @return the validation error, or null
-	 */
-	protected ValidationError fireBindingEvent(BindingEvent event) {
-		ValidationError result = null;
-		IBindingListener[] listeners = (IBindingListener[]) bindingEventListeners
-				.toArray(new IBindingListener[bindingEventListeners.size()]);
-		for (int i = 0; i < listeners.length; i++) {
-			IBindingListener listener = listeners[i];
-			result = listener.bindingEvent(event);
-			if (result != null)
-				break;
-		}
-		if (result == null)
-			result = context.fireBindingEvent(event);
-		return result;
-	}
-
-	/**
-	 * @return an observable value containing the current partial validation
-	 *         error or null
-	 */
-	public abstract IObservableValue getPartialValidationError();
-
-	/**
-	 * @return an observable value containing the current validation error or
-	 *         null
-	 */
-	public abstract IObservableValue getValidationError();
-
-	/**
-	 * Removes a listener from the set of listeners that will be notified when
-	 * an event occurs in the data flow pipeline that is managed by this
-	 * Binding.
-	 * 
-	 * @param listener
-	 *            The listener to remove.
-	 */
-	public void removeBindingEventListener(IBindingListener listener) {
-		bindingEventListeners.remove(listener);
-	}
-
-	/**
-	 * 
-	 */
-	public abstract void updateModelFromTarget();
-
-	/**
-	 * 
-	 */
-	public abstract void updateTargetFromModel();
-	
-	/**
-	 * Disposes of this Binding. Subclasses may extend, but must call super.dispose().
-	 */
-	public void dispose() {
-		bindingEventListeners = null;
-		context = null;
-		disposed = true;
-	}
-
-	protected boolean disposed = false;
-	
-	/**
-	 * @return true if the binding has been disposed.  false otherwise.
-	 */
-	public boolean isDisposed() {
-		return disposed;
-	}
-
-	/**
-	 * @param context
-	 */
-	public void setDataBindingContext(DataBindingContext context) {
-		this.context = context;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingAdapter.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingAdapter.java
deleted file mode 100644
index f80f389..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingAdapter.java
+++ /dev/null
@@ -1,32 +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.databinding;
-
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * A default implementation for an IBindingListener event handler.
- * 
- * @since 1.0
- * 
- * implementation note: This class implements a deprecated interface for backwards compatibility.
- */
-public class BindingAdapter implements IBindingListener {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.IBindingListener#bindingEvent(org.eclipse.jface.databinding.BindingEvent)
-	 */
-	public ValidationError bindingEvent(BindingEvent e) {
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingEvent.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingEvent.java
deleted file mode 100644
index f9f83f0..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingEvent.java
+++ /dev/null
@@ -1,214 +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.databinding;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.databinding.observable.IDiff;
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * The event that is passed to a #bindingEvent method of an IBindingListener.
- * This class is not intended to be subclassed by clients.
- * 
- * @since 1.0
- */
-public class BindingEvent {
-	/**
-	 * (Non-API Method) Construct a BindingEvent.
-	 * 
-	 * @param model 
-	 * @param target 
-	 * @param diff
-	 * @param copyType 
-	 * @param pipelinePosition
-	 *            The initial processing pipeline position.
-	 */
-	public BindingEvent(IObservable model, IObservable target, IDiff diff, int copyType,
-			int pipelinePosition) {
-		this.model = model;
-		this.target = target;
-		this.diff = diff;
-		this.copyType = copyType;
-		this.pipelinePosition = pipelinePosition;
-		createSymbolTable();
-	}
-
-	/**
-	 * The model observable for the change that is being processed.
-	 */
-	public final IObservable model;
-
-	/**
-	 * The target observable for the change that is being processed.
-	 */
-	public final IObservable target;
-	
-	/**
-	 * The diff describing the change, or <code>null</code> if no diff is
-	 * available.
-	 */
-	public final IDiff diff;
-
-	/**
-	 * The direction in which data is copied, either EVENT_COPY_TO_TARGET
-	 * or EVENT_COPY_TO_MODEL.
-	 */
-	public final int copyType;
-
-	/**
-	 * The position in the processing pipeline where this event is occuring. One
-	 * of the PIPELINE_* constants. The order in which these events occur may be
-	 * version or implementation dependent. The contract is that these events
-	 * will accurately reflect the internal processing that the data binding
-	 * framework is currently performing.
-	 * <p>
-	 * Although this value is not declared final, changing it does not have any
-	 * effect.
-	 */
-	public int pipelinePosition;
-	
-	/**
-	 * The current ValidationError object (if there is one).
-	 */
-	public ValidationError validationError;
-
-	/**
-	 * Holds the value that was retrieved from the source updatable. Setting the
-	 * value of this field changes the value that will be processed by all
-	 * subsequent steps in the data flow pipeline.
-	 */
-	public Object originalValue = null;
-
-	/**
-	 * Holds the value that will be copied into the final updatable. This value
-	 * is null if the original value has not been converted into the final
-	 * updatable's data type or if no conversion will be performed. Setting the
-	 * value of this field changes the value that will be processed by all
-	 * subsequent steps in the data flow pipeline.
-	 */
-	public Object convertedValue = null;
-
-	/**
-	 * A constant indicating that this event is occuring during a copy from
-	 * model to target.
-	 */
-	public static final int EVENT_COPY_TO_TARGET = 0;
-
-	/**
-	 * A constant indicating that this event is occuring during a copy from
-	 * target to model.
-	 */
-	public static final int EVENT_COPY_TO_MODEL = 1;
-
-	/**
-	 * A constant indicating that this event is occuring during a partial
-	 * validation event.
-	 */
-	public static final int EVENT_PARTIAL_VALIDATE = 2;
-
-	/**
-	 * A constant indicating that this event is occuring during an element
-	 * remove operation.
-	 */
-	public static final int EVENT_REMOVE = 3;
-	
-	/**
-	 * A constant indicating that this event is occuring during a lazy list
-	 * insert operation.
-	 */
-	public static final int EVENT_LAZY_INSERT = 4;
-	
-	/**
-	 * A constant indicating that this event is occuring during a lazy list
-	 * delete operation.
-	 */
-	public static final int EVENT_LAZY_DELETE = 5;
-
-	/**
-	 * A constant indicating that this event is occuring immedately after the
-	 * value to copy has been gotten from its IUpdatable.
-	 */
-	public static final int PIPELINE_AFTER_GET = 0;
-
-	/**
-	 * A constant indicating that this event is occuring immedately after the
-	 * value has been validated as being possible to convert to the other
-	 * updatable's data type.
-	 */
-	public static final int PIPELINE_AFTER_VALIDATE = 1;
-
-	/**
-	 * A constant indicating that this event is occuring immedately after the
-	 * original value has been converted to the other updatable's data type.
-	 */
-	public static final int PIPELINE_AFTER_CONVERT = 2;
-
-	/**
-	 * A constant indicating that this event is occuring immedately after the
-	 * business rule validation has occured.
-	 */
-	public static final int PIPELINE_AFTER_BUSINESS_VALIDATE = 3;
-
-	/**
-	 * A constant indicating that this event is occuring immedately after the
-	 * converted value has been set/changed on the updatable.
-	 */
-	public static final int PIPELINE_AFTER_CHANGE = 4;
-	
-	/**
-	 * A constant indicating that this event is occuring due to either a validation
-	 * error or warning occuring.
-	 */
-	public static final int PIPELINE_VALIDATION_ERROR_OR_WARNING = 5;
-
-	/**
-	 * A Map of Integer --> String mapping the integer constants for the
-	 * pipeline events defined in this class to their String symbols.
-	 */
-	public final Map pipelineConstants = new HashMap();
-	private HashMap eventConstants = new HashMap();
-
-	/**
-	 * Creates a table of constants from this class.
-	 */
-	private void createSymbolTable() {
-		eventConstants.put(new Integer(0), "EVENT_COPY_TO_TARGET"); //$NON-NLS-1$
-		eventConstants.put(new Integer(1), "EVENT_COPY_TO_MODEL"); //$NON-NLS-1$
-		eventConstants.put(new Integer(2), "EVENT_PARTIAL_VALIDATE"); //$NON-NLS-1$
-		eventConstants.put(new Integer(3), "EVENT_REMOVE"); //$NON-NLS-1$
-
-		pipelineConstants.put(new Integer(0), "PIPELINE_AFTER_GET"); //$NON-NLS-1$
-		pipelineConstants.put(new Integer(1), "PIPELINE_AFTER_VALIDATE"); //$NON-NLS-1$
-		pipelineConstants.put(new Integer(2), "PIPELINE_AFTER_CONVERT"); //$NON-NLS-1$
-		pipelineConstants.put(new Integer(3),
-				"PIPELINE_AFTER_BUSINESS_VALIDATE"); //$NON-NLS-1$
-		pipelineConstants.put(new Integer(4), "PIPELINE_AFTER_CHANGE"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer result = new StringBuffer();
-		result.append(eventConstants.get(new Integer(copyType)) + ": Diff(" + diff + "): "); //$NON-NLS-1$ //$NON-NLS-2$
-		result.append("("); //$NON-NLS-1$
-		result.append(pipelineConstants.get(new Integer(pipelinePosition)));
-		result.append(")"); //$NON-NLS-1$
-		return result.toString();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingException.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingException.java
deleted file mode 100644
index a433578..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/BindingException.java
+++ /dev/null
@@ -1,50 +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.databinding;
-
-/**
- * An unchecked exception indicating a binding problem.
- * 
- * <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 remain
- * unchanged during the 3.2 release cycle. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * TODO API review issue: Use CoreException instead?
- * 
- * @since 1.0
- */
-public class BindingException extends RuntimeException {
-
-	/*
-	 * Needed because all Throwables are Serializable.
-	 */
-	private static final long serialVersionUID = -4092828452936724217L;
-
-	/**
-	 * Creates a new BindingException with the given message.
-	 * @param message
-	 */
-	public BindingException(String message) {
-		super(message);
-	}
-
-	/**
-	 * Creates a new BindingException with the given message and cause.
-	 * @param message
-	 * @param cause
-	 */
-	public BindingException(String message, Throwable cause) {
-		super(message, cause);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/DataBindingContext.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/DataBindingContext.java
deleted file mode 100644
index 8f941d9..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/DataBindingContext.java
+++ /dev/null
@@ -1,499 +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 159539
- *     Brad Reynolds - bug 140644
- *     Brad Reynolds - bug 159940
- *******************************************************************************/
-package org.eclipse.jface.databinding;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.databinding.observable.Observables;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ObservableList;
-import org.eclipse.jface.databinding.observable.list.WritableList;
-import org.eclipse.jface.databinding.observable.value.ComputedValue;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.internal.databinding.internal.ListBinding;
-import org.eclipse.jface.internal.databinding.internal.ValidationErrorList;
-import org.eclipse.jface.internal.databinding.internal.ValueBinding;
-import org.eclipse.jface.internal.databinding.provisional.conversion.IConverter;
-import org.eclipse.jface.internal.databinding.provisional.factories.BindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.validation.IDomainValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.IValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * A context for binding observable objects. This class is not intended to be
- * subclassed by clients.
- * 
- * <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 remain
- * unchanged during the 3.2 release cycle. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 1.1
- * 
- */
-public class DataBindingContext {
-
-	/**
-	 * Policy constant specifying that update or validation should occur
-	 * automatically whenever a bound observable object generates a change
-	 * event.
-	 */
-	public static final int POLICY_AUTOMATIC = 1;
-
-	/**
-	 * Policy constant specifying that update or validation should only occur
-	 * when explicitly requested by calling {@link #updateModels() } or
-	 * {@link #updateTargets() }.
-	 */
-	public static final int POLICY_EXPLICIT = 2;
-
-	/**
-	 * Constant specifiying that validation or update events from UI observables
-	 * should be triggered early, typically on each keystroke.
-	 */
-	public static final int TIME_EARLY = 0;
-
-	/**
-	 * Constant specifiying that validation or update events from UI observables
-	 * should be triggered late, typically on focus lost.
-	 */
-	public static final int TIME_LATE = 1;
-
-	private List bindingEventListeners = new ArrayList();
-
-	private WritableList bindings = new WritableList();
-    
-    /**
-     * Unmodifiable version of {@link #bindings} for exposure publicly.
-     */
-    private IObservableList unmodifiableBindings = Observables.unmodifiableObservableList(bindings);
-
-	private List bindSupportFactories = new ArrayList();
-
-	protected DataBindingContext parent;
-
-	private ComputedValue partialValidationError = new ComputedValue() {
-		protected Object calculate() {
-			int size = partialValidationErrors.size();
-			return size == 0 ? null : partialValidationErrors.get(size - 1);
-		}
-	};
-
-	private ObservableList partialValidationErrors = new ValidationErrorList(
-			bindings, true);
-
-	private ComputedValue validationError = new ComputedValue() {
-		protected Object calculate() {
-			int size = validationErrors.size();
-			return size == 0 ? null : validationErrors.get(size - 1);
-		}
-	};
-
-	private ObservableList validationErrors = new ValidationErrorList(bindings,
-			false);
-
-	private List childContexts = new ArrayList();
-
-	/**
-	 * 
-	 */
-	public DataBindingContext() {
-	}
-
-	/**
-	 * @param parent
-	 * 
-	 */
-	public DataBindingContext(DataBindingContext parent) {
-		this.parent = parent;
-		parent.addChild(this);
-	}
-
-	protected void addChild(DataBindingContext context) {
-		childContexts.add(context);
-	}
-
-	/**
-	 * Add a listener to the set of listeners that will be notified when an
-	 * event occurs in the data flow pipeline that is managed by any binding
-	 * created by this data binding context.
-	 * 
-	 * @param listener
-	 *            The listener to add.
-	 */
-	public void addBindingEventListener(IBindingListener listener) {
-		bindingEventListeners.add(listener);
-	}
-
-	/**
-	 * Adds a factory that can create converters and validators. The list of
-	 * bind support factories is used for creating converters and validators
-	 * when binding without specifying a converter or validator.
-	 * 
-	 * @param factory
-	 *            the factory to add.
-	 */
-	public void addBindSupportFactory(BindSupportFactory factory) {
-		bindSupportFactories.add(factory);
-	}
-
-	/**
-	 * Binds two observable values using converter and validator as specified in
-	 * bindSpec. If bindSpec is null, a default converter and validator is used.
-	 * 
-	 * @param targetObservableValue
-	 * @param modelObservableValue
-	 * @param bindSpec
-	 *            the bind spec, or null. Any bindSpec object must not be reused
-	 *            or changed after it is passed to #bind.
-	 * @return The Binding that manages this data flow
-	 */
-	public Binding bindValue(IObservableValue targetObservableValue,
-			IObservableValue modelObservableValue, BindSpec bindSpec) {
-		if (bindSpec == null) {
-			bindSpec = new BindSpec();
-		}
-		fillBindSpecDefaults(this, bindSpec, targetObservableValue
-				.getValueType(), modelObservableValue.getValueType());
-		Binding result = new ValueBinding(this, targetObservableValue,
-				modelObservableValue, bindSpec);
-        bindings.add(result);
-		return result;
-	}
-
-	/**
-	 * Binds two observable lists using converter and validator as specified in
-	 * bindSpec. If bindSpec is null, a default converter and validator is used.
-	 * 
-	 * @param targetObservableList
-	 * @param modelObservableList
-	 * @param bindSpec
-	 *            the bind spec, or null. Any bindSpec object must not be reused
-	 *            or changed after it is passed to #bind.
-	 * @return The Binding that manages this data flow
-	 */
-	public Binding bindList(IObservableList targetObservableList,
-			IObservableList modelObservableList, BindSpec bindSpec) {
-		if (bindSpec == null) {
-			bindSpec = new BindSpec();
-		}
-		fillBindSpecDefaults(this, bindSpec, targetObservableList.getElementType(), modelObservableList.getElementType());
-		Binding result = new ListBinding(this, targetObservableList,
-				modelObservableList, bindSpec);
-        bindings.add(result);
-		return result;
-	}
-
-	/**
-	 * Tries to create a converter that can convert from values of type
-	 * fromType. Returns <code>null</code> if no converter could be created.
-	 * Either toType or modelDescription can be <code>null</code>, but not
-	 * both. The implementation of this method will iterate over the registered
-	 * bind support factories in reverse order, passing the given arguments to
-	 * {@link BindSupportFactory#createConverter(Object, Object)}. The first
-	 * non-null converter will be returned.
-	 * 
-	 * @param fromType
-	 * @param toType
-	 * @return an IConverter, or <code>null</code> if unsuccessful
-	 */
-	public IConverter createConverter(Object fromType, Object toType) {
-		for (int i = bindSupportFactories.size() - 1; i >= 0; i--) {
-			BindSupportFactory bindSupportFactory = (BindSupportFactory) bindSupportFactories
-					.get(i);
-			IConverter converter = bindSupportFactory.createConverter(fromType,
-					toType);
-			if (converter != null) {
-				return converter;
-			}
-		}
-		if (parent != null) {
-			return parent.createConverter(fromType, toType);
-		}
-		return null;
-	}
-
-	/**
-	 * @param modelType
-	 * @return an IValidator, or null if unsuccessful
-	 */
-	public IDomainValidator createDomainValidator(Object modelType) {
-		for (int i = bindSupportFactories.size() - 1; i >= 0; i--) {
-			BindSupportFactory bindSupportFactory = (BindSupportFactory) bindSupportFactories
-					.get(i);
-			IDomainValidator validator = bindSupportFactory
-					.createDomainValidator(modelType);
-			if (validator != null) {
-				return validator;
-			}
-		}
-		if (parent != null) {
-			return parent.createDomainValidator(modelType);
-		}
-		return null;
-	}
-
-	/**
-	 * Tries to create a validator that can validate values of type fromType.
-	 * Returns <code>null</code> if no validator could be created. Either
-	 * toType or modelDescription can be <code>null</code>, but not both. The
-	 * implementation of this method will iterate over the registered bind
-	 * support factories in reverse order, passing the given arguments to
-	 * {@link BindSupportFactory#createValidator(Class, Class, Object)}. The
-	 * first non-null validator will be returned.
-	 * 
-	 * @param fromType
-	 * @param toType
-	 * @param modelDescription
-	 * @return an IValidator, or <code>null</code> if unsuccessful
-	 */
-	public IValidator createValidator(Object fromType, Object toType) {
-		for (int i = bindSupportFactories.size() - 1; i >= 0; i--) {
-			BindSupportFactory bindSupportFactory = (BindSupportFactory) bindSupportFactories
-					.get(i);
-			IValidator validator = bindSupportFactory.createValidator(fromType,
-					toType);
-			if (validator != null) {
-				return validator;
-			}
-		}
-		if (parent != null) {
-			return parent.createValidator(fromType, toType);
-		}
-		return null;
-	}
-
-	/**
-	 * Disposes of this data binding context and all observable objects created
-	 * in this context.
-	 */
-	public void dispose() {
-		for (Iterator it = bindings.iterator(); it.hasNext();) {
-			Binding binding = (Binding) it.next();
-			binding.dispose();
-		}
-		for (Iterator it = childContexts.iterator(); it.hasNext();) {
-			DataBindingContext context = (DataBindingContext) it.next();
-			context.dispose();
-		}
-	}
-
-	/**
-	 * @param dataBindingContext
-	 * @param bindSpec
-	 * @param targetType
-	 * @param modelType
-	 */
-	public void fillBindSpecDefaults(DataBindingContext dataBindingContext,
-			BindSpec bindSpec, Object targetType, Object modelType) {
-		if (bindSpec.getTypeConversionValidator() == null) {
-			bindSpec.setValidator(dataBindingContext.createValidator(
-					targetType, modelType));
-		}
-		if (bindSpec.getDomainValidator() == null) {
-			bindSpec.setDomainValidator(dataBindingContext
-					.createDomainValidator(modelType));
-		}
-		IConverter[] modelToTargetConverters = bindSpec
-				.getModelToTargetConverters();
-		if (modelToTargetConverters.length > 1) {
-			for (int i = 0; i < modelToTargetConverters.length; i++) {
-				if (modelToTargetConverters[i] == null) {
-					modelToTargetConverters[i] = dataBindingContext
-							.createConverter(modelType, targetType);
-				}
-			}
-		} else {
-			// There's code in setModelToTargetConverter() that converts the 0
-			// element array that represents null to a 1 element array, so we'll
-			// just call setMTTC() instead of manipulating the array directly
-			if (bindSpec.getModelToTargetConverter() == null) {
-				bindSpec.setModelToTargetConverter(dataBindingContext
-						.createConverter(modelType, targetType));
-			}
-		}
-		IConverter[] targetToModelConverters = bindSpec
-				.getTargetToModelConverters();
-		if (targetToModelConverters.length > 1) {
-			for (int i = 0; i < targetToModelConverters.length; i++) {
-				if (targetToModelConverters[i] == null) {
-					targetToModelConverters[i] = dataBindingContext
-							.createConverter(targetType, modelType);
-				}
-			}
-		} else {
-			// There's code in setTargetToModelConverter() that converts the 0
-			// element array that represents null to a 1 element array, so we'll
-			// just call setTTMC() instead of manipulating the array directly
-			if (bindSpec.getTargetToModelConverter() == null) {
-				bindSpec.setTargetToModelConverter(dataBindingContext
-						.createConverter(targetType, modelType));
-			}
-		}
-	}
-
-	protected ValidationError fireBindingEvent(BindingEvent event) {
-		ValidationError result = null;
-		for (Iterator bindingEventIter = bindingEventListeners.iterator(); bindingEventIter
-				.hasNext();) {
-			IBindingListener listener = (IBindingListener) bindingEventIter
-					.next();
-			result = listener.bindingEvent(event);
-			if (result != null)
-				break;
-		}
-		return result;
-	}
-
-	/**
-	 * Returns an unmodifiable observable list with elements of type Binding, ordered by
-	 * creation time
-	 * 
-	 * @return the observable list containing all bindings
-	 */
-	public IObservableList getBindings() {
-		return unmodifiableBindings;
-	}
-
-	/**
-	 * Returns an observable value of type ValidationError, containing the most
-	 * recent partial validation error
-	 * 
-	 * @return the validation error observable
-	 */
-	public IObservableValue getPartialValidationError() {
-		return partialValidationError;
-	}
-
-	/**
-	 * Returns an observable value of type ValidationError, containing the most
-	 * recent full validation error, i.e. the last element of the list returned
-	 * by getValidationErrors().
-	 * 
-	 * @return the validation observable
-	 */
-	public IObservableValue getValidationError() {
-		return validationError;
-	}
-
-	/**
-	 * Returns an observable list with elements of type ValidationError, ordered
-	 * by the time of detection
-	 * 
-	 * @return the observable list containing all validation errors
-	 */
-	public IObservableList getValidationErrors() {
-		return validationErrors;
-	}
-
-	/**
-	 * @param fromType
-	 * @param toType
-	 * @return whether fromType is assignable to toType
-	 */
-	public boolean isAssignableFromTo(Object fromType, Object toType) {
-		for (int i = bindSupportFactories.size() - 1; i >= 0; i--) {
-			BindSupportFactory bindSupportFactory = (BindSupportFactory) bindSupportFactories
-					.get(i);
-			Boolean result = bindSupportFactory.isAssignableFromTo(fromType,
-					toType);
-			if (result != null) {
-				return result.booleanValue();
-			}
-		}
-		if (parent != null) {
-			return parent.isAssignableFromTo(fromType, toType);
-		}
-		// TODO does this default make sense?
-		return true;
-	}
-
-	/**
-	 * Adds the given binding to this data binding context.
-	 * 
-	 * @param binding
-	 *            The binding to add.
-	 */
-	public void addBinding(Binding binding) {
-		bindings.add(binding);
-		binding.setDataBindingContext(this);
-	}
-
-	/**
-	 * Removes a listener from the set of listeners that will be notified when
-	 * an event occurs in the data flow pipeline that is managed by any binding
-	 * created by this data binding context.
-	 * 
-	 * @param listener
-	 *            The listener to remove.
-	 */
-	public void removeBindingEventListener(IBindingListener listener) {
-		bindingEventListeners.remove(listener);
-	}
-
-	/**
-	 * Updates all model observable objects to reflect the current state of the
-	 * target observable objects.
-	 * 
-	 */
-	public void updateModels() {
-		for (Iterator it = bindings.iterator(); it.hasNext();) {
-			Binding binding = (Binding) it.next();
-			binding.updateModelFromTarget();
-		}
-	}
-
-	/**
-	 * Updates all target observable objects to reflect the current state of the
-	 * model observable objects.
-	 * 
-	 */
-	public void updateTargets() {
-		for (Iterator it = bindings.iterator(); it.hasNext();) {
-			Binding binding = (Binding) it.next();
-			binding.updateTargetFromModel();
-		}
-	}
-    
-    /**
-     * @return DataBindingContext with {@link IConverter converters} and
-     *         {@link IValidator validators} for java's primitive types.
-     */
-    public static DataBindingContext withDefaults() {
-        DataBindingContext dbc = new DataBindingContext();
-        dbc.addBindSupportFactory(new DefaultBindSupportFactory());
-
-        return dbc;
-    }
-    
-    /**
-     * Removes the binding.
-     * 
-     * @param binding
-     * @return <code>true</code> if was associated with the context,
-     *         <code>false</code> if not
-     */
-    public boolean removeBinding(Binding binding) {
-        if (bindings.contains(binding)) {
-            binding.setDataBindingContext(null);
-        }
-
-        return bindings.remove(binding);
-    }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/IBindingListener.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/IBindingListener.java
deleted file mode 100644
index 2361a51..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/IBindingListener.java
+++ /dev/null
@@ -1,34 +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.databinding;
-
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * An interface for objects that need to listen to events that occur in the
- * data flow pipeline
- *  
- * @since 1.0
- */
-public interface IBindingListener {
-	/**
-	 * Method bindingEvent.  The method that is called when something interesting
-	 * occurs in the data flow pipeline.
-	 * 
-	 * @param e The IBindingEvent to handle.
-	 * @return null if no error or a ValidationError with an error status to 
-	 * abort the operation.  The error will be propagated to the data binding 
-	 * context's error message updatable.
-	 */
-	public ValidationError bindingEvent(BindingEvent e);
-	
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/AbstractObservable.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/AbstractObservable.java
deleted file mode 100644
index 444c2de..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/AbstractObservable.java
+++ /dev/null
@@ -1,190 +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.databinding.observable;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-/**
- * @since 1.0
- * 
- */
-public abstract class AbstractObservable implements IObservable {
-
-	/**
-	 * Points to an instance of IChangeListener or a Collection of
-	 * IChangeListener
-	 */
-	private Object changeListeners = null;
-
-	/**
-	 * Points to an instance of IChangeListener or a Collection of
-	 * IChangeListener
-	 */
-	private Object staleListeners = null;
-
-	public void addChangeListener(IChangeListener listener) {
-		if (changeListeners == null) {
-			boolean hadListeners = hasListeners();
-			changeListeners = listener;
-			if (!hadListeners) {
-				firstListenerAdded();
-			}
-			return;
-		}
-
-		Collection listenerList;
-		if (changeListeners instanceof IChangeListener) {
-			IChangeListener l = (IChangeListener) changeListeners;
-
-			listenerList = new ArrayList();
-			listenerList.add(l);
-			changeListeners = listenerList;
-		} else {
-			listenerList = (Collection) changeListeners;
-		}
-
-		listenerList.add(listener);
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-		if (changeListeners == listener) {
-			changeListeners = null;
-			if (!hasListeners()) {
-				lastListenerRemoved();
-			}
-			return;
-		}
-
-		if (changeListeners instanceof Collection) {
-			Collection listenerList = (Collection) changeListeners;
-			listenerList.remove(listener);
-			if (listenerList.isEmpty()) {
-				changeListeners = null;
-				if (!hasListeners()) {
-					lastListenerRemoved();
-				}
-			}
-		}
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-		if (staleListeners == null) {
-			boolean hadListeners = hasListeners();
-			staleListeners = listener;
-			if (!hadListeners) {
-				firstListenerAdded();
-			}
-			return;
-		}
-
-		Collection listenerList;
-		if (staleListeners instanceof IStaleListener) {
-			IStaleListener l = (IStaleListener) staleListeners;
-
-			listenerList = new ArrayList();
-			listenerList.add(l);
-			staleListeners = listenerList;
-		} else {
-			listenerList = (Collection) staleListeners;
-		}
-
-		listenerList.add(listener);
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-		if (staleListeners == listener) {
-			staleListeners = null;
-			if (!hasListeners()) {
-				lastListenerRemoved();
-			}
-			return;
-		}
-
-		if (staleListeners instanceof Collection) {
-			Collection listenerList = (Collection) staleListeners;
-			listenerList.remove(listener);
-			if (listenerList.isEmpty()) {
-				staleListeners = null;
-				if (!hasListeners()) {
-					lastListenerRemoved();
-				}
-			}
-		}
-	}
-
-	protected void fireChange() {
-		if (changeListeners == null) {
-			return;
-		}
-
-		if (changeListeners instanceof IChangeListener) {
-			((IChangeListener) changeListeners).handleChange(this);
-			return;
-		}
-
-		Collection changeListenerCollection = (Collection) changeListeners;
-
-		IChangeListener[] listeners = (IChangeListener[]) (changeListenerCollection)
-				.toArray(new IChangeListener[changeListenerCollection.size()]);
-		for (int i = 0; i < listeners.length; i++) {
-			listeners[i].handleChange(this);
-		}
-	}
-
-	protected void fireStale() {
-		if (staleListeners == null) {
-			return;
-		}
-
-		if (staleListeners instanceof IStaleListener) {
-			((IStaleListener) staleListeners).handleStale(this);
-			return;
-		}
-
-		Collection staleListenerCollection = (Collection) staleListeners;
-
-		IStaleListener[] listeners = (IStaleListener[]) (staleListenerCollection)
-				.toArray(new IStaleListener[staleListenerCollection.size()]);
-		for (int i = 0; i < listeners.length; i++) {
-			listeners[i].handleStale(this);
-		}
-	}
-
-	/**
-	 * @return true if this observable has listeners
-	 */
-	protected boolean hasListeners() {
-		return changeListeners != null || staleListeners != null;
-	}
-
-	/**
-	 * 
-	 */
-	protected void firstListenerAdded() {
-	}
-
-	/**
-	 * 
-	 */
-	protected void lastListenerRemoved() {
-	}
-
-	/**
-	 * 
-	 */
-	public void dispose() {
-		changeListeners = null;
-		staleListeners = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/Diffs.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/Diffs.java
deleted file mode 100644
index 63600ab..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/Diffs.java
+++ /dev/null
@@ -1,176 +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.databinding.observable;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.ListDiffEntry;
-import org.eclipse.jface.databinding.observable.set.SetDiff;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-
-/**
- * @since 1.0
- * 
- */
-public class Diffs {
-
-	/**
-	 * @param oldList
-	 * @param newList
-	 * @return the differences between oldList and newList
-	 */
-	public static ListDiff computeListDiff(List oldList, List newList) {
-		List diffEntries = new ArrayList();
-		for (Iterator it = oldList.iterator(); it.hasNext();) {
-			Object oldElement = it.next();
-			diffEntries.add(createListDiffEntry(0, false, oldElement));
-		}
-		int i = 0;
-		for (Iterator it = newList.iterator(); it.hasNext();) {
-			Object newElement = it.next();
-			diffEntries.add(createListDiffEntry(i++, true, newElement));
-		}
-		ListDiff listDiff = createListDiff((ListDiffEntry[]) diffEntries
-				.toArray(new ListDiffEntry[diffEntries.size()]));
-		return listDiff;
-	}
-
-	/**
-	 * 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));
-	}
-
-	/**
-	 * @param oldSet
-	 * @param newSet
-	 * @return a set diff
-	 */
-	public static SetDiff computeSetDiff(Set oldSet, Set newSet) {
-		Set additions = new HashSet(newSet);
-		additions.removeAll(oldSet);
-		Set removals = new HashSet(oldSet);
-		removals.removeAll(newSet);
-		return createSetDiff(additions, removals);
-	}
-
-	/**
-	 * @param oldValue
-	 * @param newValue
-	 * @return a value diff
-	 */
-	public static ValueDiff createValueDiff(final Object oldValue,
-			final Object newValue) {
-		return new ValueDiff() {
-
-			public Object getOldValue() {
-				return oldValue;
-			}
-
-			public Object getNewValue() {
-				return newValue;
-			}
-		};
-	}
-
-	/**
-	 * @param additions
-	 * @param removals
-	 * @return a set diff
-	 */
-	public static SetDiff createSetDiff(Set additions, Set removals) {
-		final Set unmodifiableAdditions = Collections
-				.unmodifiableSet(additions);
-		final Set unmodifiableRemovals = Collections.unmodifiableSet(removals);
-		return new SetDiff() {
-
-			public Set getAdditions() {
-				return unmodifiableAdditions;
-			}
-
-			public Set getRemovals() {
-				return unmodifiableRemovals;
-			}
-		};
-	}
-
-	/**
-	 * @param difference
-	 * @return a list diff with one differing entry
-	 */
-	public static ListDiff createListDiff(ListDiffEntry difference) {
-		return createListDiff(new ListDiffEntry[] { difference });
-	}
-
-	/**
-	 * @param difference1
-	 * @param difference2
-	 * @return a list diff with two differing entries
-	 */
-	public static ListDiff createListDiff(ListDiffEntry difference1,
-			ListDiffEntry difference2) {
-		return createListDiff(new ListDiffEntry[] { difference1, difference2 });
-	}
-
-	/**
-	 * @param differences
-	 * @return a list diff with the given entries
-	 */
-	public static ListDiff createListDiff(final ListDiffEntry[] differences) {
-		return new ListDiff() {
-			public ListDiffEntry[] getDifferences() {
-				return differences;
-			}
-		};
-	}
-
-	/**
-	 * @param position
-	 * @param isAddition
-	 * @param element
-	 * @return a list diff entry
-	 */
-	public static ListDiffEntry createListDiffEntry(final int position,
-			final boolean isAddition, final Object element) {
-		return new ListDiffEntry() {
-
-			public int getPosition() {
-				return position;
-			}
-
-			public boolean isAddition() {
-				return isAddition;
-			}
-
-			public Object getElement() {
-				return element;
-			}
-		};
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IChangeListener.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IChangeListener.java
deleted file mode 100644
index eef9f74..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IChangeListener.java
+++ /dev/null
@@ -1,40 +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.databinding.observable;
-
-import org.eclipse.jface.databinding.observable.list.IListChangeListener;
-import org.eclipse.jface.databinding.observable.set.ISetChangeListener;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.internal.databinding.provisional.observable.mapping.IMappingChangeListener;
-
-/**
- * Listener for generic change events. Note that the change events do not carry information about
- * the change, they only specify the affected observable. To listen for specific change events, use
- * more specific change listeners.
- * 
- *  @see IValueChangeListener
- *  @see IListChangeListener
- *  @see ISetChangeListener
- *  @see IMappingChangeListener
- * 
- * @since 1.0
- */
-public interface IChangeListener {
-	
-	/**
-	 * Handle a generic change to the given observable.
-	 * 
-	 * @param source
-	 */
-	public void handleChange(IObservable source);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IDiff.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IDiff.java
deleted file mode 100644
index 58368f6..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IDiff.java
+++ /dev/null
@@ -1,32 +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.databinding.observable;
-
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.set.SetDiff;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.internal.databinding.provisional.observable.mapping.MappingDiff;
-
-/**
- * A diff represents a state change of an observable object.
- * 
- * @see ValueDiff
- * @see ListDiff
- * @see SetDiff
- * @see MappingDiff
- * 
- * @since 1.0
- * 
- */
-public interface IDiff {
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IObservable.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IObservable.java
deleted file mode 100644
index 748374e..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IObservable.java
+++ /dev/null
@@ -1,78 +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.databinding.observable;
-
-/**
- * An object with state that allows to listen for state changes.
- * 
- * <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.0
- * 
- */
-public interface IObservable {
-
-	/**
-	 * Adds the given change listener to the list of change listeners.
-	 * 
-	 * @param listener
-	 */
-	public void addChangeListener(IChangeListener listener);
-
-	/**
-	 * Removes the given change listener from the list of change listeners. Has
-	 * no effect if the given listener is not registered as a change listener.
-	 * 
-	 * @param listener
-	 */
-	public void removeChangeListener(IChangeListener listener);
-
-	/**
-	 * Adds the given stale listener to the list of stale listeners.
-	 * 
-	 * @param listener
-	 */
-	public void addStaleListener(IStaleListener listener);
-
-	/**
-	 * Removes the given stale listener from the list of stale listeners. Has no
-	 * effect if the given listener is not registered as a stale listener.
-	 * 
-	 * @param listener
-	 */
-	public void removeStaleListener(IStaleListener listener);
-
-	/**
-	 * Returns whether the state of this observable is stale. A non-stale object
-	 * that becomes stale will notify its stale listeners. A stale object that
-	 * becomes non-stale does so by changing its state and notifying its change
-	 * listeners. Clients that do not expect asynchronous changes may ignore
-	 * staleness of observable objects.
-	 * 
-	 * @return true if this observable's state is stale and will change soon.
-	 * 
-	 * @TrackedGetter - implementers must call
-	 *                {@link ObservableTracker#getterCalled(IObservable)}.
-	 */
-	public boolean isStale();
-
-	/**
-	 * Disposes of this observable object, removing all listeners registered
-	 * with this object, and all listeners this object might have registered on
-	 * other objects.
-	 */
-	public void dispose();
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IObservableCollection.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IObservableCollection.java
deleted file mode 100644
index 3a0bf49..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IObservableCollection.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.databinding.observable;
-
-/**
- * Marker interface for observable collections.
- * 
- * <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.0
- */
-public interface IObservableCollection extends IObservable {
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IStaleListener.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IStaleListener.java
deleted file mode 100644
index dda6baa..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/IStaleListener.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.databinding.observable;
-
-/**
- * Listener for staleness events. An observable object is stale if its state will change
- * eventually.
- * 
- * @since 1.0
- */
-public interface IStaleListener {
-	
-	/**
-	 * Handle the event that the given observable object is now stale.
-	 * @param source
-	 */
-	public void handleStale(IObservable source);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/ObservableTracker.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/ObservableTracker.java
deleted file mode 100644
index e9e8234..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/ObservableTracker.java
+++ /dev/null
@@ -1,150 +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.databinding.observable;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.internal.databinding.internal.IdentityWrapper;
-
-/**
- * This class makes it possible to monitor whenever an IObservable is read from.
- * This can be used to automatically attach and remove listeners. How to use it:
- * 
- * <p>
- * If you are implementing an IObservable, invoke getterCalled(this) whenever a
- * getter is called - that is, whenever your observable is read from. You only
- * need to do this once per method call. If one getter delegates to another, the
- * outer getter doesn't need to call the method since the inner one will.
- * </p>
- * 
- * <p>
- * If you want to determine what observables were used in a particular block of
- * code, call runAndMonitor(Runnable). This will execute the given runnable and
- * return the set of observables that were read from.
- * </p>
- * 
- * <p>
- * This can be used to automatically attach listeners. For example, imagine you
- * have a block of code that updates some widget by reading from a bunch of
- * observables. Whenever one of those observables changes, you want to re-run
- * the code and cause the widget to be refreshed. You could do this in the
- * traditional manner by attaching one listener to each observable and
- * re-running your widget update code whenever one of them changes, but this
- * code is repetitive and requires updating the listener code whenever you
- * refactor the widget updating code.
- * </p>
- * 
- * <p>
- * Alternatively, you could use a utility class that runs the code in a
- * runAndMonitor block and automatically attach listeners to any observable used
- * in updating the widget. The advantage of the latter approach is that it,
- * eliminates the code for attaching and detaching listeners and will always
- * stay in synch with changes to the widget update logic.
- * </p>
- * 
- * @since 1.0
- */
-public class ObservableTracker {
-
-	/**
-	 * Threadlocal storage pointing to the current Set of IObservables, or null
-	 * if none. Note that this is actually the top of a stack. Whenever a method
-	 * changes the current value, it remembers the old value as a local variable
-	 * and restores the old value when the method exits.
-	 */
-	private static ThreadLocal currentChangeListener = new ThreadLocal();
-
-	private static ThreadLocal currentStaleListener = new ThreadLocal();
-
-	private static ThreadLocal currentObservableSet = new ThreadLocal();
-
-	/**
-	 * Invokes the given runnable, and returns the set of IObservables that were
-	 * read by the runnable. If the runnable calls this method recursively, the
-	 * result will not contain IObservables that were used within the inner
-	 * runnable.
-	 * 
-	 * @param runnable
-	 *            runnable to execute
-	 * @param changeListener
-	 *            listener to register with all accessed observables
-	 * @param staleListener
-	 *            listener to register with all accessed observables, or
-	 *            <code>null</code> if no stale listener is to be registered
-	 * @return an array of unique observable objects
-	 */
-	public static IObservable[] runAndMonitor(Runnable runnable,
-			IChangeListener changeListener, IStaleListener staleListener) {
-		// Remember the previous value in the listener stack
-		Set lastObservableSet = (Set) currentObservableSet.get();
-		IChangeListener lastChangeListener = (IChangeListener) currentChangeListener
-				.get();
-		IStaleListener lastStaleListener = (IStaleListener) currentStaleListener
-				.get();
-
-		Set observableSet = new HashSet();
-		// Push the new listeners to the top of the stack
-		currentObservableSet.set(observableSet);
-		currentChangeListener.set(changeListener);
-		currentStaleListener.set(staleListener);
-		try {
-			runnable.run();
-		} finally {
-			// Pop the new listener off the top of the stack (by restoring the
-			// previous listener)
-			currentObservableSet.set(lastObservableSet);
-			currentChangeListener.set(lastChangeListener);
-			currentStaleListener.set(lastStaleListener);
-		}
-
-		int i = 0;
-		IObservable[] result = new IObservable[observableSet.size()];
-		for (Iterator it = observableSet.iterator(); it.hasNext();) {
-			IdentityWrapper wrapper = (IdentityWrapper) it.next();
-			result[i++] = (IObservable) wrapper.unwrap();
-		}
-
-		return result;
-	}
-
-	/**
-	 * Notifies the ObservableTracker that an observable was read from. The
-	 * JavaDoc for methods that invoke this method should include the following
-	 * tag: "@TrackedGetter This method will notify ObservableTracker that the
-	 * receiver has been read from". This lets callers know that they can rely
-	 * on automatic updates from the object without explicitly attaching a
-	 * listener.
-	 * 
-	 * @param observable
-	 */
-	public static void getterCalled(IObservable observable) {
-		Set lastObservableSet = (Set) currentObservableSet.get();
-		IChangeListener lastChangeListener = (IChangeListener) currentChangeListener
-				.get();
-		IStaleListener lastStaleListener = (IStaleListener) currentStaleListener
-				.get();
-
-		boolean added = false;
-		if (lastObservableSet != null) {
-			added = lastObservableSet.add(new IdentityWrapper(observable));
-		}
-
-		// If anyone is listening for observable usage...
-		if (added && lastChangeListener != null) {
-			observable.addChangeListener(lastChangeListener);
-		}
-		if (added && lastStaleListener != null) {
-			observable.addStaleListener(lastStaleListener);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/Observables.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/Observables.java
deleted file mode 100644
index b0be65b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/Observables.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Cerner Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms 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.observable;
-
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.list.IListChangeListener;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ObservableList;
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.observable.set.ISetChangeListener;
-import org.eclipse.jface.databinding.observable.set.ObservableSet;
-import org.eclipse.jface.internal.databinding.internal.observable.ProxyObservableSet;
-import org.eclipse.jface.internal.databinding.internal.observable.UnmodifiableObservableList;
-
-/**
- * Contains static methods to operate on or return
- * {@link IObservable Observables}.
- * 
- * @since 3.2
- */
-public class Observables {
-	/**
-	 * @param list
-	 * @return list Returns an unmodifiable view of the provided
-	 *         <code>list</code>.
-	 */
-	public static IObservableList unmodifiableObservableList(
-			IObservableList list) {
-		if (list == null) {
-			throw new IllegalArgumentException(
-					"Parameter " + list + " was null."); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		return new UnmodifiableObservableList(list);
-	}
-
-	/**
-	 * @param set
-	 * @return Returns an observableSet backed by the given set
-	 */
-	public static IObservableSet staticObservableSet(Set set) {
-		return new ObservableSet(set, Object.class) {
-			public void addChangeListener(IChangeListener listener) {
-			}
-
-			public void addStaleListener(IStaleListener listener) {
-			}
-
-			public void addSetChangeListener(ISetChangeListener listener) {
-			}
-		};
-	}
-
-	/**
-	 * Returns an observable set that contains the same elements as the given
-	 * set, and fires the same events as the given set, but can be disposed of
-	 * without disposing of the wrapped set.
-	 * 
-	 * @param target
-	 *            the set to wrap
-	 * @return a proxy observable set
-	 */
-	public static IObservableSet proxyObservableSet(IObservableSet target) {
-		return new ProxyObservableSet(target);
-	}
-
-	/**
-	 * @param list
-	 * @return
-	 */
-	public static IObservableList staticObservableList(List list) {
-		return new ObservableList(list, Object.class) {
-			public void addChangeListener(IChangeListener listener) {
-			}
-
-			public void addStaleListener(IStaleListener listener) {
-			}
-
-			public void addListChangeListener(IListChangeListener listener) {
-			}
-		};
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/AbstractObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/AbstractObservableList.java
deleted file mode 100644
index 81c60a8..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/AbstractObservableList.java
+++ /dev/null
@@ -1,399 +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.databinding.observable.list;
-
-import java.util.AbstractList;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.jface.databinding.observable.IChangeListener;
-import org.eclipse.jface.databinding.observable.IStaleListener;
-import org.eclipse.jface.databinding.observable.ObservableTracker;
-
-/**
- * Subclasses should override at least get(int index) and size()
- * 
- * @since 1.0
- * 
- */
-public abstract class AbstractObservableList extends AbstractList implements
-		IObservableList {
-
-	/**
-	 * Points to an instance of IListChangeListener or a Collection of
-	 * IListChangeListener
-	 */
-	private Object listChangeListeners;
-
-	/**
-	 * Points to an instance of IChangeListener or a Collection of
-	 * IChangeListener
-	 */
-	private Object changeListeners = null;
-
-	/**
-	 * Points to an instance of IChangeListener or a Collection of
-	 * IStaleListener
-	 */
-	private Object staleListeners = null;
-
-	public boolean isStale() {
-		return false;
-	}
-
-	public void addListChangeListener(IListChangeListener listener) {
-		if (listChangeListeners == null) {
-			boolean hadListeners = hasListeners();
-			listChangeListeners = listener;
-			if (!hadListeners) {
-				firstListenerAdded();
-			}
-			return;
-		}
-
-		Collection listenerList;
-		if (listChangeListeners instanceof Collection) {
-			listenerList = (Collection) listChangeListeners;
-		} else {
-			IListChangeListener l = (IListChangeListener) listChangeListeners;
-
-			listenerList = new ArrayList();
-			listenerList.add(l);
-			listChangeListeners = listenerList;
-		}
-
-		listenerList.add(listener);
-	}
-
-	public void removeListChangeListener(IListChangeListener listener) {
-
-		if (listChangeListeners == listener) {
-			listChangeListeners = null;
-			if (!hasListeners()) {
-				lastListenerRemoved();
-			}
-			return;
-		}
-
-		if (listChangeListeners instanceof Collection) {
-			Collection listenerList = (Collection) listChangeListeners;
-			listenerList.remove(listener);
-			if (listenerList.isEmpty()) {
-				listChangeListeners = null;
-				if (!hasListeners()) {
-					lastListenerRemoved();
-				}
-			}
-		}
-	}
-
-	protected void fireListChange(ListDiff diff) {
-		// fire general change event first
-		fireChange();
-
-		if (listChangeListeners == null) {
-			return;
-		}
-
-		if (listChangeListeners instanceof IListChangeListener) {
-			((IListChangeListener) listChangeListeners).handleListChange(this,
-					diff);
-			return;
-		}
-
-		Collection changeListenerCollection = (Collection) listChangeListeners;
-
-		IListChangeListener[] listeners = (IListChangeListener[]) (changeListenerCollection)
-				.toArray(new IListChangeListener[changeListenerCollection
-						.size()]);
-		for (int i = 0; i < listeners.length; i++) {
-			listeners[i].handleListChange(this, diff);
-		}
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-		if (changeListeners == null) {
-			boolean hadListeners = hasListeners();
-			changeListeners = listener;
-			if (!hadListeners) {
-				firstListenerAdded();
-			}
-			return;
-		}
-
-		Collection listenerList;
-		if (changeListeners instanceof IChangeListener) {
-			IChangeListener l = (IChangeListener) changeListeners;
-
-			listenerList = new ArrayList();
-			listenerList.add(l);
-			changeListeners = listenerList;
-		} else {
-			listenerList = (Collection) changeListeners;
-		}
-
-		listenerList.add(listener);
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-		if (changeListeners == listener) {
-			changeListeners = null;
-			if (!hasListeners()) {
-				lastListenerRemoved();
-			}
-			return;
-		}
-
-		if (changeListeners instanceof Collection) {
-			Collection listenerList = (Collection) changeListeners;
-			listenerList.remove(listener);
-			if (listenerList.isEmpty()) {
-				changeListeners = null;
-				if (!hasListeners()) {
-					lastListenerRemoved();
-				}
-			}
-		}
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-		if (staleListeners == null) {
-			boolean hadListeners = hasListeners();
-			staleListeners = listener;
-			if (!hadListeners) {
-				firstListenerAdded();
-			}
-			return;
-		}
-
-		Collection listenerList;
-		if (staleListeners instanceof IStaleListener) {
-			IStaleListener l = (IStaleListener) staleListeners;
-
-			listenerList = new ArrayList();
-			listenerList.add(l);
-			staleListeners = listenerList;
-		} else {
-			listenerList = (Collection) staleListeners;
-		}
-
-		listenerList.add(listener);
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-		if (staleListeners == listener) {
-			staleListeners = null;
-			if (!hasListeners()) {
-				lastListenerRemoved();
-			}
-			return;
-		}
-
-		if (staleListeners instanceof Collection) {
-			Collection listenerList = (Collection) staleListeners;
-			listenerList.remove(listener);
-			if (listenerList.isEmpty()) {
-				staleListeners = null;
-				if (!hasListeners()) {
-					lastListenerRemoved();
-				}
-			}
-		}
-	}
-
-	protected void fireChange() {
-		if (changeListeners == null) {
-			return;
-		}
-
-		if (changeListeners instanceof IChangeListener) {
-			((IChangeListener) changeListeners).handleChange(this);
-			return;
-		}
-
-		Collection changeListenerCollection = (Collection) changeListeners;
-
-		IChangeListener[] listeners = (IChangeListener[]) (changeListenerCollection)
-				.toArray(new IChangeListener[changeListenerCollection.size()]);
-		for (int i = 0; i < listeners.length; i++) {
-			listeners[i].handleChange(this);
-		}
-	}
-
-	protected void fireStale() {
-		if (staleListeners == null) {
-			return;
-		}
-
-		if (staleListeners instanceof IChangeListener) {
-			((IChangeListener) staleListeners).handleChange(this);
-			return;
-		}
-
-		Collection changeListenerCollection = (Collection) staleListeners;
-
-		IChangeListener[] listeners = (IChangeListener[]) (changeListenerCollection)
-				.toArray(new IChangeListener[changeListenerCollection.size()]);
-		for (int i = 0; i < listeners.length; i++) {
-			listeners[i].handleChange(this);
-		}
-	}
-
-	/**
-	 * @return true if this observable has listeners
-	 */
-	protected boolean hasListeners() {
-		return changeListeners != null || staleListeners != null
-				|| listChangeListeners != null;
-	}
-
-	/**
-	 * 
-	 */
-	protected void firstListenerAdded() {
-	}
-
-	/**
-	 * 
-	 */
-	protected void lastListenerRemoved() {
-	}
-
-	/**
-	 * 
-	 */
-	public void dispose() {
-		listChangeListeners = null;
-		changeListeners = null;
-		staleListeners = null;
-		lastListenerRemoved();
-	}
-
-	public final int size() {
-		getterCalled();
-		return doGetSize();
-	}
-
-	/**
-	 * @return the size
-	 */
-	protected abstract int doGetSize();
-
-	/**
-	 * 
-	 */
-	private void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-	public boolean isEmpty() {
-		getterCalled();
-		return super.isEmpty();
-	}
-
-	public boolean contains(Object o) {
-		getterCalled();
-		return super.contains(o);
-	}
-
-	public Iterator iterator() {
-		final Iterator wrappedIterator = super.iterator();
-		return new Iterator() {
-			public void remove() {
-				wrappedIterator.remove();
-			}
-
-			public boolean hasNext() {
-				getterCalled();
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				getterCalled();
-				return wrappedIterator.next();
-			}
-		};
-	}
-
-	public Object[] toArray() {
-		getterCalled();
-		return super.toArray();
-	}
-
-	public Object[] toArray(Object a[]) {
-		getterCalled();
-		return super.toArray(a);
-	}
-
-	// Modification Operations
-
-	public boolean add(Object o) {
-		getterCalled();
-		return super.add(o);
-	}
-
-	public boolean remove(Object o) {
-		getterCalled();
-		return super.remove(o);
-	}
-
-	// Bulk Modification Operations
-
-	public boolean containsAll(Collection c) {
-		getterCalled();
-		return super.containsAll(c);
-	}
-
-	public boolean addAll(Collection c) {
-		getterCalled();
-		return super.addAll(c);
-	}
-
-	public boolean addAll(int index, Collection c) {
-		getterCalled();
-		return super.addAll(c);
-	}
-
-	public boolean removeAll(Collection c) {
-		getterCalled();
-		return super.removeAll(c);
-	}
-
-	public boolean retainAll(Collection c) {
-		getterCalled();
-		return super.retainAll(c);
-	}
-
-	// Comparison and hashing
-
-	public boolean equals(Object o) {
-		getterCalled();
-		return super.equals(o);
-	}
-
-	public int hashCode() {
-		getterCalled();
-		return super.hashCode();
-	}
-
-	public int indexOf(Object o) {
-		getterCalled();
-		return super.indexOf(o);
-	}
-
-	public int lastIndexOf(Object o) {
-		getterCalled();
-		return super.lastIndexOf(o);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/IListChangeListener.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/IListChangeListener.java
deleted file mode 100644
index a595582..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/IListChangeListener.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.jface.databinding.observable.list;
-
-
-/**
- * Listener for changes of observable lists.
- * 
- * @since 1.0
- */
-public interface IListChangeListener {
-	
-	/**
-	 * Handle a change to the given observable list. The change is described by the diff objects.
-	 * @param source
-	 * @param diff
-	 */
-	void handleListChange(IObservableList source, ListDiff diff);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/IObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/IObservableList.java
deleted file mode 100644
index ea81305..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/IObservableList.java
+++ /dev/null
@@ -1,168 +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.databinding.observable.list;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jface.databinding.observable.IObservableCollection;
-
-/**
- * A list whose changes can be tracked by list change listeners. 
- * 
- * <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.0
- */
-public interface IObservableList extends List, IObservableCollection {
-	
-	/**
-	 * Adds the given list change listener to the list of list change listeners.
-	 * @param listener
-	 */
-	public void addListChangeListener(IListChangeListener listener);
-	
-	/**
-	 * Removes the given list change listener from the list of list change listeners.
-	 * Has no effect if the given listener is not registered as a list change listener.
-	 * 
-	 * @param listener
-	 */
-	public void removeListChangeListener(IListChangeListener listener);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public int size();
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean isEmpty();
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean contains(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public Iterator iterator();
-
-	/**
-	 * @TrackedGetter
-	 */
-    public Object[] toArray();
-
-	/**
-	 * @TrackedGetter
-	 */
-    public Object[] toArray(Object a[]);
-
-	/**
-	 * @TrackedGetter because of the returned boolean
-	 */
-    public boolean add(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean remove(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean containsAll(Collection c);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean addAll(Collection c);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean addAll(int index, Collection c);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean removeAll(Collection c);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean retainAll(Collection c);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean equals(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public int hashCode();
-
-	/**
-	 * @TrackedGetter
-	 */
-    public Object get(int index);
-
-	/**
-	 * @TrackedGetter because of the returned object
-	 */
-    public Object set(int index, Object element);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public Object remove(int index);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public int indexOf(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public int lastIndexOf(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public ListIterator listIterator();
-
-	/**
-	 * @TrackedGetter
-	 */
-    public ListIterator listIterator(int index);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public List subList(int fromIndex, int toIndex);
-
-	/**
-	 * @return the type of the elements
-	 */
-	Object getElementType();
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ListDiff.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ListDiff.java
deleted file mode 100644
index 1cfeda3..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ListDiff.java
+++ /dev/null
@@ -1,61 +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.databinding.observable.list;
-
-import org.eclipse.jface.databinding.observable.IDiff;
-
-/**
- * Object describing a diff between two lists.
- * 
- * @since 1.0
- */
-public abstract class ListDiff implements IDiff {
-
-	/**
-	 * Returns a list of ListDiffEntry
-	 * 
-	 * @return a list of ListDiffEntry
-	 */
-	public abstract ListDiffEntry[] getDifferences();
-	
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		ListDiffEntry[] differences = getDifferences();
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(getClass().getName());
-		
-		if (differences == null || differences.length == 0) {
-			buffer
-				.append("{}"); //$NON-NLS-1$
-		} else {
-			buffer
-				.append("{"); //$NON-NLS-1$
-			
-			for (int i = 0; i < differences.length; i++) {
-				if (i > 0)
-					buffer.append(", "); //$NON-NLS-1$
-				
-				buffer
-					.append("difference[") //$NON-NLS-1$
-					.append(i)
-					.append("] [") //$NON-NLS-1$
-					.append(differences[i] != null ? differences[i].toString() : "null") //$NON-NLS-1$
-					.append("]"); //$NON-NLS-1$
-			}
-			buffer.append("}"); //$NON-NLS-1$
-		}
-		
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ListDiffEntry.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ListDiffEntry.java
deleted file mode 100644
index 32472b3..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ListDiffEntry.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.jface.databinding.observable.list;
-
-/**
- * A single addition of an element to a list or removal of an element from a list.
- *  
- * @since 1.0
- */
-public abstract class ListDiffEntry {
-	
-	/**
-	 * @return the 0-based position of the addition or removal
-	 */
-	public abstract int getPosition();
-	
-	/**
-	 * @return true if this represents an addition, false if this represents a removal
-	 */
-	public abstract boolean isAddition();
-	
-	/**
-	 * @return the element that was added or removed
-	 */
-	public abstract Object getElement();
-	
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer
-			.append(this.getClass().getName())
-			.append("{position [") //$NON-NLS-1$
-			.append(getPosition())
-			.append("], isAddition [") //$NON-NLS-1$
-			.append(isAddition())
-			.append("], element [") //$NON-NLS-1$
-			.append(getElement() != null ? getElement().toString() : "null") //$NON-NLS-1$
-			.append("]}"); //$NON-NLS-1$
-		
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ObservableList.java
deleted file mode 100644
index b08356f..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/ObservableList.java
+++ /dev/null
@@ -1,364 +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.databinding.observable.list;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jface.databinding.observable.AbstractObservable;
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.ObservableTracker;
-
-/**
- * 
- * Abstract implementation of {@link IObservableList}, based on an underlying regular list. 
- * 
- * @since 1.0
- * 
- */
-public abstract class ObservableList extends AbstractObservable implements
-		IObservableList {
-
-	protected List wrappedList;
-
-	private boolean stale = false;
-
-	private Object listChangeListeners;
-
-	private Object elementType;
-
-	protected ObservableList(List wrappedList, Object elementType) {
-		this.wrappedList = wrappedList;
-		this.elementType = elementType;
-	}
-
-	public void addListChangeListener(IListChangeListener listener) {
-		if (listChangeListeners == null) {
-			boolean hadListeners = hasListeners();
-			listChangeListeners = listener;
-			if (!hadListeners) {
-				firstListenerAdded();
-			}
-			return;
-		}
-
-		Collection listenerList;
-		if (listChangeListeners instanceof Collection) {
-			listenerList = (Collection) listChangeListeners;
-		} else {
-			IListChangeListener l = (IListChangeListener) listChangeListeners;
-			
-			listenerList = new ArrayList();
-			listenerList.add(l);
-			listChangeListeners = listenerList;
-		}
-
-		listenerList.add(listener);
-	}
-
-	public void removeListChangeListener(IListChangeListener listener) {
-
-		if (listChangeListeners == listener) {
-			listChangeListeners = null;
-			if (!hasListeners()) {
-				lastListenerRemoved();
-			}
-			return;
-		}
-
-		if (listChangeListeners instanceof Collection) {
-			Collection listenerList = (Collection) listChangeListeners;
-			listenerList.remove(listener);
-			if (listenerList.isEmpty()) {
-				listChangeListeners = null;
-				if (!hasListeners()) {
-					lastListenerRemoved();
-				}
-			}
-		}
-	}
-
-	protected boolean hasListeners() {
-		return super.hasListeners() || listChangeListeners!=null;
-	}
-
-	protected void fireListChange(ListDiff diff) {
-		// fire general change event first
-		super.fireChange();
-
-		if (listChangeListeners == null) {
-			return;
-		}
-		
-		if (listChangeListeners instanceof IListChangeListener) {
-			((IListChangeListener) listChangeListeners).handleListChange(this, diff);
-			return;
-		}
-		
-		Collection changeListenerCollection = (Collection) listChangeListeners;
-		
-		IListChangeListener[] listeners = (IListChangeListener[]) (changeListenerCollection)
-		.toArray(new IListChangeListener[changeListenerCollection.size()]);
-		for (int i = 0; i < listeners.length; i++) {
-			listeners[i].handleListChange(this, diff);
-		}
-	}
-	
-	public boolean contains(Object o) {
-		getterCalled();
-		return wrappedList.contains(o);
-	}
-
-	public boolean containsAll(Collection c) {
-		getterCalled();
-		return wrappedList.containsAll(c);
-	}
-
-	public boolean equals(Object o) {
-		getterCalled();
-		return wrappedList.equals(o);
-	}
-
-	public int hashCode() {
-		getterCalled();
-		return wrappedList.hashCode();
-	}
-
-	public boolean isEmpty() {
-		getterCalled();
-		return wrappedList.isEmpty();
-	}
-
-	public Iterator iterator() {
-		final Iterator wrappedIterator = wrappedList.iterator();
-		return new Iterator() {
-
-			public void remove() {
-				throw new UnsupportedOperationException();
-			}
-
-			public boolean hasNext() {
-				ObservableTracker.getterCalled(ObservableList.this);
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				ObservableTracker.getterCalled(ObservableList.this);
-				return wrappedIterator.next();
-			}
-		};
-	}
-
-	public int size() {
-		getterCalled();
-		return wrappedList.size();
-	}
-
-	public Object[] toArray() {
-		getterCalled();
-		return wrappedList.toArray();
-	}
-
-	public Object[] toArray(Object[] a) {
-		getterCalled();
-		return wrappedList.toArray(a);
-	}
-
-	public String toString() {
-		getterCalled();
-		return wrappedList.toString();
-	}
-	
-	/**
-	 * @TrackedGetter
-	 */
-    public Object get(int index) {
-    	getterCalled();
-    	return wrappedList.get(index);
-    }
-
-	/**
-	 * @TrackedGetter
-	 */
-    public int indexOf(Object o) {
-    	getterCalled();
-    	return wrappedList.indexOf(o);
-    }
-
-	/**
-	 * @TrackedGetter
-	 */
-    public int lastIndexOf(Object o) {
-    	getterCalled();
-    	return wrappedList.lastIndexOf(o);
-    }
-
-    // List Iterators
-
-	/**
-	 * @TrackedGetter
-	 */
-    public ListIterator listIterator() {
-    	return listIterator(0);
-    }
-
-	/**
-	 * @TrackedGetter
-	 */
-    public ListIterator listIterator(int index) {
-		final ListIterator wrappedIterator = wrappedList.listIterator(index);
-		return new ListIterator() {
-
-			public int nextIndex() {
-				getterCalled();
-				return wrappedIterator.nextIndex();
-			}
-
-			public int previousIndex() {
-				getterCalled();
-				return wrappedIterator.previousIndex();
-			}
-
-			public void remove() {
-				throw new UnsupportedOperationException();
-			}
-
-			public boolean hasNext() {
-				getterCalled();
-				return wrappedIterator.hasNext();
-			}
-
-			public boolean hasPrevious() {
-				getterCalled();
-				return wrappedIterator.hasPrevious();
-			}
-
-			public Object next() {
-				getterCalled();
-				return wrappedIterator.next();
-			}
-
-			public Object previous() {
-				getterCalled();
-				return wrappedIterator.previous();
-			}
-
-			public void add(Object o) {
-				throw new UnsupportedOperationException();
-			}
-
-			public void set(Object o) {
-				throw new UnsupportedOperationException();
-			}
-		};
-    }
-
-
-    public List subList(int fromIndex, int toIndex) {
-    	getterCalled();
-    	return wrappedList.subList(fromIndex, toIndex);
-    }
-
-	protected void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-    public Object set(int index, Object element) {
-    	throw new UnsupportedOperationException();
-    }
-
-    public Object remove(int index) {
-    	throw new UnsupportedOperationException();
-    }
-
-	public boolean add(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void add(int index, Object element) {
-		throw new UnsupportedOperationException();
-	}
-	
-	public boolean addAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-    public boolean addAll(int index, Collection c) {
-    	throw new UnsupportedOperationException();
-    }
-
-	public boolean remove(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean removeAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean retainAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void clear() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * @return Returns the stale state.
-	 */
-	public boolean isStale() {
-		return stale;
-	}
-
-	/**
-	 * @param stale
-	 *            The stale state to list. This will fire a stale event if the
-	 *            given boolean is true and this observable list was not already
-	 *            stale.
-	 */
-	public void setStale(boolean stale) {
-		boolean wasStale = this.stale;
-		this.stale = stale;
-		if (!wasStale && stale) {
-			fireStale();
-		}
-	}
-
-	protected void fireChange() {
-		throw new RuntimeException("fireChange should not be called, use fireListChange() instead"); //$NON-NLS-1$
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.provisional.databinding.observable.AbstractObservable#dispose()
-	 */
-	public void dispose() {
-		listChangeListeners = null;
-		super.dispose();
-	}
-	
-	public Object getElementType() {
-		return elementType;
-	}
-
-	protected void updateWrappedList(List newList) {
-		// TODO this is a naive list diff algorithm, we need a
-		// smarter one
-		List oldList = wrappedList;
-		ListDiff listDiff = Diffs.computeListDiff(oldList, newList);
-		wrappedList = newList;
-		fireListChange(listDiff);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/WritableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/WritableList.java
deleted file mode 100644
index 5cc0214..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/list/WritableList.java
+++ /dev/null
@@ -1,170 +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.databinding.observable.list;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider;
-
-/**
- * Mutable observable list backed by an ArrayList.
- * 
- * @since 1.0
- */
-public class WritableList extends ObservableList implements ILazyListElementProvider {
-
-	/**
-	 * Creates an empty writable list containing elements of type Object.
-	 */
-	public WritableList() {
-		this(Object.class);
-	}
-
-	/**
-	 * Creates an empty writable list containing elements of the given type.
-	 * 
-	 * @param elementType
-	 */
-	public WritableList(Object elementType) {
-		super(new ArrayList(), elementType);
-	}
-
-	/**
-	 * Creates a writable list containing elements of the given type,
-	 * wrapping an existing client-supplied list.
-	 * 
-	 * @param toWrap The java.utilList to wrap
-	 * @param elementType
-	 */
-	public WritableList(List toWrap, Object elementType) {
-		super(toWrap, elementType);
-	}
-
-	public Object set(int index, Object element) {
-		getterCalled();
-		Object oldElement = wrappedList.set(index, element);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, oldElement), Diffs.createListDiffEntry(index, true,
-				element)));
-		return oldElement;
-	}
-
-	public Object remove(int index) {
-		getterCalled();
-		Object oldElement = wrappedList.remove(index);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, oldElement)));
-		return oldElement;
-	}
-
-	public boolean add(Object element) {
-		getterCalled();
-		boolean added = wrappedList.add(element);
-		if (added) {
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(
-					wrappedList.size() - 1, true, element)));
-		}
-		return added;
-	}
-
-	public void add(int index, Object element) {
-		wrappedList.add(index, element);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				true, element)));
-	}
-
-	public boolean addAll(Collection c) {
-		ListDiffEntry[] entries = new ListDiffEntry[c.size()];
-		int i = 0;
-		int addIndex = c.size();
-		for (Iterator it = c.iterator(); it.hasNext();) {
-			Object element = it.next();
-			entries[i++] = Diffs.createListDiffEntry(addIndex++, true, element);
-		}
-		boolean added = wrappedList.addAll(c);
-		fireListChange(Diffs.createListDiff(entries));
-		return added;
-	}
-
-	public boolean addAll(int index, Collection c) {
-		ListDiffEntry[] entries = new ListDiffEntry[c.size()];
-		int i = 0;
-		int addIndex = index;
-		for (Iterator it = c.iterator(); it.hasNext();) {
-			Object element = it.next();
-			entries[i++] = Diffs.createListDiffEntry(addIndex++, true, element);
-		}
-		boolean added = wrappedList.addAll(index, c);
-		fireListChange(Diffs.createListDiff(entries));
-		return added;
-	}
-
-	public boolean remove(Object o) {
-		int index = wrappedList.indexOf(o);
-		if (index == -1) {
-			return false;
-		}
-		wrappedList.remove(index);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, o)));
-		return true;
-	}
-
-	public boolean removeAll(Collection c) {
-		List entries = new ArrayList();
-		for (Iterator it = c.iterator(); it.hasNext();) {
-			Object element = it.next();
-			int removeIndex = wrappedList.indexOf(element);
-			if (removeIndex != -1) {
-				wrappedList.remove(removeIndex);
-				entries.add(Diffs.createListDiffEntry(removeIndex, true,
-						element));
-			}
-		}
-		fireListChange(Diffs.createListDiff((ListDiffEntry[]) entries
-				.toArray(new ListDiffEntry[entries.size()])));
-		return entries.size() > 0;
-	}
-
-	public boolean retainAll(Collection c) {
-		List entries = new ArrayList();
-		int removeIndex = 0;
-		for (Iterator it = wrappedList.iterator(); it.hasNext();) {
-			Object element = it.next();
-			if (!c.contains(element)) {
-				entries.add(Diffs.createListDiffEntry(removeIndex, false,
-						element));
-				it.remove();
-			} else {
-				// only increment if we haven't removed the current element
-				removeIndex++;
-			}
-		}
-		fireListChange(Diffs.createListDiff((ListDiffEntry[]) entries
-				.toArray(new ListDiffEntry[entries.size()])));
-		return entries.size() > 0;
-	}
-
-	public void clear() {
-		List entries = new ArrayList();
-		for (Iterator it = wrappedList.iterator(); it.hasNext();) {
-			Object element = it.next();
-			// always report 0 as the remove index
-			entries.add(Diffs.createListDiffEntry(0, false, element));
-		}
-		fireListChange(Diffs.createListDiff((ListDiffEntry[]) entries
-				.toArray(new ListDiffEntry[entries.size()])));
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableList.java
deleted file mode 100644
index 4bc08f9..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableList.java
+++ /dev/null
@@ -1,113 +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.databinding.observable.masterdetail;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.list.IListChangeListener;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.ObservableList;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-
-/**
- * @since 3.2
- * 
- */
-
-/* package */class DetailObservableList extends ObservableList {
-
-	private boolean updating = false;
-
-	private IListChangeListener innerChangeListener = new IListChangeListener() {
-		public void handleListChange(IObservableList source, ListDiff diff) {
-			if (!updating) {
-				fireListChange(diff);
-			}
-		}
-	};
-
-	private Object currentOuterValue;
-
-	private IObservableList innerObservableList;
-
-	private IObservableFactory factory;
-
-	private IObservableValue outerObservableValue;
-
-	/**
-	 * @param factory
-	 * @param outerObservableValue
-	 * @param feature
-	 * @param detailType
-	 */
-	public DetailObservableList(IObservableFactory factory,
-			IObservableValue outerObservableValue, Object detailType) {
-		super(new ArrayList(), detailType);
-		this.factory = factory;
-		this.outerObservableValue = outerObservableValue;
-		updateInnerObservableValue(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			List oldList = new ArrayList(wrappedList);
-			updateInnerObservableValue(outerObservableValue);
-			fireListChange(Diffs.computeListDiff(oldList, wrappedList));
-		}
-	};
-
-	private void updateInnerObservableValue(
-			IObservableValue outerObservableValue) {
-		currentOuterValue = outerObservableValue.getValue();
-		if (innerObservableList != null) {
-			innerObservableList.removeListChangeListener(innerChangeListener);
-			innerObservableList.dispose();
-		}
-		if (currentOuterValue == null) {
-			innerObservableList = null;
-			wrappedList = new ArrayList();
-		} else {
-			this.innerObservableList = (IObservableList) factory
-					.createObservable(currentOuterValue);
-			wrappedList = innerObservableList;
-			Object innerValueType = innerObservableList.getElementType();
-			Assert.isTrue(getElementType().equals(innerValueType),
-					"Cannot change value type in a nested updatable value"); //$NON-NLS-1$
-			innerObservableList.addListChangeListener(innerChangeListener);
-		}
-	}
-
-	public void dispose() {
-		super.dispose();
-
-		if (outerObservableValue != null) {
-			outerObservableValue.removeValueChangeListener(outerChangeListener);
-			outerObservableValue.dispose();
-		}
-		if (innerObservableList != null) {
-			innerObservableList.removeListChangeListener(innerChangeListener);
-			innerObservableList.dispose();
-		}
-		currentOuterValue = null;
-		factory = null;
-		innerObservableList = null;
-		innerChangeListener = null;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableSet.java
deleted file mode 100644
index e0ef7bc..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableSet.java
+++ /dev/null
@@ -1,114 +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.databinding.observable.masterdetail;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.observable.set.ISetChangeListener;
-import org.eclipse.jface.databinding.observable.set.ObservableSet;
-import org.eclipse.jface.databinding.observable.set.SetDiff;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-
-/**
- * @since 3.2
- * 
- */
-/* package */class DetailObservableSet extends ObservableSet {
-
-	private boolean updating = false;
-
-	private ISetChangeListener innerChangeListener = new ISetChangeListener() {
-		public void handleSetChange(IObservableSet source, SetDiff diff) {
-			if (!updating) {
-				fireSetChange(diff);
-			}
-		}
-	};
-
-	private Object currentOuterValue;
-
-	private IObservableSet innerObservableSet;
-
-	private IObservableValue outerObservableValue;
-
-	private IObservableFactory factory;
-
-	/**
-	 * @param factory
-	 * @param outerObservableValue
-	 * @param detailType
-	 */
-	public DetailObservableSet(IObservableFactory factory,
-			IObservableValue outerObservableValue, Object detailType) {
-		super(new HashSet(), detailType);
-		this.factory = factory;
-		this.outerObservableValue = outerObservableValue;
-		updateInnerObservableValue(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			Set oldSet = new HashSet(wrappedSet);
-			updateInnerObservableValue(outerObservableValue);
-			fireSetChange(Diffs.computeSetDiff(oldSet, wrappedSet));
-		}
-	};
-
-	private void updateInnerObservableValue(
-			IObservableValue outerObservableValue) {
-		currentOuterValue = outerObservableValue.getValue();
-		if (innerObservableSet != null) {
-			innerObservableSet.removeSetChangeListener(innerChangeListener);
-			innerObservableSet.dispose();
-		}
-		if (currentOuterValue == null) {
-			innerObservableSet = null;
-			wrappedSet = new HashSet();
-		} else {
-			this.innerObservableSet = (IObservableSet) factory
-					.createObservable(currentOuterValue);
-			wrappedSet = innerObservableSet;
-			Object innerValueType = innerObservableSet.getElementType();
-			if (elementType == null) {
-				elementType = innerValueType;
-			} else {
-				Assert.isTrue(elementType.equals(innerValueType),
-						"Cannot change value type in a nested updatable value"); //$NON-NLS-1$
-			}
-			innerObservableSet.addSetChangeListener(innerChangeListener);
-		}
-	}
-
-	public void dispose() {
-		super.dispose();
-
-		if (outerObservableValue != null) {
-			outerObservableValue.removeValueChangeListener(outerChangeListener);
-			outerObservableValue.dispose();
-		}
-		if (innerObservableSet != null) {
-			innerObservableSet.removeSetChangeListener(innerChangeListener);
-			innerObservableSet.dispose();
-		}
-		currentOuterValue = null;
-		factory = null;
-		innerObservableSet = null;
-		innerChangeListener = null;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableValue.java
deleted file mode 100644
index 66f87c8..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/DetailObservableValue.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.jface.databinding.observable.masterdetail;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-
-/**
- * @since 1.0
- * 
- */
-/* package */class DetailObservableValue extends AbstractObservableValue {
-
-	private boolean updating = false;
-
-	private IValueChangeListener innerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			if (!updating) {
-				fireValueChange(diff);
-			}
-		}
-	};
-
-	private Object currentOuterValue;
-
-	private IObservableValue innerObservableValue;
-
-	private Object detailType;
-
-	private IObservableValue outerObservableValue;
-
-	private IObservableFactory factory;
-
-	/**
-	 * @param factory
-	 * @param outerObservableValue
-	 * @param detailType
-	 */
-	public DetailObservableValue(IObservableFactory factory,
-			IObservableValue outerObservableValue, Object detailType) {
-		this.factory = factory;
-		this.detailType = detailType;
-		this.outerObservableValue = outerObservableValue;
-		updateInnerObservableValue(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			Object oldValue = doGetValue();
-			updateInnerObservableValue(outerObservableValue);
-			fireValueChange(Diffs.createValueDiff(oldValue, doGetValue()));
-		}
-	};
-
-	private void updateInnerObservableValue(
-			IObservableValue outerObservableValue) {
-		currentOuterValue = outerObservableValue.getValue();
-		if (innerObservableValue != null) {
-			innerObservableValue.removeValueChangeListener(innerChangeListener);
-			innerObservableValue.dispose();
-		}
-		if (currentOuterValue == null) {
-			innerObservableValue = null;
-		} else {
-			this.innerObservableValue = (IObservableValue) factory
-					.createObservable(currentOuterValue);
-			Object innerValueType = innerObservableValue.getValueType();
-			if (detailType == null) {
-				detailType = innerValueType;
-			} else {
-				Assert
-						.isTrue(detailType.equals(innerValueType),
-								"Cannot change value type in a nested observable value"); //$NON-NLS-1$
-			}
-			innerObservableValue.addValueChangeListener(innerChangeListener);
-		}
-	}
-
-	public void setValue(Object value) {
-		if (innerObservableValue != null)
-			innerObservableValue.setValue(value);
-	}
-
-	public Object doGetValue() {
-		return innerObservableValue == null ? null : innerObservableValue
-				.getValue();
-	}
-
-	public Object getValueType() {
-		return detailType;
-	}
-
-	public void dispose() {
-		super.dispose();
-
-		if (outerObservableValue != null) {
-			outerObservableValue.removeValueChangeListener(outerChangeListener);
-			outerObservableValue.dispose();
-		}
-		if (innerObservableValue != null) {
-			innerObservableValue.removeValueChangeListener(innerChangeListener);
-			innerObservableValue.dispose();
-		}
-		currentOuterValue = null;
-		factory = null;
-		innerObservableValue = null;
-		innerChangeListener = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/IObservableFactory.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/IObservableFactory.java
deleted file mode 100644
index 2af8191..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/IObservableFactory.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.jface.databinding.observable.masterdetail;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-
-/**
- * @since 3.2
- *
- */
-public interface IObservableFactory {
-	
-	/**
-	 * Creates an observable for the given target object.
-	 * @param target
-	 * @return the new observable
-	 */
-	public IObservable createObservable(Object target);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/MasterDetailObservables.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/MasterDetailObservables.java
deleted file mode 100644
index e36e33f..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/masterdetail/MasterDetailObservables.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.databinding.observable.masterdetail;
-
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-
-/**
- * @since 3.2
- * 
- */
-public class MasterDetailObservables {
-
-	/**
-	 * Creates a detail observable value from a master observable value and a
-	 * factory. This can be used to create observable values that represent a
-	 * property of a selected object in a table.
-	 * 
-	 * @param master
-	 *            the observable value to track
-	 * @param detailFactory
-	 *            a factory for creating {@link IObservableValue} instances
-	 *            given a current value of the master
-	 * @param detailType
-	 *            the value type of the detail observable value, typically of
-	 *            type java.lang.Class
-	 * @return an observable value of the given value type that, for any current
-	 *         value of the given master value, behaves like the observable
-	 *         value created by the factory for that current value.
-	 */
-	public static IObservableValue getDetailValue(IObservableValue master,
-			IObservableFactory detailFactory, Object detailType) {
-		return new DetailObservableValue(detailFactory, master, detailType);
-	}
-
-	/**
-	 * Creates a detail observable list from a master observable value and a
-	 * factory. This can be used to create observable lists that represent a
-	 * list property of a selected object in a table.
-	 * 
-	 * @param master
-	 *            the observable value to track
-	 * @param detailFactory
-	 *            a factory for creating {@link IObservableList} instances given
-	 *            a current value of the master
-	 * @param detailElementType
-	 *            the element type of the detail observable list, typically of
-	 *            type java.lang.Class
-	 * @return an observable list with the given element type that, for any
-	 *         current value of the given master value, behaves like the
-	 *         observable list created by the factory for that current value.
-	 */
-	public static IObservableList getDetailList(IObservableValue master,
-			IObservableFactory detailFactory, Object detailElementType) {
-		return new DetailObservableList(detailFactory, master,
-				detailElementType);
-	}
-
-	/**
-	 * Creates a detail observable set from a master observable value and a
-	 * factory. This can be used to create observable sets that represent a set
-	 * property of a selected object in a table.
-	 * 
-	 * @param master
-	 *            the observable value to track
-	 * @param detailFactory
-	 *            a factory for creating {@link IObservableSet} instances given
-	 *            a current value of the master
-	 * @param detailElementType
-	 *            the element type of the detail observable set, typically of
-	 *            type java.lang.Class
-	 * @return an observable set with the given element type that, for any
-	 *         current value of the given master value, behaves like the
-	 *         observable set created by the factory for that current value.
-	 */
-	public static IObservableSet getDetailSet(IObservableValue master,
-			IObservableFactory detailFactory, Object detailElementType) {
-		return new DetailObservableSet(detailFactory, master, detailElementType);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/AbstractObservableSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/AbstractObservableSet.java
deleted file mode 100644
index ed653cf..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/AbstractObservableSet.java
+++ /dev/null
@@ -1,256 +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.databinding.observable.set;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.AbstractObservable;
-import org.eclipse.jface.databinding.observable.ObservableTracker;
-
-/**
- * 
- * Abstract implementation of {@link IObservableSet}. 
- * 
- * TODO: Boris - refactor this to merge whatever happens to be useful into
- * ObservableSet, then delete this class. AFAIK, the only major innovation
- * here is that you return the wrapped set from a getter rather than passing
- * it into the constructor, so it is not necessary for it to be initialized at
- * construction-time.
- * 
- * @since 1.0
- * 
- */
-public abstract class AbstractObservableSet extends AbstractObservable implements
-		IObservableSet {
-
-	private boolean stale = false;
-
-	private Object setChangeListeners;
-
-	protected AbstractObservableSet() {
-	}
-
-	public void addSetChangeListener(ISetChangeListener listener) {
-		if (setChangeListeners == null) {
-			boolean hadListeners = hasListeners();
-			setChangeListeners = listener;
-			if (!hadListeners) {
-				firstListenerAdded();
-			}
-			return;
-		}
-
-		Collection listenerList;
-		if (setChangeListeners instanceof Collection) {
-			listenerList = (Collection) setChangeListeners;
-		} else {
-			ISetChangeListener l = (ISetChangeListener) setChangeListeners;
-			
-			listenerList = new ArrayList();
-			listenerList.add(l);
-			setChangeListeners = listenerList;
-		}
-
-		if (listenerList.size() > 16) {
-			HashSet listenerSet = new HashSet();
-			listenerSet.addAll(listenerList);
-			setChangeListeners = listenerList;
-		}
-
-		listenerList.add(listener);
-	}
-
-	public void removeSetChangeListener(ISetChangeListener listener) {
-
-		if (setChangeListeners == listener) {
-			setChangeListeners = null;
-			if (!hasListeners()) {
-				lastListenerRemoved();
-			}
-			return;
-		}
-
-		if (setChangeListeners instanceof Collection) {
-			Collection listenerList = (Collection) setChangeListeners;
-			listenerList.remove(listener);
-			if (listenerList.size() == 0) {
-				setChangeListeners = null;
-				if (!hasListeners()) {
-					lastListenerRemoved();
-				}
-			}
-		}
-	}
-
-	protected abstract Set getWrappedSet();
-	
-	/**
-	 * @return
-	 */
-	protected boolean hasListeners() {
-		return super.hasListeners() || setChangeListeners!=null;
-	}
-
-	protected void fireSetChange(SetDiff diff) {
-		// fire general change event first
-		super.fireChange();
-
-		if (setChangeListeners == null) {
-			return;
-		}
-		
-		if (setChangeListeners instanceof ISetChangeListener) {
-			((ISetChangeListener) setChangeListeners).handleSetChange(this, diff);
-			return;
-		}
-		
-		Collection changeListenerCollection = (Collection) setChangeListeners;
-		
-		ISetChangeListener[] listeners = (ISetChangeListener[]) (changeListenerCollection)
-		.toArray(new ISetChangeListener[changeListenerCollection.size()]);
-		for (int i = 0; i < listeners.length; i++) {
-			listeners[i].handleSetChange(this, diff);
-		}
-	}
-	
-	public boolean contains(Object o) {
-		getterCalled();
-		return getWrappedSet().contains(o);
-	}
-
-	public boolean containsAll(Collection c) {
-		getterCalled();
-		return getWrappedSet().containsAll(c);
-	}
-
-	public boolean equals(Object o) {
-		getterCalled();
-		return getWrappedSet().equals(o);
-	}
-
-	public int hashCode() {
-		getterCalled();
-		return getWrappedSet().hashCode();
-	}
-
-	public boolean isEmpty() {
-		getterCalled();
-		return getWrappedSet().isEmpty();
-	}
-
-	public Iterator iterator() {
-		final Iterator wrappedIterator = getWrappedSet().iterator();
-		return new Iterator() {
-
-			public void remove() {
-				throw new UnsupportedOperationException();
-			}
-
-			public boolean hasNext() {
-				ObservableTracker.getterCalled(AbstractObservableSet.this);
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				ObservableTracker.getterCalled(AbstractObservableSet.this);
-				return wrappedIterator.next();
-			}
-		};
-	}
-
-	public int size() {
-		getterCalled();
-		return getWrappedSet().size();
-	}
-
-	public Object[] toArray() {
-		getterCalled();
-		return getWrappedSet().toArray();
-	}
-
-	public Object[] toArray(Object[] a) {
-		getterCalled();
-		return getWrappedSet().toArray(a);
-	}
-
-	public String toString() {
-		getterCalled();
-		return getWrappedSet().toString();
-	}
-
-	protected void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-	public boolean add(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean addAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean remove(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean removeAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean retainAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void clear() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * @return Returns the stale state.
-	 */
-	public boolean isStale() {
-		return stale;
-	}
-
-	/**
-	 * @param stale
-	 *            The stale state to set. This will fire a stale event if the
-	 *            given boolean is true and this observable set was not already
-	 *            stale.
-	 */
-	public void setStale(boolean stale) {
-		boolean wasStale = this.stale;
-		this.stale = stale;
-		if (!wasStale && stale) {
-			fireStale();
-		}
-	}
-
-
-	protected void fireChange() {
-		throw new RuntimeException("fireChange should not be called, use fireSetChange() instead"); //$NON-NLS-1$
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.provisional.databinding.observable.AbstractObservable#dispose()
-	 */
-	public void dispose() {
-		setChangeListeners = null;
-		super.dispose();
-	}
-	
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/IObservableSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/IObservableSet.java
deleted file mode 100644
index 5c41d6b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/IObservableSet.java
+++ /dev/null
@@ -1,126 +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.databinding.observable.set;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.IObservableCollection;
-
-/**
- * A set whose changes can be tracked by set change listeners.
- * 
- * <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.0
- * 
- */
-public interface IObservableSet extends Set, IObservableCollection {
-
-	/**
-	 * @param listener
-	 */
-	public void addSetChangeListener(ISetChangeListener listener);
-
-	/**
-	 * @param listener
-	 */
-	public void removeSetChangeListener(ISetChangeListener listener);
-
-	/**
-	 * @return the element type
-	 */
-	public Object getElementType();
-
-	/**
-	 * @TrackedGetter
-	 */
-	int size();
-
-	/**
-	 * @TrackedGetter
-	 */
-	boolean isEmpty();
-
-	/**
-	 * @TrackedGetter
-	 */
-	boolean contains(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-	Iterator iterator();
-
-	/**
-	 * @TrackedGetter
-	 */
-	Object[] toArray();
-
-	/**
-	 * @TrackedGetter
-	 */
-	Object[] toArray(Object a[]);
-
-	// Modification Operations
-
-	/**
-	 * @TrackedGetter
-	 */
-	boolean add(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-	boolean remove(Object o);
-
-	// Bulk Operations
-
-	/**
-	 * @TrackedGetter
-	 */
-	boolean containsAll(Collection c);
-
-	/**
-	 * @TrackedGetter
-	 */
-	boolean addAll(Collection c);
-
-	/**
-	 * @TrackedGetter
-	 */
-	boolean retainAll(Collection c);
-
-	/**
-	 * @TrackedGetter
-	 */
-	boolean removeAll(Collection c);
-
-	// Comparison and hashing
-
-	/**
-	 * @TrackedGetter
-	 */
-	boolean equals(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-	int hashCode();
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ISetChangeListener.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ISetChangeListener.java
deleted file mode 100644
index b7c2d5b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ISetChangeListener.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.databinding.observable.set;
-
-
-/**
- * @since 1.0
- *
- */
-public interface ISetChangeListener {
-	
-	/**
-	 * @param source
-	 * @param diff
-	 */
-	void handleSetChange(IObservableSet source, SetDiff diff);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ListToSetAdapter.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ListToSetAdapter.java
deleted file mode 100644
index d827054..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ListToSetAdapter.java
+++ /dev/null
@@ -1,77 +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.databinding.observable.set;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.list.IListChangeListener;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.ListDiffEntry;
-
-/**
- * Observable set backed by an observable list. The wrapped list must not
- * contain duplicate elements.
- * 
- * @since 3.2
- * 
- */
-public class ListToSetAdapter extends ObservableSet {
-
-	private final IObservableList list;
-
-	private IListChangeListener listener = new IListChangeListener() {
-
-		public void handleListChange(IObservableList source, ListDiff diff) {
-			Set added = new HashSet();
-			Set removed = new HashSet();
-			ListDiffEntry[] differences = diff.getDifferences();
-			for (int i = 0; i < differences.length; i++) {
-				ListDiffEntry entry = differences[i];
-				Object element = entry.getElement();
-				if (entry.isAddition()) {
-					if (wrappedSet.add(element)) {
-						if (!removed.remove(element))
-							added.add(element);
-					}
-				} else {
-					if (wrappedSet.remove(element)) {
-						removed.add(element);
-						added.remove(element);
-					}
-				}
-			}
-			fireSetChange(Diffs.createSetDiff(added, removed));
-		}
-	};
-
-	/**
-	 * @param list
-	 */
-	public ListToSetAdapter(IObservableList list) {
-		super(new HashSet(), list.getElementType());
-		this.list = list;
-		wrappedSet.addAll(list);
-		this.list.addListChangeListener(listener);
-	}
-
-	public void dispose() {
-		super.dispose();
-		if (list != null && listener != null) {
-			list.removeListChangeListener(listener);
-			listener = null;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/MappedSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/MappedSet.java
deleted file mode 100644
index 0cb7036..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/MappedSet.java
+++ /dev/null
@@ -1,142 +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.databinding.observable.set;
-
-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 org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.internal.databinding.provisional.observable.mapping.IMappingChangeListener;
-import org.eclipse.jface.internal.databinding.provisional.observable.mapping.IObservableMapping;
-import org.eclipse.jface.internal.databinding.provisional.observable.mapping.MappingDiff;
-
-/**
- * @since 1.0
- * 
- */
-public class MappedSet extends ObservableSet {
-
-	private final IObservableMapping wrappedMapping;
-
-	/*
-	 * Map from values (range elements) to Integer ref counts
-	 */
-	private Map valueCounts = new HashMap();
-
-	private ISetChangeListener domainListener = new ISetChangeListener() {
-		public void handleSetChange(IObservableSet source, SetDiff diff) {
-			Set additions = new HashSet();
-			for (Iterator it = diff.getAdditions().iterator(); it.hasNext();) {
-				Object added = it.next();
-				Object mappingValue = wrappedMapping.getMappingValue(added);
-				if (handleAddition(mappingValue)) {
-					additions.add(mappingValue);
-				}
-			}
-			Set removals = new HashSet();
-			for (Iterator it = diff.getRemovals().iterator(); it.hasNext();) {
-				Object removed = it.next();
-				Object mappingValue = wrappedMapping.getMappingValue(removed);
-				if (handleRemoval(mappingValue)) {
-					removals.add(mappingValue);
-				}
-			}
-			fireSetChange(Diffs.createSetDiff(additions, removals));
-		}
-	};
-
-	private IMappingChangeListener mappingChangeListener = new IMappingChangeListener() {
-		public void handleMappingValueChange(IObservable source,
-				MappingDiff diff) {
-			Set affectedElements = diff.getElements();
-			Set additions = new HashSet();
-			Set removals = new HashSet();
-			for (Iterator it = affectedElements.iterator(); it.hasNext();) {
-				Object element = it.next();
-				Object oldFunctionValue = diff.getOldMappingValues(element,
-						new int[] { 0 })[0];
-				Object newFunctionValue = diff.getNewMappingValues(element,
-						new int[] { 0 })[0];
-				if (handleRemoval(oldFunctionValue)) {
-					removals.add(oldFunctionValue);
-				}
-				if (handleAddition(newFunctionValue)) {
-					additions.add(newFunctionValue);
-				}
-			}
-			fireSetChange(Diffs.createSetDiff(additions, removals));
-		}
-	};
-
-	private IObservableSet input;
-
-	/**
-	 * @param input
-	 * @param mapping
-	 */
-	public MappedSet(IObservableSet input, IObservableMapping mapping) {
-		super(Collections.EMPTY_SET, mapping.getValueType());
-		setWrappedSet(valueCounts.keySet());
-		this.wrappedMapping = mapping;
-		this.input = input;
-		for (Iterator it = input.iterator(); it.hasNext();) {
-			Object element = it.next();
-			Object functionValue = wrappedMapping.getMappingValue(element);
-			handleAddition(functionValue);
-		}
-		input.addSetChangeListener(domainListener);
-		mapping.addMappingChangeListener(mappingChangeListener);
-	}
-
-	/**
-	 * @param mappingValue
-	 * @return true if the given mappingValue was an addition
-	 */
-	protected boolean handleAddition(Object mappingValue) {
-		Integer count = (Integer) valueCounts.get(mappingValue);
-		if (count == null) {
-			valueCounts.put(mappingValue, new Integer(1));
-			return true;
-		}
-		valueCounts.put(mappingValue, new Integer(count.intValue() + 1));
-		return false;
-	}
-
-	/**
-	 * @param mappingValue
-	 * @return true if the given mappingValue has been removed
-	 */
-	protected boolean handleRemoval(Object mappingValue) {
-		Integer count = (Integer) valueCounts.get(mappingValue);
-		if (count.intValue() <= 1) {
-			valueCounts.remove(mappingValue);
-			return true;
-		}
-		valueCounts.put(mappingValue, new Integer(count.intValue() - 1));
-		return false;
-	}
-
-	public void dispose() {
-		wrappedMapping.removeMappingChangeListener(mappingChangeListener);
-		input.removeSetChangeListener(domainListener);
-	}
-
-	public Object getElementType() {
-		return wrappedMapping.getValueType();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ObservableSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ObservableSet.java
deleted file mode 100644
index 13662f7..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/ObservableSet.java
+++ /dev/null
@@ -1,256 +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.databinding.observable.set;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.AbstractObservable;
-import org.eclipse.jface.databinding.observable.ObservableTracker;
-
-/**
- * 
- * Abstract implementation of {@link IObservableSet}. 
- * 
- * @since 1.0
- * 
- */
-public abstract class ObservableSet extends AbstractObservable implements
-		IObservableSet {
-
-	protected Set wrappedSet;
-
-	private boolean stale = false;
-
-	private Object setChangeListeners;
-
-	protected Object elementType;
-
-	protected ObservableSet(Set wrappedSet, Object elementType) {
-		this.wrappedSet = wrappedSet;
-		this.elementType = elementType;
-	}
-
-	public void addSetChangeListener(ISetChangeListener listener) {
-		if (setChangeListeners == null) {
-			boolean hadListeners = hasListeners();
-			setChangeListeners = listener;
-			if (!hadListeners) {
-				firstListenerAdded();
-			}
-			return;
-		}
-
-		Collection listenerList;
-		if (setChangeListeners instanceof Collection) {
-			listenerList = (Collection) setChangeListeners;
-		} else {
-			ISetChangeListener l = (ISetChangeListener) setChangeListeners;
-			
-			listenerList = new ArrayList();
-			listenerList.add(l);
-			setChangeListeners = listenerList;
-		}
-
-		listenerList.add(listener);
-	}
-
-	public void removeSetChangeListener(ISetChangeListener listener) {
-
-		if (setChangeListeners == listener) {
-			setChangeListeners = null;
-			if (!hasListeners()) {
-				lastListenerRemoved();
-			}
-			return;
-		}
-
-		if (setChangeListeners instanceof Collection) {
-			Collection listenerList = (Collection) setChangeListeners;
-			listenerList.remove(listener);
-			if (listenerList.isEmpty()) {
-				setChangeListeners = null;
-				if (!hasListeners()) {
-					lastListenerRemoved();
-				}
-			}
-		}
-	}
-
-	/**
-	 * @return
-	 */
-	protected boolean hasListeners() {
-		return super.hasListeners() || setChangeListeners!=null;
-	}
-
-	protected void fireSetChange(SetDiff diff) {
-		// fire general change event first
-		super.fireChange();
-
-		if (setChangeListeners == null) {
-			return;
-		}
-		
-		if (setChangeListeners instanceof ISetChangeListener) {
-			((ISetChangeListener) setChangeListeners).handleSetChange(this, diff);
-			return;
-		}
-		
-		Collection changeListenerCollection = (Collection) setChangeListeners;
-		
-		ISetChangeListener[] listeners = (ISetChangeListener[]) (changeListenerCollection)
-		.toArray(new ISetChangeListener[changeListenerCollection.size()]);
-		for (int i = 0; i < listeners.length; i++) {
-			listeners[i].handleSetChange(this, diff);
-		}
-	}
-	
-	public boolean contains(Object o) {
-		getterCalled();
-		return wrappedSet.contains(o);
-	}
-
-	public boolean containsAll(Collection c) {
-		getterCalled();
-		return wrappedSet.containsAll(c);
-	}
-
-	public boolean equals(Object o) {
-		getterCalled();
-		return wrappedSet.equals(o);
-	}
-
-	public int hashCode() {
-		getterCalled();
-		return wrappedSet.hashCode();
-	}
-
-	public boolean isEmpty() {
-		getterCalled();
-		return wrappedSet.isEmpty();
-	}
-
-	public Iterator iterator() {
-		final Iterator wrappedIterator = wrappedSet.iterator();
-		return new Iterator() {
-
-			public void remove() {
-				throw new UnsupportedOperationException();
-			}
-
-			public boolean hasNext() {
-				ObservableTracker.getterCalled(ObservableSet.this);
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				ObservableTracker.getterCalled(ObservableSet.this);
-				return wrappedIterator.next();
-			}
-		};
-	}
-
-	public int size() {
-		getterCalled();
-		return wrappedSet.size();
-	}
-
-	public Object[] toArray() {
-		getterCalled();
-		return wrappedSet.toArray();
-	}
-
-	public Object[] toArray(Object[] a) {
-		getterCalled();
-		return wrappedSet.toArray(a);
-	}
-
-	public String toString() {
-		getterCalled();
-		return wrappedSet.toString();
-	}
-
-	protected void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-	public boolean add(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean addAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean remove(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean removeAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean retainAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void clear() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * @return Returns the stale state.
-	 */
-	public boolean isStale() {
-		return stale;
-	}
-
-	/**
-	 * @param stale
-	 *            The stale state to set. This will fire a stale event if the
-	 *            given boolean is true and this observable set was not already
-	 *            stale.
-	 */
-	public void setStale(boolean stale) {
-		boolean wasStale = this.stale;
-		this.stale = stale;
-		if (!wasStale && stale) {
-			fireStale();
-		}
-	}
-
-	/**
-	 * @param wrappedSet The wrappedSet to set.
-	 */
-	protected void setWrappedSet(Set wrappedSet) {
-		this.wrappedSet = wrappedSet;
-	}
-
-	protected void fireChange() {
-		throw new RuntimeException("fireChange should not be called, use fireSetChange() instead"); //$NON-NLS-1$
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.provisional.databinding.observable.AbstractObservable#dispose()
-	 */
-	public void dispose() {
-		setChangeListeners = null;
-		super.dispose();
-	}
-	
-	public Object getElementType() {
-		return elementType;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/SetDiff.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/SetDiff.java
deleted file mode 100644
index 910d1c7..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/SetDiff.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.observable.set;
-
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.IDiff;
-
-/**
- * @since 1.0
- *
- */
-public abstract class SetDiff implements IDiff {
-	
-	/**
-	 * @return the set of added elements
-	 */
-	public abstract Set getAdditions();
-	
-	/**
-	 * @return the set of removed elements
-	 */
-	public abstract Set getRemovals();
-	
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer
-			.append(getClass().getName())
-			.append("{additions [") //$NON-NLS-1$
-			.append(getAdditions() != null ? getAdditions().toString() : "null") //$NON-NLS-1$
-			.append("], removals [") //$NON-NLS-1$
-			.append(getRemovals() != null ? getRemovals().toString() : "null") //$NON-NLS-1$
-			.append("]}"); //$NON-NLS-1$
-		
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/UnionSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/UnionSet.java
deleted file mode 100644
index 70a3769..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/UnionSet.java
+++ /dev/null
@@ -1,201 +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.databinding.observable.set;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.internal.databinding.internal.observable.IStalenessConsumer;
-import org.eclipse.jface.internal.databinding.internal.observable.StalenessTracker;
-
-/**
- * Represents a set consisting of the union of elements from one or more other
- * sets. This object does not need to be explicitly disposed. If nobody is
- * listening to the UnionSet, the set will remove its listeners.
- * 
- * @since 1.0
- */
-public final class UnionSet extends ObservableSet {
-
-	/**
-	 * child sets
-	 */
-	private IObservableSet[] childSets;
-
-	private boolean stale = false;
-
-	/**
-	 * Map of elements onto Integer reference counts. This map is constructed
-	 * when the first listener is added to the union set. Null if nobody is
-	 * listening to the UnionSet.
-	 */
-	private HashMap refCounts = null;
-
-	private StalenessTracker stalenessTracker;
-
-	/**
-	 * @param childSets
-	 */
-	public UnionSet(IObservableSet[] childSets) {
-		super(null, childSets[0].getElementType());
-		this.childSets = childSets;
-		this.stalenessTracker = new StalenessTracker(childSets,
-				stalenessConsumer);
-	}
-
-	private ISetChangeListener childSetChangeListener = new ISetChangeListener() {
-		public void handleSetChange(IObservableSet source, SetDiff diff) {
-			processAddsAndRemoves(diff.getAdditions(), diff.getRemovals());
-		}
-	};
-
-	private IStalenessConsumer stalenessConsumer = new IStalenessConsumer() {
-		public void setStale(boolean stale) {
-			boolean oldStale = UnionSet.this.stale;
-			UnionSet.this.stale = stale;
-			if (stale && !oldStale) {
-				fireStale();
-			}
-		}
-	};
-
-	public boolean isStale() {
-		if (refCounts != null) {
-			return stale;
-		}
-
-		for (int i = 0; i < childSets.length; i++) {
-			IObservableSet childSet = childSets[i];
-
-			if (childSet.isStale()) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private void processAddsAndRemoves(Set adds, Set removes) {
-		Set addsToFire = new HashSet();
-		Set removesToFire = new HashSet();
-
-		for (Iterator iter = adds.iterator(); iter.hasNext();) {
-			Object added = iter.next();
-
-			Integer refCount = (Integer) refCounts.get(added);
-			if (refCount == null) {
-				refCounts.put(added, new Integer(1));
-				addsToFire.add(added);
-			} else {
-				int refs = refCount.intValue();
-				refCount = new Integer(refs + 1);
-				refCounts.put(added, refCount);
-			}
-		}
-
-		for (Iterator iter = removes.iterator(); iter.hasNext();) {
-			Object removed = iter.next();
-
-			Integer refCount = (Integer) refCounts.get(removed);
-			if (refCount != null) {
-				int refs = refCount.intValue();
-				if (refs <= 1) {
-					removesToFire.add(removed);
-					refCounts.remove(removed);
-				} else {
-					refCount = new Integer(refCount.intValue() - 1);
-					refCounts.put(removed, refCount);
-				}
-			}
-		}
-
-		// just in case the removes overlapped with the adds
-		addsToFire.removeAll(removesToFire);
-
-		if (addsToFire.size() > 0 || removesToFire.size() > 0) {
-			fireSetChange(Diffs.createSetDiff(addsToFire, removesToFire));
-		}
-	}
-
-	protected void firstListenerAdded() {
-		super.firstListenerAdded();
-
-		refCounts = new HashMap();
-		for (int i = 0; i < childSets.length; i++) {
-			IObservableSet next = childSets[i];
-			next.addSetChangeListener(childSetChangeListener);
-			incrementRefCounts(next);
-		}
-		stalenessTracker = new StalenessTracker(childSets, stalenessConsumer);
-		setWrappedSet(refCounts.keySet());
-	}
-
-	protected void lastListenerRemoved() {
-		super.lastListenerRemoved();
-
-		for (int i = 0; i < childSets.length; i++) {
-			IObservableSet next = childSets[i];
-
-			next.removeSetChangeListener(childSetChangeListener);
-			stalenessTracker.removeObservable(next);
-		}
-		refCounts = null;
-		stalenessTracker = null;
-		setWrappedSet(null);
-	}
-
-	private ArrayList incrementRefCounts(Collection added) {
-		ArrayList adds = new ArrayList();
-
-		for (Iterator iter = added.iterator(); iter.hasNext();) {
-			Object next = iter.next();
-
-			Integer refCount = (Integer) refCounts.get(next);
-			if (refCount == null) {
-				adds.add(next);
-				refCount = new Integer(1);
-				refCounts.put(next, refCount);
-			} else {
-				refCount = new Integer(refCount.intValue() + 1);
-				refCounts.put(next, refCount);
-			}
-		}
-		return adds;
-	}
-
-	protected void getterCalled() {
-		super.getterCalled();
-		if (refCounts == null) {
-			// no listeners, recompute
-			setWrappedSet(computeElements());
-		}
-	}
-
-	private Set computeElements() {
-		// If there is no cached value, compute the union from scratch
-		if (refCounts == null) {
-			Set result = new HashSet();
-			for (int i = 0; i < childSets.length; i++) {
-				result.addAll(childSets[i]);
-			}
-			return result;
-		}
-
-		// Else there is a cached value. Return it.
-		return refCounts.keySet();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/WritableSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/WritableSet.java
deleted file mode 100644
index 2a15061..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/WritableSet.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.jface.databinding.observable.set;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-
-/**
- * @since 1.0
- * 
- */
-public class WritableSet extends ObservableSet {
-
-	/**
-	 * @param wrappedSet
-	 */
-	public WritableSet() {
-		this(Object.class);
-	}
-
-	/**
-	 * @param c
-	 */
-	public WritableSet(Collection c) {
-		this(c, Object.class);
-	}
-
-	/**
-	 * @param c
-	 * @param elementType 
-	 */
-	public WritableSet(Collection c, Object elementType) {
-		super(new HashSet(c), elementType);
-		this.elementType = elementType;
-	}
-
-	/**
-	 * @param elementType
-	 */
-	public WritableSet(Object elementType) {
-		super(new HashSet(), elementType);
-	}
-
-	public boolean add(Object o) {
-		boolean added = wrappedSet.add(o);
-		if (added) {
-			fireSetChange(Diffs.createSetDiff(Collections.singleton(o), Collections.EMPTY_SET));
-		}
-		return added;
-	}
-
-	public boolean addAll(Collection c) {
-		Set adds = new HashSet();
-		Iterator it = c.iterator();
-		while (it.hasNext()) {
-			Object element = it.next();
-			if (wrappedSet.add(element)) {
-				adds.add(element);
-			}
-		}
-		if (adds.size() > 0) {
-			fireSetChange(Diffs.createSetDiff(adds, Collections.EMPTY_SET));
-			return true;
-		}
-		return false;
-	}
-
-	public boolean remove(Object o) {
-		boolean removed = wrappedSet.remove(o);
-		if (removed) {
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, Collections
-					.singleton(o)));
-		}
-		return removed;
-	}
-
-	public boolean removeAll(Collection c) {
-		Set removes = new HashSet();
-		Iterator it = c.iterator();
-		while (it.hasNext()) {
-			Object element = it.next();
-			if (wrappedSet.remove(element)) {
-				removes.add(element);
-			}
-		}
-		if (removes.size() > 0) {
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removes));
-			return true;
-		}
-		return false;
-	}
-
-	public boolean retainAll(Collection c) {
-		Set removes = new HashSet();
-		Iterator it = wrappedSet.iterator();
-		while (it.hasNext()) {
-			Object element = it.next();
-			if (!c.contains(element)) {
-				it.remove();
-				removes.add(element);
-			}
-		}
-		if (removes.size() > 0) {
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removes));
-			return true;
-		}
-		return false;
-	}
-
-	public void clear() {
-		Set removes = new HashSet(wrappedSet);
-		wrappedSet.clear();
-		fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removes));
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/AbstractObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/AbstractObservableValue.java
deleted file mode 100644
index 5a8f52f..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/AbstractObservableValue.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.jface.databinding.observable.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.jface.databinding.observable.AbstractObservable;
-import org.eclipse.jface.databinding.observable.ObservableTracker;
-
-/**
- * @since 1.0
- * 
- */
-abstract public class AbstractObservableValue extends AbstractObservable
-		implements IObservableValue {
-
-	private Collection valueChangeListeners = null;
-
-	public void addValueChangeListener(IValueChangeListener listener) {
-		if (valueChangeListeners == null) {
-			boolean hadListeners = hasListeners();
-			valueChangeListeners = new ArrayList();
-			valueChangeListeners.add(listener);
-			if (!hadListeners) {
-				firstListenerAdded();
-			}
-		} else {
-			valueChangeListeners.add(listener);
-		}
-	}
-
-	public void removeValueChangeListener(IValueChangeListener listener) {
-		if (valueChangeListeners == null) {
-			return;
-		}
-		valueChangeListeners.remove(listener);
-		if (valueChangeListeners.isEmpty()) {
-			valueChangeListeners = null;
-		}
-		if (!hasListeners()) {
-			lastListenerRemoved();
-		}
-	}
-
-	public void setValue(Object value) {
-		throw new UnsupportedOperationException();
-	}
-
-	protected void fireValueChange(ValueDiff diff) {
-		// fire general change event first
-		super.fireChange();
-		if (valueChangeListeners != null) {
-			IValueChangeListener[] listeners = (IValueChangeListener[]) valueChangeListeners
-					.toArray(new IValueChangeListener[valueChangeListeners
-							.size()]);
-			for (int i = 0; i < listeners.length; i++) {
-				listeners[i].handleValueChange(this, diff);
-			}
-		}
-	}
-
-	public final Object getValue() {
-		ObservableTracker.getterCalled(this);
-		return doGetValue();
-	}
-
-	abstract protected Object doGetValue();
-
-	public boolean isStale() {
-		return false;
-	}
-
-	/**
-	 * @return
-	 */
-	protected boolean hasListeners() {
-		return super.hasListeners() || valueChangeListeners != null;
-	}
-
-	protected void fireChange() {
-		throw new RuntimeException(
-				"fireChange should not be called, use fireValueChange() instead"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.provisional.databinding.observable.AbstractObservable#dispose()
-	 */
-	public void dispose() {
-		valueChangeListeners = null;
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/AbstractVetoableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/AbstractVetoableValue.java
deleted file mode 100644
index 4b19fa1..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/AbstractVetoableValue.java
+++ /dev/null
@@ -1,97 +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.databinding.observable.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-
-/**
- * @since 1.0
- * 
- */
-public abstract class AbstractVetoableValue extends AbstractObservableValue
-		implements IVetoableValue {
-
-	public void setValue(Object value) {
-		Object currentValue = doGetValue();
-		ValueDiff diff = Diffs.createValueDiff(currentValue, value);
-		boolean okToProceed = fireValueChanging(diff);
-		if (!okToProceed) {
-			throw new ChangeVetoException("Change not permitted"); //$NON-NLS-1$
-		}
-		doSetValue(value);
-		fireValueChange(diff);
-	}
-
-	private Collection valueChangingListeners = null;
-
-	public void addValueChangingListener(IValueChangingListener listener) {
-		if (valueChangingListeners == null) {
-			boolean hadListeners = hasListeners();
-			valueChangingListeners = new ArrayList();
-			valueChangingListeners.add(listener);
-			if (!hadListeners) {
-				firstListenerAdded();
-			}
-		} else {
-			valueChangingListeners.add(listener);
-		}
-	}
-
-	public void removeValueChangingListener(IValueChangingListener listener) {
-		if (valueChangingListeners == null) {
-			return;
-		}
-		valueChangingListeners.remove(listener);
-		if (valueChangingListeners.isEmpty()) {
-			valueChangingListeners = null;
-		}
-		if (!hasListeners()) {
-			lastListenerRemoved();
-		}
-	}
-
-	/**
-	 * Notifies listeners about a pending change, and returns true if no
-	 * listener vetoed the change.
-	 * 
-	 * @param diff
-	 * @return false if the change was vetoed, true otherwise
-	 */
-	protected boolean fireValueChanging(ValueDiff diff) {
-		if (valueChangingListeners != null) {
-			IValueChangingListener[] listeners = (IValueChangingListener[]) valueChangingListeners
-					.toArray(new IValueChangingListener[valueChangingListeners
-							.size()]);
-			for (int i = 0; i < listeners.length; i++) {
-				boolean okToProceed = listeners[i].handleValueChanging(this,
-						diff);
-				if (!okToProceed) {
-					return false;
-				}
-			}
-		}
-		return true;
-	}
-
-	protected abstract void doSetValue(Object value);
-
-	protected boolean hasListeners() {
-		return super.hasListeners();
-	}
-
-	public void dispose() {
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ChangeVetoException.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ChangeVetoException.java
deleted file mode 100644
index a6192e7..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ChangeVetoException.java
+++ /dev/null
@@ -1,28 +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.databinding.observable.value;
-
-/**
- * @since 1.0
- *
- */
-public class ChangeVetoException extends RuntimeException {
-	
-	/**
-	 * @param string
-	 */
-	public ChangeVetoException(String string) {
-		super(string);
-	}
-
-	private static final long serialVersionUID = 1L;
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ComputedValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ComputedValue.java
deleted file mode 100644
index 69bac8d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ComputedValue.java
+++ /dev/null
@@ -1,185 +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.databinding.observable.value;
-
-import org.eclipse.jface.databinding.observable.IChangeListener;
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.IStaleListener;
-import org.eclipse.jface.databinding.observable.ObservableTracker;
-
-/**
- * A Lazily calculated value that automatically computes and registers listeners
- * on its dependencies as long as all of its dependencies are IObservable
- * objects
- * 
- * @since 1.0
- */
-public abstract class ComputedValue extends AbstractObservableValue {
-
-	private boolean dirty = true;
-
-	private boolean stale = false;
-
-	private Object cachedValue = null;
-
-	/**
-	 * Dependencies list. This is a collection that contains no duplicates. It
-	 * is normally an ArrayList to conserve memory, but if it ever grows above a
-	 * certain number of elements, a HashSet is substited to conserve runtime.
-	 */
-	private IObservable[] dependencies = new IObservable[0];
-
-	/**
-	 * 
-	 */
-	public ComputedValue() {
-		this(Object.class);
-	}
-
-	/**
-	 * @param valueType
-	 */
-	public ComputedValue(Object valueType) {
-		this.valueType = valueType;
-	}
-
-	/**
-	 * Inner class that implements interfaces that we don't want to expose as
-	 * public API. Each interface could have been implemented using a separate
-	 * anonymous class, but we combine them here to reduce the memory overhead
-	 * and number of classes.
-	 * 
-	 * <p>
-	 * The Runnable calls computeValue and stores the result in cachedValue.
-	 * </p>
-	 * 
-	 * <p>
-	 * The IUpdatableListener stores each updatable in the dependencies list.
-	 * This is registered as the listener when calling ObservableTracker, to
-	 * detect every updatable that is used by computeValue.
-	 * </p>
-	 * 
-	 * <p>
-	 * The IChangeListener is attached to every dependency.
-	 * </p>
-	 * 
-	 */
-	private class PrivateInterface implements Runnable, IChangeListener,
-			IStaleListener {
-		public void run() {
-			cachedValue = calculate();
-		}
-
-		public void handleStale(IObservable source) {
-			if (!dirty && !stale) {
-				stale = true;
-				fireStale();
-			}
-		}
-
-		public void handleChange(IObservable source) {
-			makeDirty();
-		}
-	}
-
-	private PrivateInterface privateInterface = new PrivateInterface();
-
-	private Object valueType;
-
-	public final Object doGetValue() {
-		if (dirty) {
-			// This line will do the following:
-			// - Run the computeValue method
-			// - While doing so, add any updatable that is touched to the
-			// dependencies list
-			IObservable[] newDependencies = ObservableTracker.runAndMonitor(
-					privateInterface, privateInterface, null);
-
-			stale = false;
-			for (int i = 0; i < newDependencies.length; i++) {
-				IObservable observable = newDependencies[i];
-				// Add a change listener to the new dependency.
-				if (observable.isStale()) {
-					stale = true;
-				} else {
-					observable.addStaleListener(privateInterface);
-				}
-			}
-
-			dependencies = newDependencies;
-
-			dirty = false;
-		}
-
-		return cachedValue;
-	}
-
-	/**
-	 * Subclasses must override this method to provide the object's value.
-	 * 
-	 * @return the object's value
-	 */
-	protected abstract Object calculate();
-
-	protected final void makeDirty() {
-		if (!dirty) {
-			dirty = true;
-
-			// Stop listening for dependency changes.
-			for (int i = 0; i < dependencies.length; i++) {
-				IObservable observable = dependencies[i];
-
-				observable.removeChangeListener(privateInterface);
-				observable.removeStaleListener(privateInterface);
-			}
-
-			// copy the old value
-			final Object oldValue = cachedValue;
-			// Fire the "dirty" event. This implementation recomputes the new
-			// value lazily.
-			fireValueChange(new ValueDiff() {
-
-				public Object getOldValue() {
-					return oldValue;
-				}
-
-				public Object getNewValue() {
-					return getValue();
-				}
-			});
-		}
-	}
-
-	public boolean isStale() {
-		// we need to recompute, otherwise staleness wouldn't mean anything
-		getValue();
-		return stale;
-	}
-
-	public Object getValueType() {
-		return valueType;
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-		super.addChangeListener(listener);
-		// If somebody is listening, we need to make sure we attach our own
-		// listeners
-		getValue();
-	}
-
-	public void addValueChangeListener(IValueChangeListener listener) {
-		super.addValueChangeListener(listener);
-		// If somebody is listening, we need to make sure we attach our own
-		// listeners
-		getValue();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IObservableValue.java
deleted file mode 100644
index da1644e..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IObservableValue.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.jface.databinding.observable.value;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-
-/**
- * A value whose changes can be tracked by value change listeners.
- * 
- * <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.0
- * 
- */
-public interface IObservableValue extends IObservable {
-
-	/**
-	 * The value type of this observable value, or <code>null</code> if this
-	 * observable value is untyped.
-	 * 
-	 * @return the value type, or <code>null</null>
-	 */
-	public Object getValueType();
-
-	/**
-	 * @return the current value
-	 * @TrackedGetter
-	 */
-	public Object getValue();
-
-	/**
-	 * @param value
-	 *            the value to set
-	 * @throws UnsupportedOperationException
-	 *             if this observable value cannot be set.
-	 */
-	public void setValue(Object value);
-
-	/**
-	 * 
-	 * @param listener
-	 */
-	public void addValueChangeListener(IValueChangeListener listener);
-
-	/**
-	 * @param listener
-	 */
-	public void removeValueChangeListener(IValueChangeListener listener);
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IValueChangeListener.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IValueChangeListener.java
deleted file mode 100644
index c199cd0..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IValueChangeListener.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.jface.databinding.observable.value;
-
-/**
- * @since 1.0
- * 
- */
-public interface IValueChangeListener {
-
-	/**
-	 * @param source
-	 * @param diff
-	 */
-	void handleValueChange(IObservableValue source, ValueDiff diff);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IValueChangingListener.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IValueChangingListener.java
deleted file mode 100644
index 8e5bebc..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IValueChangingListener.java
+++ /dev/null
@@ -1,29 +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.databinding.observable.value;
-
-/**
- * @since 1.0
- * 
- */
-public interface IValueChangingListener {
-
-	/**
-	 * This method is called when the value is about to change and provides an
-	 * opportunity to veto the change.
-	 * 
-	 * @param source
-	 * @param diff
-	 * @return false if this listener is vetoing the change, true otherwise
-	 */
-	public boolean handleValueChanging(IVetoableValue source, ValueDiff diff);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IVetoableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IVetoableValue.java
deleted file mode 100644
index 62b78fc..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/IVetoableValue.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.databinding.observable.value;
-
-/**
- * An observable value whose changes can be vetoed by listeners.
- * 
- * <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.0
- *
- */
-public interface IVetoableValue extends IObservableValue {
-	
-	/**
-	 * @param listener
-	 */
-	public void addValueChangingListener(IValueChangingListener listener);
-	
-	/**
-	 * @param listener
-	 */
-	public void removeValueChangingListener(IValueChangingListener listener);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ValueDiff.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ValueDiff.java
deleted file mode 100644
index 3043b5a..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/ValueDiff.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.databinding.observable.value;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.IDiff;
-
-/**
- * @since 1.0
- * 
- */
-public abstract class ValueDiff implements IDiff {
-	/**
-	 * Creates a value diff.
-	 */
-	public ValueDiff() {
-	}
-
-	/**
-	 * @return the old value
-	 */
-	public abstract Object getOldValue();
-
-	/**
-	 * @return the new value
-	 */
-	public abstract Object getNewValue();
-
-	public boolean equals(Object obj) {
-		if (obj instanceof ValueDiff) {
-			ValueDiff val = (ValueDiff) obj;
-
-			return Diffs.equals(val.getNewValue(), getNewValue())
-					&& Diffs.equals(val.getOldValue(), getOldValue());
-
-		}
-		return false;
-	}
-		
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		Object nv = getNewValue();
-		Object ov = getOldValue();
-		result = prime * result + ((nv == null) ? 0 : nv.hashCode());
-		result = prime * result + ((ov == null) ? 0 : ov.hashCode());
-		return result;
-	}
-
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer
-			.append(getClass().getName())
-			.append("{oldValue [") //$NON-NLS-1$
-			.append(getOldValue() != null ? getOldValue().toString() : "null") //$NON-NLS-1$
-			.append("], newValue [") //$NON-NLS-1$
-			.append(getNewValue() != null ? getNewValue().toString() : "null") //$NON-NLS-1$
-			.append("]}"); //$NON-NLS-1$
-		
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/WritableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/WritableValue.java
deleted file mode 100644
index d109891..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/value/WritableValue.java
+++ /dev/null
@@ -1,76 +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
- *     Brad Reynolds - bug 158687
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.observable.value;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-
-/**
- * @since 1.0
- * 
- */
-public class WritableValue extends AbstractObservableValue {
-
-	private final Object valueType;
-
-	/**
-	 * @param initialValue
-	 */
-	public WritableValue(Object initialValue) {
-		this(null, initialValue);
-	}
-
-	/**
-	 * @param type
-	 */
-	public WritableValue(Class type) {
-		this(type, null);
-	}
-
-	/**
-	 * @param valueType
-	 * @param initialValue
-	 */
-	public WritableValue(Object valueType, Object initialValue) {
-		this.valueType = valueType;
-		this.value = initialValue;
-	}
-
-	private Object value = null;
-
-	public Object doGetValue() {
-		return value;
-	}
-
-	/**
-	 * @param value
-	 *            The value to set.
-	 */
-	public void setValue(Object value) {
-        boolean changed = false;
-
-        if (this.value == null && value != null) {
-            changed = true;
-        } else if (this.value != null && !this.value.equals(value)) {
-            changed = true;
-        }
-
-        if (changed) {
-            fireValueChange(Diffs.createValueDiff(this.value, this.value = value));
-        }
-	}
-
-	public Object getValueType() {
-		return valueType;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/util/ILogger.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/util/ILogger.java
deleted file mode 100644
index b30f275..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/util/ILogger.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:
- *     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.databinding.util;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A mechanism to log errors throughout JFace Data Binding.
- * <p>
- * Clients may provide their own implementation to change how errors are logged
- * from within JFace Data Binding.
- * </p>
- * 
- * @see org.eclipse.jface.util.Policy#getLog()
- * @see org.eclipse.jface.util.Policy#setLog(ILogger)
- * @since 1.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.databinding/src/org/eclipse/jface/databinding/util/Policy.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/util/Policy.java
deleted file mode 100644
index 2e53567..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/util/Policy.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
- *     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.databinding.util;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * The Policy class handles settings for behaviour, debug flags and logging
- * within JFace Data Binding.
- * 
- * @since 1.1
- */
-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_DATABINDING = "org.eclipse.jface.databinding";//$NON-NLS-1$
-
-	private static ILogger log;
-
-	/**
-	 * 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());
-			}
-		};
-	}
-
-	/**
-	 * Sets the logger used by JFace Data Binding to log errors.
-	 * 
-	 * @param logger
-	 *            the logger to use, or <code>null</code> to use the default
-	 *            logger
-	 */
-	public static void setLog(ILogger logger) {
-		log = logger;
-	}
-
-	/**
-	 * Returns the logger used by JFace Data Binding to log errors.
-	 * <p>
-	 * The default logger prints the status to <code>System.err</code>.
-	 * </p>
-	 * 
-	 * @return the logger
-	 */
-	public static ILogger getLog() {
-		if (log == null) {
-			log = getDummyLog();
-		}
-		return log;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/BindingMessages.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/BindingMessages.java
deleted file mode 100644
index a23e766..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/BindingMessages.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.jface.internal.databinding.internal;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * @since 1.0
- * 
- */
-public class BindingMessages {
-
-	/**
-	 * The Binding resource bundle; eagerly initialized.
-	 */
-	private static final ResourceBundle bundle = ResourceBundle
-			.getBundle("org.eclipse.jface.internal.databinding.internal.messages"); //$NON-NLS-1$
-
-	/**
-	 * Returns the resource object with the given key in the resource bundle for
-	 * JFace Data Binding. 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;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ClassLookupSupport.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ClassLookupSupport.java
deleted file mode 100644
index 35f0ce5..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ClassLookupSupport.java
+++ /dev/null
@@ -1,90 +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.databinding.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-/**
- * @since 1.0
- *
- */
-public class ClassLookupSupport {
-	
-	/*
-	 * code copied from AdapterManager.java
-	 */
-	private static HashMap classSearchOrderLookup;
-
-	/**
-	 * For a given class or interface, return an array containing the given type and all its direct and indirect supertypes.
-	 * @param type
-	 * @return
-	 */
-	public static Class[] getTypeHierarchyFlattened(Class type) {
-		List classes = null;
-		//cache reference to lookup to protect against concurrent flush
-		HashMap lookup = classSearchOrderLookup;
-		if (lookup != null)
-			classes = (List) lookup.get(type);
-		// compute class order only if it hasn't been cached before
-		if (classes == null) {
-			classes = new ArrayList();
-			computeClassOrder(type, classes);
-			if (lookup == null)
-				classSearchOrderLookup = lookup = new HashMap();
-			lookup.put(type, classes);
-		}
-		return (Class[]) classes.toArray(new Class[classes.size()]);
-	}
-
-	/**
-	 * Builds and returns a table of adapters for the given adaptable type.
-	 * The table is keyed by adapter class name. The
-	 * value is the <b>sole<b> factory that defines that adapter. Note that
-	 * if multiple adapters technically define the same property, only the
-	 * first found in the search order is considered.
-	 * 
-	 * Note that it is important to maintain a consistent class and interface
-	 * lookup order. See the class comment for more details.
-	 */
-	private static void computeClassOrder(Class adaptable, Collection classes) {
-		Class clazz = adaptable;
-		Set seen = new HashSet(4);
-		while (clazz != null) {
-			classes.add(clazz);
-			computeInterfaceOrder(clazz.getInterfaces(), classes, seen);
-			clazz = clazz.getSuperclass();
-		}
-	}
-
-	private static void computeInterfaceOrder(Class[] interfaces, Collection classes, Set seen) {
-		List newInterfaces = new ArrayList(interfaces.length);
-		for (int i = 0; i < interfaces.length; i++) {
-			Class interfac = interfaces[i];
-			if (seen.add(interfac)) {
-				//note we cannot recurse here without changing the resulting interface order
-				classes.add(interfac);
-				newInterfaces.add(interfac);
-			}
-		}
-		for (Iterator it = newInterfaces.iterator(); it.hasNext();)
-			computeInterfaceOrder(((Class) it.next()).getInterfaces(), classes, seen);
-	}
-
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/IdentityWrapper.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/IdentityWrapper.java
deleted file mode 100644
index 28231b0..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/IdentityWrapper.java
+++ /dev/null
@@ -1,50 +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
- *     Daniel Kruegler - bug 137435
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.internal;
-
-/**
- * Used for wrapping objects that define their own implementations of equals()
- * and hashCode() when putting them in sets or hashmaps to ensure identity
- * comparison.
- * 
- * @since 1.0
- * 
- */
-public class IdentityWrapper {
-	final Object o;
-
-	/**
-	 * @param o
-	 */
-	public IdentityWrapper(Object o) {
-		this.o = o;
-	}
-	
-	/**
-	 * @return the unwrapped object
-	 */
-	public Object unwrap() {
-		return o;
-	}
-
-	public boolean equals(Object obj) {
-		if (obj == null || obj.getClass() != IdentityWrapper.class) {
-			return false;
-		}
-		return o == ((IdentityWrapper) obj).o;
-	}
-
-	public int hashCode() {
-		return System.identityHashCode(o);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/LazyListBinding.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/LazyListBinding.java
deleted file mode 100644
index aa4ecc2..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/LazyListBinding.java
+++ /dev/null
@@ -1,494 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.internal.databinding.internal;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jface.databinding.observable.IChangeListener;
-import org.eclipse.jface.databinding.observable.IStaleListener;
-import org.eclipse.jface.databinding.observable.list.IListChangeListener;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.ListDiffEntry;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.WritableValue;
-import org.eclipse.jface.internal.databinding.provisional.BindSpec;
-import org.eclipse.jface.internal.databinding.provisional.Binding;
-import org.eclipse.jface.internal.databinding.provisional.BindingEvent;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyDeleteEvent;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertEvent;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor.NewObject;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * A binding for pairs of things that operate in a lazy but synchronous manner.
- * This binding purely synchronizes two list-like things where the target side
- * operates in an event-driven manner and the model side operates in a random-
- * access manner.
- * <p>
- * Unlike other list bindings, this binding does <strong>not</strong> attempt
- * to notify observers when the contents of the individual elements inside the 
- * lists change, but only when the lists themselves receive new elements or 
- * have elements removed.
- */
-public class LazyListBinding extends Binding implements ILazyListElementProvider {
-
-	private boolean updating = false;
-
-	private final ILazyDataRequestor targetList;
-	private ILazyListElementProvider modelList;
-
-	private LazyInsertDeleteProvider lazyInsertDeleteProvider;
-
-	private class DelegatingInsertDeleteProvider extends LazyInsertDeleteProvider {
-		private LazyInsertDeleteProvider localLazyInsertDeleteProvider;
-		
-		/**
-		 * @param parent
-		 */
-		public DelegatingInsertDeleteProvider(LazyInsertDeleteProvider parent) {
-			this.localLazyInsertDeleteProvider = parent;
-		}
-		
-		public NewObject insertElementAt(LazyInsertEvent insertEvent) {
-			NewObject newObject;
-			try {
-				updating = true;
-				BindingEvent e = new BindingEvent(modelList, targetList, null,
-						org.eclipse.jface.databinding.BindingEvent.EVENT_LAZY_INSERT,
-						org.eclipse.jface.databinding.BindingEvent.PIPELINE_AFTER_GET);
-				e.originalValue = insertEvent;
-				if (failure(errMsg(fireBindingEvent(e)))) {
-					return null;
-				}
-				
-				newObject = localLazyInsertDeleteProvider.insertElementAt(insertEvent);
-				
-				e.pipelinePosition = org.eclipse.jface.databinding.BindingEvent.PIPELINE_AFTER_CHANGE;
-				failure(errMsg(fireBindingEvent(e)));
-			} finally {
-				updating = false;
-			}
-			if (newObject != null) {
-				fetchNewIterator();
-			}
-			return newObject;
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider#canDeleteElementAt(org.eclipse.jface.internal.databinding.provisional.observable.LazyDeleteEvent)
-		 */
-		public boolean canDeleteElementAt(LazyDeleteEvent e) {
-			return localLazyInsertDeleteProvider.canDeleteElementAt(e);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider#deleteElementAt(org.eclipse.jface.internal.databinding.provisional.observable.LazyDeleteEvent)
-		 */
-		public void deleteElementAt(LazyDeleteEvent deleteEvent) {
-			try {
-				updating = true;
-				BindingEvent e = new BindingEvent(modelList, targetList, null,
-						org.eclipse.jface.databinding.BindingEvent.EVENT_LAZY_DELETE,
-						org.eclipse.jface.databinding.BindingEvent.PIPELINE_AFTER_GET);
-				e.originalValue = deleteEvent;
-				failure(errMsg(fireBindingEvent(e)));
-
-				localLazyInsertDeleteProvider.deleteElementAt(deleteEvent);
-				
-				e.pipelinePosition = org.eclipse.jface.databinding.BindingEvent.PIPELINE_AFTER_CHANGE;
-				failure(errMsg(fireBindingEvent(e)));
-			} finally {
-				updating = false;
-			}
-			fetchNewIterator();
-		}
-	}
-	
-	/**
-	 * @param context
-	 * @param targetList
-	 * @param target
-	 * @param modelList
-	 * @param model
-	 * @param bindSpec
-	 */
-	public LazyListBinding(DataBindingContext context, ILazyDataRequestor targetList,
-			ILazyListElementProvider modelList, BindSpec bindSpec) {
-		super(context);
-		this.targetList = targetList;
-		this.modelList = modelList;
-		this.targetList.addElementProvider(this);
-		lazyInsertDeleteProvider = new DelegatingInsertDeleteProvider(bindSpec.getLazyInsertDeleteProvider());
-		this.targetList.addInsertDeleteProvider(lazyInsertDeleteProvider);
-		
-		// TODO validation/conversion as specified by the bindSpec
-		modelList.addListChangeListener(modelChangeListener);
-		
-		fetchNewIterator();
-		updateTargetFromModel();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.Binding#dispose()
-	 */
-	public void dispose() {
-		targetList.removeElementProvider(this);
-		targetList.removeInsertDeleteProvider(lazyInsertDeleteProvider);
-		modelList.removeListChangeListener(modelChangeListener);
-		disposed=true;
-	}
-	
-	private IListChangeListener modelChangeListener = new IListChangeListener() {
-		public void handleListChange(IObservableList source, ListDiff diff) {
-			if (updating) {
-				return;
-			}
-			fetchNewIterator();
-			
-			// TODO validation
-			BindingEvent e = new BindingEvent(modelList, targetList, diff,
-					org.eclipse.jface.databinding.BindingEvent.EVENT_COPY_TO_TARGET,
-					org.eclipse.jface.databinding.BindingEvent.PIPELINE_AFTER_GET);
-			if (failure(errMsg(fireBindingEvent(e)))) {
-				return;
-			}
-			updating = true;
-			try {
-				// get setDiff from event object - might have been modified by a
-				// listener
-				ListDiff listDiff = (ListDiff) e.diff;
-				ListDiffEntry[] differences = listDiff.getDifferences();
-				
-				// FIXME: guessing that 20 is a good number for a good user experience for now. 
-				if (differences.length > 1) {
-					targetList.setSize(modelList.size());
-				} else {
-					for (int i = 0; i < differences.length; i++) {
-						ListDiffEntry entry = differences[0];
-						if (entry.isAddition()) {
-							targetList.add(entry.getPosition(), entry.getElement());
-						} else {
-							targetList.remove(entry.getPosition());
-						}
-					}
-				}
-				e.pipelinePosition = org.eclipse.jface.databinding.BindingEvent.PIPELINE_AFTER_CHANGE;
-				if (failure(errMsg(fireBindingEvent(e)))) {
-					return;
-				}
-			} finally {
-				updating = false;
-			}
-		}
-	};
-	
-
-	private WritableValue partialValidationErrorObservable = new WritableValue(
-			null);
-
-	private WritableValue validationErrorObservable = new WritableValue(null);
-
-
-	private ValidationError errMsg(ValidationError validationError) {
-		partialValidationErrorObservable.setValue(null);
-		validationErrorObservable.setValue(validationError);
-		return validationError;
-	}
-
-	private boolean failure(ValidationError errorMessage) {
-		// FIXME: Need to fire a BindingEvent here
-		if (errorMessage != null
-				&& errorMessage.status == ValidationError.ERROR) {
-			return true;
-		}
-		return false;
-	}
-
-	public void updateTargetFromModel() {
-		updating = true;
-		try {
-			int sizeToSetOnTarget = modelList.size();
-			
-			BindingEvent e = new BindingEvent(modelList, targetList, null,
-					org.eclipse.jface.databinding.BindingEvent.EVENT_COPY_TO_TARGET,
-					org.eclipse.jface.databinding.BindingEvent.PIPELINE_AFTER_GET);
-			e.originalValue = new Integer(sizeToSetOnTarget);
-			if (failure(errMsg(fireBindingEvent(e)))) {
-				return;
-			}
-			
-			targetList.setSize(sizeToSetOnTarget);
-			
-			e.pipelinePosition = org.eclipse.jface.databinding.BindingEvent.PIPELINE_AFTER_CHANGE;
-			if (failure(errMsg(fireBindingEvent(e)))) {
-				return;
-			}
-		} finally {
-			updating = false;
-		}
-	}
-
-	public IObservableValue getValidationError() {
-		return validationErrorObservable;
-	}
-
-	public IObservableValue getPartialValidationError() {
-		return partialValidationErrorObservable;
-	}
-
-	public void updateModelFromTarget() {
-		throw new UnsupportedOperationException("Lazy targets don't support full copies"); //$NON-NLS-1$
-	}
-
-	private RandomAccessListIterator iterator = null;
-	
-	/**
-	 * 
-	 */
-	public void fetchNewIterator() {
-		iterator = new RandomAccessListIterator(modelList);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider#get(int)
-	 */
-	public Object get(int position) {
-		Object result = iterator.get(position);
-		
-		BindingEvent e = new BindingEvent(modelList, targetList, null,
-				org.eclipse.jface.databinding.BindingEvent.EVENT_COPY_TO_TARGET,
-				org.eclipse.jface.databinding.BindingEvent.PIPELINE_AFTER_GET);
-		e.originalValue = new Integer(position);
-		e.convertedValue = result;
-
-		failure(errMsg(fireBindingEvent(e)));
-		
-		return result;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#add(java.lang.Object)
-	 */
-	public boolean add(Object o) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#addAll(java.util.Collection)
-	 */
-	public boolean addAll(Collection c) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#addAll(int, java.util.Collection)
-	 */
-	public boolean addAll(int index, Collection c) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#addListChangeListener(org.eclipse.jface.databinding.observable.list.IListChangeListener)
-	 */
-	public void addListChangeListener(IListChangeListener listener) {
-		//noop
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#contains(java.lang.Object)
-	 */
-	public boolean contains(Object o) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#containsAll(java.util.Collection)
-	 */
-	public boolean containsAll(Collection c) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#getElementType()
-	 */
-	public Object getElementType() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#indexOf(java.lang.Object)
-	 */
-	public int indexOf(Object o) {
-		return 0;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#isEmpty()
-	 */
-	public boolean isEmpty() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#iterator()
-	 */
-	public Iterator iterator() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#lastIndexOf(java.lang.Object)
-	 */
-	public int lastIndexOf(Object o) {
-		return 0;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#listIterator()
-	 */
-	public ListIterator listIterator() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#listIterator(int)
-	 */
-	public ListIterator listIterator(int index) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#remove(java.lang.Object)
-	 */
-	public boolean remove(Object o) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#remove(int)
-	 */
-	public Object remove(int index) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#removeAll(java.util.Collection)
-	 */
-	public boolean removeAll(Collection c) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#removeListChangeListener(org.eclipse.jface.databinding.observable.list.IListChangeListener)
-	 */
-	public void removeListChangeListener(IListChangeListener listener) {
-		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#retainAll(java.util.Collection)
-	 */
-	public boolean retainAll(Collection c) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#set(int, java.lang.Object)
-	 */
-	public Object set(int index, Object element) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#size()
-	 */
-	public int size() {
-		return 0;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#subList(int, int)
-	 */
-	public List subList(int fromIndex, int toIndex) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#toArray()
-	 */
-	public Object[] toArray() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.observable.list.IObservableList#toArray(java.lang.Object[])
-	 */
-	public Object[] toArray(Object[] a) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.List#add(int, java.lang.Object)
-	 */
-	public void add(int arg0, Object arg1) {
-		//noop
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.List#clear()
-	 */
-	public void clear() {
-		//noop
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.IObservable#addChangeListener(org.eclipse.jface.internal.databinding.provisional.observable.IChangeListener)
-	 */
-	public void addChangeListener(IChangeListener listener) {
-		//noop
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.IObservable#addStaleListener(org.eclipse.jface.internal.databinding.provisional.observable.IStaleListener)
-	 */
-	public void addStaleListener(IStaleListener listener) {
-		//noop
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.IObservable#isStale()
-	 */
-	public boolean isStale() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.IObservable#removeChangeListener(org.eclipse.jface.internal.databinding.provisional.observable.IChangeListener)
-	 */
-	public void removeChangeListener(IChangeListener listener) {
-		//noop
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.IObservable#removeStaleListener(org.eclipse.jface.internal.databinding.provisional.observable.IStaleListener)
-	 */
-	public void removeStaleListener(IStaleListener listener) {
-		//noop
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ListBinding.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ListBinding.java
deleted file mode 100644
index 95b8b75..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ListBinding.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.jface.internal.databinding.internal;
-
-import org.eclipse.jface.databinding.BindSpec;
-import org.eclipse.jface.databinding.BindingEvent;
-import org.eclipse.jface.databinding.DataBindingContext;
-import org.eclipse.jface.databinding.observable.list.IListChangeListener;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.ListDiffEntry;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.WritableValue;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * 
- * implementation note: this class extends a deprecated class for backwards compatibility.
- */
-public class ListBinding extends org.eclipse.jface.internal.databinding.provisional.Binding {
-
-	private boolean updating = false;
-
-	private IObservableList modelList;
-
-	private final IObservableList targetList;
-
-	/**
-	 * @param context
-	 * @param targetList
-	 * @param target
-	 * @param modelList
-	 * @param model
-	 * @param bindSpec
-	 */
-	public ListBinding(DataBindingContext context, IObservableList targetList,
-			IObservableList modelList, BindSpec bindSpec) {
-		super(context);
-		this.targetList = targetList;
-		this.modelList = modelList;
-		// TODO validation/conversion as specified by the bindSpec
-		targetList.addListChangeListener(targetChangeListener);
-		modelList.addListChangeListener(modelChangeListener);
-		updateTargetFromModel();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.Binding#dispose()
-	 */
-	public void dispose() {
-		targetList.removeListChangeListener(targetChangeListener);
-		modelList.removeListChangeListener(modelChangeListener);
-		super.dispose();
-	}
-	
-	private final IListChangeListener targetChangeListener = new IListChangeListener() {
-		public void handleListChange(IObservableList source, ListDiff diff) {
-			if (updating) {
-				return;
-			}
-			// TODO validation
-			BindingEvent e = new BindingEvent(modelList, targetList, diff,
-					BindingEvent.EVENT_COPY_TO_MODEL,
-					BindingEvent.PIPELINE_AFTER_GET);
-			if (failure(errMsg(fireBindingEvent(e)))) {
-				return;
-			}
-			updating = true;
-			try {
-				// get setDiff from event object - might have been modified by a
-				// listener
-				ListDiff setDiff = (ListDiff) e.diff;
-				ListDiffEntry[] differences = setDiff.getDifferences();
-				for (int i = 0; i < differences.length; i++) {
-					ListDiffEntry entry = differences[i];
-					if (entry.isAddition()) {
-						modelList.add(entry.getPosition(), entry.getElement());
-					} else {
-						modelList.remove(entry.getPosition());
-					}
-				}
-				e.pipelinePosition = BindingEvent.PIPELINE_AFTER_CHANGE;
-				if (failure(errMsg(fireBindingEvent(e)))) {
-					return;
-				}
-			} finally {
-				updating = false;
-			}
-		}
-	};
-
-	private IListChangeListener modelChangeListener = new IListChangeListener() {
-		public void handleListChange(IObservableList source, ListDiff diff) {
-			if (updating) {
-				return;
-			}
-			// TODO validation
-			BindingEvent e = new BindingEvent(modelList, targetList, diff,
-					BindingEvent.EVENT_COPY_TO_TARGET,
-					BindingEvent.PIPELINE_AFTER_GET);
-			if (failure(errMsg(fireBindingEvent(e)))) {
-				return;
-			}
-			updating = true;
-			try {
-				// get setDiff from event object - might have been modified by a
-				// listener
-				ListDiff setDiff = (ListDiff) e.diff;
-				ListDiffEntry[] differences = setDiff.getDifferences();
-				for (int i = 0; i < differences.length; i++) {
-					ListDiffEntry entry = differences[i];
-					if (entry.isAddition()) {
-						targetList.add(entry.getPosition(), entry.getElement());
-					} else {
-						targetList.remove(entry.getPosition());
-					}
-				}
-				e.pipelinePosition = BindingEvent.PIPELINE_AFTER_CHANGE;
-				if (failure(errMsg(fireBindingEvent(e)))) {
-					return;
-				}
-			} finally {
-				updating = false;
-			}
-		}
-	};
-
-	private WritableValue partialValidationErrorObservable = new WritableValue(
-			null);
-
-	private WritableValue validationErrorObservable = new WritableValue(null);
-
-	private ValidationError errMsg(ValidationError validationError) {
-		partialValidationErrorObservable.setValue(null);
-		validationErrorObservable.setValue(validationError);
-		return validationError;
-	}
-
-	private boolean failure(ValidationError errorMessage) {
-		// FIXME: Need to fire a BindingEvent here
-		if (errorMessage != null
-				&& errorMessage.status == ValidationError.ERROR) {
-			return true;
-		}
-		return false;
-	}
-
-	public void updateTargetFromModel() {
-		updating = true;
-		try {
-			targetList.clear();
-			targetList.addAll(modelList);
-		} finally {
-			updating = false;
-		}
-	}
-
-	public IObservableValue getValidationError() {
-		return validationErrorObservable;
-	}
-
-	public IObservableValue getPartialValidationError() {
-		return partialValidationErrorObservable;
-	}
-
-	public void updateModelFromTarget() {
-		updating = true;
-		try {
-			modelList.clear();
-			modelList.addAll(targetList);
-		} finally {
-			updating = false;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/Pair.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/Pair.java
deleted file mode 100644
index ba296db..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/Pair.java
+++ /dev/null
@@ -1,57 +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.internal.databinding.internal;
-
-/**
- * Class Pair.  Represents a mathematical pair of objects (a, b).
- * @since 1.0
- */
-public class Pair {
-
-	/**
-	 * a in the pair (a, b)
-	 */
-	public final Object a;
-
-	/**
-	 * b in the pair (a, b)
-	 */
-	public final Object b;
-
-	/**
-	 * Construct a Pair(a, b)
-	 * 
-	 * @param a a in the pair (a, b)
-	 * @param b b in the pair (a, b)
-	 */
-	public Pair(Object a, Object b) {
-		this.a = a;
-		this.b = b;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (obj.getClass() != Pair.class) {
-			return false;
-		}
-		Pair other = (Pair) obj;
-		return a.equals(other.a) && b.equals(other.b);
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return a.hashCode() + b.hashCode();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/RandomAccessListIterator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/RandomAccessListIterator.java
deleted file mode 100644
index 147056f..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/RandomAccessListIterator.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.internal;
-
-import java.util.List;
-import java.util.ListIterator;
-
-/**
- * Class RandomAccessListIterator.  A ListIterator implementation that also
- * provides access to individual elements based on the element's index.
- * 
- * @since 3.3
- */
-public class RandomAccessListIterator implements ListIterator {
-	private ListIterator delegate = null;
-
-	/**
-	 * @param iterator
-	 */
-	public RandomAccessListIterator(ListIterator iterator) {
-		this.delegate = iterator;
-	}
-
-	/**
-	 * @param list 
-	 */
-	public RandomAccessListIterator(List list) {
-		if (list == null) {
-			throw new IllegalArgumentException("list is null"); //$NON-NLS-1$
-		}
-		this.delegate = list.listIterator();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.ListIterator#add(java.lang.Object)
-	 */
-	public void add(Object arg0) {
-		delegate.add(arg0);
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.ListIterator#hasNext()
-	 */
-	public boolean hasNext() {
-		return delegate.hasNext();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.ListIterator#hasPrevious()
-	 */
-	public boolean hasPrevious() {
-		return delegate.hasPrevious();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.ListIterator#next()
-	 */
-	public Object next() {
-		return delegate.next();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.ListIterator#nextIndex()
-	 */
-	public int nextIndex() {
-		return delegate.nextIndex();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.ListIterator#previous()
-	 */
-	public Object previous() {
-		return delegate.previous();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.ListIterator#previousIndex()
-	 */
-	public int previousIndex() {
-		return delegate.previousIndex();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.ListIterator#remove()
-	 */
-	public void remove() {
-		delegate.remove();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.ListIterator#set(java.lang.Object)
-	 */
-	public void set(Object arg0) {
-		delegate.set(arg0);
-	}
-	
-	/**
-	 * Return the element at the specified position by moving the iterator
-	 * forward or backward in the list until it reaches the correct element.
-	 * The iterator's position after returning the element will be one after
-	 * the element returned.
-	 * 
-	 * @param index The (0-based) index of the element to return.
-	 * @return the Object at index
-	 */
-	public Object get(int index) {
-		if (delegate.nextIndex() == 0 && !delegate.hasNext()) {
-			throw new IndexOutOfBoundsException("Request for element from empty list"); //$NON-NLS-1$
-		}
-		if (index < 0) {
-			throw new IndexOutOfBoundsException("Request for negative element index"); //$NON-NLS-1$
-		}
-		
-		while (nextIndex() < index && hasNext()) {
-			next();
-		}
-		while (previousIndex() > index-1) {
-			previous();
-		}
-		if (!hasNext()) {
-			throw new IndexOutOfBoundsException("Request for element past end of list"); //$NON-NLS-1$
-		}
-		return next();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ValidationErrorList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ValidationErrorList.java
deleted file mode 100644
index f28648f4..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ValidationErrorList.java
+++ /dev/null
@@ -1,129 +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.databinding.internal;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.IChangeListener;
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.ListDiffEntry;
-import org.eclipse.jface.databinding.observable.list.ObservableList;
-import org.eclipse.jface.databinding.observable.list.WritableList;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.internal.databinding.provisional.Binding;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * @since 1.0
- * 
- */
-public class ValidationErrorList extends ObservableList implements ILazyListElementProvider {
-
-	private boolean isDirty = true;
-
-	private final WritableList bindings;
-
-	private final boolean usePartialErrors;
-
-	private List dependencies = new ArrayList();
-
-	private IChangeListener markDirtyChangeListener = new IChangeListener() {
-		public void handleChange(IObservable source) {
-			markDirty();
-		}
-	};
-
-	/**
-	 * @param bindings
-	 * @param usePartialErrors
-	 */
-	public ValidationErrorList(WritableList bindings,
-			boolean usePartialErrors) {
-		super(new ArrayList(), ValidationError.class);
-		this.bindings = bindings;
-		this.usePartialErrors = usePartialErrors;
-		bindings.addChangeListener(markDirtyChangeListener);
-	}
-
-	protected void getterCalled() {
-		recompute();
-		super.getterCalled();
-	}
-
-	private void markDirty() {
-		// since we are dirty, we don't need to listen anymore
-		removeElementChangeListener();
-		final List oldList = wrappedList;
-		// lazy computation of diff
-		ListDiff listDiff = new ListDiff() {
-			ListDiffEntry[] cachedDifferences = null;
-			public ListDiffEntry[] getDifferences() {
-				if(cachedDifferences==null) {
-					recompute();
-					cachedDifferences = Diffs.computeListDiff(oldList, wrappedList).getDifferences();
-				}
-				return cachedDifferences;
-			}
-		};
-		wrappedList = new ArrayList();
-		isDirty = true;
-		fireListChange(listDiff);
-	}
-
-	private void recompute() {
-		if (isDirty) {
-			List newContents = new ArrayList();
-			for (Iterator it = bindings.iterator(); it.hasNext();) {
-				Binding binding = (Binding) it.next();
-				IObservableValue validationError = usePartialErrors ? binding
-						.getPartialValidationError() : binding
-						.getValidationError();
-				dependencies.add(validationError);
-				validationError.addChangeListener(markDirtyChangeListener);
-				Object validationErrorValue = validationError.getValue();
-				if (validationErrorValue != null) {
-					newContents.add(validationErrorValue);
-				}
-			}
-			wrappedList.addAll(newContents);
-			isDirty = false;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.databinding.observable.list.ObservableList#dispose()
-	 */
-	public void dispose() {
-		bindings.removeChangeListener(markDirtyChangeListener);
-		removeElementChangeListener();
-		super.dispose();
-	}
-
-	private void removeElementChangeListener() {
-		for (Iterator it = dependencies.iterator(); it.hasNext();) {
-			IObservableValue observableValue = (IObservableValue) it.next();
-			observableValue.removeChangeListener(markDirtyChangeListener);
-		}
-	}
-
-	public Object getElementType() {
-		return ValidationError.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ValueBinding.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ValueBinding.java
deleted file mode 100644
index 7b4ad5e..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ValueBinding.java
+++ /dev/null
@@ -1,314 +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 152543
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.internal;
-
-import org.eclipse.jface.databinding.BindSpec;
-import org.eclipse.jface.databinding.BindingEvent;
-import org.eclipse.jface.databinding.BindingException;
-import org.eclipse.jface.databinding.DataBindingContext;
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.IValueChangingListener;
-import org.eclipse.jface.databinding.observable.value.IVetoableValue;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.databinding.observable.value.WritableValue;
-import org.eclipse.jface.internal.databinding.provisional.conversion.IConverter;
-import org.eclipse.jface.internal.databinding.provisional.validation.IDomainValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.IValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * @since 1.0
- * 
- * implementation note: this class extends a deprecated class for backwards compatibility
- */
-public class ValueBinding extends org.eclipse.jface.internal.databinding.provisional.Binding {
-
-	private final IObservableValue target;
-
-	private final IObservableValue model;
-
-	private IValidator targetValidator;
-
-	private IConverter targetToModelConverter;
-
-	private IConverter modelToTargetConverter;
-
-	private IDomainValidator domainValidator;
-
-	private boolean updating = false;
-
-	private WritableValue partialValidationErrorObservable = new WritableValue(
-			ValidationError.class, null);
-
-	private WritableValue validationErrorObservable = new WritableValue(
-			ValidationError.class, null);
-
-	/**
-	 * @param context
-	 * @param target
-	 * @param model
-	 * @param bindSpec
-	 */
-	public ValueBinding(DataBindingContext context, IObservableValue target,
-			IObservableValue model, BindSpec bindSpec) {
-		super(context);
-		this.target = target;
-		this.model = model;
-		if (bindSpec.isUpdateTarget()) {
-			modelToTargetConverter = bindSpec.getModelToTargetConverter();
-			if (modelToTargetConverter == null) {
-				throw new BindingException(
-						"Missing model to target converter from " + model.getValueType() + " to " + target.getValueType()); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			if (!context.isAssignableFromTo(model.getValueType(),
-					modelToTargetConverter.getFromType())) {
-				throw new BindingException(
-						"model to target converter does not convert from model type. Expected: " + model.getValueType() + ", actual: " + modelToTargetConverter.getFromType()); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			if (!context.isAssignableFromTo(modelToTargetConverter.getToType(),
-					target.getValueType())) {
-				throw new BindingException(
-						"model to target converter does convert to target type. Expected: " + target.getValueType() + ", actual: " + modelToTargetConverter.getToType()); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			model.addValueChangeListener(modelChangeListener);
-		}
-		if (bindSpec.isUpdateModel()) {
-			targetToModelConverter = bindSpec.getTargetToModelConverter();
-			if (targetToModelConverter == null) {
-				throw new BindingException(
-						"Missing target to model converter from " + target.getValueType() + " to " + model.getValueType()); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			if (!context.isAssignableFromTo(target.getValueType(),
-					targetToModelConverter.getFromType())) {
-				throw new BindingException(
-						"target to model converter does not convert from target type. Expected: " + target.getValueType() + ", actual: " + targetToModelConverter.getFromType()); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			if (!context.isAssignableFromTo(targetToModelConverter.getToType(),
-					model.getValueType())) {
-				throw new BindingException(
-						"target to model converter does convert to model type. Expected: " + model.getValueType() + ", actual: " + targetToModelConverter.getToType()); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			targetValidator = bindSpec.getTypeConversionValidator();
-			if (targetValidator == null) {
-				throw new BindingException("Missing validator"); //$NON-NLS-1$
-			}
-			domainValidator = bindSpec.getDomainValidator();
-			target.addValueChangeListener(targetChangeListener);
-			if (target instanceof IVetoableValue) {
-				((IVetoableValue) target)
-						.addValueChangingListener(targetChangingListener);
-			}
-		}
-		if (bindSpec.isUpdateTarget()) {
-			updateTargetFromModel();
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.Binding#dispose()
-	 */
-	public void dispose() {
-		target.removeValueChangeListener(targetChangeListener);
-		if (target instanceof IVetoableValue) {
-			((IVetoableValue) target)
-					.removeValueChangingListener(targetChangingListener);
-		}
-		model.removeValueChangeListener(modelChangeListener);
-		super.dispose();
-	}
-	
-	private final IValueChangingListener targetChangingListener = new IValueChangingListener() {
-		public boolean handleValueChanging(IVetoableValue source, ValueDiff diff) {
-			if (updating)
-				return true;
-			// we are notified of a pending change, do validation
-			// and veto the change if it is not valid
-			Object value = diff.getNewValue();
-			ValidationError partialValidationError = targetValidator
-					.isPartiallyValid(value);
-			partialValidationErrorObservable.setValue(partialValidationError);
-			return partialValidationError == null;
-		}
-	};
-
-	private final IValueChangeListener targetChangeListener = new IValueChangeListener() {
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			if (updating)
-				return;
-			// the target (usually a widget) has changed, validate
-			// the value and update the source
-			updateModelFromTarget(diff);
-		}
-	};
-
-	private IValueChangeListener modelChangeListener = new IValueChangeListener() {
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			if (updating)
-				return;
-			// The model has changed so we must update the target
-			doUpdateTargetFromModel(diff);
-		}
-	};
-
-	/**
-	 * This also does validation.
-	 * 
-	 * @param diff
-	 * 
-	 * @param changeEvent
-	 *            TODO
-	 */
-	public void updateModelFromTarget(ValueDiff diff) {
-		BindingEvent e = new BindingEvent(model, target, diff,
-				BindingEvent.EVENT_COPY_TO_MODEL,
-				BindingEvent.PIPELINE_AFTER_GET) {
-		};
-		e.originalValue = target.getValue();
-		if (failure(errMsg(fireBindingEvent(e)))) {
-			return;
-		}
-
-		ValidationError validationError = doValidate(e.originalValue);
-		if (validationError != null) {
-			return;
-		}
-		e.pipelinePosition = BindingEvent.PIPELINE_AFTER_VALIDATE;
-		if (failure(errMsg(fireBindingEvent(e)))) {
-			return;
-		}
-
-		try {
-			updating = true;
-
-			e.convertedValue = targetToModelConverter.convert(e.originalValue);
-			e.pipelinePosition = BindingEvent.PIPELINE_AFTER_CONVERT;
-			if (failure(errMsg(fireBindingEvent(e)))) {
-				return;
-			}
-
-			validationError = doDomainValidation(e.convertedValue);
-			if (validationError != null) {
-				return;
-			}
-			e.pipelinePosition = BindingEvent.PIPELINE_AFTER_BUSINESS_VALIDATE;
-			if (failure(errMsg(fireBindingEvent(e)))) {
-				return;
-			}
-
-			model.setValue(e.convertedValue);
-			e.pipelinePosition = BindingEvent.PIPELINE_AFTER_CHANGE;
-			fireBindingEvent(e);
-		} catch (Exception ex) {
-			ValidationError error = ValidationError.error(
-				BindingMessages.getString("ValueBinding_ErrorWhileSettingValue"), //$NON-NLS-1$
-				ex);
-			validationErrorObservable.setValue(error);
-		} finally {
-			updating = false;
-		}
-	}
-
-	/**
-	 * @param convertedValue
-	 * @return String
-	 */
-	private ValidationError doDomainValidation(Object convertedValue) {
-		if (domainValidator == null) {
-			return null;
-		}
-		ValidationError validationError = domainValidator
-				.isValid(convertedValue);
-		return errMsg(validationError);
-	}
-
-	private ValidationError doValidate(Object value) {
-		if (targetValidator == null)
-			return null;
-		ValidationError validationError = targetValidator.isValid(value);
-		return errMsg(validationError);
-	}
-
-	private ValidationError errMsg(ValidationError validationError) {
-		partialValidationErrorObservable.setValue(null);
-		validationErrorObservable.setValue(validationError);
-		return validationError;
-	}
-
-	private boolean failure(ValidationError errorMessage) {
-		// FIXME: Need to fire a BindingEvent here
-		if (errorMessage != null
-				&& errorMessage.status == ValidationError.ERROR) {
-			return true;
-		}
-		return false;
-	}
-
-	public void updateTargetFromModel() {
-		doUpdateTargetFromModel(Diffs.createValueDiff(null, model.getValue()));
-	}
-
-	/**
-	 * @param diff
-	 */
-	public void doUpdateTargetFromModel(ValueDiff diff) {
-		try {
-			updating = true;
-			BindingEvent e = new BindingEvent(model, target, diff,
-					BindingEvent.EVENT_COPY_TO_TARGET,
-					BindingEvent.PIPELINE_AFTER_GET) {
-			};
-			e.originalValue = model.getValue();
-			if (failure(errMsg(fireBindingEvent(e)))) {
-				return;
-			}
-
-			e.convertedValue = modelToTargetConverter.convert(e.originalValue);
-			e.pipelinePosition = BindingEvent.PIPELINE_AFTER_CONVERT;
-			if (failure(errMsg(fireBindingEvent(e)))) {
-				return;
-			}
-
-			target.setValue(e.convertedValue);
-			e.pipelinePosition = BindingEvent.PIPELINE_AFTER_CHANGE;
-			if (failure(errMsg(fireBindingEvent(e)))) {
-				return;
-			}
-
-			//FIXME ValueBinding Needs Separate modelValidator to perform model to target validation.
-			doValidate(target.getValue());
-			e.pipelinePosition = BindingEvent.PIPELINE_AFTER_VALIDATE;
-			fireBindingEvent(e);
-		} catch (Exception ex) {
-			ValidationError error = ValidationError.error(
-				BindingMessages.getString("ValueBinding_ErrorWhileSettingValue"), //$NON-NLS-1$
-				ex);
-			validationErrorObservable.setValue(error);
-		} finally {
-			updating = false;
-		}
-	}
-
-	public IObservableValue getValidationError() {
-		return validationErrorObservable;
-	}
-
-	public IObservableValue getPartialValidationError() {
-		return partialValidationErrorObservable;
-	}
-
-	public void updateModelFromTarget() {
-		updateModelFromTarget(Diffs.createValueDiff(target.getValue(), target
-				.getValue()));
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/messages.properties b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/messages.properties
deleted file mode 100644
index 4fb25f4..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/messages.properties
+++ /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
-###############################################################################
-# NLS file for JFace Data Binding
-###############################################################################
-Yes=Yes
-yes=yes
-No=No
-no=no
-True=True
-true=true
-False=False
-false=false
-and=and
-or=or
-Examples=Examples
-ValueBinding_ErrorWhileSettingValue=An error occurred while setting the value.
-Validate_BooleanHelp=Please type "Yes", "No", "True", or "False"
-Validate_ConversionToPrimitive="Null object values can not be converted to primatives."
-Validate_ConversionFromClassToPrimitive="Wrong object type to convert to primative."
-Validate_CharacterHelp=Please type a character
-Validate_NoChangeAllowedHelp=Changes are not allowed in this field
-Validate_RangeStart=Please enter a number between
-Validate_Like=Please enter a number like
-Validate_Number_Examples= 1.234, 256E-15, 42
-
-# The following two regular expressions express any of: Yes, yes, No, no, True, true, False, false
-# in both partially valid and fully valid forms.
-Validate_BooleanPartialValidRegex=^$|^Y$|^y$|^Ye$|^ye$|^Yes$|^yes$|^T$|^t$|^Tr$|^tr$|^Tru$|^tru$|^True$|^true$|^N$|^n$|^No$|^no$|^F$|^f$|^Fa$|^fa$|^Fal$|^fal$|^Fals$|^fals$|^False$|^false$
-Validate_BooleanValidRegex=^Yes$|^yes$|^No$|^no$|^True$|^true$|^False$|^false$
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/IStalenessConsumer.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/IStalenessConsumer.java
deleted file mode 100644
index 217352c..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/IStalenessConsumer.java
+++ /dev/null
@@ -1,24 +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.databinding.internal.observable;
-
-/**
- * @since 1.0
- * 
- */
-public interface IStalenessConsumer {
-	/**
-	 * @param stale
-	 * 
-	 */
-	public void setStale(boolean stale);
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableList.java
deleted file mode 100644
index 3fa1b9c..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableList.java
+++ /dev/null
@@ -1,121 +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.internal.databinding.internal.observable;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.list.IListChangeListener;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.ObservableList;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider;
-
-/**
- * @since 3.2
- * 
- */
-public class NestedObservableList extends ObservableList implements ILazyListElementProvider {
-
-	private boolean updating = false;
-
-	private IListChangeListener innerChangeListener = new IListChangeListener() {
-		public void handleListChange(IObservableList source, ListDiff diff) {
-			if (!updating) {
-				fireListChange(diff);
-			}
-		}
-	};
-
-	private Object currentOuterValue;
-
-	private Object feature;
-
-	private IObservableList innerObservableList;
-
-	private DataBindingContext databindingContext;
-
-	private IObservableValue outerObservableValue;
-
-	/**
-	 * @param databindingContext
-	 * @param outerObservableValue
-	 * @param feature
-	 * @param featureType
-	 */
-	public NestedObservableList(DataBindingContext databindingContext,
-			IObservableValue outerObservableValue, Object feature,
-			Class featureType) {
-		super(new ArrayList(), featureType);
-		this.databindingContext = databindingContext;
-		this.feature = feature;
-		this.outerObservableValue = outerObservableValue;
-		updateInnerObservableValue(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			List oldList = new ArrayList(wrappedList);
-			updateInnerObservableValue(outerObservableValue);
-			fireListChange(Diffs.computeListDiff(oldList, wrappedList));
-		}
-	};
-
-	private void updateInnerObservableValue(
-			IObservableValue outerObservableValue) {
-		currentOuterValue = outerObservableValue.getValue();
-		if (innerObservableList != null) {
-			innerObservableList.removeListChangeListener(innerChangeListener);
-			innerObservableList.dispose();
-		}
-		if (currentOuterValue == null) {
-			innerObservableList = null;
-			wrappedList = new ArrayList();
-		} else {
-			this.innerObservableList = (IObservableList) databindingContext
-					.createObservable(new Property(currentOuterValue, feature,
-							(Class) getElementType(), Boolean.TRUE));
-			wrappedList = innerObservableList;
-			Object innerValueType = innerObservableList.getElementType();
-			Assert.isTrue(getElementType().equals(innerValueType),
-					"Cannot change value type in a nested updatable value"); //$NON-NLS-1$
-			innerObservableList.addListChangeListener(innerChangeListener);
-		}
-	}
-
-	public void dispose() {
-		super.dispose();
-
-		if (outerObservableValue != null) {
-			outerObservableValue.removeValueChangeListener(outerChangeListener);
-			outerObservableValue.dispose();
-		}
-		if (innerObservableList != null) {
-			innerObservableList.removeListChangeListener(innerChangeListener);
-			innerObservableList.dispose();
-		}
-		currentOuterValue = null;
-		databindingContext = null;
-		feature = null;
-		innerObservableList = null;
-		innerChangeListener = null;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableSet.java
deleted file mode 100644
index bb15144..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableSet.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.jface.internal.databinding.internal.observable;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.observable.set.ISetChangeListener;
-import org.eclipse.jface.databinding.observable.set.ObservableSet;
-import org.eclipse.jface.databinding.observable.set.SetDiff;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-
-/**
- * @since 3.2
- * 
- */
-public class NestedObservableSet extends ObservableSet {
-
-	private boolean updating = false;
-
-	private ISetChangeListener innerChangeListener = new ISetChangeListener() {
-		public void handleSetChange(IObservableSet source, SetDiff diff) {
-			if (!updating) {
-				fireSetChange(diff);
-			}
-		}
-	};
-
-	private Object currentOuterValue;
-
-	private Object feature;
-
-	private IObservableSet innerObservableSet;
-
-	private DataBindingContext databindingContext;
-
-	private IObservableValue outerObservableValue;
-
-	/**
-	 * @param databindingContext
-	 * @param outerObservableValue
-	 * @param feature
-	 * @param featureType
-	 */
-	public NestedObservableSet(DataBindingContext databindingContext,
-			IObservableValue outerObservableValue, Object feature,
-			Object featureType) {
-		super(new HashSet(), featureType);
-		this.databindingContext = databindingContext;
-		this.feature = feature;
-		this.outerObservableValue = outerObservableValue;
-		updateInnerObservableValue(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			Set oldSet = new HashSet(wrappedSet);
-			updateInnerObservableValue(outerObservableValue);
-			fireSetChange(Diffs.computeSetDiff(oldSet, wrappedSet));
-		}
-	};
-
-	private void updateInnerObservableValue(
-			IObservableValue outerObservableValue) {
-		currentOuterValue = outerObservableValue.getValue();
-		if (innerObservableSet != null) {
-			innerObservableSet.removeSetChangeListener(innerChangeListener);
-			innerObservableSet.dispose();
-		}
-		if (currentOuterValue == null) {
-			innerObservableSet = null;
-			wrappedSet = new HashSet();
-		} else {
-			this.innerObservableSet = (IObservableSet) databindingContext
-					.createObservable(new Property(currentOuterValue, feature));
-			wrappedSet = innerObservableSet;
-			Object innerValueType = innerObservableSet.getElementType();
-			if (elementType == null) {
-				elementType = innerValueType;
-			} else {
-				Assert.isTrue(elementType.equals(innerValueType),
-						"Cannot change value type in a nested updatable value"); //$NON-NLS-1$
-			}
-			innerObservableSet.addSetChangeListener(innerChangeListener);
-		}
-	}
-
-	public void dispose() {
-		super.dispose();
-
-		if (outerObservableValue != null) {
-			outerObservableValue.removeValueChangeListener(outerChangeListener);
-			outerObservableValue.dispose();
-		}
-		if (innerObservableSet != null) {
-			innerObservableSet.removeSetChangeListener(innerChangeListener);
-			innerObservableSet.dispose();
-		}
-		currentOuterValue = null;
-		databindingContext = null;
-		feature = null;
-		innerObservableSet = null;
-		innerChangeListener = null;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableValue.java
deleted file mode 100644
index c7c6b5d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/NestedObservableValue.java
+++ /dev/null
@@ -1,132 +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.internal.databinding.internal.observable;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-
-/**
- * @since 1.0
- * 
- */
-public class NestedObservableValue extends AbstractObservableValue {
-
-	private boolean updating = false;
-
-	private IValueChangeListener innerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			if (!updating) {
-				fireValueChange(diff);
-			}
-		}
-	};
-
-	private Object currentOuterValue;
-
-	private Object feature;
-
-	private IObservableValue innerObservableValue;
-
-	private DataBindingContext databindingContext;
-
-	private Object featureType;
-
-	private IObservableValue outerObservableValue;
-
-	/**
-	 * @param databindingContext
-	 * @param outerObservableValue
-	 * @param feature
-	 * @param featureType
-	 */
-	public NestedObservableValue(DataBindingContext databindingContext,
-			IObservableValue outerObservableValue, Object feature,
-			Class featureType) {
-		this.databindingContext = databindingContext;
-		this.feature = feature;
-		this.featureType = featureType;
-		this.outerObservableValue = outerObservableValue;
-		updateInnerObservableValue(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			Object oldValue = doGetValue();
-			updateInnerObservableValue(outerObservableValue);
-			fireValueChange(Diffs.createValueDiff(oldValue, doGetValue()));
-		}
-	};
-
-	private void updateInnerObservableValue(
-			IObservableValue outerObservableValue) {
-		currentOuterValue = outerObservableValue.getValue();
-		if (innerObservableValue != null) {
-			innerObservableValue.removeValueChangeListener(innerChangeListener);
-			innerObservableValue.dispose();
-		}
-		if (currentOuterValue == null) {
-			innerObservableValue = null;
-		} else {
-			this.innerObservableValue = (IObservableValue) databindingContext
-					.createObservable(new Property(currentOuterValue, feature));
-			Object innerValueType = innerObservableValue.getValueType();
-			if (featureType == null) {
-				featureType = innerValueType;
-			} else {
-				Assert
-						.isTrue(featureType.equals(innerValueType),
-								"Cannot change value type in a nested observable value"); //$NON-NLS-1$
-			}
-			innerObservableValue.addValueChangeListener(innerChangeListener);
-		}
-	}
-
-	public void setValue(Object value) {
-		if (innerObservableValue != null)
-			innerObservableValue.setValue(value);
-	}
-
-	public Object doGetValue() {
-		return innerObservableValue == null ? null : innerObservableValue
-				.getValue();
-	}
-
-	public Object getValueType() {
-		return featureType;
-	}
-
-	public void dispose() {
-		super.dispose();
-
-		if (outerObservableValue != null) {
-			outerObservableValue.removeValueChangeListener(outerChangeListener);
-			outerObservableValue.dispose();
-		}
-		if (innerObservableValue != null) {
-			innerObservableValue.removeValueChangeListener(innerChangeListener);
-			innerObservableValue.dispose();
-		}
-		currentOuterValue = null;
-		databindingContext = null;
-		feature = null;
-		innerObservableValue = null;
-		innerChangeListener = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/ProxyObservableSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/ProxyObservableSet.java
deleted file mode 100644
index ad29cee..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/ProxyObservableSet.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.internal.databinding.internal.observable;
-
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.set.AbstractObservableSet;
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.observable.set.ISetChangeListener;
-import org.eclipse.jface.databinding.observable.set.SetDiff;
-
-/**
- * Wraps an observable set. This object acts like an exact copy of the original
- * set, and tracks all the changes in the original. The only difference is that
- * disposing the wrapper will not dispose the original. You can use this whenever
- * you need to return an IObservableSet from a method that expects the caller
- * to dispose the set, but you have an IObservableSet that you don't want disposed.
- */
-public final class ProxyObservableSet extends AbstractObservableSet {
-
-	private IObservableSet toDelegateTo;
-	private ISetChangeListener listener = new ISetChangeListener() {
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.internal.databinding.provisional.observable.set.ISetChangeListener#handleSetChange(org.eclipse.jface.internal.databinding.provisional.observable.set.IObservableSet, org.eclipse.jface.internal.databinding.provisional.observable.set.SetDiff)
-		 */
-		public void handleSetChange(IObservableSet source, SetDiff diff) {
-			fireSetChange(diff);
-		}
-	};
-	
-	/**
-	 * Constructs a DelegatingObservableSet that tracks the state of the given set.
-	 * 
-	 * @param toDelegate
-	 */
-	public ProxyObservableSet(IObservableSet toDelegate) {
-		this.toDelegateTo = toDelegate;
-		toDelegate.addSetChangeListener(listener);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.set.AbstractObservableSet#getWrappedSet()
-	 */
-	protected Set getWrappedSet() {
-		return toDelegateTo;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.set.IObservableSet#getElementType()
-	 */
-	public Object getElementType() {
-		return toDelegateTo.getElementType();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.set.AbstractObservableSet#dispose()
-	 */
-	public void dispose() {
-		toDelegateTo.removeSetChangeListener(listener);
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/StalenessTracker.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/StalenessTracker.java
deleted file mode 100644
index 68a0b48..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/StalenessTracker.java
+++ /dev/null
@@ -1,125 +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.databinding.internal.observable;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.databinding.observable.IChangeListener;
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.IStaleListener;
-import org.eclipse.jface.internal.databinding.internal.IdentityWrapper;
-
-/**
- * @since 1.0
- * 
- */
-public class StalenessTracker {
-
-	private Map staleMap = new HashMap();
-
-	private int staleCount = 0;
-
-	private final IStalenessConsumer stalenessConsumer;
-
-	private class ChildListener implements IStaleListener, IChangeListener {
-		public void handleStale(IObservable source) {
-			processStalenessChange(source, true);
-		}
-
-		public void handleChange(IObservable source) {
-			processStalenessChange(source, true);
-		}
-	}
-
-	private ChildListener childListener = new ChildListener();
-
-	/**
-	 * @param observables
-	 * @param stalenessConsumer 
-	 */
-	public StalenessTracker(IObservable[] observables,
-			IStalenessConsumer stalenessConsumer) {
-		this.stalenessConsumer = stalenessConsumer;
-		for (int i = 0; i < observables.length; i++) {
-			IObservable observable = observables[i];
-			doAddObservable(observable, false);
-		}
-		stalenessConsumer.setStale(staleCount > 0);
-	}
-
-	/**
-	 * @param child
-	 * @param callback
-	 */
-	public void processStalenessChange(IObservable child, boolean callback) {
-		boolean oldStale = staleCount > 0;
-		IdentityWrapper wrappedChild = new IdentityWrapper(child);
-		boolean oldChildStale = getOldChildStale(wrappedChild);
-		boolean newChildStale = child.isStale();
-		if (oldChildStale != newChildStale) {
-			if (oldChildStale) {
-				staleCount--;
-			} else {
-				staleCount++;
-			}
-			staleMap.put(wrappedChild, newChildStale ? Boolean.TRUE : Boolean.FALSE);
-		}
-		boolean newStale = staleCount > 0;
-		if (callback && (newStale != oldStale)) {
-			stalenessConsumer.setStale(newStale);
-		}
-	}
-
-	/**
-	 * @param wrappedChild
-	 */
-	private boolean getOldChildStale(IdentityWrapper wrappedChild) {
-		Object oldChildValue = staleMap.get(wrappedChild);
-		boolean oldChildStale = oldChildValue == null ? false
-				: ((Boolean) oldChildValue).booleanValue();
-		return oldChildStale;
-	}
-
-	/**
-	 * @param observable
-	 */
-	public void addObservable(IObservable observable) {
-		doAddObservable(observable, true);
-	}
-
-	private void doAddObservable(IObservable observable, boolean callback) {
-		processStalenessChange(observable, callback);
-		observable.addChangeListener(childListener);
-		observable.addStaleListener(childListener);
-	}
-
-	/**
-	 * @param observable
-	 */
-	public void removeObservable(IObservable observable) {
-		boolean oldStale = staleCount > 0;
-		IdentityWrapper wrappedChild = new IdentityWrapper(observable);
-		boolean oldChildStale = getOldChildStale(wrappedChild);
-		if (oldChildStale) {
-			staleCount--;
-		}
-		staleMap.remove(wrappedChild);
-		observable.removeChangeListener(childListener);
-		observable.removeStaleListener(childListener);
-		boolean newStale = staleCount > 0;
-		if (newStale != oldStale) {
-			stalenessConsumer.setStale(newStale);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/UnmodifiableObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/UnmodifiableObservableList.java
deleted file mode 100644
index 545c751..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/observable/UnmodifiableObservableList.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Cerner Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms 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.internal.databinding.internal.observable;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.IStaleListener;
-import org.eclipse.jface.databinding.observable.list.IListChangeListener;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.ObservableList;
-
-/**
- * ObservableList implementation that prevents modification by consumers. Events
- * in the originating wrapped list are propagated and thrown from this instance
- * when appropriate.  All mutators throw an UnsupportedOperationException.
- * 
- * @since 3.2
- */
-/*
- * Implementation makes the assumption that the superclass (UnmodifiableList) is
- * unmodifiable and that all modify methods throw an
- * UnsupportedOperationException.
- */
-public class UnmodifiableObservableList extends ObservableList {
-	/**
-	 * List that is being made unmodifiable.
-	 */
-	private final IObservableList wrappedList;
-
-	/**
-	 * @param wrappedList
-	 */
-	public UnmodifiableObservableList(IObservableList wrappedList) {
-		super(wrappedList, wrappedList.getElementType());
-		this.wrappedList = wrappedList;
-
-		wrappedList.addListChangeListener(new IListChangeListener() {
-			public void handleListChange(IObservableList source, ListDiff diff) {
-				// Fires a Change and then ListChange event.
-				fireListChange(diff);
-			}
-		});
-
-		wrappedList.addStaleListener(new IStaleListener() {
-			public void handleStale(IObservable source) {
-				fireStale();
-			}
-		});
-	}
-
-	/**
-	 * Because this instance is immutable staleness cannot be changed.
-	 * 
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.list.ObservableList#setStale(boolean)
-	 */
-	public void setStale(boolean stale) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean isStale() {
-		return wrappedList.isStale();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/AbstractDataBindingContextFactory.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/AbstractDataBindingContextFactory.java
deleted file mode 100644
index 8ab5c5a..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/AbstractDataBindingContextFactory.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.jface.internal.databinding.provisional;
-
-import org.eclipse.jface.internal.databinding.provisional.factories.BindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.IBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.IObservableFactory;
-
-/**
- * Defines an interface for objects that can create data binding contexts
- * 
- * @since 3.3
- * @deprecated this class is no longer part of the data binding API
- */
-public abstract class AbstractDataBindingContextFactory {
-	
-	private DataBindingContext context;
-	
-	/**
-	 * Adds the specified IObservableFactory objects to the data binding
-	 * context that is being configured in the specified order.
-	 * <p>
-	 * This method may be overridden in subclasses in order to intercept and
-	 * modify the set or order of factories that are configured
-	 * for a given data binding context factory.
-	 * 
-	 * @param observableFactories An IObservableFactory[] containing the factories to add.
-	 */
-	protected void addObservableFactories(IObservableFactory[] observableFactories) {
-		for (int i = 0; i < observableFactories.length; i++) {
-			context.addObservableFactory(observableFactories[i]);
-		}
-	}
-	
-	/**
-	 * Adds the specified BindSupportFactory objects to the data binding
-	 * context that is being configured in the specified order.
-	 * <p>
-	 * This method may be overridden in subclasses in order to intercept and
-	 * modify the set or order of factories that are configured
-	 * for a given data binding context factory.
-	 * 
-	 * @param observableFactories An IObservableFactory[] containing the factories to add.
-	 */
-	protected void addBindSupportFactories(BindSupportFactory[] bindSupportFactories) {
-		for (int i = 0; i < bindSupportFactories.length; i++) {
-			context.addBindSupportFactory(bindSupportFactories[i]);
-		}
-	}
-	
-	/**
-	 * Adds the specified IBindingFactory objects to the data binding
-	 * context that is being configured in the specified order.
-	 * <p>
-	 * This method may be overridden in subclasses in order to intercept and
-	 * modify the set or order of factories that are configured
-	 * for a given data binding context factory.
-	 * 
-	 * @param observableFactories An IObservableFactory[] containing the factories to add.
-	 */
-	protected void addBindingFactories(IBindingFactory[] bindingFactories) {
-		for (int i = 0; i < bindingFactories.length; i++) {
-			context.addBindingFactory(bindingFactories[i]);
-		}
-	}
-	
-	/**
-	 * Extenders must override this method and call 
-	 * {@link #addObservableFactories(IObservableFactory[])},
-	 * {@link #addBindSupportFactories(BindSupportFactory[])}, and
-	 * {@link #addBindingFactories(IBindingFactory[])} with the appropriate
-	 * factories.
-	 * @param context TODO
-	 */
-	protected abstract void configureContext(DataBindingContext context);
-	
-	/**
-	 * Creates, configures, and returns a new data binding context.
-	 * 
-	 * @return DataBindingContext a configured data binding context.
-	 */
-	public DataBindingContext createContext() {
-		context = new DataBindingContext();
-		configureContext(context);
-		return context;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindSpec.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindSpec.java
deleted file mode 100644
index 2329ea9..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindSpec.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
- *     Brad Reynolds (bug 135316)
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.provisional;
-
-import org.eclipse.jface.internal.databinding.provisional.conversion.IConverter;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider;
-import org.eclipse.jface.internal.databinding.provisional.validation.IDomainValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.IValidator;
-
-
-/**
- * Data binding has three concerns, the target, the model, and the data flow
- * between the target and model. BindSpec contains values and settings that
- * influence how data binding manages this data flow between the target and the
- * model.
- * 
- * @since 1.0
- * @deprecated use {@link org.eclipse.jface.databinding.BindSpec} instead
- */
-public class BindSpec extends org.eclipse.jface.databinding.BindSpec {
-
-	/**
-	 * Creates a bind spec with the given converters, validators, and update
-	 * policies.
-	 * 
-	 * @param modelToTargetConverter or <code>null</code>
-	 * @param targetToModelConverter or <code>null</code>
-	 * @param targetValidator or <code>null</code>
-	 * @param domainValidator or <code>null</code>
-	 * @param modelUpdatePolicy
-	 * @param validatePolicy
-	 * @param targetUpdatePolicy
-	 * 
-	 */
-	public BindSpec(IConverter modelToTargetConverter,
-			IConverter targetToModelConverter, IValidator targetValidator,
-			IDomainValidator domainValidator, Integer modelUpdatePolicy,
-			Integer validatePolicy, Integer targetUpdatePolicy) {
-		this(
-				(modelToTargetConverter != null) ? new IConverter[] { modelToTargetConverter }
-						: null,
-				(targetToModelConverter != null) ? new IConverter[] { targetToModelConverter }
-						: null,
-				(targetValidator != null) ? new IValidator[] { targetValidator }
-						: null, domainValidator, modelUpdatePolicy,
-				validatePolicy, targetUpdatePolicy);
-	}
-
-	/**
-	 * Creates a bind spec with the given converters, validators, and update
-	 * policies.
-	 * 
-	 * @param modelToTargetConverters or <code>null</code>
-	 * @param targetToModelConverters or <code>null</code>
-	 * @param targetValidators or <code>null</code>
-	 * @param domainValidator or <code>null</code>
-	 * @param modelUpdatePolicy
-	 * @param validatePolicy
-	 * @param targetUpdatePolicy
-	 * 
-	 */
-	public BindSpec(IConverter[] modelToTargetConverters,
-			IConverter[] targetToModelConverters, IValidator[] targetValidators,
-			IDomainValidator domainValidator, Integer modelUpdatePolicy,
-			Integer validatePolicy, Integer targetUpdatePolicy) {
-		this(modelToTargetConverters, targetToModelConverters, targetValidators, domainValidator, modelUpdatePolicy, validatePolicy, targetUpdatePolicy, null);
-	}
-
-	/**
-	 * Creates a bind spec with the given converters, validators, and update
-	 * policies.
-	 * 
-	 * @param modelToTargetConverters
-	 * @param targetToModelConverters
-	 * @param targetValidators
-	 * @param domainValidator
-	 * @param modelUpdatePolicy
-	 * @param validatePolicy
-	 * @param targetUpdatePolicy
-	 * @param lazyInsertDeleteProvider 
-	 * 
-	 */
-	public BindSpec(IConverter[] modelToTargetConverters,
-			IConverter[] targetToModelConverters, IValidator[] targetValidators,
-			IDomainValidator domainValidator, Integer modelUpdatePolicy,
-			Integer validatePolicy, Integer targetUpdatePolicy,
-			LazyInsertDeleteProvider lazyInsertDeleteProvider) {
-		super(modelToTargetConverters, targetToModelConverters, targetValidators, domainValidator, modelUpdatePolicy, validatePolicy, targetUpdatePolicy, lazyInsertDeleteProvider);
-	}
-
-	/**
-	 * Creates a bind spec with the given converter and validator. The update
-	 * policies are set to <code>IBindSpec.POLICY_CONTEXT</code>.
-	 * 
-	 * @param modelToTargetConverter or <code>null</code>
-	 * @param targetToModelConverter or <code>null</code>
-	 * @param targetValidator or <code>null</code>
-	 * @param domainValidator or <code>null</code>
-	 * 
-	 */
-	public BindSpec(IConverter modelToTargetConverter,
-			IConverter targetToModelConverter, IValidator targetValidator,
-			IDomainValidator domainValidator) {
-		this(modelToTargetConverter, targetToModelConverter, targetValidator,
-				domainValidator, null, null, null);
-	}
-
-	/**
-	 * Default constructor that initializes all objects to their defaults.
-	 */
-	public BindSpec() {
-		this((IConverter) null, null, null, null, null, null, null);
-	}
-
-	/**
-	 * @return true if the model should be updated by the binding
-	 * @deprecated use {@link #isUpdateModel()} instead
-	 */
-	public boolean updateModel() {
-		return isUpdateModel();
-	}
-
-	/**
-	 * @return true if the target should be updated by the binding
-	 * @deprecated use {@link #isUpdateTarget()} instead
-	 */
-	public boolean updateTarget() {
-		return isUpdateTarget();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/Binding.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/Binding.java
deleted file mode 100644
index 9fdc5e4..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/Binding.java
+++ /dev/null
@@ -1,101 +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.databinding.provisional;
-
-import org.eclipse.jface.databinding.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * The interface that represents a binding between a model and a target.
- * 
- * This interface is not intended to be implemented by clients.
- * 
- * @since 1.0
- * @deprecated use {@link org.eclipse.jface.databinding.Binding} instead
- */
-public abstract class Binding extends org.eclipse.jface.databinding.Binding {
-
-	/**
-	 * @since 3.2
-	 *
-	 */
-	private static class WrappingBindingListener implements
-			org.eclipse.jface.databinding.IBindingListener {
-		/**
-		 * 
-		 */
-		private final IBindingListener listener;
-
-		/**
-		 * @param listener
-		 */
-		private WrappingBindingListener(IBindingListener listener) {
-			this.listener = listener;
-		}
-
-		public ValidationError bindingEvent(org.eclipse.jface.databinding.BindingEvent e) {
-			return listener.bindingEvent(new BindingEvent(e.model,e.target,e.diff,e.copyType,e.pipelinePosition));
-		}
-
-		public int hashCode() {
-			return listener.hashCode();
-		}
-
-		public boolean equals(Object obj) {
-			if (this == obj)
-				return true;
-			if (obj == null)
-				return false;
-			if (getClass() != obj.getClass())
-				return false;
-			final WrappingBindingListener other = (WrappingBindingListener) obj;
-			if (listener == null) {
-				if (other.listener != null)
-					return false;
-			} else if (!listener.equals(other.listener))
-				return false;
-			return true;
-		}
-		
-	}
-
-	/**
-	 * @param context
-	 */
-	public Binding(DataBindingContext context) {
-		super(context);
-	}
-
-	/**
-	 * Add a listener to the set of listeners that will be notified when an
-	 * event occurs in the data flow pipeline that is managed by this Binding.
-	 * 
-	 * @param listener
-	 *            The listener to add.
-	 */
-	public void addBindingEventListener(final IBindingListener listener) {
-		super.addBindingEventListener(new WrappingBindingListener(listener));
-	}
-
-	/**
-	 * Removes a listener from the set of listeners that will be notified when
-	 * an event occurs in the data flow pipeline that is managed by this
-	 * Binding.
-	 * 
-	 * @param listener
-	 *            The listener to remove.
-	 */
-	public void removeBindingEventListener(IBindingListener listener) {
-		super.removeBindingEventListener(new WrappingBindingListener(listener));
-	}
-	
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingAdapter.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingAdapter.java
deleted file mode 100644
index 909b376..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingAdapter.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.jface.internal.databinding.provisional;
-
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-
-/**
- * A default implementation for an IBindingListener event handler.
- * 
- * @since 1.0
- * @deprecated use {@link org.eclipse.jface.databinding.BindingAdapter} instead
- */
-public class BindingAdapter implements IBindingListener {
-
-	public ValidationError bindingEvent(BindingEvent e) {
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingEvent.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingEvent.java
deleted file mode 100644
index 4b46ea6..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingEvent.java
+++ /dev/null
@@ -1,41 +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.databinding.provisional;
-
-import org.eclipse.jface.databinding.observable.IDiff;
-import org.eclipse.jface.databinding.observable.IObservable;
-
-/**
- * The event that is passed to a #bindingEvent method of an IBindingListener.
- * This class is not intended to be subclassed by clients.
- * 
- * @since 1.0
- * @deprecated use {@link org.eclipse.jface.databinding.BindingEvent} instead
- */
-public class BindingEvent extends org.eclipse.jface.databinding.BindingEvent {
-	
-	/**
-	 * (Non-API Method) Construct a BindingEvent.
-	 * 
-	 * @param model 
-	 * @param target 
-	 * @param diff
-	 * @param copyType 
-	 * @param pipelinePosition
-	 *            The initial processing pipeline position.
-	 */
-	public BindingEvent(IObservable model, IObservable target, IDiff diff, int copyType,
-			int pipelinePosition) {
-		super(model, target, diff, copyType, pipelinePosition);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingException.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingException.java
deleted file mode 100644
index 1dc2952..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindingException.java
+++ /dev/null
@@ -1,51 +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.internal.databinding.provisional;
-
-/**
- * An unchecked exception indicating a binding problem.
- * 
- * <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 remain
- * unchanged during the 3.2 release cycle. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * TODO API review issue: Use CoreException instead?
- * 
- * @since 1.0
- * @deprecated use {@link org.eclipse.jface.databinding.BindingException} instead
- */
-public class BindingException extends org.eclipse.jface.databinding.BindingException {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -5163348527342184865L;
-
-	/**
-	 * Creates a new BindingException with the given message.
-	 * @param message
-	 */
-	public BindingException(String message) {
-		super(message);
-	}
-
-	/**
-	 * Creates a new BindingException with the given message and cause.
-	 * @param message
-	 * @param cause
-	 */
-	public BindingException(String message, Throwable cause) {
-		super(message, cause);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/DataBindingContext.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/DataBindingContext.java
deleted file mode 100644
index adb1209..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/DataBindingContext.java
+++ /dev/null
@@ -1,310 +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.internal.databinding.provisional;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.internal.databinding.provisional.factories.BindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.IBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.IObservableFactory;
-
-/**
- * A context for binding observable objects with a shared lifecycle. The
- * factories registered with a data binding context determine how observable
- * objects are created from description objects, and which converters and
- * validators are used when no specific converter or validator is given.
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * <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 remain
- * unchanged during the 3.2 release cycle. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 1.0
- * @deprecated use {@link org.eclipse.jface.databinding.DataBindingContext} instead
- * 
- */
-public final class DataBindingContext extends org.eclipse.jface.databinding.DataBindingContext {
-
-	/**
-	 * Returns a new data binding context with the given parent.
-	 * 
-	 * @param parent
-	 * @return a data binding context
-	 */
-	public static DataBindingContext createContext(DataBindingContext parent) {
-		DataBindingContext result = new DataBindingContext(parent);
-		return result;
-	}
-
-	/**
-	 * Returns a new data binding context on which the given factories have been
-	 * registered using
-	 * {@link DataBindingContext#addObservableFactory(IObservableFactory)}. The
-	 * factories will be added in the order given.
-	 * 
-	 * @param observableFactories
-	 * @return a data binding context
-	 */
-	public static DataBindingContext createContext(
-			IObservableFactory[] observableFactories) {
-		return createContext(observableFactories,
-				new BindSupportFactory[] { new DefaultBindSupportFactory() },
-				new IBindingFactory[] { new DefaultBindingFactory() });
-	}
-
-	/**
-	 * Returns a new data binding context on which the given factories have been
-	 * registered using
-	 * {@link DataBindingContext#addObservableFactory(IObservableFactory)}. The
-	 * factories will be added in the order given.
-	 * 
-	 * @param observableFactories
-	 * @param bindSupportFactories
-	 * @param bindingFactories
-	 * @return a data binding context
-	 */
-	public static DataBindingContext createContext(
-			IObservableFactory[] observableFactories,
-			BindSupportFactory[] bindSupportFactories,
-			IBindingFactory[] bindingFactories) {
-		DataBindingContext result = new DataBindingContext();
-		if (observableFactories != null)
-			for (int i = 0; i < observableFactories.length; i++) {
-				result.addObservableFactory(observableFactories[i]);
-			}
-		if (bindSupportFactories != null)
-			for (int i = 0; i < bindSupportFactories.length; i++) {
-				result.addBindSupportFactory(bindSupportFactories[i]);
-			}
-		if (bindingFactories != null)
-			for (int i = 0; i < bindingFactories.length; i++) {
-				result.addBindingFactory(bindingFactories[i]);
-			}
-		return result;
-	}
-
-	private List bindingFactories = new ArrayList();
-
-	private List createdObservables = new ArrayList();
-
-	private List factories = new ArrayList();
-
-	/**
-	 * 
-	 */
-	public DataBindingContext() {
-	}
-
-	/**
-	 * @param parent
-	 * 
-	 */
-	public DataBindingContext(DataBindingContext parent) {
-		super(parent);
-	}
-	
-	/**
-	 * Adds a factory for creating observable objects from description objects
-	 * to this context. The list of observable factories is used for creating
-	 * observable objects when binding based on description objects.
-	 * 
-	 * @param observableFactory
-	 * @deprecated no longer part of the API
-	 */
-	public void addObservableFactory(IObservableFactory observableFactory) {
-		// TODO: consider the fact that adding new factories for a given
-		// description
-		// may hide default ones (e.g., a new PropertyDescriptor may overide the
-		// ond for EMF)
-		factories.add(observableFactory);
-	}
-
-	/**
-	 * Adds the given factory to the list of binding factories.
-	 * 
-	 * @param factory
-	 * @deprecated no longer part of the API
-	 */
-	public void addBindingFactory(IBindingFactory factory) {
-		bindingFactories.add(factory);
-	}
-
-	/**
-	 * Binds targetObservable and modelObservable using converter and validator
-	 * as specified in bindSpec. If bindSpec is null, a default converter and
-	 * validator is used.
-	 * 
-	 * @param targetObservable
-	 * @param modelObservable
-	 * @param bindSpec
-	 *            the bind spec, or null.  Any bindSpec object must not be reused
-	 *            or changed after it is passed to #bind.
-	 * @return The Binding that manages this data flow
-	 * @deprecated no longer part of the API
-	 */
-	public Binding bind(IObservable targetObservable,
-			IObservable modelObservable, org.eclipse.jface.databinding.BindSpec bindSpec) {
-		Binding result = doCreateBinding(targetObservable, modelObservable,
-				bindSpec, this);
-		if (result != null)
-			return result;
-		throw new BindingException(
-				"No binding found for target: " + targetObservable.getClass().getName() + ", model: " + modelObservable.getClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	private Binding doCreateBinding(IObservable targetObservable,
-			IObservable modelObservable, org.eclipse.jface.databinding.BindSpec bindSpec,
-			DataBindingContext originatingContext) {
-		for (int i = bindingFactories.size() - 1; i >= 0; i--) {
-			IBindingFactory factory = (IBindingFactory) bindingFactories.get(i);
-			Binding binding = null;
-			if (bindSpec==null || bindSpec instanceof BindSpec) {
-				binding = factory.createBinding(originatingContext, targetObservable,
-					modelObservable, (BindSpec)bindSpec);
-			}
-			if (binding != null) {
-				addBinding(binding);
-				return binding;
-			}
-		}
-		if (parent instanceof DataBindingContext) {
-			return ((DataBindingContext)parent).doCreateBinding(targetObservable, modelObservable,
-					bindSpec, originatingContext);
-		}
-		return null;
-	}
-
-	/**
-	 * Convenience method to bind targetObservable and
-	 * createObservable(modelDescription).
-	 * 
-	 * @param targetObservable
-	 * @param modelDescription
-	 * @param bindSpec
-	 *            the bind spec, or null.  Any bindSpec object must not be reused
-	 *            or changed after it is passed to #bind.
-	 * @return The Binding that manages this data flow
-	 * @deprecated no longer part of the API
-	 */
-	public Binding bind(IObservable targetObservable, Object modelDescription,
-			org.eclipse.jface.databinding.BindSpec bindSpec) {
-		return bind(targetObservable, createObservable(modelDescription),
-				bindSpec);
-	}
-
-	/**
-	 * Convenience method to bind createObservable(targetDescription) and
-	 * modelObservable.
-	 * 
-	 * @param targetDescription
-	 * @param modelObservable
-	 * @param bindSpec
-	 *            the bind spec, or null.  Any bindSpec object must not be reused
-	 *            or changed after it is passed to #bind.
-	 * @return The Binding that manages this data flow
-	 * @deprecated no longer part of the API
-	 */
-	public Binding bind(Object targetDescription, IObservable modelObservable,
-			org.eclipse.jface.databinding.BindSpec bindSpec) {
-		return bind(createObservable(targetDescription), modelObservable,
-				bindSpec);
-	}
-
-	/**
-	 * Convenience method to bind createObservable(targetDescription) and
-	 * createObservable(modelDescription).
-	 * 
-	 * @param targetDescription
-	 * @param modelDescription
-	 * @param bindSpec
-	 *            the bind spec, or null.  Any bindSpec object must not be reused
-	 *            or changed after it is passed to #bind.
-	 * @return The Binding that manages this data flow
-	 * @deprecated no longer part of the API
-	 */
-	public Binding bind(Object targetDescription, Object modelDescription,
-			org.eclipse.jface.databinding.BindSpec bindSpec) {
-		return bind(createObservable(targetDescription), modelDescription,
-				bindSpec);
-	}
-
-	/**
-	 * Creates an observable object from a description. Description objects are
-	 * interpreted by implementors of IObservableFactory, the data binding
-	 * framework does not impose any semantics on them.
-	 * 
-	 * @param description
-	 * @return IObservable for the given description
-	 * @deprecated no longer part of the API
-	 */
-	public IObservable createObservable(Object description) {
-		IObservable observable = doCreateObservable(description, this);
-		if (observable != null) {
-			createdObservables.add(observable);
-		}
-		return observable;
-	}
-
-	/**
-	 * Disposes of this data binding context and all observable objects created
-	 * in this context.
-	 * @deprecated contract has changed in the replacement class
-	 */
-	public void dispose() {
-		super.dispose();
-		for (Iterator it = createdObservables.iterator(); it.hasNext();) {
-			IObservable observable = (IObservable) it.next();
-			observable.dispose();
-		}
-	}
-
-	private IObservable doCreateObservable(Object description,
-			DataBindingContext thisDatabindingContext) {
-		for (int i = factories.size() - 1; i >= 0; i--) {
-			IObservableFactory factory = (IObservableFactory) factories.get(i);
-			IObservable result = factory.createObservable(description);
-			if (result != null) {
-				return result;
-			}
-		}
-		if (parent instanceof DataBindingContext) {
-			return ((DataBindingContext)parent).doCreateObservable(description,
-					thisDatabindingContext);
-		}
-		throw new BindingException("could not find observable for " //$NON-NLS-1$
-				+ description);
-	}
-
-	/**
-	 * Registers an IObservable with the data binding context so that it will be
-	 * disposed when all other IObservables are disposed. This is only necessary
-	 * for observables like SettableValue that are instantiated directly, rather
-	 * being created by a data binding context to begin with.
-	 * 
-	 * @param observable
-	 *            The IObservable to register.
-	 * @deprecated no longer part of the API
-	 */
-	public void registerForDispose(IObservable observable) {
-		createdObservables.add(observable);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/IBindingListener.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/IBindingListener.java
deleted file mode 100644
index 816a296..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/IBindingListener.java
+++ /dev/null
@@ -1,35 +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.databinding.provisional;
-
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * An interface for objects that need to listen to events that occur in the
- * data flow pipeline
- *  
- * @since 1.0
- * @deprecated no longer part of the API
- */
-public interface IBindingListener {
-	
-	/**
-	 * Method bindingEvent.  The method that is called when something interesting
-	 * occurs in the data flow pipeline.
-	 * 
-	 * @param e The IBindingEvent to handle.
-	 * @return null if no error or a ValidationError with an error status to 
-	 * abort the operation.  The error will be propagated to the data binding 
-	 * context's error message updatable.
-	 */
-	public ValidationError bindingEvent(BindingEvent e);
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertDate2String.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertDate2String.java
deleted file mode 100644
index f681433..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertDate2String.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-import java.util.Date;
-
-
-/**
- * Convert a Java.util.Date to a String using the current locale.  Null date
- * values are converted to an empty string.
- * 
- * @since 1.0
- */
-public class ConvertDate2String extends DateConversionSupport implements IConverter {	
-	public Object convert(Object source) {
-		if (source != null)
-			return format((Date)source);
-		return ""; //$NON-NLS-1$
-	}
-
-	public Object getFromType() {
-		return Date.class;
-	}
-
-	public Object getToType() {
-		return String.class;
-	}	
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BigDecimal.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BigDecimal.java
deleted file mode 100644
index 8643e8c..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BigDecimal.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-import java.math.BigDecimal;
-
-
-
-/**
- * ConvertString2BigDecimal.
- */
-public class ConvertString2BigDecimal implements IConverter {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-        try {
-        	return new BigDecimal((String)source);
-        } catch (Exception e) {
-            throw new IllegalArgumentException("String2BigDecimal: " + e.getMessage() + ": " + source); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-	}
-
-	public Object getFromType() {
-		return String.class;
-	}
-
-	public Object getToType() {
-		return BigDecimal.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Boolean.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Boolean.java
deleted file mode 100644
index d3c61d0..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Boolean.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2Boolean.
- */
-public class ConvertString2Boolean extends ConvertString2BooleanPrimitive {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		String sourceString = (String) source;
-		if ("".equals(sourceString.trim())) { //$NON-NLS-1$
-			return null;
-		} else {
-			return super.convert(source);
-        }
-	}
-
-	public Object getToType() {
-		return Boolean.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BooleanPrimitive.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BooleanPrimitive.java
deleted file mode 100644
index 0ed87dd..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BooleanPrimitive.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-import org.eclipse.jface.internal.databinding.internal.BindingMessages;
-
-
-
-/**
- * ConvertString2BooleanPrimitive.
- */
-public class ConvertString2BooleanPrimitive implements IConverter {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-        String s = (String) source;
-        if (s.equals(BindingMessages.getString("Yes")) || s.equals(BindingMessages.getString("yes")) || s.equals(BindingMessages.getString("true")) || s.equals(BindingMessages.getString("True"))) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-            return Boolean.TRUE;
-        if (s.equals(BindingMessages.getString("No")) || s.equals(BindingMessages.getString("no")) || s.equals(BindingMessages.getString("false")) || s.equals(BindingMessages.getString("False")))    //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
-            return Boolean.FALSE;
-        
-		throw new IllegalArgumentException(s + " is not a legal boolean value"); //$NON-NLS-1$
-	}
-
-	public Object getFromType() {
-		return String.class;
-	}
-
-	public Object getToType() {
-		return Boolean.TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Byte.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Byte.java
deleted file mode 100644
index 854f7e7..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Byte.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2Byte.
- */
-public class ConvertString2Byte extends ConvertString2BytePrimitive {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		String sourceString = (String) source;
-		if ("".equals(sourceString.trim())) { //$NON-NLS-1$
-			return null;
-		} else {
-			return super.convert(source);
-        }
-	}
-
-	public Object getToType() {
-		return Byte.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BytePrimitive.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BytePrimitive.java
deleted file mode 100644
index 2f7ecc7..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2BytePrimitive.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2BytePrimitive.
- */
-public class ConvertString2BytePrimitive implements IConverter {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-        try {
-            return new Byte(Byte.parseByte((String) source));
-        } catch (Exception e) {
-            throw new IllegalArgumentException("String2Byte: " + e.getMessage() + ": " + source); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-	}
-
-	public Object getFromType() {
-		return String.class;
-	}
-
-	public Object getToType() {
-		return Byte.TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Character.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Character.java
deleted file mode 100644
index bb63081..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Character.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-/**
- * ConvertString2Character.
- */
-public class ConvertString2Character implements IConverter {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		String s = (String) source;
-		Character result;
-
-		if (s.length() > 1)
-			throw new IllegalArgumentException(
-					"String2Character: string too long: " + s); //$NON-NLS-1$
-
-		try {
-			result = new Character(s.charAt(0));
-		} catch (Exception e) {
-			throw new IllegalArgumentException(
-					"String2Character: " + e.getMessage() + ": " + s); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		return result;
-	}
-
-	public Object getFromType() {
-		return String.class;
-	}
-
-	public Object getToType() {
-		return Character.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Date.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Date.java
deleted file mode 100644
index 122dbcc..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Date.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-import java.util.Date;
-
-
-/**
- * Convert a String to a java.util.Date, respecting the current locale
- * 
- * @since 1.0
- */
-public class ConvertString2Date extends DateConversionSupport implements IConverter {
-	public Object convert(Object source) {
-		return parse(source.toString());
-	}
-
-	public Object getFromType() {
-		return String.class;
-	}
-
-	public Object getToType() {
-		return Date.class;
-	}	
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Double.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Double.java
deleted file mode 100644
index 4bde204..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Double.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2Double.
- */
-public class ConvertString2Double extends ConvertString2DoublePrimitive {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		String sourceString = (String) source;
-		if ("".equals(sourceString.trim())) { //$NON-NLS-1$
-			return null;
-		} else {
-			return super.convert(source);
-        }
-	}
-
-	public Object getToType() {
-		return Double.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2DoublePrimitive.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2DoublePrimitive.java
deleted file mode 100644
index 427351a..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2DoublePrimitive.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2DoublePrimitive.
- */
-public class ConvertString2DoublePrimitive implements IConverter {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-        try {
-            return new Double(Double.parseDouble((String) source));
-        } catch (Exception e) {
-            throw new IllegalArgumentException("String2Double: " + e.getMessage() + ": " + source); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-	}
-
-	public Object getFromType() {
-		return String.class;
-	}
-
-	public Object getToType() {
-		return Double.TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Float.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Float.java
deleted file mode 100644
index 31c2414..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Float.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2Float.
- */
-public class ConvertString2Float extends ConvertString2FloatPrimitive {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		String sourceString = (String) source;
-		if ("".equals(sourceString.trim())) { //$NON-NLS-1$
-			return null;
-		} else {
-			return super.convert(source);
-        }
-	}
-
-	public Object getToType() {
-		return Float.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2FloatPrimitive.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2FloatPrimitive.java
deleted file mode 100644
index 1d34963..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2FloatPrimitive.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2FloatPrimitive.
- */
-public class ConvertString2FloatPrimitive implements IConverter {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-        try {
-            return new Float(Float.parseFloat((String) source));
-        } catch (Exception e) {
-            throw new IllegalArgumentException("String2Float: " + e.getMessage() + ": " + source); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-	}
-
-	public Object getFromType() {
-		return String.class;
-	}
-
-	public Object getToType() {
-		return Float.TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Integer.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Integer.java
deleted file mode 100644
index abc0285..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Integer.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2Integer.
- */
-public class ConvertString2Integer extends ConvertString2IntegerPrimitive {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		String sourceString = (String) source;
-		if ("".equals(sourceString.trim())) { //$NON-NLS-1$
-			return null;
-		} else {
-			return super.convert(source);
-        }
-	}
-
-	public Object getToType() {
-		return Integer.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2IntegerPrimitive.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2IntegerPrimitive.java
deleted file mode 100644
index 404ab9c..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2IntegerPrimitive.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2IntegerPrimitive.
- */
-public class ConvertString2IntegerPrimitive implements IConverter {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-        try {
-            return new Integer(Integer.parseInt((String) source));
-        } catch (Exception e) {
-            throw new IllegalArgumentException("String2Int: " + e.getMessage() + ": " + source); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-	}
-
-	public Object getFromType() {
-		return String.class;
-	}
-
-	public Object getToType() {
-		return Integer.TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Long.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Long.java
deleted file mode 100644
index eb38c81..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Long.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2Long.
- */
-public class ConvertString2Long extends ConvertString2LongPrimitive {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		String sourceString = (String) source;
-		if ("".equals(sourceString.trim())) { //$NON-NLS-1$
-			return null;
-		} else {
-			return super.convert(source);
-        }
-	}
-
-	public Object getToType() {
-		return Long.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2LongPrimitive.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2LongPrimitive.java
deleted file mode 100644
index c094fbf..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2LongPrimitive.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2LongPrimitive.
- */
-public class ConvertString2LongPrimitive implements IConverter {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-        try {
-            return new Long(Long.parseLong((String) source));
-        } catch (Exception e) {
-            throw new IllegalArgumentException("String2Long: " + e.getMessage() + ": " + source); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-	}
-
-	public Object getFromType() {
-		return String.class;
-	}
-
-	public Object getToType() {
-		return Long.TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Short.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Short.java
deleted file mode 100644
index 8f40e01..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2Short.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2Long.
- */
-public class ConvertString2Short extends ConvertString2ShortPrimitive {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		String sourceString = (String) source;
-		if ("".equals(sourceString.trim())) { //$NON-NLS-1$
-			return null;
-		} else {
-			return super.convert(source);
-        }
-	}
-
-	public Object getToType() {
-		return Short.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2ShortPrimitive.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2ShortPrimitive.java
deleted file mode 100644
index d2a60b0..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ConvertString2ShortPrimitive.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-
-
-
-/**
- * ConvertString2ShortPrimitive.
- */
-public class ConvertString2ShortPrimitive implements IConverter {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-        try {
-            return new Short(Short.parseShort((String) source));
-        } catch (Exception e) {
-            throw new IllegalArgumentException("String2Short: " + e.getMessage() + ": " + source); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-	}
-
-	public Object getFromType() {
-		return String.class;
-	}
-
-	public Object getToType() {
-		return Short.TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/Converter.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/Converter.java
deleted file mode 100644
index 804ef03..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/Converter.java
+++ /dev/null
@@ -1,41 +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.databinding.provisional.conversion;
-
-
-/**
- * @since 1.0
- *
- */
-public abstract class Converter implements IConverter {
-
-	private Object fromType;
-	private Object toType;
-
-	/**
-	 * @param fromType
-	 * @param toType
-	 */
-	public Converter(Object fromType, Object toType) {
-		this.fromType = fromType;
-		this.toType = toType;
-	}
-
-	public Object getFromType() {
-		return fromType;
-	}
-
-	public Object getToType() {
-		return toType;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/DateConversionSupport.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/DateConversionSupport.java
deleted file mode 100644
index dbfe41b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/DateConversionSupport.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-import com.ibm.icu.text.DateFormat;
-import java.text.ParsePosition;
-import com.ibm.icu.text.SimpleDateFormat;
-import java.util.Date;
-
-/**
- * Base support for date/string conversion handling according to the
- * default locale or in plain long milliseconds.
- * 
- * NOTE: parse(format(date)) will generally *not* be equal to date, since the
- * string representation may not cover the sub-second range, time-only string
- * representations will be counted from the beginning of the era, etc.
- */
-public abstract class DateConversionSupport {
-	private final static int DATE_FORMAT=DateFormat.SHORT;
-	private final static int DEFAULT_FORMATTER_INDEX=0;
-
-	private final static int NUM_VIRTUAL_FORMATTERS=1;
-	
-	/**
-	 * Alternative formatters for date, time and date/time.
-	 * Raw milliseconds are covered as a special case.
-	 */
-	// TODO: These could be shared, but would have to be synchronized.
-	private DateFormat[] formatters={
-			new SimpleDateFormat("dd.MM.yyyy HH:mm:ss.SSS Z"), //$NON-NLS-1$
-            new SimpleDateFormat("HH:mm:ss.SSS"), //$NON-NLS-1$
-			DateFormat.getDateTimeInstance(DATE_FORMAT,DateFormat.SHORT),
-			DateFormat.getDateInstance(DATE_FORMAT),
-			DateFormat.getTimeInstance(DateFormat.SHORT),
-            DateFormat.getDateTimeInstance(DATE_FORMAT,DateFormat.MEDIUM),
-            DateFormat.getTimeInstance(DateFormat.MEDIUM)
-	};
-	
-	/**
-	 * Tries all available formatters to parse the given string according to the
-	 * default locale or as a raw millisecond value and returns the result of the
-	 * first successful run.
-	 * 
-	 * @param str A string specifying a date according to the default locale or in raw milliseconds
-	 * @return The parsed date, or null, if no available formatter could interpret the input string
-	 */
-	protected Date parse(String str) {
-		for (int formatterIdx = 0; formatterIdx < formatters.length; formatterIdx++) {
-			Date parsed=parse(str,formatterIdx);
-			if(parsed!=null) {
-				return parsed;
-			}
-		}
-		return null;
-	}
-
-	protected Date parse(String str,int formatterIdx) {
-		if(formatterIdx>=0) {
-				ParsePosition pos=new ParsePosition(0);
-				if (str == null) {
-					return null;
-				}
-				Date date=formatters[formatterIdx].parse(str,pos);
-				if(pos.getErrorIndex()!=-1||pos.getIndex()!=str.length()) {
-					return null;
-				}
-				return date;
-		}
-		try {
-			long millisecs=Long.parseLong(str);
-			return new Date(millisecs);
-		}
-		catch(NumberFormatException exc) {
-		}
-		return null;
-	}
-	
-	/**
-	 * Formats the given date with the default formatter according to the default locale.
-	 */
-	protected String format(Date date) {
-		return format(date,DEFAULT_FORMATTER_INDEX);
-	}
-
-	protected String format(Date date,int formatterIdx) {
-		if(formatterIdx>=0) {
-			return formatters[formatterIdx].format(date);
-		}
-		return String.valueOf(date.getTime());
-	}
-
-	protected int numFormatters() {
-		return formatters.length+NUM_VIRTUAL_FORMATTERS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IConverter.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IConverter.java
deleted file mode 100644
index 63336f9..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IConverter.java
+++ /dev/null
@@ -1,51 +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.internal.databinding.provisional.conversion;
-
-/**
- * A one-way converter.
- * <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 remain
- * unchanged during the 3.2 release cycle. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 1.0
- * 
- */
-public interface IConverter {
-
-	/**
-	 * Returns the type whose instances can be converted by this converter.
-	 * 
-	 * @return the type whose instances can be converted, or null if this converter is untyped
-	 */
-	public Object getFromType();
-
-	/**
-	 * Returns the type to which this converter can convert.
-	 * 
-	 * @return the type to which this converter can convert, or null if this converter is untyped
-	 */
-	public Object getToType();
-
-	/**
-	 * Returns the result of the conversion of the given object. The given
-	 * object must be an instance of getTargetType(), and the result must be an
-	 * instance of getModelType().
-	 * 
-	 * @param fromObject
-	 *            the object to convert
-	 * @return the converted object
-	 */
-	public Object convert(Object fromObject);
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IdentityConverter.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IdentityConverter.java
deleted file mode 100644
index 71a6e52..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IdentityConverter.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-import org.eclipse.jface.internal.databinding.provisional.BindingException;
-
-/**
- * TheIdentityConverter. Returns the source value (the identity function).
- */
-public class IdentityConverter implements IConverter {
-
-	private Class fromType;
-
-	private Class toType;
-
-	/**
-	 * @param type
-	 */
-	public IdentityConverter(Class type) {
-		this.fromType = type;
-		this.toType = type;
-	}
-
-	/**
-	 * @param fromType
-	 * @param toType
-	 */
-	public IdentityConverter(Class fromType, Class toType) {
-		this.fromType = fromType;
-		this.toType = toType;
-	}
-
-	private Class[][] primitiveMap = new Class[][] {
-			{ Integer.TYPE, Integer.class }, { Short.TYPE, Short.class },
-			{ Long.TYPE, Long.class }, { Double.TYPE, Double.class },
-			{ Byte.TYPE, Byte.class }, { Float.TYPE, Float.class },
-			{ Boolean.TYPE, Boolean.class }, };
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		if (toType.isPrimitive()) {
-			if (source == null) {
-				throw new BindingException("Cannot convert null to a primitive"); //$NON-NLS-1$
-			}
-		}
-		if (source != null) {
-			Class sourceClass = source.getClass();
-			if (toType.isPrimitive() || sourceClass.isPrimitive()) {
-				if (sourceClass.equals(toType)
-						|| isPrimitiveTypeMatchedWithBoxed(sourceClass, toType)) {
-					return source;
-				}
-				throw new BindingException(
-						"Boxed and unboxed types do not match"); //$NON-NLS-1$
-			}
-			if (!toType.isAssignableFrom(sourceClass)) {
-				throw new BindingException(sourceClass.getName()
-						+ " is not assignable to " + toType.getName()); //$NON-NLS-1$
-			}
-		}
-		return source;
-	}
-
-	/**
-	 * (Non-API) isPrimitiveTypeMatchedWithBoxed.
-	 * 
-	 * @param sourceClass
-	 * @param toClass
-	 * @return true if sourceClass and toType are matched primitive/boxed types
-	 */
-	public boolean isPrimitiveTypeMatchedWithBoxed(Class sourceClass,
-			Class toClass) {
-		for (int i = 0; i < primitiveMap.length; i++) {
-			if (toClass.equals(primitiveMap[i][0])
-					&& sourceClass.equals(primitiveMap[i][1])) {
-				return true;
-			}
-			if (sourceClass.equals(primitiveMap[i][0])
-					&& toClass.equals(primitiveMap[i][1])) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public Object getFromType() {
-		return fromType;
-	}
-
-	public Object getToType() {
-		return toType;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ToStringConverter.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ToStringConverter.java
deleted file mode 100644
index 1c64074..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/ToStringConverter.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.conversion;
-
-/**
- * Converts any object to a string by calling its toString() method.
- */
-public class ToStringConverter implements IConverter {
-
-	/**
-	 * A singleton for the toString() converter function
-	 */
-	public static final ToStringConverter TOSTRINGFUNCTION = new ToStringConverter();
-
-	private final Class fromClass;
-
-	/**
-	 * 
-	 */
-	public ToStringConverter() {
-		this(Object.class);
-	}
-
-	/**
-	 * @param fromClass
-	 */
-	public ToStringConverter(Class fromClass) {
-		this.fromClass = fromClass;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		if (source == null) {
-			return ""; //$NON-NLS-1$
-		}
-		return source.toString();
-	}
-
-	public Object getFromType() {
-		return fromClass;
-	}
-
-	public Object getToType() {
-		return String.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/ListModelDescription.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/ListModelDescription.java
deleted file mode 100644
index ccff0bd..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/ListModelDescription.java
+++ /dev/null
@@ -1,50 +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.databinding.provisional.description;
-
-/**
- * TODO Javadoc
- * 
- * @since 1.0
- * @deprecated no longer part of the API
- * 
- */
-public class ListModelDescription {
-
-	private final Property collectionProperty;
-
-	private final Object propertyID;
-
-	/**
-	 * @param collectionProperty
-	 * @param propertyID 
-	 */
-	public ListModelDescription(Property collectionProperty, Object propertyID) {
-		this.collectionProperty = collectionProperty;
-		this.propertyID = propertyID;
-	}
-
-	/**
-	 * @return the collection property
-	 */
-	public Property getCollectionProperty() {
-		return collectionProperty;
-	}
-
-	/**
-	 * @return Returns the propertyID.
-	 */
-	public Object getPropertyID() {
-		return propertyID;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/NestedProperty.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/NestedProperty.java
deleted file mode 100644
index da4f32d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/NestedProperty.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.internal.databinding.provisional.description;
-
-
-/**
- * TODO Javadoc
- * 
- * @since 1.0
- * @deprecated no longer part of the API
- *
- */
-public class NestedProperty  extends Property {
-
-	private Class[] types;
-	private Class prototypeClass;
-
-	/**
-	 * @param object
-	 * @param properties
-	 * @param types
-	 */
-	public NestedProperty(Object object, String[] properties, Class[] types) {
-		super(object, properties);
-		this.types = types;
-	}
-	
-	/**
-	 * @param object
-	 * @param properties
-	 * @param prototypeClass
-	 */
-	public NestedProperty(Object object, String properties, Class prototypeClass) {
-		super(object, properties);
-		this.prototypeClass = prototypeClass;		
-	}
-
-	/**
-	 * @return the array of types
-	 */
-	public Class[] getTypes() {
-		return types;
-	}
-
-	/**
-	 * @return the prototype class
-	 */
-	public Class getPrototypeClass() {
-		return prototypeClass;
-	}
-	
-	
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/Property.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/Property.java
deleted file mode 100644
index 078f04d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/Property.java
+++ /dev/null
@@ -1,123 +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.internal.databinding.provisional.description;
-
-/**
- * A standard description type representing a property of an object. Description
- * objects can be passed to <code>DataBindingContext.bind()</code> or
- * <code>DataBindingContext.createUpdatable()</code>. They are passed to
- * <code>IUpdatableFactory.createUpdatable()</code> to create an updatable
- * object. It is up to the IUpdatableFactory objects to interpret this
- * description.
- * <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 remain
- * unchanged during the 3.2 release cycle. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 1.0
- * @deprecated no longer part of the API
- * 
- */
-public class Property {
-
-	private final Object object;
-
-	private final Object propertyID;
-
-	private final Class propertyType;
-
-	private final Boolean isCollectionProperty;
-
-	/**
-	 * Creates a new property description from the given object and property
-	 * identifier.
-	 * 
-	 * @param object
-	 * @param propertyID
-	 */
-	public Property(Object object, Object propertyID) {
-		this(object, propertyID, null, null);
-	}
-
-	/**
-	 * Creates a new property description from the given object, property
-	 * identifier, property type, and information whether the property is a
-	 * collection property.
-	 * 
-	 * @param object
-	 *            the object that has the given property
-	 * @param propertyID
-	 *            the property identifier
-	 * @param propertyType
-	 *            the property type, or <code>null</code> if unknown
-	 * @param isCollectionProperty
-	 *            <code>Boolean.TRUE</code> if the property is a collection
-	 *            property, <code>Boolean.FALSE</code> if it is a simple
-	 *            property, or <code>null</code> if unknown
-	 */
-	public Property(Object object, Object propertyID,
-			Class propertyType, Boolean isCollectionProperty) {
-		this.object = object;
-		this.propertyID = propertyID;
-		this.propertyType = propertyType;
-		this.isCollectionProperty = isCollectionProperty;
-	}
-
-	/**
-	 * Returns the object of this property description.
-	 * 
-	 * @return the object
-	 */
-	public Object getObject() {
-		return object;
-	}
-
-	/**
-	 * Returns the property identifier of this property description.
-	 * 
-	 * @return the property identifier
-	 */
-	public Object getPropertyID() {
-		return propertyID;
-	}
-
-	/**
-	 * Returns the property type of this property description, or
-	 * <code>null</code> if unknown.
-	 * 
-	 * @return the property identifier, or <code>null</code>
-	 */
-	public Class getPropertyType() {
-		return propertyType;
-	}
-
-	/**
-	 * Returns whether the property is a collection property, or
-	 * <code>null</code> if unknown. If the property is a collection property,
-	 * getPropertyType() returns the element type of the collection.
-	 * 
-	 * @return <code>Boolean.TRUE</code> if the property is a collection
-	 *         property, <code>null</code> if it is a simple property, or
-	 *         <code>null</code> if unknown
-	 */
-	public Boolean isCollectionProperty() {
-		return isCollectionProperty;
-	}
-	
-	/* (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return "Property(" + object.getClass().getName() + ", " + propertyID.toString() + ", ...)"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/TableModelDescription.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/TableModelDescription.java
deleted file mode 100644
index 5366661..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/description/TableModelDescription.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.jface.internal.databinding.provisional.description;
-
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-
-
-/**
- * TODO Javadoc
- * 
- * @since 1.0
- * @deprecated no longer part of the API
- *
- */
-public class TableModelDescription {
-	
-	private final Property collectionProperty;
-	private final IObservableList observableList;
-	private final Object[] columnIDs;
-
-	/**
-	 * @param collectionProperty
-	 * @param columnIDs
-	 */
-	public TableModelDescription(Property collectionProperty, Object[] columnIDs) {
-		this.collectionProperty = collectionProperty;
-		this.columnIDs = columnIDs;
-		this.observableList = null;
-	}
-
-	/**
-	 * @param observableList
-	 * @param columnIDs
-	 */
-	public TableModelDescription(IObservableList observableList, Object[] columnIDs) {
-		this.observableList = observableList;
-		this.columnIDs = columnIDs;
-		this.collectionProperty = null;
-	}
-
-	/**
-	 * @return the collection property
-	 */
-	public Property getCollectionProperty() {
-		return collectionProperty;
-	}
-
-	/**
-	 * @return the column identifiers
-	 */
-	public Object[] getColumnIDs() {
-		return columnIDs;
-	}
-
-	/**
-	 * @return the observable list
-	 */
-	public IObservableList getObservableList() {
-		return observableList;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/BindSupportFactory.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/BindSupportFactory.java
deleted file mode 100644
index a22d85d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/BindSupportFactory.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.jface.internal.databinding.provisional.factories;
-
-import org.eclipse.jface.internal.databinding.provisional.conversion.IConverter;
-import org.eclipse.jface.internal.databinding.provisional.validation.IDomainValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.IValidator;
-
-/**
- * A factory for creating validators and converters. This interface is not
- * intended to be implemented directly. Instead, extend the abstract
- * BindSupportFactory class.
- * <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 remain
- * unchanged during the 3.2 release cycle. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 1.0
- * 
- */
-public abstract class BindSupportFactory {
-
-	/**
-	 * Creates a validator for the given from and to types and model
-	 * description. Either toType or modelDescription can be null, but not both.
-	 * The returned validator (if not null) should validate arbitrary values of
-	 * type toType, and (in the case that toType is given) ensure that they can
-	 * be converted to toType, and (in the case that modelDescription is given)
-	 * ensure that they can be converted to the type expected by updatable
-	 * objects created from the given model description.
-	 * 
-	 * @param fromType
-	 *            The type to validate
-	 * @param toType
-	 *            The type to convert to after successful validation, or
-	 *            <code>null</code> if not known
-	 * @return a validator, or <code>null</code> if this factory cannot create
-	 *         a validator for the given arguments.
-	 */
-	public IValidator createValidator(Object fromType, Object toType) {
-		return null;
-	}
-
-	/**
-	 * Creates a domain validator for the given model description. Either
-	 * modelType or modelDescription can be null, but not both.
-	 * 
-	 * @param modelType
-	 *            The type to validate or <code>null</code> if not known
-	 * @return IDomainValidator
-	 */
-	public IDomainValidator createDomainValidator(Object modelType) {
-		return null;
-	}
-
-	/**
-	 * Creates a converter for the given from and to types and model
-	 * description. Either toType or modelDescription can be null, but not both.
-	 * The returned converter (if not null) should convert values of type
-	 * fromType to values of type toType (in the case that toType is given), and
-	 * (in the case that modelDescription is given) convert to the type expected
-	 * by updatable objects created from the given model description.
-	 * 
-	 * @param fromType
-	 *            The type to convert from
-	 * @param toType
-	 *            The type to convert to, or <code>null</code> if not known
-	 * @return a converter, or <code>null</code> if this factory cannot create
-	 *         a converter for the given arguments.
-	 */
-	public IConverter createConverter(Object fromType, Object toType) {
-		return null;
-	}
-
-	/**
-	 * @param fromType
-	 * @param toType
-	 * @return whether fromType is assignable to toType, or <code>null</code>
-	 *         if this factory cannot determine assignability between the given
-	 *         types
-	 */
-	public Boolean isAssignableFromTo(Object fromType, Object toType) {
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactory.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactory.java
deleted file mode 100644
index 39c6c6c..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactory.java
+++ /dev/null
@@ -1,648 +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.databinding.provisional.factories;
-
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.internal.databinding.internal.ClassLookupSupport;
-import org.eclipse.jface.internal.databinding.internal.Pair;
-import org.eclipse.jface.internal.databinding.provisional.BindingException;
-import org.eclipse.jface.internal.databinding.provisional.conversion.IConverter;
-import org.eclipse.jface.internal.databinding.provisional.conversion.IdentityConverter;
-import org.eclipse.jface.internal.databinding.provisional.conversion.ToStringConverter;
-import org.eclipse.jface.internal.databinding.provisional.validation.IDomainValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.IValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.ObjectToPrimitiveValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.ReadOnlyValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2BigDecimalValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2BytePrimitiveValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2ByteValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2DateValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2DoublePrimitiveValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2DoubleValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2FloatPrimitiveValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2FloatValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2IntegerPrimitiveValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2IntegerValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2LongPrimitiveValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2LongValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2ShortPrimitiveValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.String2ShortValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * Default bind support factory. This factory adds the following converters and
- * validators:
- * 
- * TODO list converters and validators
- * 
- * @since 1.0
- * 
- */
-public final class DefaultBindSupportFactory extends BindSupportFactory {
-
-	private static final String INTEGER_TYPE = "java.lang.Integer.TYPE"; //$NON-NLS-1$
-
-	private static final String BYTE_TYPE = "java.lang.Byte.TYPE"; //$NON-NLS-1$
-
-	private static final String DOUBLE_TYPE = "java.lang.Double.TYPE"; //$NON-NLS-1$
-
-	private static final String BOOLEAN_TYPE = "java.lang.Boolean.TYPE"; //$NON-NLS-1$
-
-	private static final String FLOAT_TYPE = "java.lang.Float.TYPE"; //$NON-NLS-1$
-
-	private static final String LONG_TYPE = "java.lang.Long.TYPE"; //$NON-NLS-1$
-
-	private static final String SHORT_TYPE = "java.lang.Short.TYPE"; //$NON-NLS-1$
-
-	private ValidatorRegistry validatorRegistry = new ValidatorRegistry();
-
-	private Map converterMap;
-
-	public IValidator createValidator(Object fromType, Object toType) {
-		if (fromType == null || toType == null) {
-			return new IValidator() {
-
-				public ValidationError isPartiallyValid(Object value) {
-					return null;
-				}
-
-				public ValidationError isValid(Object value) {
-					return null;
-				}
-			};
-		}
-
-		IValidator dataTypeValidator = findValidator(fromType, toType);
-		if (dataTypeValidator == null) {
-			throw new BindingException(
-					"No IValidator is registered for conversions from " + fromType + " to " + toType); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return dataTypeValidator;
-	}
-
-	private IValidator findValidator(Object fromType, Object toType) {
-		// TODO string-based lookup of validator
-		return validatorRegistry.get(fromType, toType);
-	}
-
-	public IConverter createConverter(Object fromType, Object toType) {
-		if (!(fromType instanceof Class) || !(toType instanceof Class)) {
-			return null;
-		}
-		Class toClass = (Class) toType;
-		if (toClass.isPrimitive()) {
-			toClass = autoboxed(toClass);
-		}
-		Class fromClass = (Class) fromType;
-		if (fromClass.isPrimitive()) {
-			fromClass = autoboxed(fromClass);
-		}
-		if (!((Class)toType).isPrimitive() && toClass.isAssignableFrom(fromClass)) {
-			return new IdentityConverter(fromClass, toClass);
-		}
-		if (((Class) fromType).isPrimitive() && ((Class) toType).isPrimitive() && fromType.equals(toType)) {
-			return new IdentityConverter((Class) fromType, (Class) toType);
-		}
-		Map converterMap = getConverterMap();
-		Class[] supertypeHierarchyFlattened = ClassLookupSupport
-				.getTypeHierarchyFlattened(fromClass);
-		for (int i = 0; i < supertypeHierarchyFlattened.length; i++) {
-			Class currentFromClass = supertypeHierarchyFlattened[i];
-			if (currentFromClass == toType) {
-				// converting to toType is just a widening
-				return new IdentityConverter(fromClass, toClass);
-			}
-			Pair key = new Pair(getKeyForClass(fromType, currentFromClass),
-					getKeyForClass(toType, toClass));
-			Object converterOrClassname = converterMap.get(key);
-			if (converterOrClassname instanceof IConverter) {
-				return (IConverter) converterOrClassname;
-			} else if (converterOrClassname instanceof String) {
-				String classname = (String) converterOrClassname;
-				Class converterClass;
-				try {
-					converterClass = Class.forName(classname);
-					IConverter result = (IConverter) converterClass
-							.newInstance();
-					converterMap.put(key, result);
-					return result;
-				} catch (ClassNotFoundException e) {
-					e.printStackTrace();
-				} catch (InstantiationException e) {
-					e.printStackTrace();
-				} catch (IllegalAccessException e) {
-					e.printStackTrace();
-				}
-			}
-		}
-		// Since we found no converter yet, try a "downcast" converter;
-		// the IdentityConverter will automatically check the actual types at runtime.
-		if (fromClass.isAssignableFrom(toClass)) {
-			return new IdentityConverter(fromClass, toClass);
-		}
-		return null;
-	}
-
-	private String getKeyForClass(Object originalValue, Class filteredValue) {
-		if (originalValue instanceof Class) {
-			Class originalClass = (Class) originalValue;
-			if (originalClass.equals(Integer.TYPE)) {
-				return INTEGER_TYPE;
-			} else if (originalClass.equals(Byte.TYPE)) {
-				return BYTE_TYPE;
-			} else if (originalClass.equals(Boolean.TYPE)) {
-				return BOOLEAN_TYPE;
-			} else if (originalClass.equals(Double.TYPE)) {
-				return DOUBLE_TYPE;
-			} else if (originalClass.equals(Float.TYPE)) {
-				return FLOAT_TYPE;
-			} else if (originalClass.equals(Long.TYPE)) {
-				return LONG_TYPE;
-			} else if (originalClass.equals(Short.TYPE)) {
-				return SHORT_TYPE;
-			}
-		}
-		return filteredValue.getName();
-	}
-
-	private Map getConverterMap() {
-		// using string-based lookup avoids loading of too many classes
-		if (converterMap == null) {
-			converterMap = new HashMap();
-			converterMap
-					.put(
-							new Pair("java.util.Date",  "java.lang.String"),  "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertDate2String"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.math.BigDecimal"), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2BigDecimal"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Boolean"), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Boolean"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Byte"), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Byte"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Character"), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Character"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.util.Date"), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Date"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Double"), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Double"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Float"), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Float"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Integer"), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Integer"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Long"), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Long"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Short"), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Short"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.Object", "java.lang.String"), "org.eclipse.jface.internal.databinding.provisional.conversion.ToStringConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-
-			// Integer.TYPE
-			converterMap
-					.put(
-							new Pair(
-									"java.lang.String", INTEGER_TYPE), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2IntegerPrimitive"); //$NON-NLS-1$ //$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair(
-									INTEGER_TYPE, "java.lang.Integer"), new IdentityConverter(Integer.TYPE, Integer.class)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									INTEGER_TYPE, "java.lang.String"), new ToStringConverter(Integer.TYPE)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									INTEGER_TYPE, "java.lang.Object"), new IdentityConverter(Integer.TYPE, Object.class)); //$NON-NLS-1$
-
-			// Byte.TYPE
-			converterMap
-					.put(
-							new Pair(
-									"java.lang.String", BYTE_TYPE), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2BytePrimitive"); //$NON-NLS-1$ //$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair(
-									BYTE_TYPE, "java.lang.Byte"), new IdentityConverter(Byte.TYPE, Byte.class)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									BYTE_TYPE, "java.lang.String"), new ToStringConverter(Byte.TYPE)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									BYTE_TYPE, "java.lang.Object"), new IdentityConverter(Byte.TYPE, Object.class)); //$NON-NLS-1$
-
-
-			// Double.TYPE
-			converterMap
-					.put(
-							new Pair(
-									"java.lang.String", DOUBLE_TYPE), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2DoublePrimitive"); //$NON-NLS-1$ //$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair(
-									DOUBLE_TYPE, "java.lang.Double"), new IdentityConverter(Double.TYPE, Double.class)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									DOUBLE_TYPE, "java.lang.String"), new ToStringConverter(Double.TYPE)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									DOUBLE_TYPE, "java.lang.Object"), new IdentityConverter(Double.TYPE, Object.class)); //$NON-NLS-1$
-			
-			// Boolean.TYPE
-			converterMap
-					.put(
-							new Pair(
-									"java.lang.String", BOOLEAN_TYPE), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2BooleanPrimitive"); //$NON-NLS-1$ //$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair(
-									BOOLEAN_TYPE, "java.lang.Boolean"), new IdentityConverter(Boolean.TYPE, Boolean.class)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									BOOLEAN_TYPE, "java.lang.String"), new ToStringConverter(Boolean.TYPE)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									BOOLEAN_TYPE, "java.lang.Object"), new IdentityConverter(Boolean.TYPE, Object.class)); //$NON-NLS-1$
-
-			// Float.TYPE
-			converterMap
-					.put(
-							new Pair(
-									"java.lang.String", FLOAT_TYPE), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2FloatPrimitive"); //$NON-NLS-1$ //$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair(
-									FLOAT_TYPE, "java.lang.Float"), new IdentityConverter(Float.TYPE, Float.class)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									FLOAT_TYPE, "java.lang.String"), new ToStringConverter(Float.TYPE)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									FLOAT_TYPE, "java.lang.Object"), new IdentityConverter(Float.TYPE, Object.class)); //$NON-NLS-1$		
-
-		
-			// Short.TYPE
-			converterMap
-					.put(
-							new Pair(
-									"java.lang.String", SHORT_TYPE), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2ShortPrimitive"); //$NON-NLS-1$ //$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair(
-									SHORT_TYPE, "java.lang.Short"), new IdentityConverter(Short.TYPE, Short.class)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									SHORT_TYPE, "java.lang.String"), new ToStringConverter(Short.TYPE)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									SHORT_TYPE, "java.lang.Object"), new IdentityConverter(Short.TYPE, Object.class)); //$NON-NLS-1$		
-
-		
-			// Long.TYPE
-			converterMap
-					.put(
-							new Pair(
-									"java.lang.String", LONG_TYPE), "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2LongPrimitive"); //$NON-NLS-1$ //$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair(
-									LONG_TYPE, "java.lang.Long"), new IdentityConverter(Long.TYPE, Long.class)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									LONG_TYPE, "java.lang.String"), new ToStringConverter(Long.TYPE)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(
-									LONG_TYPE, "java.lang.Object"), new IdentityConverter(Long.TYPE, Object.class)); //$NON-NLS-1$		
-		
-		}
-			
-		return converterMap;
-	}
-
-	// --------------------------- OLD
-
-	// public IConverter createConverter(Object fromType, Object toType) {
-	// if (!(fromType instanceof Class) || !(toType instanceof Class)) {
-	// return null;
-	// }
-	// Class toClass = (Class) toType;
-	// if (toClass.isPrimitive()) {
-	// toClass = autoboxed(toClass);
-	// }
-	// Class fromClass = (Class) fromType;
-	// if (fromClass.isPrimitive()) {
-	// fromClass = autoboxed(fromClass);
-	// }
-	// if (toClass.isAssignableFrom(fromClass)) {
-	// return new IdentityConverter(fromClass, toClass);
-	// }
-	// Map converterMap = getConverterMap();
-	// Class[] supertypeHierarchyFlattened = ClassLookupSupport
-	// .getTypeHierarchyFlattened(fromClass);
-	// for (int i = 0; i < supertypeHierarchyFlattened.length; i++) {
-	// Class currentFromClass = supertypeHierarchyFlattened[i];
-	// if (currentFromClass == toType) {
-	// // converting to toType is just a widening
-	// return new IdentityConverter(fromClass, toClass);
-	// }
-	// Pair key = new Pair(currentFromClass.getName(), toClass.getName());
-	// Object converterOrClassname = converterMap.get(key);
-	// if (converterOrClassname instanceof IConverter) {
-	// return (IConverter) converterOrClassname;
-	// } else if (converterOrClassname instanceof String) {
-	// String classname = (String) converterOrClassname;
-	// Class converterClass;
-	// try {
-	// converterClass = Class.forName(classname);
-	// IConverter result = (IConverter) converterClass
-	// .newInstance();
-	// converterMap.put(key, result);
-	// return result;
-	// } catch (ClassNotFoundException e) {
-	// e.printStackTrace();
-	// } catch (InstantiationException e) {
-	// e.printStackTrace();
-	// } catch (IllegalAccessException e) {
-	// e.printStackTrace();
-	// }
-	// }
-	// }
-	// // Since we found no converter yet, try a "downcast" converter
-	// if (fromClass.isAssignableFrom(toClass)) {
-	// return new IdentityConverter(fromClass, toClass);
-	// }
-	// return null;
-	// }
-	//
-	// private Map getConverterMap() {
-	// // using string-based lookup avoids loading of too many classes
-	// if (converterMap == null) {
-	// converterMap = new HashMap();
-	// converterMap
-	// .put(
-	// new Pair("java.util.Date", "java.lang.String"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertDate2String");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// converterMap
-	// .put(
-	// new Pair("java.lang.String", "java.math.BigDecimal"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2BigDecimal");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// converterMap
-	// .put(
-	// new Pair("java.lang.String", "java.lang.Boolean"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Boolean");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// converterMap
-	// .put(
-	// new Pair("java.lang.String", "java.lang.Byte"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Byte");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// converterMap
-	// .put(
-	// new Pair("java.lang.String", "java.lang.Character"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Character");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// converterMap
-	// .put(
-	// new Pair("java.lang.String", "java.util.Date"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Date");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// converterMap
-	// .put(
-	// new Pair("java.lang.String", "java.lang.Double"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Double");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// converterMap
-	// .put(
-	// new Pair("java.lang.String", "java.lang.Float"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Float");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// converterMap
-	// .put(
-	// new Pair("java.lang.String", "java.lang.Integer"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Integer");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// converterMap
-	// .put(
-	// new Pair("java.lang.String", "java.lang.Long"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Long");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// converterMap
-	// .put(
-	// new Pair("java.lang.String", "java.lang.Short"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Short");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// converterMap
-	// .put(
-	// new Pair("java.lang.Object", "java.lang.String"),
-	// "org.eclipse.jface.internal.databinding.provisional.conversion.ToStringConverter");
-	// //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	// }
-	// return converterMap;
-	// }
-
-	// --------------------------- OLD
-
-	public IDomainValidator createDomainValidator(Object modelType) {
-		return new IDomainValidator() {
-			public ValidationError isValid(Object value) {
-				return null;
-			}
-		};
-	}
-
-	public Boolean isAssignableFromTo(Object fromType, Object toType) {
-		if (fromType instanceof Class && toType instanceof Class) {
-			Class toClass = (Class) toType;
-			if (toClass.isPrimitive()) {
-				toClass = autoboxed(toClass);
-			}
-			Class fromClass = (Class) fromType;
-			if (fromClass.isPrimitive()) {
-				fromClass = autoboxed(fromClass);
-			}
-			return Boolean.valueOf((toClass).isAssignableFrom(fromClass));
-		}
-		return null;
-	}
-
-	private Class autoboxed(Class clazz) {
-		if (clazz == Float.TYPE)
-			return Float.class;
-		else if (clazz == Double.TYPE)
-			return Double.class;
-		else if (clazz == Short.TYPE)
-			return Short.class;
-		else if (clazz == Integer.TYPE)
-			return Integer.class;
-		else if (clazz == Long.TYPE)
-			return Long.class;
-		else if (clazz == Byte.TYPE)
-			return Byte.class;
-		else if (clazz == Boolean.TYPE)
-			return Boolean.class;
-		return clazz;
-	}
-
-	private static class ValidatorRegistry {
-
-		private HashMap validators = new HashMap();
-
-		/**
-		 * Associate a particular validator that can validate the conversion
-		 * (fromClass, toClass)
-		 * 
-		 * @param fromClass
-		 *            The Class to convert from
-		 * @param toClass
-		 *            The Class to convert to
-		 * @param validator
-		 *            The IValidator
-		 */
-		private void associate(Object fromClass, Object toClass,
-				IValidator validator) {
-			validators.put(new Pair(fromClass, toClass), validator);
-		}
-
-		/**
-		 * Return an IVerifier for a specific class.
-		 * 
-		 * @param fromClass
-		 *            The Class to convert from
-		 * @param toClass
-		 *            The Class to convert to
-		 * @return An appropriate IValidator
-		 */
-		private IValidator get(Object fromClass, Object toClass) {
-			IValidator result = (IValidator) validators.get(new Pair(fromClass,
-					toClass));
-			if (result != null)
-				return result;
-			if (fromClass != null && toClass != null && fromClass == toClass) {
-				return new IValidator() {
-					public ValidationError isPartiallyValid(Object value) {
-						return null;
-					}
-
-					public ValidationError isValid(Object value) {
-						return null;
-					}
-				};
-			}
-			return ReadOnlyValidator.getDefault();
-		}
-
-		/**
-		 * Adds the system-provided validators to the current validator
-		 * registry. This is done automatically for the validator registry
-		 * singleton.
-		 */
-		private ValidatorRegistry() {
-			// Standalone validators here...
-			associate(String.class, Integer.TYPE,
-					new String2IntegerPrimitiveValidator());
-			associate(String.class, Byte.TYPE,
-					new String2BytePrimitiveValidator());
-			associate(String.class, Short.TYPE,
-					new String2ShortPrimitiveValidator());
-			associate(String.class, Long.TYPE,
-					new String2LongPrimitiveValidator());
-			associate(String.class, Float.TYPE,
-					new String2FloatPrimitiveValidator());
-			associate(String.class, Double.TYPE,
-					new String2DoublePrimitiveValidator());
-
-			associate(String.class, Integer.class, new String2IntegerValidator());
-			associate(String.class, Byte.class, new String2ByteValidator());
-			associate(String.class, Short.class, new String2ShortValidator());
-			associate(String.class, Long.class, new String2LongValidator());
-			associate(String.class, Float.class, new String2FloatValidator());
-			associate(String.class, Double.class, new String2DoubleValidator());
-			associate(String.class, Date.class, new String2DateValidator());
-
-			associate(String.class, BigDecimal.class,
-					new String2BigDecimalValidator());
-
-
-			associate(Integer.class, Integer.TYPE, new ObjectToPrimitiveValidator(Integer.TYPE));
-			associate(Byte.class, Byte.TYPE, new ObjectToPrimitiveValidator(Byte.TYPE));
-			associate(Short.class, Short.TYPE, new ObjectToPrimitiveValidator(Short.TYPE));
-			associate(Long.class, Long.TYPE, new ObjectToPrimitiveValidator(Long.TYPE));
-			associate(Float.class, Float.TYPE, new ObjectToPrimitiveValidator(Float.TYPE));
-			associate(Double.class, Double.TYPE, new ObjectToPrimitiveValidator(Double.TYPE));
-			associate(Boolean.class, Boolean.TYPE, new ObjectToPrimitiveValidator(Boolean.TYPE));
-			
-			associate(Object.class, Integer.TYPE, new ObjectToPrimitiveValidator(Integer.TYPE));
-			associate(Object.class, Byte.TYPE, new ObjectToPrimitiveValidator(Byte.TYPE));
-			associate(Object.class, Short.TYPE, new ObjectToPrimitiveValidator(Short.TYPE));
-			associate(Object.class, Long.TYPE, new ObjectToPrimitiveValidator(Long.TYPE));
-			associate(Object.class, Float.TYPE, new ObjectToPrimitiveValidator(Float.TYPE));
-			associate(Object.class, Double.TYPE, new ObjectToPrimitiveValidator(Double.TYPE));
-			associate(Object.class, Boolean.TYPE, new ObjectToPrimitiveValidator(Boolean.TYPE));
-
-			// Regex-implemented validators here...
-			// associate(String.class, Character.TYPE, new RegexStringValidator(
-			// "^.$|^$", ".",
-			// BindingMessages.getString("Validate_CharacterHelp")));
-			// //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			// associate(String.class, Character.class, new
-			// RegexStringValidator(
-			// "^.$|^$", ".",
-			// BindingMessages.getString("Validate_CharacterHelp")));
-			// //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			// associate(String.class, Boolean.TYPE, new RegexStringValidator(
-			// BindingMessages.getString("Validate_BooleanPartialValidRegex"),
-			// //$NON-NLS-1$
-			// BindingMessages.getString("Validate_BooleanValidRegex"),
-			// //$NON-NLS-1$
-			// BindingMessages.getString("Validate_BooleanHelp")));
-			// //$NON-NLS-1$
-			// associate(String.class, Boolean.class, new RegexStringValidator(
-			// BindingMessages.getString("Validate_BooleanPartialValidRegex"),
-			// //$NON-NLS-1$
-			// BindingMessages.getString("Validate_BooleanValidRegex"),
-			// //$NON-NLS-1$
-			// BindingMessages.getString("Validate_BooleanHelp")));
-			// //$NON-NLS-1$
-			// associate(String.class, String.class, new
-			// RegexStringValidator("^.*$", "^.*$", "")); //$NON-NLS-1$
-			// //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindingFactory.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindingFactory.java
deleted file mode 100644
index 5b11dc4..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindingFactory.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.jface.internal.databinding.provisional.factories;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.internal.databinding.internal.LazyListBinding;
-import org.eclipse.jface.internal.databinding.internal.ListBinding;
-import org.eclipse.jface.internal.databinding.internal.ValueBinding;
-import org.eclipse.jface.internal.databinding.provisional.BindSpec;
-import org.eclipse.jface.internal.databinding.provisional.Binding;
-import org.eclipse.jface.internal.databinding.provisional.BindingException;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider;
-
-/**
- * @since 3.2
- * @deprecated no longer part of the API
- * 
- */
-public class DefaultBindingFactory implements IBindingFactory {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.internal.databinding.provisional.IBindingFactory#createBinding(org.eclipse.jface.internal.databinding.provisional.observable.IObservable,
-	 *      org.eclipse.jface.internal.databinding.provisional.observable.IObservable,
-	 *      org.eclipse.jface.internal.databinding.provisional.BindSpec)
-	 */
-	public Binding createBinding(DataBindingContext dataBindingContext,
-			IObservable targetObservable, IObservable modelObservable,
-			BindSpec bindSpec) {
-		Binding binding;
-		if (bindSpec == null) {
-			bindSpec = new BindSpec(null, null, null, null);
-		}
-		if (targetObservable instanceof IObservableValue) {
-			if (modelObservable instanceof IObservableValue) {
-				IObservableValue target = (IObservableValue) targetObservable;
-				IObservableValue model = (IObservableValue) modelObservable;
-				dataBindingContext.fillBindSpecDefaults(dataBindingContext,
-						bindSpec, target.getValueType(), model.getValueType());
-				binding = new ValueBinding(dataBindingContext, target, model,
-						bindSpec);
-				return binding;
-			}
-			throw new BindingException(
-					"incompatible observables: target is value, model is " + modelObservable.getClass().getName()); //$NON-NLS-1$
-		} else if (targetObservable instanceof IObservableList) {
-			if (modelObservable instanceof IObservableList) {
-				IObservableList target = (IObservableList) targetObservable;
-				IObservableList model = (IObservableList) modelObservable;
-				
-				dataBindingContext.fillBindSpecDefaults(dataBindingContext,
-						bindSpec, target.getElementType(), model
-						.getElementType());
-				
-				return new ListBinding(dataBindingContext, target, model,
-						bindSpec);
-			}
-			throw new BindingException(
-					"incompatible observable: target is list, model is " + modelObservable.getClass().getName()); //$NON-NLS-1$
-		}
-		if (targetObservable instanceof ILazyDataRequestor
-				&& modelObservable instanceof ILazyListElementProvider) {
-			if (bindSpec == null) {
-				bindSpec = new BindSpec();
-			}
-			return new LazyListBinding(dataBindingContext,
-					(ILazyDataRequestor) targetObservable,
-					(ILazyListElementProvider) modelObservable, bindSpec);
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultObservableFactory.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultObservableFactory.java
deleted file mode 100644
index c2feed3..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultObservableFactory.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.jface.internal.databinding.provisional.factories;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.ListModelDescription;
-import org.eclipse.jface.internal.databinding.provisional.description.TableModelDescription;
-
-/**
- * @since 3.2
- * @deprecated no longer part of the API
- * 
- */
-public class DefaultObservableFactory implements IObservableFactory {
-
-	private final DataBindingContext dataBindingContext;
-
-	/**
-	 * @param dataBindingContext
-	 *            TODO
-	 * 
-	 */
-	public DefaultObservableFactory(DataBindingContext dataBindingContext) {
-		this.dataBindingContext = dataBindingContext;
-	}
-
-	public IObservable createObservable(Object description) {
-		if (description instanceof ListModelDescription) {
-			ListModelDescription listModelDescription = (ListModelDescription) description;
-			TableModelDescription tableModelDescription = new TableModelDescription(
-					listModelDescription.getCollectionProperty(),
-					new Object[] { listModelDescription.getPropertyID() });
-			return dataBindingContext.createObservable(tableModelDescription);
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/IBindingFactory.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/IBindingFactory.java
deleted file mode 100644
index fce61f0..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/IBindingFactory.java
+++ /dev/null
@@ -1,40 +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.databinding.provisional.factories;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.internal.databinding.provisional.BindSpec;
-import org.eclipse.jface.internal.databinding.provisional.Binding;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-
-/**
- * @since 1.0
- * @deprecated no longer part of the API
- * 
- */
-public interface IBindingFactory {
-
-	/**
-	 * Creates a new binding between the given observable objects, using
-	 * additional information given in the bind spec. Returns null if this
-	 * factory cannot create bindings between the given observables.
-	 * @param dataBindingContext TODO
-	 * @param target
-	 * @param model
-	 * @param bindSpec the bind spec, or null
-	 * 
-	 * @return a new binding, or null
-	 */
-	public Binding createBinding(DataBindingContext dataBindingContext, IObservable target,
-			IObservable model, BindSpec bindSpec);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/IObservableFactory.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/IObservableFactory.java
deleted file mode 100644
index 0f8a96e..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/IObservableFactory.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.jface.internal.databinding.provisional.factories;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-
-/**
- * A factory for creating observable objects from description objects.
- * <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 remain
- * unchanged during the 3.2 release cycle. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 1.0
- * @deprecated no longer part of the API
- * 
- */
-public interface IObservableFactory {
-
-	/**
-	 * Returns an observable for the given description, or null if this factory
-	 * cannot create observables for this description. The BindingException is
-	 * only thrown in error cases, e.g. if the description itself is invalid, or
-	 * if an error occurred during the creation of the observable.
-	 * @param description
-	 * 
-	 * @return an updatable
-	 */
-	IObservable createObservable(Object description);
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/NestedObservableFactory.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/NestedObservableFactory.java
deleted file mode 100644
index 6d84d2b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/NestedObservableFactory.java
+++ /dev/null
@@ -1,184 +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.databinding.provisional.factories;
-
-import java.beans.BeanInfo;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.internal.databinding.internal.observable.NestedObservableList;
-import org.eclipse.jface.internal.databinding.internal.observable.NestedObservableValue;
-import org.eclipse.jface.internal.databinding.provisional.BindingException;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.NestedProperty;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-
-/**
- * 
- * TODO Javadoc
- * 
- * @since 1.0
- * @deprecated no longer part of the API
- * 
- */
-public class NestedObservableFactory implements IObservableFactory {
-
-	private final DataBindingContext dataBindingContext;
-
-	/**
-	 * @param dataBindingContext
-	 *            TODO
-	 * 
-	 */
-	public NestedObservableFactory(DataBindingContext dataBindingContext) {
-		this.dataBindingContext = dataBindingContext;
-	}
-
-	public IObservable createObservable(Object description) {
-		if (description instanceof NestedProperty) {
-			return createNestedObservable((NestedProperty) description,
-					dataBindingContext);
-		} else if (description instanceof Property) {
-			Property propertyDescription = (Property) description;
-			Object o = propertyDescription.getObject();
-			if (o instanceof IObservableValue) {
-				IObservableValue observableValue = (IObservableValue) o;
-				Class propertyType = propertyDescription.getPropertyType();
-				if (propertyType == null) {
-					throw new BindingException(
-							"Missing required property type for binding to a property of an IObservableValue."); //$NON-NLS-1$
-				}
-				Boolean isCollectionProperty = propertyDescription
-						.isCollectionProperty();
-				if (isCollectionProperty == null) {
-					throw new BindingException(
-							"Missing required property collection information for binding to a property of an IObservableValue."); //$NON-NLS-1$
-				}
-				Object propertyID = propertyDescription.getPropertyID();
-				if (isCollectionProperty.booleanValue()) {
-					return new NestedObservableList(dataBindingContext,
-							observableValue, propertyID, propertyType);
-				}
-				return new NestedObservableValue(dataBindingContext,
-						observableValue, propertyID, propertyType);
-			}
-			// else if (o instanceof List) {
-			// return new ListObservableCollection(
-			// (List) o,
-			// propertyDescription.getPropertyType() == null ? Object.class
-			// : propertyDescription.getPropertyType());
-			// }
-		}
-		// else if (description instanceof TreeModelDescription) {
-		// TreeModelDescription treeModelDescription = (TreeModelDescription)
-		// description;
-		// if (treeModelDescription.getRoot() != null) {
-		// if (treeModelDescription.getRoot() instanceof IObservable) {
-		// if (treeModelDescription.getRoot() instanceof IObservableTree)
-		// return (IObservableTree) treeModelDescription
-		// .getRoot();
-		// // Nest the TreeModelDescription's root
-		// return new NestedObservableTree(
-		// bindingContext,
-		// treeModelDescription);
-		// } else if (treeModelDescription.getRoot() instanceof Property) {
-		// // Create an Observable for the
-		// // TreeModelDescription's root first
-		// TreeModelDescription newDescription = new TreeModelDescription(
-		// bindingContext
-		// .createObservable(treeModelDescription
-		// .getRoot()));
-		// Class[] types = treeModelDescription.getTypes();
-		// for (int i = 0; i < types.length; i++) {
-		// String[] props = treeModelDescription
-		// .getChildrenProperties(types[i]);
-		// for (int j = 0; j < props.length; j++)
-		// newDescription.addChildrenProperty(
-		// types[i], props[j]);
-		// }
-		// return bindingContext
-		// .createObservable(newDescription);
-		// }
-		// }
-		// return null;
-		// } else if (description instanceof TableModelDescription) {
-		// TableModelDescription tableModelDescription = (TableModelDescription)
-		// description;
-		// Object master =
-		// tableModelDescription.getCollectionProperty().getObject();
-		// if(master instanceof IObservableValue) {
-		// return new
-		// NestedObservableCellProvider(bindingContext,(IObservableValue)
-		// master,tableModelDescription);
-		// }
-		// }
-		return null;
-	}
-
-	private IObservable createNestedObservable(NestedProperty nestedProperty,
-			DataBindingContext bindingContext) {
-		IObservable lastChildObservable = null;
-		Object targetObject = nestedProperty.getObject();
-		if (nestedProperty.getPrototypeClass() != null) {
-			Class targetClazz = nestedProperty.getPrototypeClass();
-			StringTokenizer tokenizer = new StringTokenizer(
-					(String) nestedProperty.getPropertyID(), "."); //$NON-NLS-1$
-			while (tokenizer.hasMoreElements()) {
-				String nextDesc = (String) tokenizer.nextElement();
-				try {
-					BeanInfo beanInfo = Introspector.getBeanInfo(targetClazz);
-					PropertyDescriptor[] propertyDescriptors = beanInfo
-							.getPropertyDescriptors();
-					Class discoveredClazz = null;
-					for (int i = 0; i < propertyDescriptors.length; i++) {
-						PropertyDescriptor descriptor = propertyDescriptors[i];
-						if (descriptor.getName().equals(nextDesc)) {
-							discoveredClazz = descriptor.getPropertyType();
-							break;
-						}
-					}
-					if (discoveredClazz != null) {
-						targetClazz = discoveredClazz;
-					} else {
-						throw new BindingException(
-								"Error using prototype class to determine binding types."); //$NON-NLS-1$
-					}
-				} catch (BindingException be) {
-					throw be;
-				} catch (Exception e) {
-					e.printStackTrace();
-					throw new BindingException(
-							"Exeception using prototype class to determine binding types.", e); //$NON-NLS-1$
-				}
-				lastChildObservable = bindingContext
-						.createObservable(new Property(targetObject, nextDesc,
-								targetClazz, Boolean.FALSE));
-				targetObject = lastChildObservable;
-			}
-
-		} else {
-			String[] properties = (String[]) nestedProperty.getPropertyID();
-			for (int i = 0; i < properties.length; i++) {
-				String nextDesc = properties[i];
-				Class clazz = nestedProperty.getTypes()[i];
-				lastChildObservable = bindingContext
-						.createObservable(new Property(targetObject, nextDesc,
-								clazz, Boolean.FALSE));
-				targetObject = lastChildObservable;
-			}
-		}
-		return lastChildObservable;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/ILazyDataRequestor.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/ILazyDataRequestor.java
deleted file mode 100644
index 228afe2..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/ILazyDataRequestor.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.provisional.observable;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-
-
-/**
- * Marker interface for Observables that request data lazily.
- * 
- * @since 3.3
- */
-public interface ILazyDataRequestor extends IObservable {
-	/**
-	 * Represents a new object that was inserted into a lazy collection.
-	 * @since 3.3
-	 */
-	public static class NewObject {
-		/**
-		 * The position where the insert actually occurred
-		 */
-		public int position;
-		
-		/**
-		 * The object that was inserted
-		 */
-		public Object it;
-		
-		/**
-		 * @param position The position where the insert actually occurred
-		 * @param it The object that was inserted
-		 */
-		public NewObject(int position, Object it) {
-			this.position = position;
-			this.it = it;
-		}
-	}
-	
-	/**
-	 * Sets the number of elements in the entire list that we are browsing.
-	 * Refreshes all visible elements in the list by retrieving them again
-	 * from the underlying model.
-	 * 
-	 * @param size The new size to set.
-	 */
-	void setSize(int size);
-	
-	/**
-	 * Adds the listener to the set of listeners that will be invoked when
-	 * a method in the ILazyElementListener interface is invoked.
-	 * 
-	 * @param p The listener to add.
-	 */
-	void addElementProvider(ILazyListElementProvider p);
-	
-	/**
-	 * Removes the listener from the set of listeners that will be invoked when
-	 * a method in the ILazyElementListener interface is invoked.
-	 * 
-	 * @param p The listener to remove.
-	 */
-	void removeElementProvider(ILazyListElementProvider p);
-	
-	/**
-	 * Adds the listener to the set of listeners that will be invoked when
-	 * a method in the LazyInsertDeleteProvider interface is invoked.
-	 * 
-	 * @param p The listener to add.
-	 */
-	void addInsertDeleteProvider(LazyInsertDeleteProvider p);
-	
-	/**
-	 * Removes the listener from the set of listeners that will be invoked when
-	 * a method in the LazyInsertDeleteProvider interface is invoked.
-	 * 
-	 * @param p The listener to remove.
-	 */
-	void removeInsertDeleteProvider(LazyInsertDeleteProvider p);
-
-	/**
-	 * Notifies the receiver that the specified element was added to the observed
-	 * list at the specified position.
-	 * 
-	 * @param position The position to insert the object
-	 * @param element The object to insert
-	 */
-	void add(int position, Object element);
-
-	/**
-	 * Notifies the receiver that the object at the specified position was
-	 * removed from the observed list.
-	 * 
-	 * @param position The position where the delete occurred
-	 */
-	void remove(int position);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/ILazyListElementProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/ILazyListElementProvider.java
deleted file mode 100644
index fe75b66..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/ILazyListElementProvider.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.provisional.observable;
-
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-
-/**
- * Interface for Observables that can supply data lazily.
- * 
- * @since 3.3
- */
-public interface ILazyListElementProvider extends IObservableList {
-	/**
-	 * @param position The 0-based position in the receiver's collection
-	 * of the object to retrieve.
-	 * 
-	 * @return The requested object.
-	 */
-	abstract public Object get(int position);
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyDeleteEvent.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyDeleteEvent.java
deleted file mode 100644
index 84cd328..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyDeleteEvent.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.provisional.observable;
-
-/**
- * Represents the data required to delete a new object from a lazy list.
- * 
- * @since 3.3
- */
-public class LazyDeleteEvent {
-	/**
-	 * The position of the object that must be deleted.
-	 */
-	public final int position;
-
-	/**
-	 * Construct a LazyDeleteEvent.
-	 * 
-	 * @param position The 0-based position of the object that must be deleted.
-	 */
-	public LazyDeleteEvent(final int position) {
-		this.position = position;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyInsertDeleteProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyInsertDeleteProvider.java
deleted file mode 100644
index d474b3b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyInsertDeleteProvider.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.provisional.observable;
-
-/**
- * An API for objects that can perform inserts and/or deletes in a collection
- * upon request.  This class supplies empty implementations of its methods and
- * is intended to be subclassed by clients.
- * 
- * @since 3.3
- */
-public class LazyInsertDeleteProvider {
-	/**
-	 * Requests that the client insert a new element at the specified position.
-	 * Clients are free to use or ignore the position (it's a hint) according
-	 * to their own policy.
-	 * 
-	 * @param e the LazyInsertEvent TODO
-	 * 
-	 * @return An ILazyDataRequestor.NewObject containing the actual position
-	 * where the object was inserted and the new object that was inserted, or
-	 * null to indicate that no object was inserted.
-	 */
-	public ILazyDataRequestor.NewObject insertElementAt(LazyInsertEvent e) {
-		return null;
-	}
-	
-	/**
-	 * Returns if the client can delete the object at the specified position.
-	 * 
-	 * @param e The position of the object to delete.
-	 * @return true if the object can be deleted; false otherwise.
-	 */
-	public boolean canDeleteElementAt(LazyDeleteEvent e) {
-		return false;
-	}
-	
-	/**
-	 * Requests that the client delete the object at the specified position.
-	 * 
-	 * @param e LazyInsertEvent TODO
-	 */
-	public void deleteElementAt(LazyDeleteEvent e) {
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyInsertEvent.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyInsertEvent.java
deleted file mode 100644
index 00413ad..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/LazyInsertEvent.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.provisional.observable;
-
-/**
- * Represents the data required to insert a new object into a lazy list.
- * 
- * @since 3.3
- */
-public class LazyInsertEvent {
-	/**
-	 * The position where the target list is requesting that the model insert
-	 * the new object in its list.  This is a *hint*.  The model is free to
-	 * insert the event wherever it wishes according to its internal semantics.
-	 * (It must just return the actual place where the insert occurred back to
-	 * the target object.)
-	 */
-	public final int positionHint;
-	
-	/**
-	 * A field that implementations may use to pass application-specific data
-	 * from the target list to the insert event handlers.  This field may be null.
-	 */
-	public final Object initializationData;
-
-	/**
-	 * Construct a LazyInsertEvent.
-	 * 
-	 * @param positionHint The position where the target is requesting the insert to occur.
-	 * @param initializationData Application-specific initialization data.  This may be null.
-	 */
-	public LazyInsertEvent(final int positionHint, final Object initializationData) {
-		this.positionHint = positionHint;
-		this.initializationData = initializationData;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/AbstractObservableMapping.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/AbstractObservableMapping.java
deleted file mode 100644
index 843ad09..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/AbstractObservableMapping.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.internal.databinding.provisional.observable.mapping;
-
-
-import org.eclipse.jface.databinding.observable.ObservableTracker;
-
-/**
- * @since 1.0
- * 
- */
-public abstract class AbstractObservableMapping extends BaseObservableMapping
-		implements IObservableMapping {
-
-	final public Object getMappingValue(Object element) {
-		ObservableTracker.getterCalled(this);
-		return doGetMappingValue(element);
-	}
-	
-	public void setMappingValue(Object element, Object value) {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * @return the value of this mapping for the given element
-	 */
-	abstract protected Object doGetMappingValue(Object element);
-
-	public boolean isStale() {
-		return false;
-	}
-	
-	public void dispose() {
-		mappingChangeListeners = null;
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/AbstractObservableMultiMapping.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/AbstractObservableMultiMapping.java
deleted file mode 100644
index 7c3ad2b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/AbstractObservableMultiMapping.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.jface.internal.databinding.provisional.observable.mapping;
-
-
-import org.eclipse.jface.databinding.observable.ObservableTracker;
-
-/**
- * @since 1.0
- * 
- */
-public abstract class AbstractObservableMultiMapping extends BaseObservableMapping
-		implements IObservableMultiMapping {
-
-	final public Object[] getMappingValues(Object element, int[] indices) {
-		ObservableTracker.getterCalled(this);
-		return doGetMappingValues(element, indices);
-	}
-	
-	public void setMappingValues(Object element, int[] indices, Object[] values) {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * @param indices 
-	 * @return the value of this mapping for the given element
-	 */
-	abstract protected Object[] doGetMappingValues(Object element, int[] indices);
-
-	public boolean isStale() {
-		return false;
-	}
-	
-	public void dispose() {
-		mappingChangeListeners = null;
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/BaseObservableMapping.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/BaseObservableMapping.java
deleted file mode 100644
index 6e5c341..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/BaseObservableMapping.java
+++ /dev/null
@@ -1,102 +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.databinding.provisional.observable.mapping;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.jface.databinding.observable.AbstractObservable;
-import org.eclipse.jface.databinding.observable.IChangeListener;
-
-/**
- * @since 3.2
- *
- */
-public abstract class BaseObservableMapping extends AbstractObservable {
-
-	/**
-	 * Points to an instance of IChangeListener or a Collection of
-	 * IMappingChangeListener
-	 */
-	protected Object mappingChangeListeners = null;
-
-	/**
-	 * @param listener
-	 */
-	public void addMappingChangeListener(IMappingChangeListener listener) {
-		if (mappingChangeListeners == null) {
-			boolean hadListeners = hasListeners();
-			mappingChangeListeners = listener;
-			if (!hadListeners) {
-				firstListenerAdded();
-			}
-			return;
-		}
-	
-		Collection listenerList;
-		if (mappingChangeListeners instanceof IMappingChangeListener) {
-			IChangeListener l = (IChangeListener) mappingChangeListeners;
-	
-			listenerList = new ArrayList();
-			listenerList.add(l);
-			mappingChangeListeners = listenerList;
-		} else {
-			listenerList = (Collection) mappingChangeListeners;
-		}
-	
-		listenerList.add(listener);
-	}
-
-	/**
-	 * @param listener
-	 */
-	public void removeMappingChangeListener(IMappingChangeListener listener) {
-		if (mappingChangeListeners == listener) {
-			mappingChangeListeners = null;
-			if (!hasListeners()) {
-				lastListenerRemoved();
-			}
-			return;
-		}
-	
-		if (mappingChangeListeners instanceof Collection) {
-			Collection listenerList = (Collection) mappingChangeListeners;
-			listenerList.remove(listener);
-			if (listenerList.isEmpty()) {
-				mappingChangeListeners = null;
-				if (!hasListeners()) {
-					lastListenerRemoved();
-				}
-			}
-		}
-	}
-
-	protected void fireMappingValueChange(MappingDiff diff) {
-		if (mappingChangeListeners == null) {
-			return;
-		}
-	
-		if (mappingChangeListeners instanceof IMappingChangeListener) {
-			((IMappingChangeListener) mappingChangeListeners).handleMappingValueChange(this, diff);
-			return;
-		}
-	
-		Collection changeListenerCollection = (Collection) mappingChangeListeners;
-	
-		IMappingChangeListener[] listeners = (IMappingChangeListener[]) (changeListenerCollection)
-				.toArray(new IMappingChangeListener[changeListenerCollection.size()]);
-		for (int i = 0; i < listeners.length; i++) {
-			listeners[i].handleMappingValueChange(this, diff);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/BidirectionalMapping.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/BidirectionalMapping.java
deleted file mode 100644
index ca8af91..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/BidirectionalMapping.java
+++ /dev/null
@@ -1,172 +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.databinding.provisional.observable.mapping;
-
-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 org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.observable.set.ISetChangeListener;
-import org.eclipse.jface.databinding.observable.set.SetDiff;
-import org.eclipse.jface.databinding.observable.set.WritableSet;
-
-/**
- * @since 1.0
- * 
- */
-public class BidirectionalMapping extends AbstractObservableMapping implements
-		IBidirectionalMapping, IObservableMappingWithDomain {
-
-	private final IObservableMapping wrappedMapping;
-
-	private IObservableSet range;
-
-	private Map valueToElements = new HashMap();
-
-	private ISetChangeListener domainListener = new ISetChangeListener() {
-		public void handleSetChange(IObservableSet source, SetDiff diff) {
-			Set rangeAdditions = new HashSet();
-			for (Iterator it = diff.getAdditions().iterator(); it.hasNext();) {
-				Object added = it.next();
-				Object mappingValue = wrappedMapping.getMappingValue(added);
-				rangeAdditions.add(mappingValue);
-				addMapping(mappingValue, added);
-			}
-			range.addAll(rangeAdditions);
-			for (Iterator it = diff.getRemovals().iterator(); it.hasNext();) {
-				Object removed = it.next();
-				removeMapping(wrappedMapping.getMappingValue(removed), removed);
-			}
-			range.retainAll(valueToElements.keySet());
-		}
-	};
-
-	private IMappingChangeListener mappingChangeListener = new IMappingChangeListener() {
-		public void handleMappingValueChange(IObservable source,
-				MappingDiff diff) {
-			Set affectedElements = diff.getElements();
-			for (Iterator it = affectedElements.iterator(); it.hasNext();) {
-				Object element = it.next();
-				Object oldFunctionValue = diff.getOldMappingValues(element,
-						new int[0])[0];
-				Object newFunctionValue = diff.getNewMappingValues(element,
-						new int[0])[0];
-				removeMapping(oldFunctionValue, element);
-				addMapping(newFunctionValue, element);
-			}
-			Set tempRange = valueToElements.keySet();
-			range.addAll(tempRange);
-			range.retainAll(tempRange);
-			fireMappingValueChange(diff);
-		}
-	};
-
-	private IObservableSet domain;
-
-	/**
-	 * @param functionWithDomain
-	 */
-	public BidirectionalMapping(IObservableMappingWithDomain functionWithDomain) {
-		this(functionWithDomain, functionWithDomain.getDomain());
-	}
-
-	/**
-	 * @param wrappedMapping 
-	 * @param domain
-	 */
-	public BidirectionalMapping(IObservableMapping wrappedMapping,
-			IObservableSet domain) {
-		this.wrappedMapping = wrappedMapping;
-		this.domain = domain;
-		Set tempRange = new HashSet();
-		for (Iterator it = domain.iterator(); it.hasNext();) {
-			Object element = it.next();
-			Object functionValue = wrappedMapping.getMappingValue(element);
-			addMapping(functionValue, element);
-			tempRange.add(functionValue);
-		}
-		this.range = new WritableSet(tempRange);
-		domain.addSetChangeListener(domainListener);
-	}
-
-	/**
-	 * @param functionValue
-	 * @param element
-	 * @param b
-	 */
-	private void addMapping(Object functionValue, Object element) {
-		Object elementOrSet = valueToElements.get(functionValue);
-		if (elementOrSet == null) {
-			valueToElements.put(functionValue, element);
-			return;
-		}
-		if (!(elementOrSet instanceof Set)) {
-			elementOrSet = new HashSet(Collections.singleton(elementOrSet));
-			valueToElements.put(functionValue, elementOrSet);
-		}
-		Set set = (Set) elementOrSet;
-		set.add(element);
-	}
-
-	/**
-	 * @param functionValue
-	 * @param element
-	 * @param b
-	 */
-	private void removeMapping(Object functionValue, Object element) {
-		Object elementOrSet = valueToElements.get(functionValue);
-		if (elementOrSet instanceof Set) {
-			Set set = (Set) elementOrSet;
-			set.remove(element);
-			if (set.size() == 0) {
-				valueToElements.remove(functionValue);
-			}
-		} else {
-			valueToElements.remove(functionValue);
-		}
-	}
-
-	protected Object doGetMappingValue(Object element) {
-		return wrappedMapping.getMappingValue(element);
-	}
-
-	public void setMappingValue(Object element, Object value) {
-		wrappedMapping.setMappingValue(element, value);
-	}
-
-	public IObservableSet getRange() {
-		return range;
-	}
-
-	public Set getDomainElementsForValue(Object value) {
-		return null;
-	}
-
-	public void dispose() {
-		wrappedMapping.removeMappingChangeListener(mappingChangeListener);
-		domain.removeSetChangeListener(domainListener);
-	}
-
-	public IObservableSet getDomain() {
-		return domain;
-	}
-
-	public Object getValueType() {
-		return wrappedMapping.getValueType();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IBidirectionalMapping.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IBidirectionalMapping.java
deleted file mode 100644
index 8d60193..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IBidirectionalMapping.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.jface.internal.databinding.provisional.observable.mapping;
-
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-
-/**
- * A bidirectional mapping whose changes can be tracked by a mapping change listener.
- * 
- * <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.0
- * 
- */
-public interface IBidirectionalMapping extends IObservableMapping {
-
-	/**
-	 * Returns the current set of actual results of the function. Callers can
-	 * register listeners on this set to respond to changes in the range of the
-	 * function.
-	 * 
-	 * @return the set of possible results of the function.
-	 */
-	public IObservableSet getRange();
-
-	/**
-	 * Returns the set of elements in the domain that map onto the given value
-	 * from the range. That is, it returns the set of objects that you can pass
-	 * to getFunctionValue that will end up returning the given value.
-	 * 
-	 * @param value
-	 *            element from the range
-	 * @return collection of all elements in the d
-	 */
-	public Set getDomainElementsForValue(Object value);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMapping.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMapping.java
deleted file mode 100644
index bd3eb54..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMapping.java
+++ /dev/null
@@ -1,32 +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.databinding.provisional.observable.mapping;
-
-/**
- * @since 3.2
- *
- */
-public interface IMapping {
-
-	/**
-	 * @param element
-	 * @return the mapping value for the given element
-	 */
-	public Object getMappingValue(Object element);
-
-	/**
-	 * @param element
-	 * @param value
-	 */
-	public void setMappingValue(Object element, Object value);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMappingChangeListener.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMappingChangeListener.java
deleted file mode 100644
index 14772e6..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMappingChangeListener.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.jface.internal.databinding.provisional.observable.mapping;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-
-/**
- * @since 1.0
- * 
- */
-public interface IMappingChangeListener {
-
-	/**
-	 * @param source
-	 * @param diff
-	 */
-	void handleMappingValueChange(IObservable source,
-			MappingDiff diff);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMultiMapping.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMultiMapping.java
deleted file mode 100644
index 20e04dd..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IMultiMapping.java
+++ /dev/null
@@ -1,34 +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.databinding.provisional.observable.mapping;
-
-/**
- * @since 3.2
- *
- */
-public interface IMultiMapping {
-
-	/**
-	 * @param element
-	 * @param indices 
-	 * @return the mapping value for the given element
-	 */
-	public Object[] getMappingValues(Object element, int[] indices);
-
-	/**
-	 * @param element
-	 * @param indices 
-	 * @param values 
-	 */
-	public void setMappingValues(Object element, int[] indices, Object[] values);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMapping.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMapping.java
deleted file mode 100644
index 7310652..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMapping.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.provisional.observable.mapping;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-
-/**
- * A mapping whose changes can be tracked by mapping change listeners.
- * 
- * <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.0
- * 
- */
-public interface IObservableMapping extends IObservable, IMapping {
-
-	/**
-	 * @param listener
-	 */
-	public void addMappingChangeListener(IMappingChangeListener listener);
-
-	/**
-	 * @param listener
-	 */
-	public void removeMappingChangeListener(IMappingChangeListener listener);
-	
-	/**
-	 * @return the type of the values
-	 */
-	public Object getValueType();
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMappingWithDomain.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMappingWithDomain.java
deleted file mode 100644
index 63aaab3..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMappingWithDomain.java
+++ /dev/null
@@ -1,35 +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.databinding.provisional.observable.mapping;
-
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-
-/**
- * A mapping with domain whose changes can be tracked by mapping change listeners.
- * <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.0
- *
- */
-public interface IObservableMappingWithDomain extends IObservableMapping {
-
-	/**
-	 * @return the domain of this mapping (the set of elements that can be mapped)
-	 */
-	public IObservableSet getDomain();
-	
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMultiMapping.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMultiMapping.java
deleted file mode 100644
index 7ee8693..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMultiMapping.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.internal.databinding.provisional.observable.mapping;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-
-/**
- * A mapping that maps objects to multiple values, whose changes can be tracked by
- * mapping change listeners.
- *  
- * <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.0
- * 
- */
-public interface IObservableMultiMapping extends IObservable, IMultiMapping {
-
-	/**
-	 * @param listener
-	 */
-	public void addMappingChangeListener(IMappingChangeListener listener);
-
-	/**
-	 * @param listener
-	 */
-	public void removeMappingChangeListener(IMappingChangeListener listener);
-	
-	/**
-	 * @return the types of the values
-	 */
-	public Object[] getValueTypes();
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMultiMappingWithDomain.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMultiMappingWithDomain.java
deleted file mode 100644
index 464d424..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/IObservableMultiMappingWithDomain.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.internal.databinding.provisional.observable.mapping;
-
-import org.eclipse.jface.databinding.observable.IObservableCollection;
-
-/**
- * An observable multi-mapping with domain.
- * 
- * <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.0
- * 
- */
-public interface IObservableMultiMappingWithDomain extends
-		IObservableMultiMapping {
-
-	/**
-	 * @return the domain
-	 */
-	public IObservableCollection getDomain();
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/MappingDiff.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/MappingDiff.java
deleted file mode 100644
index 593c9f3..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/MappingDiff.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.jface.internal.databinding.provisional.observable.mapping;
-
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.IDiff;
-
-/**
- * @since 1.0
- * 
- */
-public abstract class MappingDiff implements IDiff {
-	/**
-	 * @return the set of elements for which the mapping value has changed
-	 */
-	public abstract Set getElements();
-
-	/**
-	 * @return an array containing the affected indices.
-	 */
-	public abstract int[] getAffectedIndices();
-
-	/**
-	 * @param element
-	 * @param indices
-	 * @return the old values of the mapping for the given element at the given
-	 *         indices.
-	 */
-	public abstract Object[] getOldMappingValues(Object element, int[] indices);
-
-	/**
-	 * @param element
-	 * @param indices
-	 * @return the new value of the mapping for the given element
-	 */
-	public abstract Object[] getNewMappingValues(Object element, int[] indices);
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/ObservableMappingWithDomain.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/ObservableMappingWithDomain.java
deleted file mode 100644
index ba1cab3..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/ObservableMappingWithDomain.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.jface.internal.databinding.provisional.observable.mapping;
-
-import java.util.Iterator;
-
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.observable.set.ISetChangeListener;
-import org.eclipse.jface.databinding.observable.set.SetDiff;
-
-/**
- * @since 1.0
- * 
- */
-abstract public class ObservableMappingWithDomain extends AbstractObservableMapping implements IObservableMappingWithDomain {
-
-	private ISetChangeListener listener = new ISetChangeListener() {
-		public void handleSetChange(IObservableSet source, SetDiff diff) {
-			for (Iterator it = diff.getAdditions().iterator(); it.hasNext();) {
-				addListenerTo(it.next());
-			}
-			for (Iterator it = diff.getRemovals().iterator(); it.hasNext();) {
-				removeListenerFrom(it.next());
-			}
-		}
-	};
-
-	private IObservableSet domain;
-
-	/**
-	 * 
-	 */
-	public ObservableMappingWithDomain() {
-	}
-	
-	/**
-	 * @param domain
-	 */
-	protected void initDomain(IObservableSet domain) {
-		this.domain = domain;
-		domain.addSetChangeListener(listener);
-		for (Iterator it = domain.iterator(); it.hasNext();) {
-			addListenerTo(it.next());
-		}
-	}
-
-	/**
-	 * @return Returns the domain.
-	 */
-	public IObservableSet getDomain() {
-		return domain;
-	}
-
-	/**
-	 * @param domainElement
-	 */
-	protected abstract void addListenerTo(Object domainElement);
-
-	/**
-	 * @param domainElement
-	 */
-	protected abstract void removeListenerFrom(Object domainElement);
-
-	public void dispose() {
-		for (Iterator iter = domain.iterator(); iter.hasNext();) {
-			removeListenerFrom(iter.next());
-		}
-		domain.removeSetChangeListener(listener);
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/ObservableMultiMappingWithDomain.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/ObservableMultiMappingWithDomain.java
deleted file mode 100644
index 23ca0f3..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/mapping/ObservableMultiMappingWithDomain.java
+++ /dev/null
@@ -1,126 +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.databinding.provisional.observable.mapping;
-
-import java.util.Iterator;
-
-import org.eclipse.jface.databinding.observable.IObservableCollection;
-import org.eclipse.jface.databinding.observable.list.IListChangeListener;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.ListDiffEntry;
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.observable.set.ISetChangeListener;
-import org.eclipse.jface.databinding.observable.set.SetDiff;
-
-/**
- * @since 1.0
- * 
- */
-abstract public class ObservableMultiMappingWithDomain extends
-		AbstractObservableMultiMapping implements
-		IObservableMultiMappingWithDomain {
-
-	private ISetChangeListener listener = new ISetChangeListener() {
-		public void handleSetChange(IObservableSet source, SetDiff diff) {
-			for (Iterator it = diff.getAdditions().iterator(); it.hasNext();) {
-				addListenerTo(it.next());
-			}
-			for (Iterator it = diff.getRemovals().iterator(); it.hasNext();) {
-				removeListenerFrom(it.next());
-			}
-		}
-	};
-
-	private IListChangeListener listListener = new IListChangeListener() {
-
-		public void handleListChange(IObservableList source, ListDiff diff) {
-			ListDiffEntry[] entries = diff.getDifferences();
-			for (int i = 0; i < entries.length; i++) {
-				ListDiffEntry entry = entries[i];
-				if (entry.isAddition()) {
-					addListenerTo(entry.getElement());
-				} else {
-					removeListenerFrom(entry.getElement());
-				}
-			}
-		}
-	};
-
-	private IObservableCollection domain;
-
-	/**
-	 * 
-	 */
-	public ObservableMultiMappingWithDomain() {
-	}
-
-	/**
-	 * @param domain
-	 */
-	protected void initDomain(IObservableCollection domain) {
-		this.domain = domain;
-		if (domain instanceof IObservableList) {
-			IObservableList listDomain = (IObservableList) domain;
-			listDomain.addListChangeListener(listListener);
-		} else {
-			((IObservableSet) domain).addSetChangeListener(listener);
-		}
-		for (Iterator it = getDomainIterator(domain); it.hasNext();) {
-			addListenerTo(it.next());
-		}
-	}
-
-	private Iterator getDomainIterator(IObservableCollection domain) {
-		Iterator it;
-		if (domain instanceof IObservableList) {
-			IObservableList listDomain = (IObservableList) domain;
-			it = listDomain.iterator();
-		} else {
-			IObservableSet setDomain = (IObservableSet) domain;
-			it = setDomain.iterator();
-		}
-		return it;
-	}
-
-	/**
-	 * @return Returns the domain.
-	 */
-	public IObservableCollection getDomain() {
-		return domain;
-	}
-
-	/**
-	 * @param domainElement
-	 */
-	protected abstract void addListenerTo(Object domainElement);
-
-	/**
-	 * @param domainElement
-	 */
-	protected abstract void removeListenerFrom(Object domainElement);
-
-	public void dispose() {
-		for (Iterator iter = getDomainIterator(domain); iter.hasNext();) {
-			removeListenerFrom(iter.next());
-		}
-		if (domain instanceof IObservableList) {
-			IObservableList listDomain = (IObservableList) domain;
-			listDomain.removeListChangeListener(listListener);
-		} else {
-			IObservableSet setDomain = (IObservableSet) domain;
-			setDomain.removeSetChangeListener(listener);
-		}
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/IDomainValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/IDomainValidator.java
deleted file mode 100644
index 2544967..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/IDomainValidator.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Coconut Palm Software, 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:
- *     Coconut Palm Software, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-/**
- * A validator for domain model values.  If this validator is associated with
- * a binding (via an BindSpec), then it will be applied immediately before
- * a value is stored in the model object.  This validator operates in the
- * model's data type (after the conversion function object has been applied,
- * if applicable) and is responsible for applying range checks, special
- * formatting requirements, and so on.
- * <p>
- * 
- * FIXME: This is wrong.  See bug #128142.  Eventually this class will go away
- * and be replaced entirely by IValidator.
- * 
- * <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 remain
- * unchanged during the 3.2 release cycle. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 1.0
- *
- */
-public interface IDomainValidator {
-
-	/**
-	 * Determines if the given value is valid.
-	 * 
-	 * @param value
-	 *            the value to validate
-	 * @return the error message, or </code>null</code> if the value is valid.
-	 */
-	public ValidationError isValid(Object value);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/IValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/IValidator.java
deleted file mode 100644
index d5fe0a1..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/IValidator.java
+++ /dev/null
@@ -1,51 +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.internal.databinding.provisional.validation;
-
-
-/**
- * A validator.  This validator is responsible for telling clients if its associated
- * type conversion function will succeed or fail.  For example, a String2IntValidator would
- * only accept source Strings that can successfully be converted to an integer value.
- * <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 remain
- * unchanged during the 3.2 release cycle. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 1.0
- *
- */
-public interface IValidator {
-
-	/**
-	 * Determines if the given value is partially valid. This method is used to
-	 * determine, for example, if keystrokes can still be applied to the value.
-	 * 
-	 * @param value
-	 *            the value to validate
-	 * @return the ValidationError, or </code>null</code> if the value is
-	 *         partially valid.
-	 */
-	public ValidationError isPartiallyValid(Object value);
-
-	/**
-	 * Determines if the given value is valid, that is if it can successfully
-	 * be converted to the target data type.
-	 * 
-	 * @param value
-	 *            the value to validate
-	 * @return the ValidationError, or </code>null</code> if the value is valid.
-	 */
-	public ValidationError isValid(Object value);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ObjectToPrimitiveValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ObjectToPrimitiveValidator.java
deleted file mode 100644
index cdaf88b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ObjectToPrimitiveValidator.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.internal.databinding.provisional.validation;
-
-import org.eclipse.jface.internal.databinding.internal.BindingMessages;
-
-/**
- * @since 3.2
- *
- */
-public class ObjectToPrimitiveValidator implements IValidator {
-	
-	private Class toType;
-	
-
-	private Class[][] primitiveMap = new Class[][] {
-			{Integer.TYPE, Integer.class},
-			{Short.TYPE, Short.class},
-			{Long.TYPE, Long.class},
-			{Double.TYPE, Double.class},
-			{Byte.TYPE, Byte.class},
-			{Float.TYPE, Float.class},
-			{Boolean.TYPE, Boolean.class},
-	};	
-	
-	/**
-	 * @param toType
-	 */
-	public ObjectToPrimitiveValidator(Class toType) {
-		this.toType = toType;
-	}
-	
-	protected Class getToType() {
-		return this.toType;
-	}
-
-	public ValidationError isPartiallyValid(Object value) {
-		return validate(value);
-	}
-
-	public ValidationError isValid(Object value) {
-		return validate(value);
-	}
-	
-	private ValidationError validate(Object value) {
-		if (value != null) {
-			if (!mapContainsValues(toType, value.getClass())) {
-				return ValidationError.error(getClassHint());		
-			}
-			return null;
-		}
-		return ValidationError.error(getNullHint());		
-	}
-
-	/**
-	 * @param toType2
-	 * @param class1
-	 * @return
-	 */
-	private boolean mapContainsValues(Class toType, Class fromType) {
-		for (int i = 0; i < primitiveMap.length; i++) {
-			if ((primitiveMap[i][0].equals(toType)) && (primitiveMap[i][1].equals(fromType))) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * @return 
-	 */
-	public String getNullHint() {
-		return BindingMessages.getString("Validate_ConversionToPrimitive"); //$NON-NLS-1$
-	}
-	
-	/**
-	 * @return
-	 */
-	public String getClassHint() {
-		return BindingMessages.getString("Validate_ConversionFromClassToPrimitive"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ReadOnlyValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ReadOnlyValidator.java
deleted file mode 100644
index 0e1511b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ReadOnlyValidator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-import org.eclipse.jface.internal.databinding.internal.BindingMessages;
-
-/**
- * ReadOnlyValidator.  The validator that can be used for read-only fields.
- */
-public class ReadOnlyValidator implements IValidator {
-    
-    private static ReadOnlyValidator singleton = null;
-    
-    /**
-     * Returns the ReadOnlyValidator
-     * 
-     * @return the ReadOnlyValidator
-     */
-    public static ReadOnlyValidator getDefault() {
-        if (singleton == null) {
-            singleton = new ReadOnlyValidator();
-        }
-        return singleton;
-    }
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.validator.IValidator#isPartiallyValid(java.lang.Object)
-	 */
-	public ValidationError isPartiallyValid(Object fragment) {
-		// No changes are allowed
-		return ValidationError.error(BindingMessages.getString("Validate_NoChangeAllowedHelp")); //$NON-NLS-1$
-	}
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.ICellEditorValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-        // The current value is always valid
-        return null;
-    }
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/RegexStringValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/RegexStringValidator.java
deleted file mode 100644
index b800631..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/RegexStringValidator.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-
-/**
- * RegularExpressionVerifier.  A generic String validator that uses regular expressions to
- * specify validation rules.
- */
-public class RegexStringValidator implements IValidator {
-    
-    private Pattern fragmentRegex;
-    private Pattern fullValueRegex;
-    private String hint;
-    
-	/**
-     * Constructor RegularExpressionValidator.  Construct a string validator based on regular
-     * expressions.
-     * 
-     * Verify input using regular expressions.
-     * 
-	 * @param partiallyValidRegex A regex that matches iff the value is partially valid
-	 * @param fullyValidRegex A regex that matches iff the value is fully valid
-	 * @param hint The hint to display if the value is invalid
-	 */
-	public RegexStringValidator(String partiallyValidRegex,
-			String fullyValidRegex, String hint) {
-		super();
-		this.fragmentRegex = Pattern.compile(partiallyValidRegex);
-		this.fullValueRegex = Pattern.compile(fullyValidRegex);
-		this.hint = hint;
-	}
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.validator.IValidator#isPartiallyValid(java.lang.Object)
-	 */
-	public ValidationError isPartiallyValid(Object fragment) {
-        Matcher matcher = fragmentRegex.matcher((String)fragment);
-		if (matcher.find())
-            return null;
-
-        return ValidationError.error(hint);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ICellEditorValidator#isValid(java.lang.Object)
-	 */
-	public ValidationError isValid(Object value) {
-        String stringValue = (String) value;
-        Matcher matcher = fullValueRegex.matcher(stringValue);
-        if (matcher.find())
-            return null;
-
-        return ValidationError.error(hint);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2BigDecimalValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2BigDecimalValidator.java
deleted file mode 100644
index 7d025a2..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2BigDecimalValidator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-import java.math.BigDecimal;
-
-import org.eclipse.jface.internal.databinding.internal.BindingMessages;
-
-
-/**
- * DoubleValidator.  Verify data input for Doubles
- *
- * @author djo
- */
-public class String2BigDecimalValidator implements IValidator {
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.validator.IValidator#isPartiallyValid(java.lang.Object)
-	 */
-	public ValidationError isPartiallyValid(Object fragment) {
-		if (((String)fragment).matches("\\-?[0-9]*\\.?[0-9]*([0-9]+[e|E]\\-?([0-9]+\\.)?[0-9]*)?")) //$NON-NLS-1$
-            return null;
-
-        return ValidationError.error(getHint());
-	}
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.ICellEditorValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-        try {
-        	new BigDecimal((String)value);
-            return null;
-        } catch (Throwable t) {
-            return ValidationError.error(getHint());
-        }
-    }
-
-	private String getHint() {
-		return BindingMessages.getString("Validate_Like") +  //$NON-NLS-1$
-			BindingMessages.getString("Validate_Number_Examples"); //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2BytePrimitiveValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2BytePrimitiveValidator.java
deleted file mode 100644
index d7ed14a..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2BytePrimitiveValidator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-import org.eclipse.jface.internal.databinding.internal.BindingMessages;
-
-
-/**
- * ByteValidator.  Validate String input for bytes
- */
-public class String2BytePrimitiveValidator implements IValidator {
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.validator.IValidator#isPartiallyValid(java.lang.Object)
-	 */
-	public ValidationError isPartiallyValid(Object fragment) {
-		if (((String)fragment).matches("\\-?[0-9]*")) //$NON-NLS-1$
-            return null;
-
-        return ValidationError.error(getHint());
-	}
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.databinding.validator.IValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-        try {
-            Byte.parseByte((String)value);
-            return null;
-        } catch (Throwable t) {
-            return ValidationError.error(getHint());
-        }
-    }
-
-	private String getHint() {
-		return BindingMessages.getString("Validate_RangeStart") + Byte.MIN_VALUE +  //$NON-NLS-1$
-			BindingMessages.getString("and") + Byte.MAX_VALUE + "."; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ByteValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ByteValidator.java
deleted file mode 100644
index e9a6c7e..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ByteValidator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-/**
- * IntegerValidator.  Validate String to Byte data input
- */
-public class String2ByteValidator extends String2BytePrimitiveValidator {
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.databinding.validator.IValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-       if ("".equals(value)) { //$NON-NLS-1$
-          return null;
-       }
-       return super.isValid(value);
-    }
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DateValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DateValidator.java
deleted file mode 100644
index 07cdfe3..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DateValidator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-import java.util.Date;
-
-import org.eclipse.jface.internal.databinding.internal.BindingMessages;
-import org.eclipse.jface.internal.databinding.provisional.conversion.DateConversionSupport;
-
-
-/**
- * DateValidator.  An IValidator implementation for dates.
- */
-public class String2DateValidator extends DateConversionSupport implements IValidator {
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.validator.IValidator#isPartiallyValid(java.lang.Object)
-	 */
-	public ValidationError isPartiallyValid(Object fragment) {
-		// TODO: Can we do any sensible (locale-independent) checking here?
-		return null;
-	}
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.databinding.validator.IValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-        return parse((String)value)!=null ? null : ValidationError.error(getHint());
-    }
-
-	private String getHint() {
-		Date sampleDate=new Date();
-		StringBuffer samples=new StringBuffer();
-		for(int formatterIdx=1;formatterIdx<numFormatters()-2;formatterIdx++) {
-			samples.append('\'');
-			samples.append(format(sampleDate,formatterIdx));
-			samples.append("', "); //$NON-NLS-1$
-		}
-        samples.append('\'');
-        samples.append(format(sampleDate,0));
-        samples.append('\'');
-		return BindingMessages.getString("Examples") + ": "+samples+",...";  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DoublePrimitiveValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DoublePrimitiveValidator.java
deleted file mode 100644
index 3ba6782..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DoublePrimitiveValidator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-import org.eclipse.jface.internal.databinding.internal.BindingMessages;
-
-
-/**
- * DoubleValidator.  Verify data input for doubles
- *
- * @author djo
- */
-public class String2DoublePrimitiveValidator implements IValidator {
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.validator.IValidator#isPartiallyValid(java.lang.Object)
-	 */
-	public ValidationError isPartiallyValid(Object fragment) {
-		if (((String)fragment).matches("\\-?[0-9]*\\.?[0-9]*([0-9]+[e|E]\\-?([0-9]+\\.)?[0-9]*)?")) //$NON-NLS-1$
-            return null;
-
-        return ValidationError.error(getHint());
-	}
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.ICellEditorValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-        try {
-            Double.parseDouble((String)value);
-            return null;
-        } catch (Throwable t) {
-            return ValidationError.error(getHint());
-        }
-    }
-
-	private String getHint() {
-		return BindingMessages.getString("Validate_Like") +  //$NON-NLS-1$
-			BindingMessages.getString("Validate_Number_Examples") //$NON-NLS-1$
-			+ Double.MIN_VALUE + 
-			", " + Double.MAX_VALUE + "."; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DoubleValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DoubleValidator.java
deleted file mode 100644
index 8629a6e..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2DoubleValidator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-/**
- * IntegerValidator.  Validate String to Double data input
- */
-public class String2DoubleValidator extends String2DoublePrimitiveValidator {
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.databinding.validator.IValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-       if ("".equals(value)) { //$NON-NLS-1$
-          return null;
-       }
-       return super.isValid(value);
-    }
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2FloatPrimitiveValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2FloatPrimitiveValidator.java
deleted file mode 100644
index eb31bdb..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2FloatPrimitiveValidator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-import org.eclipse.jface.internal.databinding.internal.BindingMessages;
-
-
-/**
- * FloatValidator.  Verify string to float data conversion
- */
-public class String2FloatPrimitiveValidator implements IValidator {
-    
-	public ValidationError isPartiallyValid(Object fragment) {
-		if (((String)fragment).matches("\\-?[0-9]*\\.?[0-9]*([0-9]+[e|E]\\-?([0-9]+\\.)?[0-9]*)?")) //$NON-NLS-1$
-            return null;
-
-        return ValidationError.error(getHint());
-	}
-    
-    public ValidationError isValid(Object value) {
-        try {
-            Float.parseFloat((String)value);
-            return null;
-        } catch (Exception e) {
-            return ValidationError.error(getHint());
-        }
-    }
-
-	private String getHint() {
-		return BindingMessages.getString("Validate_Like") +  //$NON-NLS-1$
-		BindingMessages.getString("Validate_Number_Examples") //$NON-NLS-1$
-		+ Float.MIN_VALUE + 
-		", " + Float.MAX_VALUE + "."; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2FloatValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2FloatValidator.java
deleted file mode 100644
index 13e4614..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2FloatValidator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-/**
- * IntegerValidator.  Validate String to Float data input
- */
-public class String2FloatValidator extends String2FloatPrimitiveValidator {
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.databinding.validator.IValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-       if ("".equals(value)) { //$NON-NLS-1$
-          return null;
-       }
-       return super.isValid(value);
-    }
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2IntegerPrimitiveValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2IntegerPrimitiveValidator.java
deleted file mode 100644
index 32c2d5f..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2IntegerPrimitiveValidator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-import org.eclipse.jface.internal.databinding.internal.BindingMessages;
-
-
-/**
- * IntValidator.  Validate String to int data input
- */
-public class String2IntegerPrimitiveValidator implements IValidator {
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.validator.IValidator#isPartiallyValid(java.lang.Object)
-	 */
-	public ValidationError isPartiallyValid(Object fragment) {
-		if (((String)fragment).matches("\\-?[0-9]*")) //$NON-NLS-1$
-		    return null;
-
-        return ValidationError.error(getHint());
-	}
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.databinding.validator.IValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-        try {
-            Integer.parseInt((String)value);
-            return null;
-        } catch (Throwable t) {
-            return ValidationError.error(getHint());
-        }
-    }
-
-	private String getHint() {
-		return BindingMessages.getString("Validate_RangeStart") + Integer.MIN_VALUE +  //$NON-NLS-1$
-			BindingMessages.getString("and") + Integer.MAX_VALUE + "."; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2IntegerValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2IntegerValidator.java
deleted file mode 100644
index edd010a..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2IntegerValidator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-/**
- * IntegerValidator.  Validate String to Integer data input
- */
-public class String2IntegerValidator extends String2IntegerPrimitiveValidator {
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.databinding.validator.IValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-       if ("".equals(value)) { //$NON-NLS-1$
-          return null;
-       } else {
-          return super.isValid(value);
-       }
-    }
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2LongPrimitiveValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2LongPrimitiveValidator.java
deleted file mode 100644
index cfe629d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2LongPrimitiveValidator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-import org.eclipse.jface.internal.databinding.internal.BindingMessages;
-
-
-/**
- * LongValidator.  Validate String to long data input
- */
-public class String2LongPrimitiveValidator implements IValidator {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.validator.IValidator#isPartiallyValid(java.lang.Object)
-	 */
-	public ValidationError isPartiallyValid(Object fragment) {
-		if (((String)fragment).matches("\\-?[0-9]*")) //$NON-NLS-1$
-            return null;
-
-        return ValidationError.error(getHint());
-	}
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.validator.IValidator#isValid(java.lang.Object)
-	 */
-	public ValidationError isValid(Object value) {
-        try {
-            Long.parseLong((String)value);
-            return null;
-        } catch (Throwable t) {
-            return ValidationError.error(getHint());
-        }
-    }    
-
-	private String getHint() {
-		return BindingMessages.getString("Validate_RangeStart") + Long.MIN_VALUE +  //$NON-NLS-1$
-			BindingMessages.getString("and") + Long.MAX_VALUE + "."; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2LongValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2LongValidator.java
deleted file mode 100644
index b8f692d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2LongValidator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-/**
- * IntegerValidator.  Validate String to Long data input
- */
-public class String2LongValidator extends String2LongPrimitiveValidator {
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.databinding.validator.IValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-       if ("".equals(value)) { //$NON-NLS-1$
-          return null;
-       }
-       return super.isValid(value);
-    }
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ShortPrimitiveValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ShortPrimitiveValidator.java
deleted file mode 100644
index f70a2b3..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ShortPrimitiveValidator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-import org.eclipse.jface.internal.databinding.internal.BindingMessages;
-
-
-/**
- * ShortValidator.  Validate String to short data input
- */
-public class String2ShortPrimitiveValidator implements IValidator {
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.databinding.validator.IValidator#isPartiallyValid(java.lang.Object)
-	 */
-	public ValidationError isPartiallyValid(Object fragment) {
-		if (((String)fragment).matches("\\-?[0-9]*")) //$NON-NLS-1$
-            return null;
-
-        return ValidationError.error(getHint());
-	}
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.databinding.validator.IValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-        try {
-            Short.parseShort((String)value);
-            return null;
-        } catch (Throwable t) {
-            return ValidationError.error(getHint());
-        }
-    }
-
-	private String getHint() {
-		return BindingMessages.getString("Validate_RangeStart") + Short.MIN_VALUE +  //$NON-NLS-1$
-			BindingMessages.getString("and") + Short.MAX_VALUE + "."; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ShortValidator.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ShortValidator.java
deleted file mode 100644
index 8824ebe..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/String2ShortValidator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.internal.databinding.provisional.validation;
-
-/**
- * IntegerValidator.  Validate String to Short data input
- */
-public class String2ShortValidator extends String2ShortPrimitiveValidator {
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.databinding.validator.IValidator#isValid(java.lang.Object)
-     */
-    public ValidationError isValid(Object value) {
-       if ("".equals(value)) { //$NON-NLS-1$
-          return null;
-       }
-       return super.isValid(value);
-    }
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ValidationError.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ValidationError.java
deleted file mode 100644
index 1af9766..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ValidationError.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.jface.internal.databinding.provisional.validation;
-
-/**
- * @since 1.0
- *
- */
-public class ValidationError {
-	
-	/**
-	 * A constant indicating that something may not be quite right.
-	 */
-	public static final int WARNING = 1;
-	
-	/**
-	 * A constant indicating that something bad has happened.
-	 */
-	public static final int ERROR = 2;
-
-	/**
-	 * Indicates the current status.
-	 */
-	public final int status;
-	
-	/**
-	 * Holds the current error or warning message.
-	 */
-	public final String message;
-	
-	/**
-	 * The exception that caused the error (if any).  Note that this
-	 * field should not be used for user errors, but only when the program
-	 * has detected a failure and needs to capture and retain the 
-	 * call stack for the programmer to evaluate later.
-	 */
-	public final Throwable exception;
-	
-	/**
-	 * A convenience factory for {@link #ERROR} ValidationErrors.
-	 * 
-	 * @param message The error message
-	 * @return A new ValidationError representing the error
-	 */
-	public static ValidationError error(String message) {
-		return new ValidationError(ERROR, message, null);
-	}
-	
-	/**
-	 * A convenience factory for {@link #ERROR} ValidationErrors caused
-	 * by a program malfunction.
-	 * 
-	 * @param message The error message
-	 * @param exception The exception representing the malfunction
-	 * @return A new ValidationError representing the error
-	 */
-	public static ValidationError error(String message, Throwable exception) {
-		return new ValidationError(ERROR, message, exception);
-	}
-	
-	/**
-	 * A convenience factory for {@link #WARNING} ValidationErrors.
-	 * 
-	 * @param message The warning message
-	 * @return A new ValidationError representing the warning
-	 */
-	public static ValidationError warning(String message) {
-		return new ValidationError(WARNING, message, null);
-	}
-	
-	/**
-	 * Construct a ValidationError with a status and error message.
-	 * 
-	 * @param status either {@link #WARNING} or {@link #ERROR}
-	 * @param message An error message string or warning.
-	 * @param exception The exception representing the program's malfunction or null if none
-	 */
-	public ValidationError(int status, String message, Throwable exception) {
-		this.status = status;
-		this.message = message;
-		this.exception = exception;
-	}
-	
-	public String toString() {
-		return message;
-	}
-}
-
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 22eaa15..0000000
--- a/bundles/org.eclipse.jface/.options
+++ /dev/null
@@ -1,17 +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
-
-# 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 a61b98e..0000000
--- a/bundles/org.eclipse.jface/.project
+++ /dev/null
@@ -1,28 +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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
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 0ded0d1..0000000
--- a/bundles/org.eclipse.jface/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:12:21 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=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 607ea44..0000000
--- a/bundles/org.eclipse.jface/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Tue Jan 10 17:32:50 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">/**\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.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 a7c16b7..0000000
--- a/bundles/org.eclipse.jface/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,43 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jface
-Bundle-Version: 3.3.0.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.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.2.0,4.0.0)";visibility:=reexport,
- org.eclipse.core.commands;bundle-version="[3.2.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.0/Foundation-1.0,
- J2SE-1.3
-Import-Package: javax.xml.parsers,
- org.w3c.dom,
- org.xml.sax
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/component.xml b/bundles/org.eclipse.jface/component.xml
deleted file mode 100644
index df23519..0000000
--- a/bundles/org.eclipse.jface/component.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<component xmlns="http://eclipse.org/component"
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://eclipse.org/component ../component.xsd "
-   name="JFace">
- <plugin id="org.eclipse.jface" />
-
- <package name="org.eclipse.jface.action" >
-   <type name="AbstractGroupMarker" subclass="false"/>
-   <type name="ActionContributionItem" subclass="false"/>
-   <type name="ExternalActionManager" reference="false"/>
-   <type name="GroupMarker" subclass="false"/>
-   <type name="IAction" implement="false"/>
-   <type name="IContributionItem" implement="false"/>
-   <type name="IContributionManagerOverrides" implement="false"/>
-   <type name="IMenuManager" implement="false"/>
-   <type name="Separator" subclass="false"/>
-   <type name="StatusLine" reference="false"/>
-   <type name="SubContributionItem" subclass="false"/>
-   <type name="ToolBarContributionItem" subclass="false"/>
- </package>
-
- <package name="org.eclipse.jface.bindings" />
- <package name="org.eclipse.jface.bindings.keys" />
- <package name="org.eclipse.jface.bindings.keys.formatting" />
- <package name="org.eclipse.jface.commands" />
- <package name="org.eclipse.jface.contexts" />
- 
- <package name="org.eclipse.jface.dialogs">
-   <type name="DialogSettings" subclass="false"/>
- </package>
-
- <package name="org.eclipse.jface.operation" >
-   <type name="ModalContext" subclass="false" instantiate="false"/>
- </package>
-
- <package name="org.eclipse.jface.preference" >
-    <type name="PreferenceConverter" instantiate="false"/>
-    <type name="PreferenceStore" subclass="false"/>
- </package>
-
- <package name="org.eclipse.jface.resource" >
-   <type name="ColorRegistry" subclass="false"/>
-   <type name="FontRegistry" subclass="false"/>
-   <type name="ImageCache" subclass="false"/>
-   <type name="ImageRegistry" subclass="false"/>
-   <type name="JFaceResources" instantiate="false" subclass="false"/>
-   <type name="StringConverter" instantiate="false" subclass="false"/>
- </package>
-
- <package name="org.eclipse.jface.util" />
- <package name="org.eclipse.jface.viewers" >
-   <type name="ArrayContentProvider" subclass="false"/>
-   <type name="CheckboxCellEditor" subclass="false"/>
-   <type name="CheckboxTableViewer" subclass="false"/>
-   <type name="CheckboxTreeViewer" subclass="false"/>
-   <type name="ColorCellEditor" subclass="false"/>
-   <type name="ColumnLayoutData" subclass="false"/>
-   <type name="ColumnPixelData" subclass="false"/>
-   <type name="ColumnWeightData" subclass="false"/>
-   <type name="ComboBoxCellEditor" subclass="false"/>
-   <type name="IDecoration" implement="false"/>
-   <type name="ListViewer" subclass="false"/>
-   <type name="StructuredSelection" subclass="false"/>
-   <type name="TableTreeViewer" subclass="false"/>
-   <type name="TableViewer" subclass="false"/>
-   <type name="TextCellEditor" subclass="false"/>
-   <type name="TreeViewer" subclass="false"/>
-   
- </package>
-
- <package name="org.eclipse.jface.viewers.deferred" >
-   <type name="IConcurrentModel" implement="false"/>
-  
- </package>
-
- <package name="org.eclipse.jface.window" />
- <package name="org.eclipse.jface.wizard" />
-
- <component-depends unrestricted="true"/>
-
-</component>
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 ed5c32f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/AbstractAction.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.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 IPropertyChangeListener#propertyChange
-	 */
-	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 IPropertyChangeListener#propertyChange
-	 */
-	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 f87c90c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/AbstractGroupMarker.java
+++ /dev/null
@@ -1,56 +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.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>
- */
-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 7f1409a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/Action.java
+++ /dev/null
@@ -1,698 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.SWT;
-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 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 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 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 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 69f2d0e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
+++ /dev/null
@@ -1,1054 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-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.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>
- */
-public class ActionContributionItem extends ContributionItem {
-
-    /**
-     * Mode bit: Show text on tool items, 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$
-
-    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;
-
-    /**
-     * 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) {
-            Menu subMenu = 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) {
-                    IMenuCreator mc = action.getMenuCreator();
-                    if (mc != null) {
-                        subMenu = mc.getMenu(parent);
-                        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 (subMenu != null) {
-				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) {
-                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();
-                        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
-                                Rectangle b = ti.getBounds();
-                                Point p = ti.getParent().toDisplay(
-                                        new Point(b.x, b.y + b.height));
-                                m.setLocation(p.x, p.y); // waiting for SWT 0.42
-                                m.setVisible(true);
-                                return; // we don't fire the action
-                            }
-                        }
-                    }
-                }
-            }
-
-            // 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 = System.currentTimeMillis();
-                if (trace) {
-					System.out.println("Running action: " + action.getText()); //$NON-NLS-1$
-				}
-
-                action.runWithEvent(e);
-
-                if (trace) {
-					System.out.println((System.currentTimeMillis() - ms)
-                            + " ms to run action: " + action.getText()); //$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;
-					}
-                    // 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 (("gtk".equals(SWT.getPlatform())) && (callback instanceof IBindingManagerCallback) //$NON-NLS-1$
-							&& (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);
-                        }
-                    } else {
-                        acceleratorText = Action
-                                .convertAccelerator(accelerator);
-                    }
-
-                    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) {
-						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)) {
-					textChanged = false; // don't update text if it has an image
-				}
-
-                if (textChanged) {
-                    String text = action.getText();
-                    if (text == null) {
-						text = ""; //$NON-NLS-1$
-					} else {
-						text = Action.removeAcceleratorText(text);
-					}
-                    button.setText(text);
-                }
-
-                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 given width. The default implementation replaces characters
-     * in the center of the original string with an ellipsis ("..."). Override
-     * if you need a different strategy.
-     */
-    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;
-    }
-}
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 74d80c0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ContributionItem.java
+++ /dev/null
@@ -1,211 +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.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) {
-    }
-}
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 6a75caa..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ContributionManager.java
+++ /dev/null
@@ -1,532 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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) {
-        add(new ActionContributionItem(action));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void add(IContributionItem item) {
-        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;
-    }
-
-    /**
-     * 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;
-                }
-            };
-        }
-        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.
-     */
-    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.
-     */
-    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 2686a75..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ControlContribution.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.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 852d8de..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/CoolBarManager.java
+++ /dev/null
@@ -1,1041 +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 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.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;
-                        }
-                    }
-
-                }
-            }
-            // 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()) {
-            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();
-            }
-            coolBar.dispose();
-            coolBar = null;
-        }
-        // 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) && (items[i].isVisible())
-                    && (!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++;
-            }
-        }
-
-        if (contributionList.size() != 0) {
-            contributionList = adjustContributionList(contributionList);
-            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 (item.isVisible()) {
-                    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();
-                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())
-                    && (item.isVisible()) && (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);
-        }
-    }
-}
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 cc9c1db..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ExternalActionManager.java
+++ /dev/null
@@ -1,550 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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;	// Not using ICU to support standalone JFace scenario
-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.ICommandListener;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.runtime.IStatus;
-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;
-
-/**
- * <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>.
-	 * 
-	 * @since 3.1
-	 */
-	public static final class CommandCallback implements
-			IBindingManagerListener, IBindingManagerCallback {
-
-		/**
-		 * 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;
-
-		/**
-		 * 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>).
-		 */
-		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;
-				}
-
-			});
-		}
-
-		/**
-		 * 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) {
-			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$
-			}
-
-			this.activeChecker = activeChecker;
-			this.bindingManager = bindingManager;
-			this.commandManager = commandManager;
-		}
-
-		/**
-		 * @see org.eclipse.jface.action.ExternalActionManager.ICallback#addPropertyChangeListener(String,
-		 *      IPropertyChangeListener)
-		 */
-		public final void addPropertyChangeListener(final String commandId,
-				final IPropertyChangeListener listener) {
-			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)) {
-						final IPropertyChangeListener listener = (IPropertyChangeListener) entry
-								.getValue();
-						listener.propertyChange(new PropertyChangeEvent(event
-								.getManager(), IAction.TEXT, null, null));
-					}
-				}
-			}
-		}
-
-		/**
-		 * @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) {
-			final IPropertyChangeListener existingListener = (IPropertyChangeListener) registeredListeners
-					.get(commandId);
-			if (existingListener == listener) {
-				registeredListeners.remove(commandId);
-				if (registeredListeners.isEmpty()) {
-					bindingManager.removeBindingManagerListener(this);
-					bindingManagerListenerAttached = false;
-				}
-			}
-		}
-	}
-
-	/**
-	 * 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);
-	}
-
-	/**
-	 * 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>
-		 * A single instance of the listener may only ever be associated with
-		 * one identifier. Attempts to add the listener twice (without a removal
-		 * in between) has undefined behaviour.
-		 * </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 97f9d9f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/GroupMarker.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.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>
- */
-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 00ab5ea..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IAction.java
+++ /dev/null
@@ -1,516 +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.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
- */
-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>
-     *
-     * @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 028507b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionItem.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.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
- */
-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.
-     * 
-     * @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 7ca0c1a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionManager.java
+++ /dev/null
@@ -1,228 +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.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
-     */
-    public void add(IAction action);
-
-    /**
-     * Adds a contribution item to this manager.
-     *
-     * @param item the contribution item
-     */
-    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 658dd04..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionManagerOverrides.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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
- */
-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$
-
-    /**
-     * Returns <code>Boolean.TRUE</code> if the given contribution item should 
-     * be enabled, <code>Boolean.FALSE</code> if the item should be disabled, and
-     * <code>null</code> if the item may determine its own enablement.
-     * 
-     * @param item the contribution item for which the enable override value is 
-     * determined
-     * @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
-     */
-    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
-     */
-    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
-     */
-    public String getText(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 a00aa87..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuCreator.java
+++ /dev/null
@@ -1,54 +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.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 d6f9984..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuListener.java
+++ /dev/null
@@ -1,26 +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.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 f40176c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuManager.java
+++ /dev/null
@@ -1,107 +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.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>
- */
-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 4f51b39..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IStatusLineManager.java
+++ /dev/null
@@ -1,107 +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.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.
-     *
-     * @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 d86978e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IToolBarManager.java
+++ /dev/null
@@ -1,24 +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.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 5066a8d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/MenuManager.java
+++ /dev/null
@@ -1,806 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.ListenerList;
-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.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 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.
-     */
-    private boolean visible = true;
-
-    /**
-     * 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);
-    }
-
-    /**
-     * 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);
-    }
-
-    /**
-     * 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.menuText = text;
-        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;
-        }
-
-        IContributionItem[] items = getItems();
-        for (int i = 0; i < items.length; i++) {
-            items[i].dispose();
-        }
-    }
-
-    /* (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);
-			}
-
-            menuItem.setText(getMenuText());
-
-            if (!menuExist()) {
-				menu = new Menu(parent);
-			}
-
-            menuItem.setMenu(menu);
-
-            initializeMenu();
-
-            // populate the submenu, in order to enable accelerators
-            // and to set enabled state on the menuItem properly
-            update(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
-     *
-     * @see IMenuListener#menuAboutToHide
-     */
-    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.
-     *
-     * @return the menu text
-     */
-    public String getMenuText() {
-        return menuText;
-    }
-
-    /* (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;
-                    }
-                };
-            } 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, true);
-    }
-
-    /**
-     * 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;
-    }
-
-    /**
-     * @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 circut calculations in this case
-		}
-
-        // menus arent 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 (childItems[j].isVisible() && !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
-     */
-    private 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;
-    }
-
-    /* (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);
-    }
-
-    /**
-     * 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 (!ci.isVisible()) {
-						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)
-                MenuItem[] mi = menu.getItems();
-
-                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 = menu.getItems();
-                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 = menu.getItemCount();
-                        src.fill(menu, destIx);
-                        int newItems = menu.getItemCount() - start;
-                        for (int i = 0; i < newItems; i++) {
-                            MenuItem item = menu.getItem(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 (mm.isVisible()) {
-                            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
-                && 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);
-            }
-        }
-    }
-
-    /* (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 = 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);
-				}
-            }
-        }
-    }
-}
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 e1cdd6c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/Separator.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.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>
- */
-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 7712aa9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLine.java
+++ /dev/null
@@ -1,639 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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;
-
-    // state
-    protected boolean fProgressIsVisible = false;
-
-    protected boolean fCancelButtonIsVisible = false;
-
-    protected boolean fCancelEnabled = false;
-
-    protected String fTaskName;
-
-    protected boolean fIsCanceled;
-
-    protected long fStartTime;
-
-    private Cursor fStopButtonCursor;
-
-    protected String fMessageText;
-
-    protected Image fMessageImage;
-
-    protected String fErrorText;
-
-    protected Image fErrorImage;
-
-    // SWT widgets
-    protected CLabel fMessageLabel;
-
-    protected Composite fProgressBarComposite;
-
-    protected ProgressIndicator fProgressBar;
-
-    protected ToolBar fToolBar;
-
-    protected ToolItem fCancelButton;
-
-    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 = "";//$NON-NLS-1$
-		} 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.
-     * @private
-     */
-    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) {
-        fTaskName = name;
-    }
-
-    /**
-     * Makes the Cancel button visible.
-     * @private
-     */
-    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.
-     * @private
-     */
-    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 text;
-        if (fTaskName.length() == 0) {
-			text = name;
-		} else {
-			text = JFaceResources.format(
-                    "Set_SubTask", new Object[] { fTaskName, name });//$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;
-		}
-        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/StatusLineLayoutData.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineLayoutData.java
deleted file mode 100644
index e48e9c6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineLayoutData.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.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 a09d1e9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubContributionItem.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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>
- */
-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>.
-     */
-    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 dc898e1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubContributionManager.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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) {
-        item.setParent(this);
-        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) {
-        item.setParent(this);
-        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) {
-        item.setParent(this);
-        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) {
-        item.setParent(this);
-        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) {
-        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);
-    }
-
-    /**
-     * @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) {
-        item.setParent(this);
-        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);
-        if (result != null) {
-			itemRemoved(result);
-		}
-        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() {
-        Iterator it = mapItemToWrapper.values().iterator();
-        while (it.hasNext()) {
-            IContributionItem item = (IContributionItem) it.next();
-            parentMgr.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.
-     */
-    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 cce0204..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubMenuManager.java
+++ /dev/null
@@ -1,405 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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;
-            clearListenerList(menuListeners);
-        }
-        // 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();
-    }
-
-	/**
-	 * Clears all of the listeners in a listener list. TODO Bug 117519 Remove
-	 * this method when fixed.
-	 * 
-	 * @param list
-	 *            The list to be clear; must not be <code>null</code>.
-	 */
-	private final void clearListenerList(final ListenerList list) {
-		final Object[] listeners = list.getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			list.remove(listeners[i]);
-		}
-	}
-
-    /* (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();
-    }
-
-    /**
-     * Returns 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>
-     *
-     * @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.
-     */
-    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 17e9821..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);
-    }
-
-    /**
-     * Returns 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 2b43527..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubToolBarManager.java
+++ /dev/null
@@ -1,50 +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.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);
-    }
-
-    /**
-     * Returns 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 847512c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ToolBarContributionItem.java
+++ /dev/null
@@ -1,672 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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
- */
-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 7ebd9bd..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ToolBarManager.java
+++ /dev/null
@@ -1,403 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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;
-
-/**
- * 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
-	 * <code>createControl</code> 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.
-	 * 
-	 * @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.
-	 * 
-	 * @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(false);
-			
-			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 crosses the zero threshold. Subclasses
-	 * should override this method to implement their own re-layout strategy
-	 * 
-	 * @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 == 0) != (newCount == 0)) {
-			layoutBar.getParent().layout();
-		}
-	}
-
-	/**
-	 * 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 (!ci.isVisible()) {
-						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++) {
-					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();
-				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());
-		}
-	}
-
-}
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 f4356bd..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 06097ca..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Binding.java
+++ /dev/null
@@ -1,400 +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;
-
-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 StringBuffer stringBuffer = new StringBuffer();
-			stringBuffer.append("Binding("); //$NON-NLS-1$
-			stringBuffer.append(getTriggerSequence());
-			stringBuffer.append(',');
-			stringBuffer.append(command);
-			stringBuffer.append(',');
-			stringBuffer.append(schemeId);
-			stringBuffer.append(',');
-			stringBuffer.append(contextId);
-			stringBuffer.append(',');
-			stringBuffer.append(locale);
-			stringBuffer.append(',');
-			stringBuffer.append(platform);
-			stringBuffer.append(',');
-			stringBuffer.append((type == SYSTEM) ? "system" : "user"); //$NON-NLS-1$//$NON-NLS-2$
-			stringBuffer.append(')');
-			string = stringBuffer.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 f684434..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManager.java
+++ /dev/null
@@ -1,2332 +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.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.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;
-import org.eclipse.swt.SWT;
-
-/**
- * <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$
-
-	/**
-	 * </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;
-
-	/**
-	 * 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 = SWT.getPlatform();
-
-	/**
-	 * 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);
-	}
-
-	/**
-	 * 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) {
-		/*
-		 * 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);
-			}
-		}
-
-		/*
-		 * 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(resolveConflicts((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) {
-						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);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * <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();
-		}
-	}
-
-	/**
-	 * 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();
-		computeBindings(null, commandIdsByTrigger,
-				triggersByParameterizedCommand);
-		existingCache.setBindingsByTrigger(commandIdsByTrigger);
-		existingCache.setTriggersByCommandId(triggersByParameterizedCommand);
-		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();
-		triggersByParameterizedCommand = new HashMap();
-		computeBindings(null, commandIdsByTrigger,
-				triggersByParameterizedCommand);
-		existingCache.setBindingsByTrigger(commandIdsByTrigger);
-		existingCache.setTriggersByCommandId(triggersByParameterizedCommand);
-
-		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);
-		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;
-	}
-
-	/**
-	 * 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 String commandId) {
-		final TriggerSequence[] triggers = getActiveBindingsFor(commandId);
-		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) {
-		final Binding[] bindings = getActiveBindingsFor1(commandId);
-		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);
-			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());
-			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();
-		computeBindings(activeContextTree, commandIdsByTrigger,
-				triggersByParameterizedCommand);
-		existingCache.setBindingsByTrigger(commandIdsByTrigger);
-		existingCache.setTriggersByCommandId(triggersByParameterizedCommand);
-		setActiveBindings(commandIdsByTrigger, triggersByParameterizedCommand,
-				buildPrefixTable(commandIdsByTrigger));
-		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 -- irrespective
-	 * of the currently active contexts. This means that type and scheme will be
-	 * considered.
-	 * </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).
-	 * @return The collection of bindings which match the current scheme.
-	 */
-	private final Collection resolveConflicts(final Collection bindings) {
-		final Collection matches = new ArrayList();
-		final Iterator bindingItr = bindings.iterator();
-		Binding bestMatch = (Binding) bindingItr.next();
-		matches.add(bestMatch);
-
-		/*
-		 * Iterate over each binding and compares it with the best match. If a
-		 * better match is found, then replace the best match and clear the
-		 * collection. If the current binding is equivalent, then simply add it
-		 * to the collection of matches. If the current binding is worse, then
-		 * do nothing.
-		 */
-		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 take priority over bindings
-			 * defined in a parent scheme -- assuming that consulting their
-			 * contexts led to a conflict.
-			 */
-			final String currentSchemeId = current.getSchemeId();
-			final String bestSchemeId = bestMatch.getSchemeId();
-			final int compareTo = compareSchemes(bestSchemeId, currentSchemeId);
-			if (compareTo > 0) {
-				bestMatch = current;
-				matches.clear();
-				matches.add(current);
-			}
-			if (compareTo != 0) {
-				continue;
-			}
-
-			/*
-			 * TYPE: Test for type superiority.
-			 */
-			if (current.getType() > bestMatch.getType()) {
-				bestMatch = current;
-				matches.clear();
-				matches.add(current);
-				continue;
-			} else if (bestMatch.getType() > current.getType()) {
-				continue;
-			}
-
-			// The bindings are equivalent.
-			matches.add(current);
-		}
-
-		// Return all of the matches.
-		return matches;
-	}
-
-	/**
-	 * <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) {
-		this.activeBindings = activeBindings;
-		final Map previousBindingsByParameterizedCommand = this.activeBindingsByParameterizedCommand;
-		this.activeBindingsByParameterizedCommand = activeBindingsByCommandId;
-		this.prefixTable = prefixTable;
-
-		fireBindingManagerChanged(new BindingManagerEvent(this, true,
-				previousBindingsByParameterizedCommand, false, null, false,
-				false, false));
-	}
-
-	/**
-	 * <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()
-	 */
-	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 c3d5bd3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/CachedBindingSet.java
+++ /dev/null
@@ -1,335 +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.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;
-
-	/**
-	 * 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 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 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 1b77fa1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeySequenceText.java
+++ /dev/null
@@ -1,925 +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.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.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.
-		 */
-		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.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();
-
-		/**
-		 * Attaches the global traversal filter.
-		 * 
-		 * @param event
-		 *            Ignored.
-		 */
-		public void focusGained(FocusEvent event) {
-			Display.getCurrent().addFilter(SWT.Traverse, filter);
-		}
-
-		/**
-		 * Detaches the global traversal filter.
-		 * 
-		 * @param event
-		 *            Ignored.
-		 */
-		public void focusLost(FocusEvent event) {
-			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 ("carbon".equals(SWT.getPlatform())) { //$NON-NLS-1$
-			// 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);
-
-		// Add the focus listener that attaches the global traversal filter.
-		text.addFocusListener(new TraversalFilterManager());
-
-		// 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.
-	 * @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 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 = endStrokeIndex - startStrokeIndex + 1;
-		deletedKeyStrokes[0] = new KeyStroke[newLength];
-		final KeyStroke startStroke = keyStrokes[startStrokeIndex];
-		System.arraycopy(keyStrokes, 0, keyStrokes, 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);
-				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;
-		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 171f0af..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/SWTKeyLookup.java
+++ /dev/null
@@ -1,370 +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;
-
-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,
-				"carbon".equals(SWT.getPlatform()) ? command : ctrl); //$NON-NLS-1$
-		modifierKeyTable.put(M2_NAME, shift);
-		modifierKeyTable.put(M3_NAME, alt);
-		modifierKeyTable.put(M4_NAME, "carbon".equals(SWT.getPlatform()) ? ctrl //$NON-NLS-1$
-				: 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 c95f0d2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/SWTKeySupport.java
+++ /dev/null
@@ -1,244 +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 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) {
-			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 e388dd2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/NativeKeyFormatter.java
+++ /dev/null
@@ -1,194 +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.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;
-import org.eclipse.swt.SWT;
-
-/**
- * <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 ("carbon".equals(SWT.getPlatform())) { //$NON-NLS-1$    	
-			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 ("carbon".equals(SWT.getPlatform())) { //$NON-NLS-1$
-			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 ("win32".equals(SWT.getPlatform())) { //$NON-NLS-1$
-			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 String platform = SWT.getPlatform();
-		final int[] sortedKeys = new int[4];
-		int index = 0;
-
-		if ("win32".equals(platform)) { //$NON-NLS-1$
-			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 ("gtk".equals(platform) || "motif".equals(platform)) { //$NON-NLS-1$ //$NON-NLS-2$
-			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 ("carbon".equals(platform)) { //$NON-NLS-1$
-			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 ffa1c0b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/NativeKeyFormatter.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
-###############################################################################
-
-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 f532aaa..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 cdc8fd5..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 eaf3c23..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 6095340..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/RadioState.java
+++ /dev/null
@@ -1,265 +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 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 != 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();
-			}
-			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 f22a533..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 dd5d6f7..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 4210fb5..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
- * 
- */
-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 f9d0b20..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 {
-	
-	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 ca61b98..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ControlEnableState.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.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 {
-        protected Control item;
-
-        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 1c5ef25..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java
+++ /dev/null
@@ -1,1441 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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.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.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.graphics.Rectangle;
-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;
-	
-	/**
-	 * A mouse listener that can be used to restore the default size
-	 * of a dialog.  
-	 * 
-	 * @since 3.2
-	 */
-	private MouseListener restoreSizeMouseListener = new MouseAdapter() {
-		public void mouseDoubleClick(MouseEvent event) {
-			restoreDialogToComputedSize();
-		}
-	};
-
-	/**
-	 * 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;
-	
-	/**
-	 * Point used for storing initial computed size of the dialog so
-	 * that it may be restored.
-	 */
-	private Point computedSize;
-
-	/**
-	 * 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;
-		if (gc.textExtent(textValue).x < maxWidth) {
-			gc.dispose();
-			return textValue;
-		}
-		int length = textValue.length();
-		int pivot = length / 2;
-		int start = pivot;
-		int end = pivot + 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);
-		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() {
-		String platform = SWT.getPlatform();
-		if ("carbon".equals(platform)) { //$NON-NLS-1$
-			// On Mac OS X the default button must be the right-most button
-			Shell shell = getShell();
-			if (shell != null) {
-				Button defaultButton = shell.getDefaultButton();
-				if (defaultButton != null
-						&& isContained(buttonBar, defaultButton)) {
-					defaultButton.moveBelow(null);
-				}
-			}
-		}
-		
-		// Store the computed size for the dialog.  Must be done here before
-		// any dialog settings are applied.  We don't do this in the create methods
-		// because the dialog font is applied after creation and before the bounds
-		// are initialized.
-		computedSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT, true);	
-		
-		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());
-		}
-		
-		removeRestoreSizeMouseListeners();
-
-		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 thier 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);
-		
-		// Register a mouse listener so that the user can restore this 
-		// size with a double-click.
-		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=116906
-		addRestoreSizeMouseListeners();
-	}
-
-	/**
-	 * 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;
-	}
-	
-	/**
-	 * Add mouse listeners as needed to provide dialog size restore 
-	 * behavior.  Double-clicking in unused areas will restore
-	 * the dialog size.
-	 * 
-	 *  @since 3.2
-	 */
-	private void addRestoreSizeMouseListeners() {
-		// Hook a double click event for restoring the dialog's computed
-		// size.  We hook onto the button bar and the contents, and any
-		// nested composites in between, in order to accomodate different
-		// layout and construction styles.
-		Control dialogContents = getContents();
-		if (buttonBar != null) {
-			// Hook onto the button bar composite and
-			// any nested composites within the button bar.
-			// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=137315
-			addRestoreSizeMouseListenerToComposites(buttonBar);	
-			// Hook onto any nested composites between the button bar
-			// and the contents.
-			Control control = buttonBar.getParent();
-			while (control != dialogContents && control != null) {
-				if (control.getClass() == Composite.class) {
-					control.addMouseListener(restoreSizeMouseListener);
-				}
-				control = control.getParent();
-			}
-		}
-		if (dialogContents != null) {
-			dialogContents.addMouseListener(restoreSizeMouseListener);
-		}
-	}
-	
-	/**
-	 * Add mouse listeners to the specified control if it is a composite,
-	 * and any child composites.  Called recursively.
-	 * 
-	 *  @since 3.2
-	 */
-	private void addRestoreSizeMouseListenerToComposites(Control control) {
-		// Check explicitly for instances of Composite, not instances of
-		// subclasses of composite.
-		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=140306
-		if (control.getClass() == Composite.class) {
-			control.addMouseListener(restoreSizeMouseListener);
-			Control [] children = ((Composite)control).getChildren();
-			for (int i=0; i<children.length; i++) {
-				addRestoreSizeMouseListenerToComposites(children[i]);
-			}
-		}
-	}
-	
-	/**
-	 * Remove any mouse listeners that were registered.
-	 * 
-	 *  @since 3.2
-	 */
-	private void removeRestoreSizeMouseListeners() {
-		Control dialogContents = getContents();
-		if (buttonBar != null && !buttonBar.isDisposed()) {
-			removeRestoreSizeMouseListenerFromComposites(buttonBar);
-			Control control = buttonBar.getParent();
-			while (control != dialogContents && control != null && !control.isDisposed()) {
-				if (control.getClass() == Composite.class) {
-					control.removeMouseListener(restoreSizeMouseListener);
-				}
-				control = control.getParent();
-			}
-		}
-		if (dialogContents != null && !dialogContents.isDisposed()) {
-			dialogContents.removeMouseListener(restoreSizeMouseListener);
-		}
-	}
-	
-	/**
-	 * Remove mouse listeners from the specified control if it is a composite,
-	 * and any child composites.  Called recursively.
-	 * 
-	 *  @since 3.3
-	 */
-	private void removeRestoreSizeMouseListenerFromComposites(Control control) {
-		// Check explicitly for instances of Composite, not instances of
-		// subclasses of composite.
-		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=140306
-		if (control.getClass() == Composite.class) {
-			control.removeMouseListener(restoreSizeMouseListener);
-			Control [] children = ((Composite)control).getChildren();
-			for (int i=0; i<children.length; i++) {
-				removeRestoreSizeMouseListenerFromComposites(children[i]);
-			}
-		}
-	}
-	
-	/**
-	 * Restore the dialog to its initially computed size, resetting
-	 * any bounds that may have been stored in dialog settings.
-	 * 
-	 * @since 3.2
-	 */
-	private void restoreDialogToComputedSize() {
-		// The computed size was never stored.  This should not typically
-		// happen, but could if a client completely override the bounds initialization.
-		if (computedSize == null) {
-			return;
-		}
-		
-		Shell shell = getShell();
-		Point shellSize = shell.getSize();
-		Point shellLocation = shell.getLocation();
-
-		// If the size has not changed, do nothing
-		if (shellSize.equals(computedSize)) {
-			return;
-		}
-			
-		// Now reset the bounds
-		shell.setBounds(getConstrainedShellBounds(new Rectangle(shellLocation.x,
-				shellLocation.y, computedSize.x, computedSize.y)));
-		
-		// If we do store the bounds, update the value so default bounds
-		// will be used.
-		IDialogSettings settings = getDialogBoundsSettings();
-		if (settings != null) {
-			int strategy = getDialogBoundsStrategy();
-			if ((strategy & DIALOG_PERSISTSIZE) != 0) {
-				settings.put(DIALOG_WIDTH, DIALOG_DEFAULT_BOUNDS);
-				settings.put(DIALOG_HEIGHT, DIALOG_DEFAULT_BOUNDS);
-			}
-		}
-
-		
-	
-	}
-}
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 9da5db1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogPage.java
+++ /dev/null
@@ -1,470 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 an
-     * <code>IDialogPage</code> method does nothing. 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 85802ae..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogSettings.java
+++ /dev/null
@@ -1,536 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-/**
- * 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>
- */
-
-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) throws IOException {
-    	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 {
-    	protected int tab;
-
-    	/* constants */
-    	protected static final String XML_VERSION = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; //$NON-NLS-1$
-
-    	public XMLWriter(OutputStream output) throws UnsupportedEncodingException {
-    		super(new OutputStreamWriter(output, "UTF8")); //$NON-NLS-1$
-    		tab = 0;
-    		println(XML_VERSION);
-    	}
-
-    	public XMLWriter(Writer output) {
-    		super(output);
-    		tab = 0;
-    		println(XML_VERSION);
-    	}
-
-    	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');
-			}
-    	}
-
-    	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());
-			}
-    	}
-
-    	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 d295b4a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ErrorDialog.java
+++ /dev/null
@@ -1,617 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.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.
- * 
- * @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;
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-    }
-
-    /*
-     * (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) Method declared on Dialog.
-     */
-    protected void createButtonsForButtonBar(Composite parent) {
-        // create OK and Details buttons
-        createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL,
-                true);
-        createDetailsButton(parent);
-    }
-
-    /**
-     * 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.
-     */
-    protected Control createDialogArea(Composite parent) {
-        createMessageArea(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);
-        layout.numColumns = 2;
-        composite.setLayout(layout);
-        GridData childData = new GridData(GridData.FILL_BOTH);
-        childData.horizontalSpan = 2;
-        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);
-        }
-        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);
-        }
-    }
-}
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 41042cb..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogBlockedHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-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 e16853a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogConstants.java
+++ /dev/null
@@ -1,340 +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;
-
-/**
- * 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 cfc899a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogSettings.java
+++ /dev/null
@@ -1,266 +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;
-
-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 1835015..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IInputValidator.java
+++ /dev/null
@@ -1,30 +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;
-
-/**
- * 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 c09e139..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IMessageProvider.java
+++ /dev/null
@@ -1,65 +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 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/IPageTransitionListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageTransitionListener.java
deleted file mode 100644
index a87d818..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageTransitionListener.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:
- *     Chris Gross (schtoo@schtoo.com) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-/**
- * <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>
- * 
- * A listener which is notified when the current page of the multi-page dialog
- * is changing.
- * 
- * @see IPageTransitionProvider
- * @see PageTransitionEvent
- * @since 3.3
- */
-public interface IPageTransitionListener {
-	
-	/**
-	 * Notifies that the selected page is changing.  The doit field of the
-	 * PageTransitionEvent can be set to false to prevent the page from changing.
-	 * 
-	 * @param event
-	 *            event object describing the change
-	 */
-	public void pageTransition(PageTransitionEvent event);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageTransitionProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageTransitionProvider.java
deleted file mode 100644
index 13e6d03..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageTransitionProvider.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:
- *     Chris Gross (schtoo@schtoo.com) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-/**
- * <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>
- * 
- * Minimal interface to a page changing provider. Used for dialogs that
- * transition between pages.
- * 
- * @since 3.3
- */
-public interface IPageTransitionProvider {
-	/**
-	 * 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 dialogs
-	 *         provided by JFace, this will be an instance of
-	 *         <code>IDialogPage</code>.
-	 */
-	Object getSelectedPage();
-	
-	/**
-	 * Adds a listener for page changes in this page changing provider. Has no
-	 * effect if an identical listener is already registered.
-	 * 
-	 * @param listener
-	 *            a page transition listener
-	 */
-	void addPageTransitionListener(IPageTransitionListener listener);
-
-	/**
-	 * Removes the given page changing listener from this page changing provider.
-	 * Has no effect if an identical listener is not registered.
-	 * 
-	 * @param listener
-	 *            a page transition listener
-	 */
-	void removePageTransitionListener(IPageTransitionListener listener);
-
-}
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 a646d83..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IconAndMessageDialog.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.dialogs;
-
-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.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;
-
-/**
- * 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.
- */
-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.
-     * @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);
-            imageLabel.setLayoutData(new GridData(
-                    GridData.HORIZONTAL_ALIGN_CENTER
-                            | GridData.VERTICAL_ALIGN_BEGINNING));
-        }
-        // create message
-        if (message != null) {
-            messageLabel = new Label(composite, getMessageLabelStyle());
-            messageLabel.setText(message);
-            GridData data = new GridData(GridData.GRAB_HORIZONTAL
-                    | GridData.HORIZONTAL_ALIGN_FILL
-                    | GridData.VERTICAL_ALIGN_BEGINNING);
-            data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
-            messageLabel.setLayoutData(data);
-        }
-        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);
-        // 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 = 0;
-        layout.marginHeight = 0;
-        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);
-        data.horizontalSpan = 2;
-        composite.setLayoutData(data);
-        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);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN) * 3 / 2;
-        layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-        layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-        layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING) * 2;
-        layout.makeColumnsEqualWidth = false;
-        parent.setLayout(layout);
-        parent.setLayoutData(new GridData(GridData.FILL_BOTH));
-        createDialogAndButtonArea(parent);
-        return parent;
-    }
-
-    /**
-     * 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 = getParentShell();
-        }
-        if (shell == null) {
-            display = Display.getCurrent();
-        } 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 b201e80..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ImageAndMessageArea.java
+++ /dev/null
@@ -1,190 +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. 
- *
- * @since 3.2
- * 
- * This class is not intended to be extended by clients.
- * 
- */
-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 58a9b5a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/InputDialog.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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, SWT.SINGLE | SWT.BORDER);
-        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);
-        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 ? "" : errorMessage); //$NON-NLS-1$
-    		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);
-    		}
-    	}
-    }
-}
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 29d7bb8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/MessageDialog.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 a dialog with no image (value 0).
-     */
-    public final static int NONE = 0;
-
-    /**
-     * Constant for a dialog with an error image (value 1).
-     */
-    public final static int ERROR = 1;
-
-    /**
-     * Constant for a dialog with an info image (value 2).
-     */
-    public final static int INFORMATION = 2;
-
-    /**
-     * Constant for a dialog with a question image (value 3).
-     */
-    public final static int QUESTION = 3;
-
-    /**
-     * Constant for a dialog with a warning image (value 4).
-     */
-    public final static int WARNING = 4;
-
-    /**
-     * 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. If the dialog was dismissed without pressing
-     * a button (ESC, etc.) then -1 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: {
-            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);
-    }
-
-    /**
-     * 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) {
-        MessageDialog dialog = new MessageDialog(parent, title, null, // accept
-                // the
-                // default
-                // window
-                // icon
-                message, QUESTION, new String[] { IDialogConstants.OK_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0); // OK is the
-        // default
-        return dialog.open() == 0;
-    }
-
-    /**
-     * 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) {
-        MessageDialog dialog = new MessageDialog(parent, title, null, // accept
-                // the
-                // default
-                // window
-                // icon
-                message, ERROR, new String[] { IDialogConstants.OK_LABEL }, 0); // ok
-        // is
-        // the
-        // default
-        dialog.open();
-        return;
-    }
-
-    /**
-     * 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) {
-        MessageDialog dialog = new MessageDialog(parent, title, null, // accept
-                // the
-                // default
-                // window
-                // icon
-                message, INFORMATION,
-                new String[] { IDialogConstants.OK_LABEL }, 0);
-        // ok is the default
-        dialog.open();
-        return;
-    }
-
-    /**
-     * 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 OK button,
-     *         <code>false</code> otherwise
-     */
-    public static boolean openQuestion(Shell parent, String title,
-            String message) {
-        MessageDialog dialog = new MessageDialog(parent, title, null, // accept
-                // the
-                // default
-                // window
-                // icon
-                message, QUESTION, new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL }, 0); // yes is the default
-        return dialog.open() == 0;
-    }
-
-    /**
-     * 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) {
-        MessageDialog dialog = new MessageDialog(parent, title, null, // accept
-                // the
-                // default
-                // window
-                // icon
-                message, WARNING, new String[] { IDialogConstants.OK_LABEL }, 0); // ok
-        // is
-        // the
-        // default
-        dialog.open();
-        return;
-    }
-
-    /*
-     * @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 18f87c0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/MessageDialogWithToggle.java
+++ /dev/null
@@ -1,705 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 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) {
-        MessageDialogWithToggle dialog = new MessageDialogWithToggle(parent,
-                title, null, // accept the default window icon
-                message, ERROR, new String[] { IDialogConstants.OK_LABEL }, 0, // ok
-                // is
-                // the
-                // default
-                toggleMessage, toggleState);
-        dialog.prefStore = store;
-        dialog.prefKey = key;
-        dialog.open();
-        return dialog;
-    }
-
-    /**
-     * 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) {
-        MessageDialogWithToggle dialog = new MessageDialogWithToggle(parent,
-                title, null, // accept the default window icon
-                message, INFORMATION,
-                new String[] { IDialogConstants.OK_LABEL }, 0, // ok is the
-                // default
-                toggleMessage, toggleState);
-        dialog.prefStore = store;
-        dialog.prefKey = key;
-        dialog.open();
-        return dialog;
-    }
-
-    /**
-     * 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) {
-        MessageDialogWithToggle dialog = new MessageDialogWithToggle(parent,
-                title, null, // accept the default window icon
-                message, QUESTION, new String[] { IDialogConstants.OK_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0, // OK is the default
-                toggleMessage, toggleState);
-        dialog.prefStore = store;
-        dialog.prefKey = key;
-        dialog.open();
-        return dialog;
-    }
-
-    /**
-     * 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) {
-        MessageDialogWithToggle dialog = new MessageDialogWithToggle(parent,
-                title, null, // accept the default window icon
-                message, WARNING, new String[] { IDialogConstants.OK_LABEL },
-                0, // ok is the default
-                toggleMessage, toggleState);
-        dialog.prefStore = store;
-        dialog.prefKey = key;
-        dialog.open();
-        return dialog;
-    }
-
-    /**
-     * 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) {
-        MessageDialogWithToggle dialog = new MessageDialogWithToggle(parent,
-                title, null, // accept the default window icon
-                message, QUESTION, new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0, // YES is the
-                // default
-                toggleMessage, toggleState);
-        dialog.prefStore = store;
-        dialog.prefKey = key;
-        dialog.open();
-        return dialog;
-    }
-
-    /**
-     * 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) {
-        MessageDialogWithToggle dialog = new MessageDialogWithToggle(parent,
-                title, null, // accept the default window icon
-                message, QUESTION, new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL }, 0, // yes is the default
-                toggleMessage, toggleState);
-        dialog.prefStore = store;
-        dialog.prefKey = key;
-        dialog.open();
-        return dialog;
-    }
-
-    /**
-     * 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;
-		}
-        
-        //          No XXX_LABEL in IDialogConstants for these. Unlikely
-        //            they would be used in a message dialog though.
-        //        	public int DETAILS_ID = 13;
-        //        	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 f42aa26..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PageChangedEvent.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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/PageTransitionEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PageTransitionEvent.java
deleted file mode 100644
index f28f6ab..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PageTransitionEvent.java
+++ /dev/null
@@ -1,110 +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:
- *     Chris Gross (schtoo@schtoo.com) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import java.util.EventObject;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * <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>
- * 
- * Event object describing a dialog page being changed. The source of these
- * events is a page changing provider.
- * 
- * @see IPageTransitionProvider
- * @see IPageTransitionListener
- * @since 3.3
- */
-public class PageTransitionEvent extends EventObject {
-
-
-	private static final long serialVersionUID = 1L;
-	
-	/**
-	 * The selected page.
-	 */
-	protected Object selectedPage;
-	
-	/**
-	 * The type of action that caused the page change event to be fired. 
-	 */
-	protected int type;
-	
-	/**
-	 * Constant describing a backward page navigation
-	 */
-	public static final int EVENT_BACK = 1;
-	/**
-	 * Constant describing a forward page navigation
-	 */
-	public static final int EVENT_NEXT = 2;
-	
-	/**
-	 * Public field that determines if page change will continue.
-	 */
-	public boolean doit = true;
-	
-	/**
-	 * Creates a new event for the given source,selected page and direction.
-	 * 
-	 * @param source
-	 *            the page changing provider
-	 * @param selectedPage
-	 *            the selected page. In the JFace provided dialogs this will be
-	 *            an <code>IDialogPage</code>.
-	 * @param eventType
-	 *            indicates the action that triggered the page change
-	 */
-	public PageTransitionEvent(IPageTransitionProvider source, Object selectedPage,
-			int eventType) {
-		super(source);
-		Assert.isNotNull(selectedPage);
-		Assert.isTrue(eventType == EVENT_BACK || eventType == EVENT_NEXT);
-		this.type = eventType;
-		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 IPageTransitionProvider getPageTransitionProvider() {
-		return (IPageTransitionProvider) getSource();
-	}
-
-	/**
-	 * Returns a integer constant indicating the action that triggered the 
-	 * change request.
-	 * 
-	 * @return constant indicating the action that triggered the page change
-	 */
-	public int getType() {
-		return type;
-	}
-	
-}
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 9c52dbb..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PopupDialog.java
+++ /dev/null
@@ -1,1230 +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.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.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-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.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.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 {
-
-	/**
-	 * 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.
-	 */
-	private static final String DIALOG_USE_PERSISTED_BOUNDS = "DIALOG_USE_PERSISTED_BOUNDS"; //$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(persistBounds);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			persistBounds = 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.NO_TRIM;
-
-	/**
-	 * Shell style appropriate for an info popup that can get focus.
-	 */
-	public final static int INFOPOPUP_SHELLSTYLE = SWT.NO_TRIM;
-
-	/**
-	 * 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;
-
-	/**
-	 * Border thickness in pixels.
-	 */
-	private static final int BORDER_THICKNESS = 1;
-
-	/**
-	 * 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;
-
-	/**
-	 * The images for the dialog menu.
-	 */
-	private Image menuImage, disabledMenuImage = null;
-
-	/**
-	 * 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 a menu action allowing the user to choose whether
-	 * the dialog bounds should be persisted is to be shown.
-	 */
-	private boolean showPersistAction = false;
-
-	/**
-	 * Flag specifying whether the bounds of the popup should be persisted. This
-	 * flag is updated by a menu if the menu is shown.
-	 */
-	private boolean persistBounds = false;
-
-	/**
-	 * 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 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 showPersistAction
-	 *            A boolean indicating whether an action allowing the user to
-	 *            control the persisting of the dialog bounds 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()
-	 */
-	public PopupDialog(Shell parent, int shellStyle, boolean takeFocusOnOpen,
-			boolean persistBounds, boolean showDialogMenu,
-			boolean showPersistAction, String titleText, String infoText) {
-		super(parent);
-		setShellStyle(shellStyle);
-		this.takeFocusOnOpen = takeFocusOnOpen;
-		this.showDialogMenu = showDialogMenu;
-		this.showPersistAction = showPersistAction;
-		this.titleText = titleText;
-		this.infoText = infoText;
-
-		setBlockOnOpen(false);
-
-		this.persistBounds = persistBounds;
-		initializeWidgetState();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(Shell)
-	 */
-	protected void configureShell(Shell shell) {
-		GridLayout layout;
-		Display display = shell.getDisplay();
-		shell.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
-
-		layout = new GridLayout(1, false);
-		int border = ((getShellStyle() & SWT.NO_TRIM) == 0) ? 0
-				: BORDER_THICKNESS;
-		layout.marginHeight = border;
-		layout.marginWidth = border;
-		shell.setLayout(layout);
-
-		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) {
-					close();
-				} 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 = !"carbon".equals(SWT.getPlatform()); //$NON-NLS-1$
-				}
-			}
-		});
-
-		if ((getShellStyle() & SWT.ON_TOP) != 0 && shell.getParent() != null) {
-			parentDeactivateListener= new Listener() {
-				public void handleEvent(Event event) {
-					if (listenToParentDeactivate) {
-						close();
-					} 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();
-			}
-		});
-	}
-
-	/**
-	 * 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);
-		GridLayout layout = new GridLayout(1, false);
-		layout.marginHeight = POPUP_MARGINHEIGHT;
-		layout.marginWidth = POPUP_MARGINWIDTH;
-		layout.verticalSpacing = POPUP_VERTICALSPACING;
-		layout.horizontalSpacing = POPUP_HORIZONTALSPACING;
-		composite.setLayout(layout);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		composite.setLayoutData(gd);
-
-		// 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) {
-			dialogArea.setLayoutData(new GridData(GridData.FILL_BOTH));
-		}
-		
-		// 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);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = POPUP_MARGINHEIGHT;
-		layout.marginWidth = POPUP_MARGINWIDTH;
-		layout.verticalSpacing = POPUP_VERTICALSPACING;
-		layout.horizontalSpacing = POPUP_HORIZONTALSPACING;
-		composite.setLayout(layout);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		composite.setLayoutData(gd);
-		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);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginHeight = POPUP_MARGINHEIGHT;
-		layout.marginWidth = POPUP_MARGINWIDTH;
-		layout.verticalSpacing = POPUP_VERTICALSPACING;
-		layout.horizontalSpacing = POPUP_HORIZONTALSPACING;
-		titleAreaComposite.setLayout(layout);
-		titleAreaComposite
-				.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		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);
-
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		if (!showDialogMenu) {
-			gd.horizontalSpan = 2;
-		}
-		titleLabel.setLayoutData(gd);
-		
-		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 (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);
-		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);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL
-				| GridData.HORIZONTAL_ALIGN_BEGINNING
-				| GridData.VERTICAL_ALIGN_BEGINNING);
-		infoLabel.setLayoutData(gd);
-		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);
-		separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		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);
-
-		toolBar.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-
-		menuImage = ImageDescriptor.createFromFile(PopupDialog.class,
-				"images/popup_menu.gif").createImage();//$NON-NLS-1$
-		disabledMenuImage = ImageDescriptor.createFromFile(PopupDialog.class,
-				"images/popup_menu_disabled.gif").createImage();//$NON-NLS-1$
-		viewMenuButton.setImage(menuImage);
-		viewMenuButton.setDisabledImage(disabledMenuImage);
-		viewMenuButton.setToolTipText(JFaceResources
-				.getString("PopupDialog.menuTooltip")); //$NON-NLS-1$
-		viewMenuButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				showDialogMenu();
-			}
-		});
-		viewMenuButton.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				menuImage.dispose();
-				menuImage = null;
-				disabledMenuImage.dispose();
-				disabledMenuImage = null;
-			}
-		});
-	}
-
-	/**
-	 * 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 (showPersistAction) {
-			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 = !"gtk".equals(SWT.getPlatform()); //$NON-NLS-1$
-
-		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 <true> if the dialogs bounds will be persisted, false if it will
-	 *         not.
-	 */
-	protected boolean getPersistBounds() {
-		return persistBounds;
-	}
-
-	/**
-	 * 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;
-			}
-			if (persistBounds) {
-				String prefix = getClass().getName();
-				settings.put(prefix + DIALOG_ORIGIN_X, shellLocation.x);
-				settings.put(prefix + DIALOG_ORIGIN_Y, shellLocation.y);
-				settings.put(prefix + DIALOG_WIDTH, shellSize.x);
-				settings.put(prefix + DIALOG_HEIGHT, shellSize.y);
-			}
-			if (showPersistAction && showDialogMenu) {
-				settings.put(
-						getClass().getName() + DIALOG_USE_PERSISTED_BOUNDS,
-						persistBounds);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#getInitialSize()
-	 */
-	protected Point getInitialSize() {
-		Point result = super.getInitialSize();
-		if (persistBounds) {
-			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;
-	}
-
-	/**
-	 * 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 = super.getInitialLocation(initialSize);
-		if (persistBounds) {
-			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) {
-		applyForegroundColor(getShell().getDisplay().getSystemColor(
-				SWT.COLOR_INFO_FOREGROUND), composite,
-				getForegroundColorExclusions());
-		applyBackgroundColor(getShell().getDisplay().getSystemColor(
-				SWT.COLOR_INFO_BACKGROUND), composite,
-				getBackgroundColorExclusions());
-	}
-
-	/**
-	 * Apply any desired fonts to the specified composite and its children.
-	 * 
-	 * @param composite
-	 *            the contents composite
-	 */
-	private void applyFonts(Composite composite) {
-		Dialog.applyDialogFont(composite);
-
-	}
-
-	/**
-	 * 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.
-	 * 
-	 * @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
-	 * <code>PopupDialog.getForegroundColorExclusions</code>.
-	 * 
-	 * @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 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
-	 * <code>PopupDialog.getBackgroundColorExclusions</code>.
-	 * 
-	 * @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 (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 (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 && showPersistAction) {
-			IDialogSettings settings = getDialogSettings();
-			if (settings != null) {
-				persistBounds = settings.getBoolean(getClass().getName()
-						+ DIALOG_USE_PERSISTED_BOUNDS);
-			}
-		}
-
-	}
-	
-	/**
-	 * 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 fe7f66c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressIndicator.java
+++ /dev/null
@@ -1,123 +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;
-
-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) {
-        super(parent, SWT.NULL);
-        determinateProgressBar = new ProgressBar(this, SWT.HORIZONTAL);
-        indeterminateProgressBar = new ProgressBar(this, SWT.HORIZONTAL
-                | 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);
-        }
-    }
-}
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 5599ba4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressMonitorDialog.java
+++ /dev/null
@@ -1,642 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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;
-
-        protected boolean forked = false;
-
-        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);
-            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);
-            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() {
-            locked = false;
-            updateForClearBlocked();
-        }
-
-        /*
-         * (non-Javadoc)
-         * 
-         * @see org.eclipse.core.runtime.IProgressMonitorWithBlocking#setBlocked(org.eclipse.core.runtime.IStatus)
-         */
-        public void setBlocked(IStatus reason) {
-            locked = true;
-            updateForSetBlocked(reason);
-        }
-    }
-
-    /**
-     * Clear blocked state from the receiver.
-     */
-    protected void updateForClearBlocked() {
-        setMessage(task);
-        imageLabel.setImage(getImage());
-    }
-
-    /**
-     * Set blocked state from the receiver.
-     * 
-     * @param reason
-     *            IStatus that gives the details
-     */
-    protected void updateForSetBlocked(IStatus reason) {
-        setMessage(reason.getMessage());
-        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);
-        setShellStyle(getDefaultOrientation() | SWT.BORDER | SWT.TITLE | SWT.APPLICATION_MODAL); // no
-        // close
-        // button
-        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) {
-				setMessage(message);
-			}
-		
-		});
-    }
-
-    /*
-     * (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);
-        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.
-     */
-    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() || !messageLabel.isVisible()) {
-			return;
-		}
-        messageLabel.setToolTipText(messageString);
-        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;
-			}
-        }
-        return super.open();
-    }
-}
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 37cfcf8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/StatusDialog.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.
-	 */
-	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 44e832b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TitleAreaDialog.java
+++ /dev/null
@@ -1,635 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-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;
-	static {
-		ImageRegistry reg = JFaceResources.getImageRegistry();
-		reg.put(DLG_IMG_TITLE_BANNER, ImageDescriptor.createFromFile(
-				TitleAreaDialog.class, "images/title_banner.gif"));//$NON-NLS-1$
-	}
-
-	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);
-			titleImageLabel.setVisible(newTitleImage != null);
-			if (newTitleImage != null) {
-				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 34348c6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TrayDialog.java
+++ /dev/null
@@ -1,392 +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.dialogs;
-
-import org.eclipse.jface.resource.JFaceResources;
-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.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 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();
-
-	/**
-	 * 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$
-		}
-		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;
-		Shell shell = getShell();
-		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.horizontalSpacing == 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$
-		}
-		this.tray = tray;
-		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();
-					}
-				}
-			}
-		});
-	}
-	
-	/**
-	 * 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/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/images/title_banner.png b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/title_banner.png
deleted file mode 100644
index 01e187c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/title_banner.png
+++ /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 cc7dfcb..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/ComboContentAdapter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ComboContentAdapter.java
deleted file mode 100644
index a538403..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ComboContentAdapter.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.jface.fieldassist;
-
-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 {
-
-	/*
-	 * (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) {
-		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();
-		return new Rectangle(combo.getClientArea().x + extent.x, combo
-				.getClientArea().y, 1, combo.getClientArea().height);
-	}
-
-	/*
-	 * (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));
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ComboControlCreator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ComboControlCreator.java
deleted file mode 100644
index 5c149cc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ComboControlCreator.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.fieldassist;
-
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * An {@link IControlCreator} for SWT Combo controls. This is a convenience class
- * for creating combo controls to be supplied to a decorated field.
- * 
- * @since 3.3
- */
-public class ComboControlCreator implements IControlCreator {
-
-	public Control createControl(Composite parent, int style) {
-		return new Combo(parent, style);
-	}
-}
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 10b6deb..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ContentProposalAdapter.java
+++ /dev/null
@@ -1,1890 +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 java.util.ArrayList;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.dialogs.PopupDialog;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ILabelProvider;
-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.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-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;
-
-/**
- * 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()
-										|| (infoPopup != null && infoPopup
-												.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();
-					}
-					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, 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);
-			}
-
-			/*
-			 * 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, null, infoText);
-			this.proposals = proposals;
-		}
-		/*
-		 * Overridden to force change of colors.
-		 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=136244
-		 * (non-Javadoc)
-		 * @see org.eclipse.jface.dialogs.PopupDialog#createContents(org.eclipse.swt.widgets.Composite)
-		 */
-		protected Control createContents(Composite parent) {
-			Control contents = super.createContents(parent);
-			changeDefaultColors(parent);
-			return contents;
-		}
-		
-		/*
-		 * Set the colors of the popup.  The contents have already been created.
-		 */
-		private void changeDefaultColors(Control control) {
-			applyForegroundColor(getShell().getDisplay().getSystemColor(
-					SWT.COLOR_LIST_FOREGROUND), control);
-			applyBackgroundColor(getShell().getDisplay().getSystemColor(
-					SWT.COLOR_LIST_BACKGROUND), control);
-		}
-
-		/*
-		 * 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);
-			}
-
-			// compute the proposals to force population of the table.
-			recomputeProposals(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.
-		 */
-		private boolean hasFocus() {
-			if (!isValid()) {
-				return false;
-			}
-			return getShell().isFocusControl()
-					|| proposalTable.isFocusControl();
-		}
-
-		/*
-		 * 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();
-			}
-			return super.close();
-		}
-
-		/*
-		 * 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.
-	 */
-	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 = !"motif".equals(SWT.getPlatform()); //$NON-NLS-1$
-
-	/*
-	 * 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 listeners who wish to be notified when something significant
-	 * happens with the proposals.
-	 */
-	private ListenerList proposalListeners = 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;
-
-	/**
-	 * 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_CUMULATIVE</code>
-	 *         specifies that the content of the popup will be filtered by a
-	 *         string containing all the characters typed since the popup has
-	 *         been open. <code>FILTER_CHARACTER</code> specifies the content
-	 *         of the popup will be filtered by the most recently typed
-	 *         character. 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_CUMULATIVE</code> specifies that the content of
-	 *            the popup will be filtered by a string containing all the
-	 *            characters typed since the popup has been open.
-	 *            <code>FILTER_CHARACTER</code> specifies that the content of the
-	 *            popup will be filtered by the most recently typed character.
-	 */
-	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);
-	}
-
-	/*
-	 * 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);
-						}
-
-						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. Check for
-					 * autoactivation characters.
-					 */
-					if (e.character != 0) {
-						// Auto-activation characters were specified. Check
-						// them.
-						if (autoActivateString != null) {
-							if (autoActivateString.indexOf(e.character) >= 0) {
-								e.doit = propagateKeys;
-								autoActivate();
-							}
-						} else {
-							// No autoactivation occurred, so record the key down
-							// as a means to interrupt any autoactivation that is
-							// pending.
-							receivedKeyDown = true;
-						}
-					}
-					break;
-
-				// 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 reopen it when there are.  Normally, the
-				// keydown event handling will catch all the cases where it
-				// should reopen.  But when autoactivation should occur on all
-			    // content changes, we check it here after keys have been processed.
-				case SWT.Modify:
-					if (triggerKeyStroke == null && autoActivateString  == null) {
-						if (DEBUG) {
-							dump("Modify event triggers autoactivation", e); //$NON-NLS-1$
-						}
-						autoActivate();
-					}
-					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;
-						}
-					});
-				} 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);
-	}
-
-	/*
-	 * 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.
-		final Object[] listenerArray = proposalListeners.getListeners();
-		for (int i = 0; i < listenerArray.length; i++) {
-			((IContentProposalListener) listenerArray[i])
-					.proposalAccepted(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()) {
-			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()) {
-			// 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
-			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()) {
-			insertionPos = getControlContentAdapter()
-					.getCursorPosition(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;
-		}
-		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);
-							}
-						}
-					});
-		}
-	}
-}
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 ba2af29..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/DecoratedField.java
+++ /dev/null
@@ -1,873 +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.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.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
- * 
- * @see FieldDecorationRegistry
- */
-public class DecoratedField {
-
-	/**
-	 * Cached platform flags for dealing with platform-specific issues.
-	 */
-	private static boolean CARBON = "carbon".equals(SWT.getPlatform()); //$NON-NLS-1$
-
-	/**
-	 * 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);
-			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 (!CARBON) {
-						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 0887b0d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldAssistColors.java
+++ /dev/null
@@ -1,212 +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;
-
-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
- */
-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 2fbd9ff..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldDecoration.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.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
- * @see DecoratedField
- * 
- * @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.
-	 * 
-	 * @see DecoratedField#updateDecoration(FieldDecoration)
-	 */
-	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.
-	 * 
-	 * @see DecoratedField#updateDecoration(FieldDecoration)
-	 */
-	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 3b3f91b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldDecorationRegistry.java
+++ /dev/null
@@ -1,373 +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;
-
-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 DecoratedField
- * @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$
-
-	/*
-	 * 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_WARNING = "org.eclipse.jface.fieldassist.IMG_DEC_FIELD_WARNING"; //$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/content_proposal_cue.gif"));//$NON-NLS-1$
-		imageRegistry.put(IMG_DEC_FIELD_ERROR, ImageDescriptor.createFromFile(
-				FieldDecorationRegistry.class, "images/error_cue.gif"));//$NON-NLS-1$
-
-		imageRegistry.put(IMG_DEC_FIELD_WARNING, ImageDescriptor
-				.createFromFile(FieldDecorationRegistry.class,
-						"images/warning_cue.gif"));//$NON-NLS-1$
-
-		imageRegistry.put(IMG_DEC_FIELD_REQUIRED, ImageDescriptor
-				.createFromFile(FieldDecorationRegistry.class,
-						"images/required_field_cue.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_WARNING, null,
-				IMG_DEC_FIELD_WARNING, 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/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/IControlCreator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlCreator.java
deleted file mode 100644
index 73afb39..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlCreator.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.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
- */
-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 d9108da..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/SimpleContentProposalProvider.java
+++ /dev/null
@@ -1,90 +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;
-
-/**
- * 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.
-	 */
-	private IContentProposal[] contentProposals;
-
-	/**
-	 * 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. Ignore the current contents of the field.
-	 * 
-	 * @param contents
-	 *            the current contents of the field (ignored)
-	 * @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 (contentProposals == null) {
-			contentProposals = new IContentProposal[proposals.length];
-			for (int i=0; i<proposals.length; i++) {
-				final String proposal = proposals[i];
-				contentProposals[i] = new IContentProposal() {
-					public String getContent() {
-						return proposal;
-					}
-					public String getDescription() {
-						return null;
-					}
-					public String getLabel() {
-						return null;
-					}
-					public int getCursorPosition() {
-						return proposal.length();
-					}
-				};
-			}
-		}
-		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;
-	}
-}
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 d0e8d1a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/TextContentAdapter.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.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 {
-
-	/*
-	 * (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();
-		return new Rectangle(caretOrigin.x, caretOrigin.y, 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));
-	}
-}
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 357592e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/TextControlCreator.java
+++ /dev/null
@@ -1,28 +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.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
- */
-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/content_proposal_cue.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/content_proposal_cue.gif
deleted file mode 100644
index fe62b77..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/content_proposal_cue.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/error_cue.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/error_cue.gif
deleted file mode 100644
index 119dccc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/error_cue.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/warning_cue.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/warning_cue.gif
deleted file mode 100644
index 6f46bf9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/warning_cue.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 4892e07..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/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>
-Provides support for classes that help communicate proper content for 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.
-</p>
-<tt>DecoratedField</tt> can be used to decorate controls with images that
-communicate 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.  Decorated fields manage the creation of the field's control,
-since a specialized layout is used to manage the decorations around the control.  However,
-clients supply an object that will create the correct class of control.  Other than
-using the field to manage the decorations themselves, clients are expected to interact 
-directly with the control.  Decorations can optionally show descriptive text when 
-the user hovers over them.  
-</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/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 169f764..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ICoolBarManager2.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.jface.internal.provisional.action;
-
-import org.eclipse.jface.action.IContributionItem;
-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);
-
-}
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 a4ea2ca..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ToolBarManager2.java
+++ /dev/null
@@ -1,169 +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;
-			}
-		}
-	}
-	
-	/*
-	 * Returns 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/AbstractColumnAdapter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/AbstractColumnAdapter.java
deleted file mode 100644
index 21d7226..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/AbstractColumnAdapter.java
+++ /dev/null
@@ -1,228 +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:
- * 	   Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     IBM Corporation - API refactoring and general maintenance
- *******************************************************************************/
-package org.eclipse.jface.layout;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.Assert;
-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.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Scrollable;
-
-/**
- * The AbstractColumnAdapter is a ControlAdapter 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. You can only add the adapter to a container whose
- * <b>only</b> child is the table/tree control you want the layouts applied to.
- * 
- * @since 3.3
- */
-public abstract class AbstractColumnAdapter extends ControlAdapter {
-	
-	private static int COLUMN_TRIM = "carbon".equals(SWT.getPlatform()) ? 24 : 3; //$NON-NLS-1$
-
-	private Scrollable columnControl;
-
-	/**
-	 * Create a new instance of the receiver with the table to create specified.
-	 * 
-	 * @param control
-	 */
-	public AbstractColumnAdapter(Scrollable control) {
-		columnControl = control;
-	}
-
-	/**
-	 * The list of column layout data (element type:
-	 * <code>ColumnLayoutData</code>).
-	 */
-	private ArrayList columns = new ArrayList();
-
-	/**
-	 * Adds a new column of data.
-	 * 
-	 * @param data
-	 *            the column layout data
-	 */
-	public void addColumnData(ColumnLayoutData data) {
-		columns.add(data);
-	}
-
-	/**
-	 * Compute the size of the scrollable.
-	 * @param scrollable
-	 * @return {@link Point}
-	 */
-	private Point computeSize(Scrollable scrollable) {
-		Point result = scrollable.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-
-		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)
-	 * 
-	 * @see org.eclipse.swt.events.ControlAdapter#controlResized(org.eclipse.swt.events.ControlEvent)
-	 */
-	public void controlResized(ControlEvent e) {
-		Assert
-				.isTrue(columnControl.getParent().getChildren().length == 1,
-						"The parent container can only hold the ColumnWidget as it's child"); //$NON-NLS-1$
-
-		Rectangle area = columnControl.getParent().getClientArea();
-
-		int width = area.width - 2 * columnControl.getBorderWidth();
-		Point preferredSize = computeSize(columnControl);
-		if (preferredSize.y > area.height) {
-			// Subtract the scrollbar width from the total column width
-			// if a vertical scrollbar will be required
-			Point vBarSize = columnControl.getVerticalBar().getSize();
-			width -= vBarSize.x;
-		}
-
-		// 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;
-
-		int size = Math.min(columns.size(), getColumnCount());
-		int[] widths = new int[size];
-		int fixedWidth = 0;
-		int numberOfWeightColumns = 0;
-		int totalWeight = 0;
-
-		ColumnPixelData pxData;
-		int pixels;
-
-		// First calc space occupied by fixed columns
-		for (int i = 0; i < size; i++) {
-			ColumnLayoutData col = (ColumnLayoutData) columns.get(i);
-			if (col instanceof ColumnPixelData) {
-				pxData = (ColumnPixelData) col;
-				pixels = pxData.width;
-				widths[i] = pixels;
-				fixedWidth += pixels;
-				if (pxData.addTrim) {
-					fixedWidth += COLUMN_TRIM;
-				}
-			} 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 :
-				int weight = cw.weight;
-				totalWeight += weight;
-			} else {
-				Assert.isTrue(false, "Unknown column layout data"); //$NON-NLS-1$
-			}
-		}
-
-		int weight;
-		ColumnLayoutData col;
-		ColumnWeightData cw;
-		// 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) {
-				col = (ColumnLayoutData) columns.get(i);
-				if (col instanceof ColumnWeightData) {
-					cw = (ColumnWeightData) col;
-					// calculate weight as above
-					// int weight = firstTime ? cw.weight :
-					weight = cw.weight;
-					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;
-				col = (ColumnLayoutData) columns.get(i);
-				if (col instanceof ColumnWeightData) {
-					++widths[i];
-					--diff;
-				}
-			}
-		}
-
-		Point oldSize = columnControl.getSize();
-
-		if (!(oldSize.x > area.width)) {
-			columnControl.setSize(area.width, area.height);
-		}
-
-		columnControl.setRedraw(false);
-		setColumnWidths(widths);
-		columnControl.setRedraw(true);
-
-		if (oldSize.x > area.width) {
-			columnControl.setSize(area.width, area.height);
-		}
-	}
-
-	/**
-	 * Get the number of columns for the receiver.
-	 * @return int
-	 */
-	abstract int getColumnCount();
-
-	/**
-	 * Set the widths of the columns.
-	 * @param widths
-	 */
-	abstract void setColumnWidths(int[] widths);
-
-	/**
-	 * Return the control being wrapped by this adapter.
-	 * @return Scrollable
-	 */
-	Scrollable getControl() {
-		return columnControl;
-	}
-}
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 cff26aa..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/GridDataFactory.java
+++ /dev/null
@@ -1,474 +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.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>
- * 
- * <strong>IMPORTANT</strong>: 
- * When assigning layout data to a control, be sure to use
- * {@link GridDataFactory#applyTo(Control)} and never
- * {@link Control#setLayoutData(Object)}
- * </p>
- * 
- * @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.
-     * 
-     * <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) {
-        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 reciever.
-     * 
-     * @return a copy of the reciever
-     */
-    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 b07a3f2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/GridLayoutFactory.java
+++ /dev/null
@@ -1,336 +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
- *     Karsten Stoeckmann - bug 156982
- *******************************************************************************/
-package org.eclipse.jface.layout;
-import org.eclipse.swt.graphics.Point;
-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>margins(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>margins(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
-     */
-    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
-     */
-    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
-     */
-    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 #margins(int, int, int, int)}.
-	 * 
-	 * @param width
-	 *            margin width (pixels)
-	 * @param height
-	 *            margin height (pixels)
-	 * @return this
-	 * @see #spacing
-	 */
-    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
-	 * 
-	 * @since 3.3
-	 */
-    public GridLayoutFactory margins(int left, int right, int top, int bottom) {
-        l.marginLeft = left;
-        l.marginRight = right;
-        l.marginTop = top;
-        l.marginBottom = bottom;
-        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 ca9af3c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/LayoutGenerator.java
+++ /dev/null
@@ -1,190 +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.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
-     * @param columns
-     *            number of columns for the layout
-     */
-    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);
-    }
-    
-    public static GridDataFactory defaultsFor(Control control) {
-        if (control instanceof Button) {
-            Button button = (Button) control;
-
-            if (hasStyle(button, SWT.CHECK)) {
-                return nonWrappingLabelData.copy();
-            } else {
-                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) scrollable;
-
-                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/TableColumnAdapter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TableColumnAdapter.java
deleted file mode 100644
index 9abd9cb..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TableColumnAdapter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.eclipse.jface.layout;
-
-/*******************************************************************************
- * 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:
- * 	   Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     IBM Corporation - API refactoring and general maintenance
- *******************************************************************************/
-
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * The TableColumnAdapter is the ControlAdapter used to maintain Table sizes
- * {@link Table}.
- * 
- * @since 3.3
- * @see AbstractColumnAdapter
- */
-public class TableColumnAdapter extends AbstractColumnAdapter {
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param table
-	 *            the table the layout is applied on
-	 */
-	public TableColumnAdapter(Table table) {
-		super(table);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.layout.AbstractColumnAdapter#getColumnCount()
-	 */
-	int getColumnCount() {
-		return ((Table) getControl()).getColumnCount();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.layout.AbstractColumnAdapter#setColumnWidths(int[])
-	 */
-	void setColumnWidths(int[] widths) {
-		TableColumn[] columns = ((Table) getControl()).getColumns();
-		for (int i = 0; i < widths.length; i++) {
-			columns[i].setWidth(widths[i]);
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TreeColumnAdapter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TreeColumnAdapter.java
deleted file mode 100644
index 973dc34..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TreeColumnAdapter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.eclipse.jface.layout;
-
-/*******************************************************************************
- * 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:
- * 	   Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     IBM Corporation - API refactoring and general maintenance
- *******************************************************************************/
-
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * The TableColumnAdapter is the ControlAdapter used to maintain Table sizes
- * {@link Tree}.
- * 
- * @since 3.3
- * @see AbstractColumnAdapter
- */
-public class TreeColumnAdapter extends AbstractColumnAdapter {
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param tree
-	 *            the tree the layout is applied to
-	 */
-	public TreeColumnAdapter(Tree tree) {
-		super(tree);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.layout.AbstractColumnAdapter#getColumnCount()
-	 */
-	int getColumnCount() {
-		return ((Tree) getControl()).getColumnCount();
-	}
-
-	void setColumnWidths(int[] widths) {
-		TreeColumn[] columns = ((Tree) getControl()).getColumns();
-		for (int i = 0; i < widths.length; i++) {
-			columns[i].setWidth(widths[i]);
-		}
-	}
-}
\ No newline at end of file
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 4b10b05..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/TextState.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.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)) {
-			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 60b0789..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/messages.properties
+++ /dev/null
@@ -1,195 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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
-finish=&Finish
-help=&Help
-defaults=Restore &Defaults
-apply=&Apply
-openBrowse=&Browse...
-
-openChange=&Change...
-help=&Help
-close=&Close
-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.
-
-##############################################################
-# 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}
-
-#############################################################
-# 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.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
-
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 2479cb1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/AccumulatingProgressMonitor.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.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.syncExec(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.syncExec(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.syncExec(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 28105bf..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IRunnableContext.java
+++ /dev/null
@@ -1,64 +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.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 78daa90..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IRunnableWithProgress.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 4b16773..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/ModalContext.java
+++ /dev/null
@@ -1,410 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.ProgressMonitorWrapper;
-import org.eclipse.core.runtime.Assert;
-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>
- */
-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) {
-					((IThreadListener)runnable).threadChange(callingThread);
-				}
-            	
-                // 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()) {
-                while (continueEventDispatching) {
-                	// Run the event loop.  Handle any uncaught exceptions caused
-                	// by UI events.
-                   	try {
-                    	if (!display.readAndDispatch()) {
-							display.sleep();
-						}
-                	}
-                   	// 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 e) {
-                		System.err.println("Unhandled event loop exception during blocked modal context."); //$NON-NLS-1$
-             			e.printStackTrace();
-                	}
-                }
-            } 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);
-                	if (operation instanceof IThreadListener) {
-						((IThreadListener)operation).threadChange(t);
-					}
-                    t.start();
-                    t.block();
-                    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--;
-        }
-    }
-
-    /**
-     * 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 d5828a6..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 2984f66..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/BooleanFieldEditor.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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;
-        default:
-            checkBox = getChangeControl(parent);
-            GridData gd = new GridData();
-            gd.horizontalSpan = numColumns;
-            checkBox.setLayoutData(gd);
-            if (text != null) {
-				checkBox.setText(text);
-			}
-        }
-    }
-
-    /* (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 ea9c3a0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ColorFieldEditor.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.jface.preference;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-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.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) Method declared on FieldEditor.
-	 */
-	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);
-		gd = new GridData();
-		int widthHint = convertHorizontalDLUsToPixels(colorButton,
-				IDialogConstants.BUTTON_WIDTH);
-		gd.widthHint = Math.max(widthHint, colorButton.computeSize(SWT.DEFAULT,
-				SWT.DEFAULT, true).x);
-		colorButton.setLayoutData(gd);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor.
-	 */
-	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 9c734c0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ColorSelector.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.DEFAULT_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 6566390..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ComboFieldEditor.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.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]);
-		}
-	}
-}
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 bad39f1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/DirectoryFieldEditor.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.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);
-        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 1444511..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditor.java
+++ /dev/null
@@ -1,715 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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>
-     *
-     * @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 041e4dc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditorPreferencePage.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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;
-
-    /**
-     * 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 1404c15..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FileFieldEditor.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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) {
-        init(name, labelText);
-        this.enforceAbsolute = enforceAbsolute;
-        setErrorMessage(JFaceResources
-                .getString("FileFieldEditor.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 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);
-        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 1ff266c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPersistentPreferenceStore.java
+++ /dev/null
@@ -1,29 +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.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 789c384..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceNode.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 de9ce5f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferencePage.java
+++ /dev/null
@@ -1,78 +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.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 4b354d3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferencePageContainer.java
+++ /dev/null
@@ -1,61 +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.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 a5d4f38..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceStore.java
+++ /dev/null
@@ -1,584 +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.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)
-     * @see org.osgi.service.prefs.Preferences
-     */
-    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 13f658c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IntegerFieldEditor.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.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$
-        }
-
-    }
-
-    /* (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 d40f853..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/JFacePreferences.java
+++ /dev/null
@@ -1,59 +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.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$
-
-    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 6c0a9a6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ListEditor.java
+++ /dev/null
@@ -1,448 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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();
-        }
-    }
-
-    /**
-     * Notifies that the list selection has changed.
-     */
-    private 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);
-    }
-}
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 606a97e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PathEditor.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.jface.preference;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-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());
-        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 bf8b97a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceConverter.java
+++ /dev/null
@@ -1,554 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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).
- */
-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 8bb5d78..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceDialog.java
+++ /dev/null
@@ -1,1454 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-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.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.core.runtime.Assert;
-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.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-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 = 150;
-
-	/**
-	 * 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$
-
-	protected static final int FAILED = 2;
-	static {
-		ImageRegistry reg = JFaceResources.getImageRegistry();
-		reg.put(PREF_DLG_TITLE_IMG, ImageDescriptor.createFromFile(PreferenceDialog.class,
-				"images/pref_dialog_title.gif")); //$NON-NLS-1$
-	}
-
-	/**
-	 * 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;
-
-	/**
-	 * 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);
-		setShellStyle(getShellStyle() | SWT.RESIZE | SWT.MAX);
-		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;
-						}
-					}
-				});
-			}
-		}
-		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() {
-		List nodes = preferenceManager.getElements(PreferenceManager.PRE_ORDER);
-		for (int i = 0; i < nodes.size(); i++) {
-			IPreferenceNode node = (IPreferenceNode) nodes.get(i);
-			node.disposeResources();
-		}
-		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) {
-		
-		//Create an outer composite for spacing
-		Composite outer = new Composite(parent, SWT.NONE);
-		
-		GridData outerData = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL);
-				
-		outer.setLayout(new GridLayout());
-		outer.setLayoutData(outerData);
-
-		Composite result = new Composite(outer, SWT.NONE);
-		
-		GridData resultData = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL);
-				
-		result.setLayout(getPageLayout());
-		result.setLayoutData(resultData);
-		
-		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) {
-				Object selection = getSingleSelection(event.getSelection());
-				if (selection instanceof IPreferenceNode) {
-					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) {
-				// call perform help on the current page
-				if (currentPage != null) {
-					currentPage.performHelp();
-				}
-			}
-		});
-	}
-
-	/**
-	 * 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.0
-	 */
-	protected 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) {
-						MessageDialog
-								.openError(
-										getShell(),
-										JFaceResources.getString("PreferenceDialog.saveErrorTitle"), //$NON-NLS-1$
-										JFaceResources
-												.format(
-														"PreferenceDialog.saveErrorMessage", new Object[] { page.getTitle(), e.getMessage() })); //$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$
-				MessageDialog.openError(getShell(), JFaceResources.getString("Error"), message); //$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.getRoot().getSubNodes();
-			if (nodes.length > 0) {
-				node = nodes[0];
-			}
-		}
-		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);
-			}
-		}
-		// 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.openError(getShell(), JFaceResources
-				.getString("AbortPageFlippingDialog.title"), //$NON-NLS-1$
-				JFaceResources.getString("AbortPageFlippingDialog.message")); //$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);
-                }
-            });
-        }
-    }	
-}
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 6e0ec11..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceLabelProvider.java
+++ /dev/null
@@ -1,38 +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.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 77e1a10..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceManager.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.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 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 = new PreferenceNode("");//$NON-NLS-1$
-
-    /**
-     * The path separator character.
-     */
-    String separator;
-
-    /**
-     * Creates a new preference manager.
-     */
-    public PreferenceManager() {
-        this('.');
-    }
-
-    /**
-     * Creates a new preference manager with the given
-     * the path separator.
-     *
-     * @param separatorChar the separator character
-     */
-    public PreferenceManager(char separatorChar) {
-        separator = new String(new char[] { separatorChar });
-    }
-
-    /**
-     * 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
-     * @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 595b5e0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceNode.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.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 class that implements <code>IPreferenceNode</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 f7d253b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferencePage.java
+++ /dev/null
@@ -1,654 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.DialogPage;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-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.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.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;
-
-/**
- * Abstract base implementation for all preference page implementations.
- * <p>
- * Subclasses must implement the <code>createControl</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.
-     */
-    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.
-     */
-    public boolean isValid() {
-        return isValid;
-    }
-
-    /**
-     * Suppresses creation of the standard Default and Apply buttons
-     * for this page.
-     * <p>
-     * Subclasses wishing a preference page wihthout 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.
-     */
-    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 sublcasses 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>.
-     */
-    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();
-    }
-
-    /** 
-     * Method declared on IPreferencePage.
-     * Subclasses should override
-     */
-    public boolean performOk() {
-        return true;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IPreferencePage.
-     */
-    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)
-     * Method declared on IPreferencePage.
-     */
-    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.
-     */
-    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();
-        }
-    }
-
-    /**
-     * Returns a string suitable for debugging purpose only.
-     */
-    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.DEFAULT_FONT));	
-        noteLabel
-                .setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
-
-        final IPropertyChangeListener fontListener = new IPropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent event) {
-                if (JFaceResources.BANNER_FONT.equals(event.getProperty())) {
-                    noteLabel.setFont(JFaceResources
-                            .getFont(JFaceResources.BANNER_FONT));
-                }
-            }
-        };
-        JFaceResources.getFontRegistry().addListener(fontListener);
-        noteLabel.addDisposeListener(new DisposeListener() {
-            public void widgetDisposed(DisposeEvent event) {
-                JFaceResources.getFontRegistry().removeListener(fontListener);
-            }
-        });
-
-        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 99b6edf..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceStore.java
+++ /dev/null
@@ -1,682 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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
- */
-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
-     * @param name
-     * @return
-     */
-    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
-     * @param name
-     * @return
-     */
-    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 638cc6e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ScaleFieldEditor.java
+++ /dev/null
@@ -1,380 +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.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 7e48656..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/StringFieldEditor.java
+++ /dev/null
@@ -1,521 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.
-     */
-    private 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();
-                    }
-                });
-
-                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 1a8983a..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 68e4add..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/AbstractResourceManager.java
+++ /dev/null
@@ -1,161 +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
-     */
-    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 71def06..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ArrayFontDescriptor.java
+++ /dev/null
@@ -1,141 +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 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 55378f1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ColorRegistry.java
+++ /dev/null
@@ -1,274 +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.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
- */
-public class ColorRegistry extends ResourceRegistry {
-
-    /**
-     * 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();
-        }
-    };
-
-    /**
-     * 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;
-        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) {
-        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.
-     */
-    public RGB getRGB(String symbolicName) {
-        Assert.isNotNull(symbolicName);
-        return (RGB) stringToRGB.get(symbolicName);
-    }
-    
-    /**
-     * Returns the color descriptor associated with the given symbolic color name.
-     * @since 3.1 
-     *
-     * @param symbolicName
-     * @return the color descriptor associated with the given symbolic color name.
-     */
-    public ColorDescriptor getColorDescriptor(String symbolicName) {
-        return ColorDescriptor.createFrom(getRGB(symbolicName));
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ResourceRegistry#clearCaches()
-     */
-    protected void clearCaches() {
-        disposeColors(stringToColor.values().iterator());
-        disposeColors(staleColors.iterator());
-        stringToColor.clear();
-        staleColors.clear();
-    }
-
-    /* (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 f9d50eb..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/CompositeImageDescriptor.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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() {
-	}
-
-	/**
-	 * Returns the index of a RGB entry in the given map which matches the
-	 * specified RGB color. If no such entry exists, a new RGB is allocated. If
-	 * the given array is full, the value 0 is returned (which maps to the
-	 * transparency value).
-	 */
-	private static int alloc(RGB[] map, int red, int green, int blue) {
-		int i;
-		RGB c;
-
-		// this loops starts at index 1 because index 0 corresponds to the
-		// transparency value
-		for (i = 1; i < map.length && (c = map[i]) != null; i++) {
-			if (c.red == red && c.green == green && c.blue == blue) {
-				return i;
-			}
-		}
-
-		if (i < map.length - 1) {
-			map[i] = new RGB(red, green, blue);
-			return i;
-		}
-		return 0;
-	}
-
-	/**
-	 * 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) {
-
-		RGB[] out = imageData.getRGBs();
-	
-		PaletteData palette = src.palette;
-		if (palette.isDirect) {
-
-			ImageData mask = src.getTransparencyMask();
-
-			for (int y = 0; y < src.height; y++) {
-				for (int x = 0; x < src.width; x++) {
-					if (mask.getPixel(x, y) != 0) {
-						int xx = x + ox;
-						int yy = y + oy;
-						if (xx >= 0 && xx < imageData.width && yy >= 0
-								&& yy < imageData.height) {
-							int pixel = src.getPixel(x, y);
-							int alpha = src.getAlpha(x, y);
-
-							int r = pixel & palette.redMask;
-							/*
-							 * JM: Changed operators from >> to >>> to shift
-							 * sign bit right
-							 */
-							r = (palette.redShift < 0) ? r >>> -palette.redShift
-									: r << palette.redShift;
-							int g = pixel & palette.greenMask;
-							g = (palette.greenShift < 0) ? g >>> -palette.greenShift
-									: g << palette.greenShift;
-							int b = pixel & palette.blueMask;
-							b = (palette.blueShift < 0) ? b >>> -palette.blueShift
-									: b << palette.blueShift;
-
-							pixel = alloc(out, r, g, b);
-
-							updatePixel(xx, yy, pixel, alpha);
-						}
-					}
-				}
-			}
-
-			return;
-		}
-
-		// map maps src pixel values to dest pixel values
-		int map[] = new int[256];
-		for (int i = 0; i < map.length; i++) {
-			map[i] = -1;
-		}
-
-		/* JM: added code to test if the image is an icon */
-		if (src.getTransparencyType() == SWT.TRANSPARENCY_MASK) {
-			ImageData mask = src.getTransparencyMask();
-			for (int y = 0; y < src.height; y++) {
-				for (int x = 0; x < src.width; x++) {
-					if (mask.getPixel(x, y) != 0) {
-						int xx = x + ox;
-						int yy = y + oy;
-						if (xx >= 0 && xx < imageData.width && yy >= 0
-								&& yy < imageData.height) {
-							int pixel = src.getPixel(x, y);
-							int alpha = src.getAlpha(x, y);
-							int newPixel = map[pixel];
-							if (newPixel < 0) {
-								RGB c = palette.getRGB(pixel);
-								map[pixel] = newPixel = alloc(out, c.red,
-										c.green, c.blue);
-							}
-
-							updatePixel(xx, yy, pixel, alpha);
-						}
-					}
-				}
-			}
-			return;
-		}
-
-		int maskPixel = src.transparentPixel;
-		for (int y = 0; y < src.height; y++) {
-			for (int x = 0; x < src.width; x++) {
-				int pixel = src.getPixel(x, y);
-				int xx = x + ox;
-				int yy = y + oy;
-				if (maskPixel < 0 || pixel != maskPixel) {
-
-					if (xx >= 0 && xx < imageData.width && yy >= 0
-							&& yy < imageData.height) {
-
-						int newPixel = map[pixel];
-						if (newPixel < 0) {
-							RGB c = palette.getRGB(pixel);
-							map[pixel] = newPixel = alloc(out, c.red, c.green,
-									c.blue);
-						}
-
-						imageData.setPixel(xx, yy, newPixel);
-					}
-					int alpha = src.getAlpha(x, y);
-					imageData.setAlpha(xx, yy, alpha);
-				}
-				
-			}
-		}
-	}
-
-	private void updatePixel(int xx, int yy, int pixel, int alpha) {
-		imageData.setPixel(xx, yy, pixel);
-		imageData.setAlpha(xx, yy, alpha);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on ImageDesciptor.
-	 */
-	public ImageData getImageData() {
-
-		Point size = getSize();
-		RGB black = new RGB(0, 0, 0);
-		RGB[] rgbs = new RGB[256];
-		rgbs[0] = black; // transparency
-		rgbs[1] = black; // black
-
-		PaletteData dataPalette = new PaletteData(rgbs);
-		imageData = new ImageData(size.x, size.y, 8, dataPalette);
-		imageData.transparentPixel = getTransparentPixel();
-
-		drawCompositeImage(size.x, size.y);
-
-		for (int i = 0; i < rgbs.length; i++) {
-			if (rgbs[i] == null) {
-				rgbs[i] = black;
-			}
-		}
-
-		return imageData;
-
-	}
-	
-
-	/**
-	 * Return the transparent pixel for the receiver.
-	 * @return int
-	 */
-	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.
-	 */
-	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 dd836a1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DataFormatException.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.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 9bec8e9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DerivedImageDescriptor.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.resource;
-
-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;
-    
-    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 7eac962..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceDescriptor.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.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 207ab3d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceException.java
+++ /dev/null
@@ -1,62 +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;
-
-
-/**
- * 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 db1126d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FileImageDescriptor.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.resource;
-
-import java.io.BufferedInputStream;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-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);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ImageDesciptor.
-     * Returns null if the image data cannot be read.
-     */
-    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;
-		} else {
-			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$
-    }
-}
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 1aea0e9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FontDescriptor.java
+++ /dev/null
@@ -1,301 +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 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() {
-    	try {
-	    	Font tempFont = createFont(Display.getCurrent());
-	    	FontData[] result = tempFont.getFontData();
-	    	destroyFont(tempFont);
-	    	return result;
-    	} catch (DeviceResourceException e) {
-    		// This won't actually happen. The JFace implementation of FontDescriptor
-    		// won't throw this exception... and DRE is going to become a RuntimeException
-    		// soon anyway.
-    		throw new RuntimeException(e);
-    	}
-    }
-    
-    /**
-     * 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 219a7f5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FontRegistry.java
+++ /dev/null
@@ -1,811 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * 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 registed fonts.
- * </p>
- * <p>
- * Clients may instantiate this class (it was not designed to be subclassed).
- * </p>
- * 
- * Since 3.0 this class extends ResourceRegistry.
- */
-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
-         * @return
-         * @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();
-        }
-    };
-
-    /**
-     * 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);
-
-        hookDisplayDispose(display);
-    }
-
-    /**
-     * Load the FontRegistry using the ClassLoader from the PlatformUI
-     * plug-in
-     */
-    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 = SWT.getPlatform();
-        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);
-		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
-	 * null if one cannot be found.
-	 * 
-	 * @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 null.
-     * @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;
-		}
-
-        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
-     */
-    Font calculateDefaultFont() {
-        Display current = Display.getCurrent();
-        if (current == null) {
-            Shell shell = new Shell();
-            Font font = new Font(null, shell.getFont().getFontData());
-            shell.dispose();
-            return font;
-        }
-		return new Font(current, current.getSystemFont().getFontData());
-    }
-
-    /**
-     * Returns the default font data.  Creates it if necessary.
-     * @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());
-            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.
-     *
-     * @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.
-     *
-     * @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.
-     *
-     * @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 FontRecird
-     */
-    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();
-		}
-
-        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();
-    }
-
-    /**
-     * 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) {
-        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 7cc7a5e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDataImageDescriptor.java
+++ /dev/null
@@ -1,110 +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;
-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
-     * @param originalDevice
-     */
-    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() {
-        return data.hashCode();
-    }
-
-    /* (non-Javadoc)
-     * @see Object#equals
-     */
-    public boolean equals(Object obj) {
-        if (!(obj instanceof ImageDataImageDescriptor)) {
-			return false;
-		} 
-        
-        ImageDataImageDescriptor imgWrap = (ImageDataImageDescriptor) obj;
-       
-        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 faab5d5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDescriptor.java
+++ /dev/null
@@ -1,329 +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.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 c48026d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageRegistry.java
+++ /dev/null
@@ -1,342 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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>
- */
-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 {
-        protected Image image;
-
-        protected ImageDescriptor descriptor;
-    }
-    
-    private static class OriginalImageDescriptor extends ImageDescriptor {
-        private Image original;
-        private int refCount = 0;
-        private Device originalDisplay;
-        
-        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$            
-        }
-        
-        // Should be checking for a null image here.
-        // Current behavior is that a null image won't be caught until dispose.
-        // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=130315
-        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 4c508f5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceColors.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.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 {
-
-    /**
-     * Get the Color used for banner backgrounds
-     */
-    public static Color getBannerBackground(Display display) {
-        return display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-    }
-
-    /**
-     * Get the Color used for banner foregrounds
-     */
-    public static Color getBannerForeground(Display display) {
-        return display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-    }
-
-    /**
-     * Get the background Color for widgets that
-     * display errors.
-     */
-    public static Color getErrorBackground(Display display) {
-        return display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-    }
-
-    /**
-     * Get the border Color for widgets that
-     * display errors.
-     */
-    public static Color getErrorBorder(Display display) {
-        return display.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
-    }
-
-    /**
-     * Get the default color to use for displaying errors.
-     */
-    public static Color getErrorText(Display display) {
-        return JFaceResources.getColorRegistry().get(
-                JFacePreferences.ERROR_COLOR);
-    }
-
-    /**
-     * Get the default color to use for displaying hyperlinks.
-     */
-    public static Color getHyperlinkText(Display display) {
-        return JFaceResources.getColorRegistry().get(
-                JFacePreferences.HYPERLINK_COLOR);
-    }
-
-    /**
-     * Get the default color to use for displaying active hyperlinks.
-     */
-    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.
-     * 
-     * @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 foreground Color
-     * @param background Color
-     */
-    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 42aedd3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceResources.java
+++ /dev/null
@@ -1,495 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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.jface.dialogs.Dialog;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * 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>
- */
-public class JFaceResources {
-
-    /**
-     * 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();
-		}
-        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(){
-		// register default page image for wizards
-		imageRegistry.put(Wizard.DEFAULT_IMAGE, ImageDescriptor
-				.createFromFile(Wizard.class, "images/page.gif"));//$NON-NLS-1$
-		
-		// register default images for dialogs
-		imageRegistry.put(Dialog.DLG_IMG_MESSAGE_INFO, ImageDescriptor
-				.createFromFile(Dialog.class, "images/message_info.gif")); //$NON-NLS-1$
-		imageRegistry
-				.put(Dialog.DLG_IMG_MESSAGE_WARNING, ImageDescriptor
-						.createFromFile(Dialog.class,
-								"images/message_warning.gif")); //$NON-NLS-1$
-		imageRegistry.put(Dialog.DLG_IMG_MESSAGE_ERROR, ImageDescriptor
-				.createFromFile(Dialog.class, "images/message_error.gif")); //$NON-NLS-1$    	
-    }
-    
-    /**
-     * 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
-    }
-}
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 0afb334..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/MissingImageDescriptor.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 55ae727..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/RGBColorDescriptor.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 793f5c3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/StringConverter.java
+++ /dev/null
@@ -1,884 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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>
- */
-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
-     */
-    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();
-            String green = stok.nextToken();
-            String blue = stok.nextToken();
-            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 64a3009..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.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.jface.resource;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-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 {
-    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) {
-                    //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 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$
-    }
-}
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 023a156..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts.properties
+++ /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
-###############################################################################
-# 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 2d29cb4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_aix.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# 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 060f55c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_hp-ux.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# 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 b4529de..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# 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 a4a30f9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux_gtk.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# 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 f4232a3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_macosx.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
-###############################################################################
-# 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 723fbb8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_qnx.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
-###############################################################################
-# QNX font file for JFace
-#############################################################
-org.eclipse.jface.bannerfont.0=TextFont-bold-14
-org.eclipse.jface.headerfont.0=TextFont-bold-18
-org.eclipse.jface.textfont.0=FixedFont-regular-8
-
-
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 1759f3d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_sunos.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# 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 0a8ee02..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windows2000.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
-###############################################################################
-# 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 8ff5b33..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windows98.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
-###############################################################################
-# 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 42621e0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windowsnt.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
-###############################################################################
-# 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 06c422b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windowsxp.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
-###############################################################################
-# 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 e7b5687..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 38e18f1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Assert.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.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.
-         */
-        public AssertionFailedException() {
-        }
-
-        /**
-         * Constructs a new exception with the given 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 Throwable 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 Throwable 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/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 e8c54e1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/DelegatingDropAdapter.java
+++ /dev/null
@@ -1,379 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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;
-    }
-}
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 15ed421..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Geometry.java
+++ /dev/null
@@ -1,720 +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.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;
-    }
-
-    /**
-     * 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 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 newSize new size of the rectangle
-     * 
-     * @since 3.0
-     */
-    public static void setLocation(Rectangle rectangle, Point newSize) {
-        rectangle.width = newSize.x;
-        rectangle.height = newSize.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 214cd5c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/IOpenEventListener.java
+++ /dev/null
@@ -1,39 +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.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. 
-     */
-    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 1ce9438..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/IPropertyChangeListener.java
+++ /dev/null
@@ -1,44 +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 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 1ea70ee..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ISafeRunnableRunner.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:
- *     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>.
-	 *
-	 * @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 1e7b032..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/OpenStrategy.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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
-    private static final 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();
-
-    public OpenStrategy(Control control) {
-        initializeHandler(control.getDisplay());
-        addListener(control);
-    }
-
-    /**
-     * Adds an IOpenEventListener to the collection of openEventListeners
-     */
-    public void addOpenListener(IOpenEventListener listener) {
-        openEventListeners.add(listener);
-    }
-
-    /**
-     * Removes an IOpenEventListener to the collection of openEventListeners
-     */
-    public void removeOpenListener(IOpenEventListener listener) {
-        openEventListeners.remove(listener);
-    }
-
-    /**
-     * Adds an SelectionListener to the collection of selectionEventListeners
-     */
-    public void addSelectionListener(SelectionListener listener) {
-        selectionEventListeners.add(listener);
-    }
-
-    /**
-     * Removes an SelectionListener to the collection of selectionEventListeners
-     */
-    public void removeSelectionListener(SelectionListener listener) {
-        selectionEventListeners.remove(listener);
-    }
-
-    /**
-     * Adds an SelectionListener to the collection of selectionEventListeners
-     */
-    public void addPostSelectionListener(SelectionListener listener) {
-        postSelectionEventListeners.add(listener);
-    }
-
-    /**
-     * Removes an SelectionListener to the collection of selectionEventListeners
-     */
-    public void removePostSelectionListener(SelectionListener listener) {
-        postSelectionEventListeners.remove(listener);
-    }
-
-    /**
-     * Returns the current used single/double-click method
-     * 
-     * This method is internal to the framework; it should not be implemented outside
-     * the framework.
-     */
-    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.
-     */
-    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 5742fea..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Policy.java
+++ /dev/null
@@ -1,171 +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
- *     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.jface.dialogs.AnimatorFactory;
-
-/**
- * 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;
-
-
-    /**
-     * 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());
-            }
-        };
-    }
-
-    /**
-     * 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;
-    }
-    
-	/**
-	 * 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 long 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 long in use as of 3.3
-	 */
-	public static AnimatorFactory getAnimatorFactory() {
-		if (animatorFactory == null)
-			animatorFactory = new AnimatorFactory();
-		return animatorFactory;
-	}
-
-}
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 fcfcb72..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/PropertyChangeEvent.java
+++ /dev/null
@@ -1,109 +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 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 56f5528..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/SafeRunnable.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
- *     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.OperationCanceledException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-
-/**
- * Implements a default implementation of ISafeRunnable.
- * The default implementation of <code>handleException</code>
- * opens a message dialog.
- * <p><b>Note:<b> This class can open an error dialog and should not 
- *  be used outside of the UI Thread.</p>
- */
-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)
-     * Method declared on ISafeRunnable.
-     */
-    public void handleException(Throwable e) {
-        // Workaround to avoid interactive error dialogs during automated testing
-        if (!ignoreErrors) {
-            if (message == null) {
-				message = JFaceResources.getString("SafeRunnable.errorMessage"); //$NON-NLS-1$
-			}
-            MessageDialog.openError(null,
-                    JFaceResources.getString("error"), message); //$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Flag to avoid interactive error dialogs during automated testing.
-     * @deprecated use getIgnoreErrors()
-     */
-    public static boolean getIgnoreErrors(boolean flag) {
-        return ignoreErrors;
-    }
-
-    /**
-     * Flag to avoid interactive error dialogs during automated testing.
-     * 
-     * @since 3.0
-     */
-    public static boolean getIgnoreErrors() {
-        return ignoreErrors;
-    }
-
-    /**
-     * Flag to avoid interactive error dialogs during automated testing.
-     */
-    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)) {
-                    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/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 24e38bd..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Util.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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;
-
-/**
- * <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;
-	}
-
-	/**
-	 * 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 ef2e922..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/AbstractListViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractListViewer.java
deleted file mode 100644
index ee06c64..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractListViewer.java
+++ /dev/null
@@ -1,544 +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
- *     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
-	 */
-    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));
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Viewer.
-     */
-    public abstract Control getControl();
-
-    /**
-     * 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;
-    }
-
-    /*
-     * Returns 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();
-            }
-            
-            list.setRedraw(false);
-			listRemoveAll();
-            
-            Object[] 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);
-            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
-     */
-    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.
-     */
-    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>.
-     */
-    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/AbstractTreeViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
deleted file mode 100644
index 7158d56..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
+++ /dev/null
@@ -1,2812 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.Arrays;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Assert;
-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.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
- * @see TableTreeViewer
- */
-public abstract class AbstractTreeViewer extends ColumnViewer {
-
-	/**
-	 * Constant indicating that all levels of the tree should be expanded or
-	 * collapsed.
-	 * 
-	 * @see #expandToLevel
-	 * @see #collapseToLevel
-	 */
-	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);
-
-		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
-	 */
-	/* package */ Widget[] internalFindItems(Object parentElementOrTreePath) {
-		Widget[] widgets = findItems(parentElementOrTreePath);
-		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 the item at that path TODO could probably do better than this
-	 */
-	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 favour 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);
-
-		// As the items are sorted already we optimize for a
-		// start position
-		int lastInsertion = 0;
-
-		// Optimize for the empty case
-		if (items.length == 0) {
-			for (int i = 0; i < elements.length; i++) {
-				createTreeItem(widget, elements[i], -1);
-			}
-			return;
-		}
-
-		for (int i = 0; i < elements.length; i++) {
-			boolean newItem = true;
-			Object element = elements[i];
-			int index;
-			if (comparator == null) {
-				if (itemExists(items, element)) {
-					refresh(element);
-					newItem = false;
-				}
-				index = -1;
-			} else {
-				lastInsertion = insertionPosition(items, comparator,
-						lastInsertion, element, parentPath);
-				// As we are only searching the original array we keep track of
-				// those positions only
-				if (lastInsertion == items.length) {
-					index = -1;
-				} else {// See if we should just refresh
-					while (lastInsertion < items.length
-							&& internalCompare(comparator, parentPath, element,
-									items[lastInsertion].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[lastInsertion].getData().equals(element)) {
-							// refresh the element in case it has new children
-							refresh(element);
-							newItem = false;
-						}
-						lastInsertion++;// We had an insertion so increment
-					}
-					// Did we get to the end?
-					if (lastInsertion == items.length) {
-						index = -1;
-					} else {
-						index = lastInsertion + i; // Add the index as the
-													// array is growing
-					}
-				}
-			}
-			if (newItem) {
-				createTreeItem(widget, element, index);
-			}
-		}
-	}
-
-	/**
-	 * 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 sorter
-	 *            The sorter to use.
-	 * @param lastInsertion
-	 *            the start index to start search for position from this allows
-	 *            optimising search for multiple elements that are sorted
-	 *            themself.
-	 * @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
-	 *            optimising search for multiple elements that are sorted
-	 *            themself.
-	 * @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 int
-	 */
-	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 sorter
-	 *            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 sorter
-	 *            the sorter
-	 * @param parentPath
-	 *            the path of the elements' parent
-	 * @param e1
-	 *            the first element
-	 * @param e2
-	 *            the seocnd 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) {
-		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);
-					}
-				}
-			}
-
-		});
-	}
-
-	/**
-	 * 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 abstract void doUpdateItem(Item item, Object element);
-
-	/* (non-Javadoc) Method declared on StructuredViewer. */
-	protected void doUpdateItem(Widget widget, Object element, boolean fullMap) {
-		if (widget instanceof Item) {
-			Item item = (Item) widget;
-
-			// ensure that backpointer 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));
-		}
-	}
-
-	/**
-	 * 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) {
-		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();
-		for (int i = 0; i < listeners.length; ++i) {
-			final ITreeViewerListener l = (ITreeViewerListener) listeners[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.treeCollapsed(event);
-				}
-			});
-		}
-	}
-
-	/**
-	 * 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();
-		for (int i = 0; i < listeners.length; ++i) {
-			final ITreeViewerListener l = (ITreeViewerListener) listeners[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.treeExpanded(event);
-				}
-			});
-		}
-
-	}
-
-	/**
-	 * 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 effecient 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) {
-		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];
-	}
-
-	/**
-	 * 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) {
-		if (!(getContentProvider() instanceof ILazyTreeContentProvider)) {
-			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();
-				boolean useRedraw = true;
-				// (size > REDRAW_THRESHOLD) || (table.getItemCount() >
-				// REDRAW_THRESHOLD);
-				if (useRedraw) {
-					tree.setRedraw(false);
-				}
-				removeAll(tree);
-				tree.setData(getRoot());
-				internalInitializeTree(tree);
-				if (useRedraw) {
-					tree.setRedraw(true);
-				}
-			}
-
-		});
-	}
-
-	/**
-	 * @param tree
-	 */
-	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) {
-				setExpanded((Item) widget, false);
-			}
-
-			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;
-			if (treePath.getSegmentCount() <= 1) {
-				return null;
-			}
-			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 getInput();
-				}
-				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 null;
-			}
-			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 favour 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 favour 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();
-		// Note: do not use the comparer here since the hashtable
-		// contains SWT Items, not model elements.
-		CustomHashtable parentItems = new CustomHashtable(5);
-		for (int i = 0; i < elementsOrPaths.length; ++i) {
-			Object element = elementsOrPaths[i];
-			if (equals(element, input)) {
-				setInput(null);
-				return;
-			}
-			Widget[] childItems = internalFindItems(element);
-			for (int j = 0; j < childItems.length; j++) {
-				Widget childItem = childItems[j];
-				if (childItem instanceof Item) {
-					Item parentItem = getParentItem((Item) childItem);
-					if (parentItem != null) {
-						parentItems.put(parentItem, parentItem);
-					}
-					disassociate((Item) childItem);
-					childItem.dispose();
-				}
-			}
-		}
-		internalReconcileParentItems(parentItems);
-	}
-
-	/**
-	 * @param parentItems
-	 */
-	private void internalReconcileParentItems(CustomHashtable parentItems) {
-		Control tree = getControl();
-		for (Enumeration e = parentItems.keys(); e.hasMoreElements();) {
-			Item parentItem = (Item) e.nextElement();
-			if (parentItem.isDisposed()) {
-				continue;
-			}
-			if (!getExpanded(parentItem) && getItemCount(parentItem) == 0) {
-				// append a dummy if necessary
-				if (isExpandable(parentItem, null, parentItem.getData())) {
-					newItem(parentItem, SWT.NULL, -1);
-				} else {
-					// XXX: Workaround (PR missing)
-					tree.redraw();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Removes the given elements from this viewer, whenever those elements
-	 * appear as children of the given parent.
-	 * 
-	 * @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]);
-		}
-		// Note: do not use the comparer here since the hashtable
-		// contains SWT Items, not model elements.
-		CustomHashtable parentItems = new CustomHashtable(5);
-
-		// 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];
-
-			if (parentItem instanceof Item) {
-				parentItems.put(parentItem, parentItem);
-			}
-
-			// Iterate over the child items and remove each one
-			Item[] children = getChildren(parentItem);
-
-			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();
-				}
-			}
-		}
-		internalReconcileParentItems(parentItems);
-	}
-
-	/**
-	 * 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 expandablity 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 knwon 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) {
-		if (isTreePathContentProvider()) {
-			TreePath path;
-			if (parentPath != null) {
-				path = parentPath.createChildPath(element);
-			} else {
-				path = getTreePathFromItem(item);
-			}
-			ITreePathContentProvider cp = (ITreePathContentProvider) getContentProvider();
-			return cp != null && cp.hasChildren(path);
-		}
-		return isExpandable(element);
-	}
-
-	/* (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;
-		}
-		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;
-		}
-		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 iself 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. The value 0 means that there is no
-	 * auto-expand; 1 means that top-level elements are expanded, but not their
-	 * children; 2 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>
-	 * 
-	 * @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);
-		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);
-		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);
-		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 the first item in the selection here.
-		// See bug 100565 for more details.
-		if (reveal && newSelection.size() > 0) {
-			showItem((Item) newSelection.get(0));
-		}
-	}
-
-	/**
-	 * 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)) {
-				// need a dummy node if element is expandable;
-				// but try to avoid recreating the dummy node
-				boolean needDummy = isExpandable(ti, null, 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();
-						}
-					}
-				}
-				if (needDummy && !haveDummy) {
-					newItem(ti, SWT.NULL, -1);
-				}
-
-				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);
-
-		// Note: In the code below, doing disassociate calls before associate
-		// calls is important,
-		// since a later disassociate can undo an earlier associate,
-		// if items are changing position.
-
-		// dispose of all items beyond the end of the current elements
-		for (int i = items.length; --i >= min;) {
-			if (items[i].getData() != null) {
-				disassociate(items[i]);
-			}
-			items[i].dispose();
-		}
-
-		// 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);
-		}
-	}
-
-	/**
-	 * 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.
-	 * 
-	 * @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 (getComparator() != null || hasFilters()) {
-			add(parentElementOrTreePath, new Object[] { element });
-			return;
-		}
-		Widget[] 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, position);
-				}
-			} else {
-				int insertionPosition = position;
-				if (insertionPosition == -1) {
-					insertionPosition = getItemCount((Control) widget);
-				}
-
-				createTreeItem(widget, element, position);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getColumnViewerOwner(int)
-	 */
-	protected Widget getColumnViewerOwner(int columnIndex) {
-		// Return null by default
-		return null;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getCellEditors()
-	 */
-	public CellEditor[] getCellEditors() {
-		return new CellEditor[0];
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getCellModifier()
-	 */
-	public ICellModifier getCellModifier() {
-		//Return a null cell modifier by default so that
-		//getCellEditors() or getColumnProperties() are
-		//not invoked
-		return null;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getColumnProperties()
-	 */
-	public Object[] getColumnProperties() {
-		return new Object[0];
-	}
-}
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 a8bfbd1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ArrayContentProvider.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.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
- */
-public class ArrayContentProvider implements IStructuredContentProvider {
-
-    /**
-     * 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 05851d4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/BaseLabelProvider.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.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 <strong>EXPERIMENTAL</strong> This class or interface has been
- *        added as part of a work in progress. This API may change at any given
- *        time. Please do not use this API without consulting with the
- *        Platform/UI team.
- * 
- */
-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 does nothing. Subclasses may extend.
-     */
-    public void dispose() {
-    }
-    
-    /**
-     * 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 150a742..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellEditor.java
+++ /dev/null
@@ -1,855 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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;
-
-/**
- * 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.
-     */
-    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;
-    }
-
-    /**
-     * 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.
-     *
-     * @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 valie 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);
-    }
-}
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 5586e9b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellLabelProvider.java
+++ /dev/null
@@ -1,197 +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
- *     Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation
- ******************************************************************************/
-
-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.
- * 
- * @since 3.3 <strong>EXPERIMENTAL</strong> This class or interface has been
- *        added as part of a work in progress. This API may change at any given
- *        time. Please do not use this API without consulting with the
- *        Platform/UI team.
- */
-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 columnIndex
-	 * @param labelProvider
-	 *            The labelProvider to convert
-	 * @return ViewerLabelProvider
-	 */
-	static CellLabelProvider createViewerLabelProvider(
-			IBaseLabelProvider labelProvider) {
-
-		if (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.
-	 * 
-	 * @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;
-	}
-
-	/**
-	 * Returns the tool tip text for the given element and column index, or
-	 * <code>null</code> if a custom tool tip should not be displayed.
-	 * 
-	 * @param element
-	 *            the element for which the tool tip is shown
-	 * @return the {@link String} to be displayed in the tool tip, or
-	 *         <code>null</code> if a custom tool tip should not be displayed
-	 */
-	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
-	 */
-	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} 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 native tool tips are
-	 * used only the textvalue is used. All other feature of custom tool tips
-	 * are not supported.
-	 * 
-	 * @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 <code>int<code>
-	 */
-	public int getToolTipTimeDisplayed(Object object) {
-		return 0;
-	}
-
-	/**
-	 * The time in milliseconds until the tool tip is displaued.
-	 * 
-	 * @param object
-	 *            the {@link Object} for which the tool tip is shown
-	 * @return int
-	 */
-	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 int
-	 * @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);
-
-}
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 65621f0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckStateChangedEvent.java
+++ /dev/null
@@ -1,79 +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.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 e82f24b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxCellEditor.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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>
- */
-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();
-    }
-}
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 c4de85d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxTableViewer.java
+++ /dev/null
@@ -1,439 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.ListenerList;
-import org.eclipse.core.runtime.Assert;
-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 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>
- */
-public class CheckboxTableViewer extends TableViewer implements ICheckable {
-
-    /**
-     * List of check state listeners (element type: <code>ICheckStateListener</code>).
-     */
-    private ListenerList checkStateListeners = new ListenerList();
-
-    /**
-     * 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);
-    }
-
-    /**
-     * 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) {
-
-        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.
-     *
-     * @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.
-     * <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 6d2b08b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxTreeViewer.java
+++ /dev/null
@@ -1,587 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.ListenerList;
-import org.eclipse.core.runtime.Assert;
-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 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>
- */
-public class CheckboxTreeViewer extends TreeViewer implements ICheckable {
-
-    /**
-     * List of check state listeners (element type: <code>ICheckStateListener</code>).
-     */
-    private ListenerList checkStateListeners = new ListenerList();
-
-    /**
-     * 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);
-    }
-
-    /**
-     * 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 writeable set of elements (element type: <code>Object</code>) 
-     * @param grayed a writeable 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 writeable 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 writeable 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) {
-
-        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.
-     * <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.
-     * @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.
-     *
-     * @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.
-     *
-     * @param state <code>true</code> if the element should be checked,
-     *  and <code>false</code> if it should be unchecked
-     *  
-     *  @since 3.2
-     */
-	public void setAllChecked(boolean state) {
-		setAllChecked(state,  getTree().getItems());
-		
-	}
-
-	/**
-	 * Set the checked state of items and thier children to state.
-	 * @param state
-	 * @param items
-	 */
-	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);
-		}
-	}
-}
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 b9e3280..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColorCellEditor.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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>
- */
-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 3263508..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnLabelProvider.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.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}
- * @since 3.3 <strong>EXPERIMENTAL</strong> This class or interface has been
- *        added as part of a work in progress. This API may change at any given
- *        time. Please do not use this API without consulting with the
- *        Platform/UI team.
- *
- */
-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) {
-		cell.setText(getText(cell.getElement()));
-		cell.setImage(getImage(cell.getElement()));
-		cell.setBackground(getBackground(cell.getElement()));
-		cell.setForeground(getForeground(cell.getElement()));
-		cell.setFont(getFont(cell.getElement()));
-
-	}
-
-	/* (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 1f652a7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnLayoutData.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.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>
- */
-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 7823367..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnPixelData.java
+++ /dev/null
@@ -1,81 +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.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>
- */
-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 fcf7b69..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewer.java
+++ /dev/null
@@ -1,244 +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
- *     Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * The ColumnViewer is the abstract superclass of viewers that jave columns
- * (TreeViewer and TableViewer).
- * 
- * @since 3.3 <strong>EXPERIMENTAL</strong> This class or interface has been
- *        added as part of a work in progress. This API may change at any given
- *        time. Please do not use this API without consulting with the
- *        Platform/UI team.
- * 
- */
-abstract class ColumnViewer extends StructuredViewer {
-
-	private ToolTipSupport tooltipSupport;
-
-	/**
-	 * The cell is a cached viewer cell used for refreshing.
-	 */
-	private ViewerCell cell = new ViewerCell(null, 0);
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public ColumnViewer() {
-		super();
-		tooltipSupport = new ToolTipSupport(this);
-	}
-
-	/**
-	 * Get the cell at this point.
-	 * <p>
-	 * <i>Subclasses should overwrite this method and provide a meaningful
-	 * implementation</i>
-	 * </p>
-	 * 
-	 * @param point
-	 *            the point in the viewer where you need to corresponding cell
-	 *            from
-	 * @param onlyInSelection
-	 *            search only in selection
-	 * @return the cell or if no cell is found at this point
-	 */
-	ViewerCell getCell(Point point) {
-		ViewerRow row = getRowPart(point);
-		if (row != null) {
-			return row.getCell(point);
-		}
-
-		return null;
-	}
-
-	/**
-	 * Get the ViewerRow at point.
-	 * 
-	 * @param point
-	 * @return ViewerRow
-	 */
-	protected ViewerRow getRowPart(Point point) {
-		Item item = getItem(point.x, point.y);
-
-		if (item != null) {
-			return getRowPartFromItem(item);
-		}
-
-		return null;
-	}
-
-	protected ViewerRow getRowPartFromItem(Widget item) {
-		return (ViewerRow) item.getData(ViewerRow.ROWPART_KEY);
-	}
-
-	/**
-	 * Get the widget for the column at columnIndex.
-	 * 
-	 * @param columnIndex
-	 * @return Widget
-	 */
-	protected abstract Widget getColumnViewerOwner(int columnIndex);
-
-	/**
-	 * Returns the cell modifier of this viewer.
-	 * 
-	 * @return the cell modifier
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 */
-	public abstract ICellModifier getCellModifier();
-
-	/**
-	 * Return the CellEditors for the receiver.
-	 * 
-	 * @return CellEditor[]
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 */
-	public abstract CellEditor[] getCellEditors();
-
-	/**
-	 * 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.
-	 * 
-	 * @return the list of column properties
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 */
-	public abstract Object[] getColumnProperties();
-
-	/**
-	 * Return the TableColumnViewer at columnIndex
-	 * 
-	 * @param columnIndex
-	 * @return TableColumnViewer
-	 */
-	public ViewerColumn getViewerColumn(final int columnIndex) {
-
-		ViewerColumn viewer;
-		Widget columnOwner = getColumnViewerOwner(columnIndex);
-
-		if (columnOwner == null) {
-			return null;
-		}
-
-		viewer = (ViewerColumn) columnOwner
-				.getData(ViewerColumn.COLUMN_VIEWER_KEY);
-
-		if (viewer == null) {
-			viewer = createColumnViewer(columnOwner, CellLabelProvider
-					.createViewerLabelProvider(getLabelProvider()));
-			setViewerColumn(columnIndex, viewer);
-		}
-		
-		if( viewer.getEditingSupport() == null && getCellModifier() != null ) {
-			setViewerColumn(columnIndex, viewer);
-		}
-
-		return viewer;
-	}
-
-	/**
-	 * Set the ViewerColumn at columnIndex
-	 * @param columnIndex
-	 * @param viewer
-	 */
-	public void setViewerColumn(final int columnIndex, ViewerColumn viewer) {
-		if (getCellModifier() != null) {
-			viewer.setEditingSupport(new EditingSupport() {
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.jface.viewers.EditingSupport#canEdit(java.lang.Object)
-				 */
-				public boolean canEdit(Object element) {
-					return getCellModifier().canModify(element,
-							(String) getColumnProperties()[columnIndex]);
-				}
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.jface.viewers.EditingSupport#getCellEditor(java.lang.Object)
-				 */
-				public CellEditor getCellEditor(Object element) {
-					return getCellEditors()[columnIndex];
-				}
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.jface.viewers.EditingSupport#getValue(java.lang.Object)
-				 */
-				public Object getValue(Object element) {
-					return getCellModifier().getValue(element,
-							(String) getColumnProperties()[columnIndex]);
-				}
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.jface.viewers.EditingSupport#setValue(java.lang.Object,
-				 *      java.lang.Object)
-				 */
-				public void setValue(Object element, Object value) {
-					getCellModifier().modify(findItem(element),
-							(String) getColumnProperties()[columnIndex], value);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Create a ViewerColumn for the columnOwner.
-	 * 
-	 * @param columnOwner
-	 * @param labelProvider
-	 * @return ViewerColumn
-	 */
-	protected ViewerColumn createColumnViewer(Widget columnOwner,
-			CellLabelProvider labelProvider) {
-		return new ViewerColumn(columnOwner, labelProvider);
-	}
-
-	/**
-	 * Activate the tooltip support.
-	 */
-	public void activateCustomTooltips() {
-		tooltipSupport.activate();
-	}
-
-	/**
-	 * Deactivate the tooltip support.
-	 */
-	public void deactivateCustomTooltips() {
-		tooltipSupport.deactivate();
-	}
-
-	/**
-	 * Update the cached cell with the row and column.
-	 * 
-	 * @param rowPartFromItem
-	 * @param column
-	 * @return ViewerCell
-	 */
-	ViewerCell updateCell(ViewerRow rowItem, int column) {
-		cell.update(rowItem, column);
-		return cell;
-	}
-
-}
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 634556a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnWeightData.java
+++ /dev/null
@@ -1,86 +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.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>
- */
-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 bbd6a37..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboBoxCellEditor.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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>
- */
-public class ComboBoxCellEditor extends CellEditor {
-
-    /**
-     * 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>
-     * 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 ((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 deactiavates 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/ComboViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboViewer.java
deleted file mode 100644
index eb29d6c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboViewer.java
+++ /dev/null
@@ -1,152 +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.SWT;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A concrete viewer based on an SWT <code>Combo</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
- */
-public final class ComboViewer extends AbstractListViewer {
-
-    /**
-     * This viewer's list control.
-     */
-    private Combo combo;
-
-    /**
-     * 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);
-    }
-
-    protected void listAdd(String string, int index) {
-        combo.add(string, index);
-    }
-
-    protected void listSetItem(int index, String string) {
-        combo.setItem(index, string);
-    }
-
-    protected int[] listGetSelectionIndices() {
-        return new int[] { combo.getSelectionIndex() };
-    }
-
-    protected int listGetItemCount() {
-        return combo.getItemCount();
-    }
-
-    protected void listSetItems(String[] labels) {
-        combo.setItems(labels);
-    }
-
-    protected void listRemoveAll() {
-        combo.removeAll();
-    }
-
-    protected void listRemove(int index) {
-        combo.remove(index);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Viewer.
-     */
-    public Control getControl() {
-        return combo;
-    }
-
-    /**
-     * Returns this list viewer's list control.
-     *
-     * @return the list control
-     */
-    public Combo getCombo() {
-        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) {
-        return;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listSelectAndShow(int[])
-     */
-    protected void listSetSelection(int[] ixs) {
-        for (int idx = 0; idx < ixs.length; idx++) {
-            combo.select(ixs[idx]);
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listDeselectAll()
-     */
-    protected void listDeselectAll() {
-        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 c20bd10..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ContentViewer.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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() {
-        public void labelProviderChanged(LabelProviderChangedEvent event) {
-            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 <code>SimpleLabelProvider</code>
-     * 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>
-     */
-    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) {
-            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 9603984..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CustomHashtable.java
+++ /dev/null
@@ -1,435 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms 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 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(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 abdeb64..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingLabelProvider.java
+++ /dev/null
@@ -1,427 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 CellLabelProvider 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) {
-		org.eclipse.core.runtime.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);
-    		}
-        }
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
-	 */
-	public void update(ViewerCell cell) {		
-
-		ViewerLabel label = new ViewerLabel(cell.getText(), cell.getImage());
-		updateLabel(label, cell.getElement());
-
-		cell.setBackground(label.getBackground());
-		cell.setForeground(label.getForeground());
-		cell.setFont(label.getFont());
-
-		if (label.hasNewText())
-			cell.setText(label.getText());
-
-		if (label.hasNewImage())
-			cell.setImage(label.getImage());		
-	}
-}
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 945beec..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecorationContext.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.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 pgiven roperty to the given value. Setting the value of
-	 * a propert 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/DialogCellEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DialogCellEditor.java
deleted file mode 100644
index 3224de5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DialogCellEditor.java
+++ /dev/null
@@ -1,386 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 method:
- * <ul>
- *	<li><code>createButton</code>: creates the cell editor's button control</li>
- *	<li><code>openDialogBox</code>: opens the dialog box when the end user presses
- *      the button</li>
- *	<li><code>updateLabel</code>: updates the cell editor's label after its
- *		value has changed</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
-     */
-    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 cancelled 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 
-     *   cancelled 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 b3e61b0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DoubleClickEvent.java
+++ /dev/null
@@ -1,65 +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.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 3a307c5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/EditingSupport.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
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-/**
- * EditingSupport is the abstract superclass of the support for cell editing.
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as
- * part of a work in progress. This API may change at any given time. Please 
- * do not use this API without consulting with the Platform/UI team.
- * @since 3.3
- * 
- */
-abstract class EditingSupport {
-	/**
-	 * The editor to be shown
-	 * 
-	 * @param element
-	 *            the model element
-	 * @return the CellEditor
-	 */
-	abstract CellEditor getCellEditor(Object element);
-
-	/**
-	 * Is the cell editable
-	 * 
-	 * @param element
-	 *            the model element
-	 * @return true if editable
-	 */
-	abstract boolean canEdit(Object element);
-
-	/**
-	 * Get the value to set to the editor
-	 * 
-	 * @param element
-	 *            the model element
-	 * @return the value shown
-	 */
-	abstract Object getValue(Object element);
-
-	/**
-	 * Restore the value from the CellEditor
-	 * 
-	 * @param element
-	 *            the model element
-	 * @param value
-	 *            the new value
-	 */
-	abstract void setValue(Object element, Object value);
-}
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 6ee78aa..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IBaseLabelProvider.java
+++ /dev/null
@@ -1,85 +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.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 efcb651..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IBasicPropertyConstants.java
+++ /dev/null
@@ -1,52 +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.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 fd84611..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellEditorListener.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 cancelled.  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 5099f63..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellEditorValidator.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.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 208d9cf..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellModifier.java
+++ /dev/null
@@ -1,71 +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.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 d48532c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckStateListener.java
+++ /dev/null
@@ -1,26 +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.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/ICheckable.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckable.java
deleted file mode 100644
index 03adf41..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckable.java
+++ /dev/null
@@ -1,56 +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.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.
-     *
-     * @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 b62f7ef..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IColorDecorator.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.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 precendence.
- * @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 656b92a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IColorProvider.java
+++ /dev/null
@@ -1,39 +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.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 9c3e7bc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IContentProvider.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 c2e0e01..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDecoration.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.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>.
- */
-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;
-
-	/**
-	 * 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 9aefc5c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDelayedLabelDecorator.java
+++ /dev/null
@@ -1,34 +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;
-
-/**
- * A delayed label decorator is a label decorator that may not have a
- * decoration available immidiately. 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 5196af2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDoubleClickListener.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.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 c2ff95d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IElementComparer.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.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.
-     * 
-     * @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 a8d011e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFilter.java
+++ /dev/null
@@ -1,27 +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;
-
-/**
- * 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 true iff 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 e07e200..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFontDecorator.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.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 precendence.
- * @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 b9f6b5d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFontProvider.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;
-
-/**
- * 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/IInputProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IInputProvider.java
deleted file mode 100644
index d8fa3d1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IInputProvider.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.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 c97fcc5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IInputSelectionProvider.java
+++ /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
- *******************************************************************************/
-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 1863e5f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelDecorator.java
+++ /dev/null
@@ -1,60 +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.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 2c4112a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 e2ec456..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelProviderListener.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.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 07abab3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyContentProvider.java
+++ /dev/null
@@ -1,42 +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.viewers;
-
-/**
- * The ILazyContentProvider is the content provider
- * for table viewers created using the SWT.VIRTUAL flag that
- * only wish to return thier 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 updateed 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/ILightweightLabelDecorator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILightweightLabelDecorator.java
deleted file mode 100644
index 75f5635..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILightweightLabelDecorator.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.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 8dd3a4e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IOpenListener.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.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 a41bc8b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IPostSelectionProvider.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 094f656..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelection.java
+++ /dev/null
@@ -1,29 +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.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 d5feafc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelectionChangedListener.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.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 c733c93..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelectionProvider.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 bf9dbc5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IStructuredContentProvider.java
+++ /dev/null
@@ -1,29 +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.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.
-     *
-     * @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 3765fc0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IStructuredSelection.java
+++ /dev/null
@@ -1,55 +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.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>.
-     *
-     * @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 a7a0e5e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableColorProvider.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:
- *     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 1de1bfa..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableLabelProvider.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.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 9427a86..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeContentProvider.java
+++ /dev/null
@@ -1,60 +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.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 d980c6a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeSelection.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.viewers;
-
-/**
- * A selection containing tree paths.
- * 
- * @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 3ec9f59..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeViewerListener.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.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 c56c8f7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IViewerLabelProvider.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.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 e1279c0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelProvider.java
+++ /dev/null
@@ -1,56 +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.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 7c3366c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ListViewer.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-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
- */
-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);
-    }
-}
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 0fb8ae5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/NamedHandleObjectLabelProvider.java
+++ /dev/null
Binary files differ
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 e7a802f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/OpenEvent.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 0a19e04..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/OwnerDrawLabelProvider.java
+++ /dev/null
@@ -1,157 +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.SWT;
-import org.eclipse.swt.graphics.Rectangle;
-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.
- * 
- * @since 3.3 <strong>EXPERIMENTAL</strong> This class or interface has been
- *        added as part of a work in progress. This API may change at any given
- *        time. Please do not use this API without consulting with the
- *        Platform/UI team.
- * 
- */
-public abstract class OwnerDrawLabelProvider extends CellLabelProvider {
-
-	/**
-	 * Set up the owner draw callbacks for the viewer.
-	 * 
-	 * @param viewer
-	 */
-	public static void setUpOwnerDraw(final ColumnViewer viewer) {
-		viewer.getControl().addListener(SWT.MeasureItem, new Listener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-			 */
-			public void handleEvent(Event event) {
-				CellLabelProvider provider = viewer
-						.getViewerColumn(event.index).getLabelProvider();
-				Object element = event.item.getData();
-
-				if (provider instanceof OwnerDrawLabelProvider)
-					((OwnerDrawLabelProvider) provider).measure(event, element);
-			}
-		});
-
-		viewer.getControl().addListener(SWT.PaintItem, new Listener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-			 */
-			public void handleEvent(Event event) {
-				CellLabelProvider provider = viewer
-						.getViewerColumn(event.index).getLabelProvider();
-				Object element = event.item.getData();
-
-				if (provider instanceof OwnerDrawLabelProvider)
-					((OwnerDrawLabelProvider) provider).paint(event, element);
-			}
-		});
-
-		viewer.getControl().addListener(SWT.EraseItem, new Listener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-			 */
-			public void handleEvent(Event event) {
-
-				CellLabelProvider provider = getLabelProvider(viewer, event);
-				Object element = getElement(event);
-
-				if (provider instanceof OwnerDrawLabelProvider)
-					((OwnerDrawLabelProvider) provider).erase(event, element);
-
-			}
-
-			/**
-			 * Return the item for the event
-			 * 
-			 * @param event
-			 * @return Object
-			 */
-			private Object getElement(Event event) {
-				return event.item.getData();
-			}
-
-			/**
-			 * Return the label provider for the column.
-			 * 
-			 * @param viewer
-			 * @param event
-			 * @return CellLabelProvider
-			 */
-			private CellLabelProvider getLabelProvider(
-					final ColumnViewer viewer, Event event) {
-				return viewer.getViewerColumn(event.index).getLabelProvider();
-			}
-		});
-	}
-
-	/**
-	 * Handle the erase event.
-	 * 
-	 * @param event
-	 * @param element
-	 * @see SWT#EraseItem
-	 */
-	protected abstract void erase(Event event, Object element);
-
-	/**
-	 * Handle the paint event.
-	 * 
-	 * @param event
-	 * @param element
-	 * @see SWT#PaintItem
-	 */
-	protected abstract void paint(Event event, Object element);
-
-	/**
-	 * Handle the measure event.
-	 * 
-	 * @param event
-	 * @param element
-	 * @see SWT#MeasureItem
-	 */
-	protected abstract void measure(Event event, Object element);
-
-	/**
-	 * Create a new instance of the receiver based on a column viewer.
-	 * 
-	 */
-	public OwnerDrawLabelProvider() {
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
-	 */
-	public void update(ViewerCell cell) {
-		// Force a redraw
-		Rectangle cellBounds = cell.getBounds();
-		cell.getControl().redraw(cellBounds.x, cellBounds.y, cellBounds.width,
-				cellBounds.height, true);
-
-	}
-
-}
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 0708907..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/SelectionChangedEvent.java
+++ /dev/null
@@ -1,67 +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.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 9a06c20..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredSelection.java
+++ /dev/null
@@ -1,170 +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.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>
- */
-public class StructuredSelection implements IStructuredSelection {
-
-    /**
-     * The element that make up this structured selection.
-     */
-    private Object[] elements;
-
-    /**
-     * 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.
-     *
-     * @param elements an array of elements
-     */
-    public StructuredSelection(Object[] 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>.
-     */
-    public StructuredSelection(List elements) {
-        Assert.isNotNull(elements);
-        this.elements = elements.toArray();
-    }
-
-    /**
-     * Returns whether this structured selection is equal to the given object.
-     * Two structured selections are equal iff 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;
-        }
-
-        //size
-        int myLen = elements.length;
-        if (myLen != s2.elements.length) {
-            return false;
-        }
-        //element comparison
-        for (int i = 0; i < myLen; i++) {
-            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 d4a9bed..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java
+++ /dev/null
@@ -1,2137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.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.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 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();
-	
-	/**
-	 * 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 ColorAndFontManager 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 colour 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
-	 *            a double-click 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);
-		}
-		// 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) {
-		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 searchs 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
-	 * fullmap 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.
-	 * <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
-	 */
-	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);
-	}
-
-	/**
-	 * 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) {
-				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.
-	 * <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>
-	 * <li>calls <code>postUpdateHook</code></li>
-	 * </ul>
-	 * </p>
-	 * 
-	 * @param updateCode
-	 *            the code to run
-	 */
-	protected void preservingSelection(Runnable updateCode) {
-
-		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, false);
-			}
-
-			// 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 TableItem 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
-	 *            a double-click 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;
-				}
-			}
-		}
-	}
-
-	/**
-	 * 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);
-		}
-	}
-
-	/**
-	 * 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);
-				}
-			}
-		}
-	}
-
-	/**
-	 * 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.
-	 * Specifing <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.
-	 * </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.
-	 * </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) {
-		for (int i = 0; i < elements.length; ++i) {
-			update(elements[i], properties);
-		}
-	}
-
-	/**
-	 * 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.
-	 * Specifing <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.
-	 * </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.
-	 * </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);
-
-		for (int i = 0; i < items.length; i++) {
-			internalUpdate(items[i], element, properties);
-		}		
-	}
-
-	/**
-     * 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 favour 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) {
-			refresh();
-			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;
-	}
-
-}
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 91c191e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableColumnViewerLabelProvider.java
+++ /dev/null
@@ -1,103 +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
- *     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.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @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
-	 * @param columnIndex
-	 *            the index into the table for this column
-	 * @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/TableEditorImpl.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableEditorImpl.java
deleted file mode 100644
index 2b57bf8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableEditorImpl.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
- *     Tom Shindl <tom.schindl@bestsolution.at> - Refactored to use ViewerColumn
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-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.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-
-/**
- * Internal table viewer implementation.
- * 
- * @since 3.1
- */
-/* package */abstract class TableEditorImpl {
-
-    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;
-
-    TableEditorImpl(ColumnViewer viewer) {
-        this.viewer = viewer;
-        initCellEditorListener();
-    }
-
-    /**
-     * Returns this <code>TableViewerImpl</code> viewer
-     * 
-     * @return the viewer
-     */
-    public ColumnViewer getViewer() {
-        return viewer;
-    }
-
-    private void activateCellEditor() {
-    	ViewerColumn part = viewer.getViewerColumn(columnNumber);
-    	Object element = tableItem.getData();
-    	
-    	if( part != null && part.getEditingSupport() != null && part.getEditingSupport().canEdit(element) ) {
-    		cellEditor = part.getEditingSupport().getCellEditor(element);
-    		if( cellEditor != null ) {
-        		cellEditor.addListener(cellEditorListener);
-                Object value = part.getEditingSupport().getValue(element);
-                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();
-
-    }
-
-    abstract Rectangle getBounds(Item item, int columnNumber);
-
-/**
-     * 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;
-    }
-
-    abstract int getColumnCount();
-
-	/**
-     * Return the properties for the column
-     * @return the array of column properties
-     */
-    public Object[] getColumnProperties() {
-        return columnProperties;
-    }
-    
-    abstract Item[] getSelection();
-
-    /**
-     * 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() {
-                TableEditorImpl.this.cancelEditing();
-            }
-
-            public void applyEditorValue() {
-                TableEditorImpl.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) {
-    	ViewerColumn part = viewer.getViewerColumn(columnNumber);
-    	
-        if( part != null && part.getEditingSupport() != null ) {
-        	part.getEditingSupport().setValue(tableItem.getData(), 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;
-    }
-    
-    abstract void setEditor(Control w, Item item, int fColumnNumber);
-
-    abstract void setLayoutData(CellEditor.LayoutData layoutData);
-
-    abstract void setSelection(StructuredSelection selection, boolean b);
-
-    abstract void showSelection();
-
-    abstract void handleDoubleClickEvent();
-}
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 412e5a2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableLayout.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.jface.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-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.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 TableAdapter}.
- */
-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 = "carbon".equals(SWT.getPlatform()) ? 24 : 3; //$NON-NLS-1$
-
-	/**
-	 * 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 d1131a7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableTreeViewer.java
+++ /dev/null
@@ -1,523 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.List;
-
-import org.eclipse.core.runtime.Assert;
-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.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-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.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
- */
-public class TableTreeViewer extends AbstractTreeViewer {
-    /**
-     * Internal table viewer implementation.
-     */
-    private TableEditorImpl tableViewerImpl;
-
-    /**
-     * This viewer's table tree control.
-     */
-    private TableTree tableTree;
-
-    /**
-     * This viewer's table tree editor.
-     */
-    private TableTreeEditor tableTreeEditor;
-
-    /**
-     * Private implementation class.
-     */
-    class TableTreeViewerImpl extends TableEditorImpl {
-        public TableTreeViewerImpl(TableTreeViewer viewer) {
-            super(viewer);
-        }
-
-        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);
-        tableViewerImpl = new TableTreeViewerImpl(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() {
-        tableViewerImpl.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) {
-        tableViewerImpl.editElement(element, column);
-    }
-
-    /**
-     * Returns the cell editors of this viewer.
-     *
-     * @return the list of cell editors
-     */
-    public CellEditor[] getCellEditors() {
-        return tableViewerImpl.getCellEditors();
-    }
-
-    /**
-     * Returns the cell modifier of this viewer.
-     *
-     * @return the cell modifier
-     */
-    public ICellModifier getCellModifier() {
-        return tableViewerImpl.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 tableViewerImpl.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)
-     * Method declared on StructuredViewer.
-     */
-    protected Item getItem(int x, int y) {
-        // XXX: Workaround for 1GBCSHG: SWT:WIN2000 - TableTree should have getItem(Point point)
-        return getTableTree().getTable().getItem(
-                getTableTree().toControl(new Point(x, y)));
-    }
-
-    /* (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;
-					}
-                }
-
-                tableViewerImpl.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 tableViewerImpl.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) {
-        tableViewerImpl.setCellEditors(editors);
-    }
-
-    /**
-     * Sets the cell modifier of this table viewer.
-     *
-     * @param modifier the cell modifier
-     */
-    public void setCellModifier(ICellModifier modifier) {
-        tableViewerImpl.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) {
-        tableViewerImpl.setColumnProperties(columnProperties);
-    }
-
-    /* (non-Javadoc)
-     * Method declared in AbstractTreeViewer.
-     */
-    protected void setExpanded(Item node, boolean expand) {
-        ((TableTreeItem) node).setExpanded(expand);
-    }
-
-    /**
-     * The table 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 void setLabelProvider(IBaseLabelProvider labelProvider) {
-        Assert.isTrue(labelProvider instanceof ITableLabelProvider
-                || labelProvider instanceof ILabelProvider);
-        super.setLabelProvider(labelProvider);
-    }
-
-    /* (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 dff8c0b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewer.java
+++ /dev/null
@@ -1,1381 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableEditor;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-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.Item;
-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.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>
- * 
- * @see SWT#VIRTUAL
- * @see #doFindItem(Object)
- * @see #internalRefresh(Object, boolean)
- */
-public class TableViewer 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() {
-			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;
-					final int index = table.indexOf(item);
-					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 = getTable().getItemCount() + 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;
-
-			getTable().setItemCount(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 = getTable().getItemCount() - 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;
-
-	/**
-	 * Internal table viewer implementation.
-	 */
-	private TableEditorImpl tableViewerImpl;
-
-	/**
-	 * This viewer's table control.
-	 */
-	private Table table;
-
-	/**
-	 * This viewer's table editor.
-	 */
-	private TableEditor tableEditor;
-
-	/**
-	 * 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);
-		tableEditor = new TableEditor(table);
-		initTableViewerImpl();
-		initializeVirtualManager(table.getStyle());
-	}
-
-	/**
-	 * 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);
-		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(createNewRowPart(SWT.NONE, index).getItem(), element);
-		} else {
-			virtualManager.notVisibleAdded(element, index);
-
-		}
-	}
-
-	/**
-	 * 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 });
-	}
-
-	/**
-	 * Cancels a currently active cell editor. All changes already done in the
-	 * cell editor are lost.
-	 */
-	public void cancelEditing() {
-		tableViewerImpl.cancelEditing();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.StructuredViewer#doFindInputItem(java.lang.Object)
-	 */
-	protected Widget doFindInputItem(Object element) {
-		if (equals(element, getRoot())) {
-			return getTable();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.StructuredViewer#doFindItem(java.lang.Object)
-	 */
-	protected Widget doFindItem(Object element) {
-
-		TableItem[] children = table.getItems();
-		for (int i = 0; i < children.length; i++) {
-			TableItem 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) {
-		if (widget instanceof TableItem) {
-			final TableItem item = (TableItem) 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 = table.getColumnCount();
-			if (columnCount == 0)
-				columnCount = 1;// If there are no columns do the first one
-
-			// 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);
-				columnViewer.refresh(updateCell(getRowPartFromItem(item),
-						column));
-
-				// As it is possible for user code to run the event
-				// loop check here.
-				if (item.isDisposed()) {
-					unmapElement(element, item);
-					return;
-				}
-
-			}
-
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getColumnViewerOwner(int)
-	 */
-	protected Widget getColumnViewerOwner(int columnIndex) {
-		if (columnIndex < 0 || columnIndex > getTable().getColumnCount()) {
-			return null;
-		}
-
-		if (getTable().getColumnCount() == 0)// Hang it off the table if it
-			return getTable();
-
-		return getTable().getColumn(columnIndex);
-	}
-
-	/**
-	 * Set the TableColumnViewerPart at columnIndex to be viewerPart.
-	 * 
-	 * @param viewerPart
-	 * @param columnIndex
-	 */
-	public void setColumnPart(ViewerColumn viewerPart, int columnIndex) {
-		TableColumn column = getTable().getColumn(columnIndex);
-		column.setData(ViewerColumn.COLUMN_VIEWER_KEY, viewerPart);
-	}
-
-	/**
-	 * Starts editing the given element.
-	 * 
-	 * @param element
-	 *            the element
-	 * @param column
-	 *            the column number
-	 */
-	public void editElement(Object element, int column) {
-		tableViewerImpl.editElement(element, column);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getCellEditors()
-	 */
-	public CellEditor[] getCellEditors() {
-		return tableViewerImpl.getCellEditors();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getCellModifier()
-	 */
-	public ICellModifier getCellModifier() {
-		return tableViewerImpl.getCellModifier();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getColumnProperties()
-	 */
-	public Object[] getColumnProperties() {
-		return tableViewerImpl.getColumnProperties();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.Viewer#getControl()
-	 */
-	public Control getControl() {
-		return table;
-	}
-
-	/**
-	 * 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 < table.getItemCount()) {
-			TableItem i = table.getItem(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 = table.getSelection();
-		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 = getTable().getSelectionIndices();
-		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
-				Object element = getTable().getItem(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
-					TableItem item = getTable().getItem(selectionIndex);
-					element = item.getData();
-				}
-				if (element != null) {
-					result.add(element);
-				}
-			}
-
-		}
-		return result;
-	}
-
-	/**
-	 * Returns this table viewer's table control.
-	 * 
-	 * @return the table control
-	 */
-	public Table getTable() {
-		return table;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ContentViewer#hookControl(org.eclipse.swt.widgets.Control)
-	 */
-	protected void hookControl(Control control) {
-		super.hookControl(control);
-		Table tableControl = (Table) control;
-		tableControl.addMouseListener(new MouseAdapter() {
-			public void mouseDown(MouseEvent e) {
-				tableViewerImpl.handleMouseDown(e);
-			}
-		});
-	}
-
-	/*
-	 * Returns the index where the item should be inserted.
-	 */
-	protected int indexForElement(Object element) {
-		ViewerComparator comparator = getComparator();
-		if (comparator == null) {
-			return table.getItemCount();
-		}
-		int count = table.getItemCount();
-		int min = 0, max = count - 1;
-		while (min <= max) {
-			int mid = (min + max) / 2;
-			Object data = table.getItem(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 = table.getItem(mid).getData();
-					compare = comparator.compare(this, data, element);
-				}
-				return mid;
-			}
-			if (compare < 0) {
-				min = mid + 1;
-			} else {
-				max = mid - 1;
-			}
-		}
-		return min;
-	}
-
-	/**
-	 * Initializes the table viewer implementation.
-	 */
-	private void initTableViewerImpl() {
-		tableViewerImpl = new TableEditorImpl(this) {
-			Rectangle getBounds(Item item, int columnNumber) {
-				return ((TableItem) item).getBounds(columnNumber);
-			}
-
-			int getColumnCount() {
-				return getTable().getColumnCount();
-			}
-
-			Item[] getSelection() {
-				return getTable().getSelection();
-			}
-
-			void setEditor(Control w, Item item, int columnNumber) {
-				tableEditor.setEditor(w, (TableItem) item, columnNumber);
-			}
-
-			void setSelection(StructuredSelection selection, boolean b) {
-				TableViewer.this.setSelection(selection, b);
-			}
-
-			void showSelection() {
-				getTable().showSelection();
-			}
-
-			void setLayoutData(CellEditor.LayoutData layoutData) {
-				tableEditor.grabHorizontal = layoutData.grabHorizontal;
-				tableEditor.horizontalAlignment = layoutData.horizontalAlignment;
-				tableEditor.minimumWidth = layoutData.minimumWidth;
-			}
-
-			void handleDoubleClickEvent() {
-				Viewer viewer = getViewer();
-				fireDoubleClick(new DoubleClickEvent(viewer, viewer
-						.getSelection()));
-				fireOpen(new OpenEvent(viewer, viewer.getSelection()));
-			}
-		};
-	}
-
-	/*
-	 * (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 {
-			// refresh() attempts to preserve selection, which we want here
-			refresh();
-		} 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) {
-		tableViewerImpl.applyEditorValue();
-		if (getComparator() != null || hasFilters()) {
-			add(element);
-			return;
-		}
-		if (position == -1) {
-			position = table.getItemCount();
-		}
-
-		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) {
-		tableViewerImpl.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 = ((IStructuredContentProvider) getContentProvider())
-						.getElements(root);
-				getTable().setItemCount(virtualManager.cachedElements.length);
-			}
-		}
-		getTable().clearAll();
-	}
-
-	/**
-	 * 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());
-		TableItem[] items = getTable().getItems();
-		int min = Math.min(children.length, items.length);
-		for (int i = 0; i < min; ++i) {
-
-			TableItem 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.
-				item.setText(""); //$NON-NLS-1$
-				item.setImage(new Image[Math.max(1, table.getColumnCount())]);// Clear
-				// all
-				// images
-				disassociate(item);
-			}
-		}
-		// 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);
-			}
-			table.remove(min, items.length - 1);
-		}
-		// Workaround for 1GDGN4Q: ITPUI:WIN2000 - TableViewer icons get
-		// scrunched
-		if (table.getItemCount() == 0) {
-			table.removeAll();
-		}
-		// Update items which were removed above
-		for (int i = 0; i < min; ++i) {
-
-			TableItem 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)) {
-				setInput(null);
-				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 TableItem) {
-				TableItem item = (TableItem) w;
-				disassociate(item);
-				indices[count++] = table.indexOf(item);
-			}
-		}
-		if (count < indices.length) {
-			System.arraycopy(indices, 0, indices = new int[count], 0, count);
-		}
-		if (virtualManager != null) {
-			virtualManager.removeIndices(indices);
-		}
-		table.remove(indices);
-
-		// Workaround for 1GDGN4Q: ITPUI:WIN2000 - TableViewer icons get
-		// scrunched
-		if (table.getItemCount() == 0) {
-			table.removeAll();
-		}
-	}
-
-	/**
-	 * 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 tableViewerImpl.isCellEditorActive();
-	}
-
-	/**
-	 * 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 (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 TableItem) {
-			getTable().showItem((TableItem) w);
-		}
-	}
-
-	/**
-	 * Sets the cell editors of this table viewer.
-	 * 
-	 * @param editors
-	 *            the list of cell editors
-	 */
-	public void setCellEditors(CellEditor[] editors) {
-		tableViewerImpl.setCellEditors(editors);
-	}
-
-	/**
-	 * Sets the cell modifier of this table viewer.
-	 * 
-	 * @param modifier
-	 *            the cell modifier
-	 */
-	public void setCellModifier(ICellModifier modifier) {
-		tableViewerImpl.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) {
-		tableViewerImpl.setColumnProperties(columnProperties);
-	}
-
-	/**
-	 * The table 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>.
-	 * <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>
-	 * <p>
-	 * If the label provider implements the mixin interface ITooltipProvider, it
-	 * can provide custom tooltips.
-	 * </p>
-	 */
-	public void setLabelProvider(IBaseLabelProvider labelProvider) {
-		Assert.isTrue(labelProvider instanceof ITableLabelProvider
-				|| labelProvider instanceof ILabelProvider
-				|| labelProvider instanceof CellLabelProvider);
-		clearColumnParts();// Clear before refresh
-		super.setLabelProvider(labelProvider);
-	}
-
-	/**
-	 * Clear the viewer parts for the columns
-	 */
-	private void clearColumnParts() {
-		TableColumn[] columns = getTable().getColumns();
-		if (columns.length == 0)
-			getTable().setData(ViewerColumn.COLUMN_VIEWER_KEY, null);
-		else {
-			for (int i = 0; i < columns.length; i++) {
-				columns[i].setData(ViewerColumn.COLUMN_VIEWER_KEY, null);
-
-			}
-		}
-
-	}
-
-	/**
-	 * <p>
-	 * Sets a new selection for this viewer and optionally makes it visible. The
-	 * TableViewer implmentation of this method is ineffecient 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 effeciently 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);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.StructuredViewer#setSelectionToWidget(java.util.List,
-	 *      boolean)
-	 */
-	protected void setSelectionToWidget(List list, boolean reveal) {
-
-		if (list == null) {
-			table.deselectAll();
-			return;
-		}
-
-		if (virtualManager != null) {
-			virtualSetSelectionToWidget(list, reveal);
-			return;
-		}
-
-		int size = list.size();
-		TableItem[] items = new TableItem[size];
-		int count = 0;
-		for (int i = 0; i < size; ++i) {
-			Object o = list.get(i);
-			Widget w = findItem(o);
-			if (w instanceof TableItem) {
-				TableItem item = (TableItem) w;
-				items[count++] = item;
-			}
-		}
-		if (count < size) {
-			System.arraycopy(items, 0, items = new TableItem[count], 0, count);
-		}
-		table.setSelection(items);
-
-		if (reveal) {
-			table.showSelection();
-		}
-
-	}
-
-	/**
-	 * 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()];
-
-		TableItem 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 TableItem) {
-				TableItem item = (TableItem) w;
-				indices[count++] = getTable().indexOf(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 < getTable().getItemCount(); i++) {
-				provider.updateElement(i);
-				TableItem item = getTable().getItem(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)) {
-						TableItem item = getTable().getItem(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);
-		}
-		table.setSelection(indices);
-
-		if (reveal && firstItem != null) {
-			table.showItem(firstItem);
-		}
-	}
-
-	/**
-	 * Set the item count of the receiver.
-	 * 
-	 * @param count
-	 *            the new table size.
-	 * 
-	 * @since 3.1
-	 */
-	public void setItemCount(int count) {
-		int oldCount = getTable().getItemCount();
-		if (count < oldCount) {
-			// need to disassociate elements that are being disposed
-			for (int i = count; i < oldCount; i++) {
-				TableItem item = getTable().getItem(i);
-				if (item.getData() != null) {
-					disassociate(item);
-				}
-			}
-		}
-		getTable().setItemCount(count);
-		if (virtualManager != null) {
-			virtualManager.adjustCacheSize(count);
-		}
-		getTable().redraw();
-	}
-
-	/**
-	 * Replace the entries starting at index with elements. This method assumes
-	 * all of these values are correct and will not call the content provider to
-	 * verify. <strong>Note that this method will create a TableItem for all of
-	 * the elements provided</strong>.
-	 * 
-	 * @param element
-	 * @param index
-	 * @see ILazyContentProvider
-	 * 
-	 * @since 3.1
-	 */
-	public void replace(Object element, int index) {
-		TableItem item = getTable().getItem(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) {
-		TableItem item = getTable().getItem(index);
-		if (item.getData() != null) {
-			disassociate(item);
-		}
-		table.clear(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);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.StructuredViewer#getRowPartFromItem(org.eclipse.swt.widgets.Widget)
-	 */
-	protected ViewerRow getRowPartFromItem(Widget item) {
-		ViewerRow part = (ViewerRow) item.getData(ViewerRow.ROWPART_KEY);
-
-		if (part == null) {
-			part = new TableViewerRow(((TableItem) item));
-		}
-
-		return part;
-	}
-
-	/**
-	 * Create a new row with style at index
-	 * 
-	 * @param style
-	 * @param rowIndex
-	 * @return ViewerRow
-	 */
-	private ViewerRow createNewRowPart(int style, int rowIndex) {
-		TableItem item;
-
-		if (rowIndex >= 0) {
-			item = new TableItem(table, style, rowIndex);
-		} else {
-			item = new TableItem(table, style);
-		}
-
-		return getRowPartFromItem(item);
-	}
-
-	/**
-	 * Returns the item at the given display-relative coordinates, or
-	 * <code>null</code> if there is no item at that location.
-	 * <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
-	 */
-	protected Item getItem(int x, int y) {
-		return table.getItem(table.toControl(new Point(x, y)));
-	}
-
-}
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 812f3ce..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerRow.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
- *
- * @since 3.3
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Shindl <tom.schindl@bestsolution.at> - 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;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * TableViewerRow is the Table specific implementation of ViewerRow
- * @since 3.3
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as
- * part of a work in progress. This API may change at any given time. Please 
- * do not use this API without consulting with the Platform/UI team.
- *
- */
-public class TableViewerRow extends ViewerRow {
-	private TableItem item;
-	
-	/**
-	 * Create a new instance of the receiver from item.
-	 * @param item
-	 */
-	TableViewerRow(TableItem item) {
-		super(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 Item getItem() {
-		return 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) {
-		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();
-	}
-
-}
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 7bb4e75..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TextCellEditor.java
+++ /dev/null
@@ -1,477 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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>
- */
-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 "deleteable" 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 explaination 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 occured
-        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;
-    }
-
-    /**
-     * The <code>TextCellEditor</code>  implementation of this 
-     * <code>CellEditor</code> method always returns <code>true</code>.
-     */
-    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();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ToolTipSupport.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ToolTipSupport.java
deleted file mode 100644
index 86a2ec8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ToolTipSupport.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
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     Fredy Dobler <fredy@dobler.net> - bug 159600
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.Timer;
-
-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.layout.FillLayout;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * The TooltipSupport is the class that provides tooltips for
- * ColumnViewers.
- * @since 3.3
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as
- * part of a work in progress. This API may change at any given time. Please 
- * do not use this API without consulting with the Platform/UI team.
- *
- */
-class ToolTipSupport {
-	private ColumnViewer viewer;
-	private Listener listener = new MouseListener();
-	private static final int DEFAULT_SHIFT_X = 10;
-	private static final int DEFAULT_SHIFT_Y = 0;
-	
-	ToolTipSupport(ColumnViewer viewer) {
-		this.viewer = viewer;
-	}
-	
-	/**
-	 * activate tooltip support for this viewer
-	 */
-	public void activate() {
-		deactivate();
-		viewer.getControl().addListener(SWT.Dispose, listener);
-		viewer.getControl().addListener(SWT.MouseHover, listener);
-		viewer.getControl().addListener(SWT.MouseMove, listener);
-		viewer.getControl().addListener(SWT.MouseExit, listener);
-		viewer.getControl().addListener(SWT.MouseDown, listener);
-	}
-	
-	/**
-	 * deactivate tooltip support for this viewer
-	 */
-	public void deactivate() {
-		viewer.getControl().removeListener(SWT.Dispose, listener);
-		viewer.getControl().removeListener(SWT.MouseHover, listener);
-		viewer.getControl().removeListener(SWT.MouseMove, listener);
-		viewer.getControl().removeListener(SWT.MouseExit, listener);
-		viewer.getControl().removeListener(SWT.MouseDown, listener);
-	}
-	
-	private class MouseListener implements Listener {
-		private Shell tip;
-		private TooltipHideListener hideListener = new TooltipHideListener();
-		private Timer timer = new Timer(true);
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-		 */
-		public void handleEvent(Event event) {
-			switch (event.type) {
-			case SWT.Dispose:
-				if( timer != null ) {
-					timer.cancel();
-				}
-			case SWT.KeyDown:
-			case SWT.MouseMove:
-			case SWT.MouseDown:
-				disposeTooltip(tip);
-				break;
-			case SWT.MouseHover:
-                if (!(event.widget instanceof Control))
-                  break;
-                // map receiver-relative coordinates to display-relative coordinates
-                ViewerRow row = viewer.getRowPart(((Control) event.widget).toDisplay(
-                    event.x, event.y));
-                viewer.getControl().setToolTipText(""); //$NON-NLS-1$
-
-                if (row != null)
-                {
-                  // use receiver-relative coordinates
-                  popupTooltip(row, new Point(event.x, event.y));
-                }
-                break;
-			}
-		}
-		
-		/**
-		 * Popup a tooltip for the row at Point p.
-		 * @param row
-		 * @param p
-		 */
-		private void popupTooltip(ViewerRow row, Point p) {
-			Object element = row.getItem().getData();
-			disposeTooltip(tip);
-
-			ViewerColumn viewPart = viewer.getViewerColumn(row.getColumnIndex(p));
-			
-			if( viewPart == null ) {
-				return;
-			}
-			
-			CellLabelProvider labelProvider = viewPart.getLabelProvider();
-			
-			String text = labelProvider.getToolTipText(element);
-			
-			if( text != null ) {
-				
-				if( labelProvider.useNativeToolTip(element) ) {
-					viewer.getControl().setToolTipText(text);
-					return;
-				}
-				
-				tip = new Shell(viewer.getControl().getShell(), SWT.ON_TOP | SWT.TOOL);
-				tip.setLayout(new FillLayout());
-				CLabel label = new CLabel(tip, labelProvider.getToolTipStyle(element));
-				label.setText(text);
-				label.addListener(SWT.MouseExit, hideListener);
-				label.addListener(SWT.MouseDown, hideListener);
-				
-				Image img =  labelProvider.getToolTipImage(element);
-				
-				if( img != null) {
-					label.setImage(img);
-				}
-				
-				Color color = labelProvider.getToolTipForegroundColor(element);
-				if( color == null ) {
-					color = viewer.getControl().getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND);
-				}
-				label.setForeground(color);
-				
-				color = labelProvider.getToolTipBackgroundColor(element);
-				if( color == null ) {
-					color = viewer.getControl().getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND);
-				}
-				label.setBackground(color);
-				
-				Font font = labelProvider.getToolTipFont(element);
-				
-				if( font != null ) {
-					label.setFont(font);
-				}
-				
-				Point pt = viewer.getControl().toDisplay(p);
-				Point shift = labelProvider.getToolTipShift(element);
-				
-				if( shift == null ) {
-					pt.x += DEFAULT_SHIFT_X;
-					pt.y += DEFAULT_SHIFT_Y;
-				} else {
-					pt.x += shift.x;
-					pt.y += shift.y;
-				}
-				
-				tip.pack();
-				tip.setLocation(pt);
-				tip.setVisible(true);
-			}
-		}
-		
-		/**
-		 * Dispose the tooltip.
-		 * @param tip
-		 */
-		private void disposeTooltip(Shell tip) {
-			if (tip != null && !tip.isDisposed()) {
-				tip.dispose();
-			}
-
-			tip = null;
-		}
-	}
-	
-	/**
-	 * TooltipHideListener is a listener for tooltip removal.
-	 * @since 3.3
-	 *
-	 */
-	private class TooltipHideListener implements Listener {
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-		 */
-		public void handleEvent(Event event) {
-			CLabel label = (CLabel) event.widget;
-			Shell shell = label.getShell();
-			switch (event.type) {
-			case SWT.MouseDown:
-				viewer.setSelection(new StructuredSelection());
-				// fall through
-			case SWT.MouseExit:
-				viewer.getControl().setFocus();
-				shell.dispose();
-				break;
-			}
-		}
-	}
-}
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 b359cbc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeColumnViewerLabelProvider.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
- *     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 <strong>EXPERIMENTAL</strong> This class or interface has been
- *        added as part of a work in progress. This API may change at any given
- *        time. Please do not use this API without consulting with the
- *        Platform/UI team.
- * 
- */
-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/TreeEditorImpl.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeEditorImpl.java
deleted file mode 100644
index ba893ef..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeEditorImpl.java
+++ /dev/null
@@ -1,355 +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
- *     Tom Shindl <tom.schindl@bestsolution.at> - Refactored to use ViewerColumn
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-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.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-
-/**
- * Internal tree viewer implementation.
- * 
- * @since 3.1
- */
-/* package */abstract class TreeEditorImpl {
-
-    private CellEditor cellEditor;
-
-    private CellEditor[] cellEditors;
-
-    private ICellModifier cellModifier;
-
-    private String[] columnProperties;
-
-    private Item treeItem;
-
-    private int columnNumber;
-
-    private ICellEditorListener cellEditorListener;
-
-    private FocusListener focusListener;
-
-    private MouseListener mouseListener;
-
-    private int doubleClickExpirationTime;
-
-    private ColumnViewer viewer;
-
-    TreeEditorImpl(ColumnViewer viewer) {
-        this.viewer = viewer;
-        initCellEditorListener();
-    }
-
-    /**
-     * Returns this <code>TreeViewerImpl</code> viewer
-     * 
-     * @return the viewer
-     */
-    public StructuredViewer getViewer() {
-        return viewer;
-    }
-
-    private void activateCellEditor() {
-    	ViewerColumn part = viewer.getViewerColumn(columnNumber);
-    	Object element = treeItem.getData();
-    	
-    	if( part != null && part.getEditingSupport() != null && part.getEditingSupport().canEdit(element) ) {
-    		cellEditor = part.getEditingSupport().getCellEditor(element);
-    		if( cellEditor != null ) {
-    			cellEditor.addListener(cellEditorListener);
-                Object value = part.getEditingSupport().getValue(element);
-                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, treeItem, 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 (treeItem == null || treeItem.isDisposed()) {
-            //item no longer exists
-            return;
-        }
-        int columnToEdit;
-        int columns = getColumnCount();
-        if (columns == 0) {
-            // If no TreeColumn, Tree 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(treeItem, 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.treeItem;
-            // don't null out tree 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();
-		}
-
-        IStructuredSelection structuredSelection;
-        if(element instanceof TreePath) {
-        	structuredSelection = new TreeSelection((TreePath)element, viewer.getComparer());
-        } else {
-        	structuredSelection = new StructuredSelection(element);
-        }
-        setSelection(structuredSelection, true);
-        Item[] selection = getSelection();
-        if (selection.length != 1) {
-			return;
-		}
-
-        treeItem = selection[0];
-
-        // Make sure selection is visible
-        showSelection();
-        columnNumber = column;
-        activateCellEditor();
-
-    }
-
-    abstract Rectangle getBounds(Item item, int columnNumber);
-
-    /**
-     * Get the ViewerCell Editors for the receiver.
-     * @return CellEditor[]
-     */
-    public CellEditor[] getCellEditors() {
-        return cellEditors;
-    }
-
-    /**
-     * Get the cell modifier for the receiver.
-     * @return ICellModifier
-     */
-    public ICellModifier getCellModifier() {
-        return cellModifier;
-    }
-
-    abstract int getColumnCount();
-
-    /**
-     * Get the column properties for the receiver.
-     * @return Object[]
-     */
-    public Object[] getColumnProperties() {
-        return columnProperties;
-    }
-
-    abstract Item[] getSelection();
-
-    /**
-     * Handles the mouse down event; activates the cell editor.
-     * @param event
-     */
-    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) {
-            treeItem = null;
-            return;
-        }
-        treeItem = items[0];
-        activateCellEditor(event);
-    }
-
-    private void initCellEditorListener() {
-        cellEditorListener = new ICellEditorListener() {
-            public void editorValueChanged(boolean oldValidState,
-                    boolean newValidState) {
-                // Ignore.
-            }
-
-            public void cancelEditor() {
-                TreeEditorImpl.this.cancelEditing();
-            }
-
-            public void applyEditorValue() {
-                TreeEditorImpl.this.applyEditorValue();
-            }
-        };
-    }
-
-    /**
-     * Return whether or not there is an active cell editor.
-     * @return boolean <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 treeItem) {
-    	ViewerColumn part = viewer.getViewerColumn(columnNumber);
-    	
-    	if( part != null && part.getEditingSupport() != null ) {
-        	part.getEditingSupport().setValue(treeItem.getData(), cellEditor.getValue());
-        }
-    }
-
-    /**
-     * Set the cell editors for the receiver.
-     * @param editors
-     */
-    public void setCellEditors(CellEditor[] editors) {
-        this.cellEditors = editors;
-    }
-
-    /**
-     * Set the cell modifier for the receiver.
-     * @param modifier
-     */
-    public void setCellModifier(ICellModifier modifier) {
-        this.cellModifier = modifier;
-    }
-
-    /**
-     * Set the column properties for the receiver.
-     * @param columnProperties
-     */
-    public void setColumnProperties(String[] columnProperties) {
-        this.columnProperties = columnProperties;
-    }
-
-    abstract void setEditor(Control w, Item item, int fColumnNumber);
-
-    abstract void setLayoutData(CellEditor.LayoutData layoutData);
-
-    abstract void setSelection(IStructuredSelection selection, boolean b);
-
-    abstract void showSelection();
-
-    abstract void handleDoubleClickEvent();
-}
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 04f9521..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeExpansionEvent.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.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 3b64cca..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeNode.java
+++ /dev/null
Binary files differ
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 100a377..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeNodeContentProvider.java
+++ /dev/null
Binary files differ
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 566711e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreePath.java
+++ /dev/null
@@ -1,237 +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;
-
-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.
-	 * 
-	 * @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.
-	 * 
-	 * @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;
-		}
-		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 c8df6f2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreePathViewerSorter.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.jface.viewers;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-/**
- * A viewer sorter that is provded 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 givcen 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 74d4d41..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeSelection.java
+++ /dev/null
@@ -1,224 +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;
-
-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.
-	 * <p>
-	 * Note that TreeSelection.EMPTY is not equals() to StructuredViewer.EMPTY.
-	 * </p>
-	 * 
-	 * @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();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (obj instanceof TreeSelection) {
-			TreeSelection selection = (TreeSelection) obj;
-			int size = getPaths().length;
-			if (selection.getPaths().length == size) {
-				if (size > 0) {
-					for (int i = 0; i < paths.length; i++) {
-						if (!paths[i].equals(selection.paths[i])) {
-							return false;
-						}
-					}
-				}
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		int code = getClass().hashCode();
-		if (paths != null) {
-			for (int i = 0; i < paths.length; i++) {
-				code = code * 17 + paths[i].hashCode();
-			}
-		}
-		return code;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeSelection#getPaths()
-	 */
-	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 {
-			Assert.isTrue(false, "Should not happen"); //$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 01f9496..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer.java
+++ /dev/null
@@ -1,1022 +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
- *     Tom Schindl <tom.schindl@bestsolution.at> - concept of ViewerRow
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TreeEditor;
-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.TreeListener;
-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.Item;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-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>
- * Content providers for tree viewers must implement either the
- * {@link ITreeContentProvider} interface or (as of 3.2) the
- * {@link ILazyTreeContentProvider} interface. If the content provider is an
- * <code>ILazyTreeContentProvider</code>, the underlying Tree must be created
- * using the {@link SWT#VIRTUAL} style bit, and the tree viewer will not support
- * sorting or filtering.
- * </p>
- */
-public class TreeViewer extends AbstractTreeViewer {
-
-	private static final String VIRTUAL_DISPOSE_KEY = Policy.JFACE
-			+ ".DISPOSE_LISTENER"; //$NON-NLS-1$
-
-	/**
-	 * Internal tree viewer implementation.
-	 */
-	private TreeEditorImpl treeViewerImpl;
-
-	/**
-	 * This viewer's control.
-	 */
-	private Tree tree;
-
-	/**
-	 * This viewer's tree editor.
-	 */
-	private TreeEditor treeEditor;
-
-	/**
-	 * Flag for whether the tree has been disposed of.
-	 */
-	private boolean treeIsDisposed = false;
-
-	/**
-	 * 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);
-		treeEditor = new TreeEditor(tree);
-		initTreeViewerImpl();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void addTreeListener(Control c, TreeListener listener) {
-		((Tree) c).addTreeListener(listener);
-	}
-
-	/**
-	 * Cancels a currently active cell editor. All changes already done in the
-	 * cell editor are lost.
-	 * 
-	 * @since 3.1
-	 */
-	public void cancelEditing() {
-		treeViewerImpl.cancelEditing();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void doUpdateItem(final Item item, Object element) {
-		if (!(item instanceof TreeItem)) {
-			return;
-		}
-		TreeItem treeItem = (TreeItem) item;
-		if (treeItem.isDisposed()) {
-			unmapElement(element, treeItem);
-			return;
-		}
-
-		int columnCount = getTree().getColumnCount();
-		if (columnCount == 0)// If no columns are created then fake one
-			columnCount = 1;
-
-		for (int column = 0; column < columnCount; column++) {
-			ViewerColumn columnViewer = getViewerColumn(column);
-			columnViewer.refresh(updateCell(getRowPartFromItem(treeItem),
-					column));
-
-			// As it is possible for user code to run the event
-			// loop check here.
-			if (item.isDisposed()) {
-				unmapElement(element, item);
-				return;
-			}
-
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getColumnViewerOwner(int)
-	 */
-	protected Widget getColumnViewerOwner(int columnIndex) {
-		if (columnIndex < 0 || columnIndex > getTree().getColumnCount()) {
-			return null;
-		}
-
-		if (getTree().getColumnCount() == 0)// Hang it off the table if it
-			return getTree();
-
-		return getTree().getColumn(columnIndex);
-	}
-
-	/**
-	 * Override to handle tree paths.
-	 * 
-	 * @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);
-	}
-
-	/**
-	 * Starts editing the given element.
-	 * 
-	 * @param element
-	 *            the element
-	 * @param column
-	 *            the column number
-	 * @since 3.1
-	 */
-	public void editElement(Object element, int column) {
-		treeViewerImpl.editElement(element, column);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getCellEditors()
-	 */
-	public CellEditor[] getCellEditors() {
-		return treeViewerImpl.getCellEditors();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getCellModifier()
-	 */
-	public ICellModifier getCellModifier() {
-		return treeViewerImpl.getCellModifier();
-	}
-
-	/*
-	 * (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)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getColumnProperties()
-	 */
-	public Object[] getColumnProperties() {
-		return treeViewerImpl.getColumnProperties();
-	}
-
-	/*
-	 * (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();
-	}
-
-	/**
-	 * Returns the item at the given display-relative coordinates, or
-	 * <code>null</code> if there is no item at that location.
-	 * <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
-	 */
-	protected Item getItem(int x, int y) {
-		return getTree().getItem(getTree().toControl(new Point(x, y)));
-	}
-
-	/*
-	 * (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;
-		treeControl.addMouseListener(new MouseAdapter() {
-			public void mouseDown(MouseEvent e) {
-				treeViewerImpl.handleMouseDown(e);
-			}
-		});
-		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 (getContentProvider() instanceof ILazyTreeContentProvider) {
-						ILazyTreeContentProvider lazyContentProvider = (ILazyTreeContentProvider) getContentProvider();
-						TreeItem item = (TreeItem) event.item;
-						TreeItem parentItem = item.getParentItem();
-						Object parent;
-						int index;
-						if (parentItem != null) {
-							parent = parentItem.getData();
-							index = parentItem.indexOf(item);
-						} else {
-							parent = getInput();
-							index = getTree().indexOf(item);
-						}
-						lazyContentProvider.updateElement(parent, index);
-					}
-				}
-			});
-		}
-	}
-
-	/**
-	 * Initializes the tree viewer implementation.
-	 */
-	private void initTreeViewerImpl() {
-		treeViewerImpl = new TreeEditorImpl(this) {
-			Rectangle getBounds(Item item, int columnNumber) {
-				return ((TreeItem) item).getBounds(columnNumber);
-			}
-
-			int getColumnCount() {
-				return getTree().getColumnCount();
-			}
-
-			Item[] getSelection() {
-				return getTree().getSelection();
-			}
-
-			void setEditor(Control w, Item item, int columnNumber) {
-				treeEditor.setEditor(w, (TreeItem) item, columnNumber);
-			}
-
-			void setSelection(IStructuredSelection selection, boolean b) {
-				TreeViewer.this.setSelection(selection, b);
-			}
-
-			void showSelection() {
-				getTree().showSelection();
-			}
-
-			void setLayoutData(CellEditor.LayoutData layoutData) {
-				treeEditor.grabHorizontal = layoutData.grabHorizontal;
-				treeEditor.horizontalAlignment = layoutData.horizontalAlignment;
-				treeEditor.minimumWidth = layoutData.minimumWidth;
-			}
-
-			void handleDoubleClickEvent() {
-				Viewer viewer = getViewer();
-				fireDoubleClick(new DoubleClickEvent(viewer, viewer
-						.getSelection()));
-				fireOpen(new OpenEvent(viewer, viewer.getSelection()));
-			}
-		};
-	}
-
-	/**
-	 * Returns whether there is an active cell editor.
-	 * 
-	 * @return <code>true</code> if there is an active cell editor, and
-	 *         <code>false</code> otherwise
-	 * @since 3.1
-	 */
-	public boolean isCellEditorActive() {
-		return treeViewerImpl.isCellEditorActive();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected Item newItem(Widget parent, int flags, int ix) {
-		TreeItem item;
-
-		if (parent instanceof TreeItem) {
-			item = (TreeItem) createNewRowPart(getRowPartFromItem(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();
-	}
-
-	/**
-	 * Sets the cell editors of this tree viewer.
-	 * 
-	 * @param editors
-	 *            the list of cell editors
-	 * @since 3.1
-	 */
-	public void setCellEditors(CellEditor[] editors) {
-		treeViewerImpl.setCellEditors(editors);
-	}
-
-	/**
-	 * Sets the cell modifier of this tree viewer.
-	 * 
-	 * @param modifier
-	 *            the cell modifier
-	 * @since 3.1
-	 */
-	public void setCellModifier(ICellModifier modifier) {
-		treeViewerImpl.setCellModifier(modifier);
-	}
-
-	/**
-	 * Sets the column properties of this tree viewer. The properties must
-	 * correspond with the columns of the tree control. They are used to
-	 * identify the column in a cell modifier.
-	 * 
-	 * @param columnProperties
-	 *            the list of column properties
-	 * @since 3.1
-	 */
-	public void setColumnProperties(String[] columnProperties) {
-		treeViewerImpl.setColumnProperties(columnProperties);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void setExpanded(Item node, boolean expand) {
-		((TreeItem) node).setExpanded(expand);
-		if (getContentProvider() instanceof ILazyTreeContentProvider) {
-			// force repaints to happen
-			getControl().update();
-		}
-	}
-
-	/**
-	 * 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>.
-	 * <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. Note that the underlying {@link Tree} must be
-	 * configured with {@link TreeColumn} objects in this case.
-	 * </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);
-		clearColumnParts();// Clear before refresh
-		super.setLabelProvider(labelProvider);
-
-	}
-
-	/**
-	 * Clear the viewer parts for the columns
-	 */
-	private void clearColumnParts() {
-		TreeColumn[] columns = getTree().getColumns();
-		if (columns.length == 0)
-			getTree().setData(ViewerColumn.COLUMN_VIEWER_KEY, null);
-		else {
-			for (int i = 0; i < columns.length; i++) {
-				columns[i].setData(ViewerColumn.COLUMN_VIEWER_KEY, null);
-
-			}
-		}
-
-	}
-
-	/*
-	 * (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);
-	}
-
-	/**
-	 * Returns <code>true</code> if the given list and array of items refer to
-	 * the same model elements. Order is unimportant.
-	 * 
-	 * @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
-	 */
-	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 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) {
-			return;
-		}
-		super.assertContentProviderType(provider);
-	}
-
-	protected Object[] getRawChildren(Object parent) {
-		if (getContentProvider() instanceof ILazyTreeContentProvider) {
-			return new Object[0];
-		}
-		return super.getRawChildren(parent);
-	}
-
-	/**
-	 * For a TreeViewer with a tree with the VIRTUAL style bit set, set the
-	 * number of children of the given element. To set the number of children of
-	 * the invisible root of the tree, the input object is passed as the
-	 * element.
-	 * 
-	 * @param element
-	 * @param count
-	 * 
-	 * @since 3.2
-	 */
-	public void setChildCount(final Object element, final int count) {
-		preservingSelection(new Runnable() {
-			public void run() {
-				Tree tree = (Tree) doFindInputItem(element);
-				if (tree != null) {
-					tree.setItemCount(count);
-					return;
-				}
-				Widget[] items = findItems(element);
-				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, 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 parent
-	 *            the parent of the element that should be updated
-	 * @param index
-	 *            the index in the parent's children
-	 * @param element
-	 *            the new element
-	 * 
-	 * @see #setChildCount(Object, int)
-	 * @see ILazyTreeContentProvider
-	 * 
-	 * @since 3.2
-	 */
-	public void replace(Object parent, int index, Object element) {
-		if (parent.equals(getInput())) {
-			if (index < tree.getItemCount()) {
-				updateItem(tree.getItem(index), element);
-			}
-		} else {
-			Widget[] parentItems = findItems(parent);
-			for (int i = 0; i < parentItems.length; i++) {
-				TreeItem parentItem = (TreeItem) parentItems[i];
-				if (index < parentItem.getItemCount()) {
-					updateItem(parentItem.getItem(index), element);
-				}
-			}
-		}
-	}
-
-	public boolean isExpandable(Object element) {
-		if (getContentProvider() instanceof ILazyTreeContentProvider) {
-			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) {
-		if (!(element instanceof TreePath)
-				&& (getContentProvider() instanceof ILazyTreeContentProvider)) {
-			ILazyTreeContentProvider lazyTreeContentProvider = (ILazyTreeContentProvider) getContentProvider();
-			return lazyTreeContentProvider.getParent(element);
-		}
-		return super.getParentElement(element);
-	}
-
-	protected void createChildren(Widget widget) {
-		if (getContentProvider() instanceof ILazyTreeContentProvider) {
-			final Item[] tis = getChildren(widget);
-			if (tis != null && tis.length > 0) {
-				// children already there, touch them
-				for (int i = 0; i < tis.length; i++) {
-					tis[i].getText();
-				}
-				return;
-			}
-			ILazyTreeContentProvider lazyTreeContentProvider = (ILazyTreeContentProvider) getContentProvider();
-			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();
-			}
-			TreeItem[] children;
-			if (widget instanceof Tree) {
-				children = ((Tree) widget).getItems();
-			} else {
-				children = ((TreeItem) widget).getItems();
-			}
-			if (element != null && children.length > 0) {
-				for (int i = 0; i < children.length; i++) {
-					lazyTreeContentProvider.updateElement(element, i);
-				}
-			}
-			return;
-		}
-		super.createChildren(widget);
-	}
-
-	protected void internalAdd(Widget widget, Object parentElement,
-			Object[] childElements) {
-		if (getContentProvider() instanceof ILazyTreeContentProvider) {
-			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 (!(getContentProvider() instanceof ILazyTreeContentProvider)) {
-			return;
-		}
-		ILazyTreeContentProvider lazyTreeContentProvider = (ILazyTreeContentProvider) getContentProvider();
-		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);
-			}
-			lazyTreeContentProvider.updateElement(parentElement, 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 (getContentProvider() instanceof ILazyTreeContentProvider) {
-			// first phase: update child counts
-			virtualRefreshChildCounts(widget, element);
-			// second phase: update labels
-			if (updateLabels) {
-				if (widget instanceof Tree) {
-					((Tree) widget).clearAll(true);
-				} else if (widget instanceof TreeItem) {
-					((TreeItem) widget).clearAll(true);
-				}
-			}
-			return;
-		}
-		super.internalRefreshStruct(widget, element, updateLabels);
-	}
-
-	/**
-	 * Traverses the visible (expanded) part of the tree and updates child
-	 * counts.
-	 * 
-	 * @param widget
-	 * @param element
-	 * @param updateLabels
-	 */
-	private void virtualRefreshChildCounts(Widget widget, Object element) {
-		ILazyTreeContentProvider lazyTreeContentProvider = (ILazyTreeContentProvider) getContentProvider();
-		if (widget instanceof Tree || ((TreeItem) widget).getExpanded()) {
-			// widget shows children - it is safe to call getChildren
-			if (element != null) {
-				lazyTreeContentProvider.updateChildCount(element,
-						getChildren(widget).length);
-			} else {
-				if (widget instanceof Tree) {
-					((Tree) widget).setItemCount(0);
-				} else {
-					((TreeItem) widget).setItemCount(0);
-				}
-			}
-			// need to get children again because they might have been updated
-			// through a callback to setChildCount.
-			Item[] items = getChildren(widget);
-			for (int i = 0; i < items.length; i++) {
-				Item item = items[i];
-				Object data = item.getData();
-				if (data != null) {
-					virtualRefreshChildCounts(item, data);
-				}
-			}
-		}
-	}
-
-	/*
-	 * 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 getRowPartFromItem(Widget item) {
-		ViewerRow part = (ViewerRow) item.getData(ViewerRow.ROWPART_KEY);
-
-		if (part == null) {
-			part = new TreeViewerRow(((TreeItem) item));
-		}
-
-		return part;
-	}
-
-	/**
-	 * 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 getRowPartFromItem(new TreeItem(tree, style, rowIndex));
-			}
-			return getRowPartFromItem(new TreeItem(tree, style));
-		}
-
-		if (rowIndex >= 0) {
-			return getRowPartFromItem(new TreeItem((TreeItem) parent.getItem(),
-					SWT.NONE, rowIndex));
-		}
-
-		return getRowPartFromItem(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 (getContentProvider() instanceof ILazyTreeContentProvider) {
-			ILazyTreeContentProvider lazyTreeContentProvider = (ILazyTreeContentProvider) getContentProvider();
-			if (widget instanceof Tree && widget.getData() != null) {
-				lazyTreeContentProvider.updateChildCount(widget.getData(), 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 (getContentProvider() instanceof ILazyTreeContentProvider) {
-			ILazyTreeContentProvider contentProvider = (ILazyTreeContentProvider) getContentProvider();
-			Object data = item.getData();
-			int itemCount = 0;
-			if (data != null) {
-				// item is already materialized
-				itemCount = ((TreeItem) item).getItemCount();
-			}
-			contentProvider.updateChildCount(element, 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) {
-		preservingSelection(new Runnable() {
-			public void run() {
-				if (parentOrTreePath.equals(getInput())) {
-					Tree tree = (Tree) getControl();
-					if (index < tree.getItemCount()) {
-						TreeItem item = tree.getItem(index);
-						if (item.getData() != null) {
-							disassociate(item);
-						}
-						item.dispose();
-					}
-				} else {
-					Widget[] parentItems = internalFindItems(parentOrTreePath);
-					for (int i = 0; i < parentItems.length; i++) {
-						TreeItem parentItem = (TreeItem) parentItems[i];
-						if (index < parentItem.getItemCount()) {
-							TreeItem item = parentItem.getItem(index);
-							if (item.getData() != null) {
-								disassociate(item);
-							}
-							item.dispose();
-						}
-					}
-				}
-			}
-		});
-	}       
-}
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 80913c0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerRow.java
+++ /dev/null
@@ -1,147 +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
- *     Tom Schindl <tom.schindl@bestsolution.at> - 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;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * TreeViewerRow is the Tree implementation of ViewerRow.
- * @since 3.3
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as
- * part of a work in progress. This API may change at any given time. Please 
- * do not use this API without consulting with the Platform/UI team.
- *
- */
-public class TreeViewerRow extends ViewerRow {
-	private TreeItem item;
-	
-	/**
-	 * Create a new instance of the receiver.
-	 * @param item
-	 */
-	TreeViewerRow(TreeItem item) {
-		super(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().getItemCount();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getItem()
-	 */
-	public Item 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) {
-		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();
-	}
-}
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 c0f8164..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/Viewer.java
+++ /dev/null
@@ -1,398 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.
-     */
-    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
-     */
-    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
-     */
-    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>
-     */
-    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 fc71b51..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerCell.java
+++ /dev/null
@@ -1,180 +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
- *     Tom Shindl <tom.schindl@bestsolution.at> - 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;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-
-/**
- * The ViewerCell is the JFace representation of a cell entry in a ViewerRow.
- * 
- * @since 3.3 <strong>EXPERIMENTAL</strong> This class or interface has been
- *        added as part of a work in progress. This API may change at any given
- *        time. Please do not use this API without consulting with the
- *        Platform/UI team.
- * 
- */
-public class ViewerCell {
-	private int columnIndex;
-
-	private ViewerRow row;
-
-	/**
-	 * Create a new instance of the receiver on the row.
-	 * 
-	 * @param row
-	 * @param columnIndex
-	 */
-	public ViewerCell(ViewerRow row, int columnIndex) {
-		this.row = row;
-		this.columnIndex = columnIndex;
-	}
-
-	/**
-	 * Get the index of the cell.
-	 * 
-	 * @return int
-	 */
-	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() {
-		return row.getItem().getData();
-	}
-
-	/**
-	 * 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 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) {
-		row = rowItem;
-		columnIndex = column;
-	}
-
-	/**
-	 * Return the item for the receiver.
-	 * 
-	 * @return {@link Item}
-	 */
-	public Item getItem() {
-		return row.getItem();
-	}
-
-	/**
-	 * Get the control for this cell.
-	 * 
-	 * @return {@link Control}
-	 */
-	public Control getControl() {
-		return row.getControl();
-	}
-}
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 b06d227..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerColumn.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
- *     Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * The ViewerColumn is the implementation of the column parts.
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public final class ViewerColumn {
-
-	private CellLabelProvider labelProvider;
-
-	static String COLUMN_VIEWER_KEY = Policy.JFACE + ".columnViewer";//$NON-NLS-1$
-
-	private EditingSupport editingSupport;
-
-	/**
-	 * Create a new instance of the receiver at columnIndex.
-	 * 
-	 * @param columnOwner
-	 * @param provider
-	 */
-	public ViewerColumn(Widget columnOwner, CellLabelProvider provider) {
-		labelProvider = provider;
-		columnOwner.setData(ViewerColumn.COLUMN_VIEWER_KEY, this);
-	}
-
-	/**
-	 * Return the label provider for the receiver.
-	 * 
-	 * @return ViewerLabelProvider
-	 */
-	public CellLabelProvider getLabelProvider() {
-		return labelProvider;
-	}
-
-	/**
-	 * Set the label provider for the column.
-	 * @param labelProvider
-	 *            the new {@link CellLabelProvider}
-	 */
-	public void setLabelProvider(CellLabelProvider labelProvider) {
-		this.labelProvider = labelProvider;
-	}
-
-	/**
-	 * Return the editing support for the reciever.
-	 * @return {@link EditingSupport}
-	 */
-	EditingSupport getEditingSupport() {
-		return editingSupport;
-	}
-
-	/**
-	 * Set the editing support.
-	 * @param editingSupport
-	 *            The {@link EditingSupport} to set.
-	 */
-	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 is exited. Do not cache the cell for
-	 * future use.
-	 * 
-	 * @param cell {@link ViewerCell}
-	 */
-	public void refresh(ViewerCell cell) {
-		getLabelProvider().update(cell);
-	}
-}
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 2a34828..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerDropAdapter.java
+++ /dev/null
@@ -1,455 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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.
-     */
-    private int lastValidOperation = DND.DROP_NONE;
-
-    /**
-     * 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
-     * and expanding on or off. Default is <code>true</code>.
-     */
-    private boolean scrollExpandEnabled = 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;
-    }
-
-    /**
-     * 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) {
-        //update last valid operation
-        if (event.detail != DND.DROP_NONE) {
-            lastValidOperation = event.detail;
-        }
-        //valid drop and set event detail accordingly
-        if (validateDrop(currentTarget, event.detail, event.currentDataType)) {
-            currentOperation = lastValidOperation;
-        } else {
-            currentOperation = DND.DROP_NONE;
-        }
-        event.detail = currentOperation;
-    }
-
-    /* (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);
-
-        //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(currentTarget, event.detail, event.currentDataType)) {
-            event.detail = DND.DROP_NONE;
-        }
-    }
-
-    /**
-     * 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 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;
-    }
-
-    /**
-     * Returns 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);
-
-    /* (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 (scrollExpandEnabled) {
-			event.feedback |= DND.FEEDBACK_EXPAND | 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) {
-        scrollExpandEnabled = 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 b29bb1b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerLabel.java
+++ /dev/null
@@ -1,429 +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
- *     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 tooltip text was
-	 *         never set.
-	 * 
-	 * <strong>EXPERIMENTAL</strong> This method has been added as part of a
-	 * work in progress. This API may change at any given time. Please do not
-	 * use this API without consulting with the Platform/UI team.
-	 */
-	public String getTooltipText() {
-		return tooltipText;
-	}
-
-	/**
-	 * Set the tooltip text.
-	 * 
-	 * @param tooltipText
-	 *            The tooltipText {@link String} to set. This value should not
-	 *            be <code>null</code>.
-	 * 
-	 * <strong>EXPERIMENTAL</strong> This method has been added as part of a
-	 * work in progress. This API may change at any given time. Please do not
-	 * use this API without consulting with the Platform/UI team.
-	 */
-	public void setTooltipText(String tooltipText) {
-		this.tooltipText = tooltipText;
-	}
-
-	/**
-	 * Return whether or not the tooltip text has been set.
-	 * 
-	 * @return <code>boolean</code>. <code>true</code> if the tooltip text
-	 *         has been set.
-	 * 
-	 * <strong>EXPERIMENTAL</strong> This method has been added as part of a
-	 * work in progress. This API may change at any given time. Please do not
-	 * use this API without consulting with the Platform/UI team.
-	 */
-	public boolean hasNewTooltipText() {
-		return this.tooltipText != null;
-	}
-
-	/**
-	 * Return the tooltip background color.
-	 * 
-	 * @return {@link Color} or <code>null</code> if the tooltip background
-	 *         color has not been set.
-	 * 
-	 * <strong>EXPERIMENTAL</strong> This method has been added as part of a
-	 * work in progress. This API may change at any given time. Please do not
-	 * use this API without consulting with the Platform/UI team.
-	 */
-	public Color getTooltipBackgroundColor() {
-		return tooltipBackgroundColor;
-	}
-
-	/**
-	 * Set the background {@link Color} for tooltip.
-	 * 
-	 * @param tooltipBackgroundColor
-	 *            The {@link Color} to set. This value should not be
-	 *            <code>null</code>.
-	 * 
-	 * <strong>EXPERIMENTAL</strong> This method has been added as part of a
-	 * work in progress. This API may change at any given time. Please do not
-	 * use this API without consulting with the Platform/UI team.
-	 */
-	public void setTooltipBackgroundColor(Color tooltipBackgroundColor) {
-		this.tooltipBackgroundColor = tooltipBackgroundColor;
-	}
-
-	/**
-	 * Return whether or not the tooltip background color has been set.
-	 * 
-	 * @return <code>boolean</code>. <code>true</code> if the tooltip text
-	 *         has been set.
-	 * 
-	 * <strong>EXPERIMENTAL</strong> This method has been added as part of a
-	 * work in progress. This API may change at any given time. Please do not
-	 * use this API without consulting with the Platform/UI team.
-	 */
-	public boolean hasNewTooltipBackgroundColor() {
-		return tooltipBackgroundColor != null;
-	}
-
-	/**
-	 * Return the foreground {@link Color}.
-	 * 
-	 * @return Returns {@link Color} or <code>null</code> if the tooltip
-	 *         foreground color has not been set.
-	 * 
-	 * <strong>EXPERIMENTAL</strong> This method has been added as part of a
-	 * work in progress. This API may change at any given time. Please do not
-	 * use this API without consulting with the Platform/UI team.
-	 */
-	public Color getTooltipForegroundColor() {
-		return tooltipForegroundColor;
-	}
-
-	/**
-	 * Set the foreground {@link Color} for tooltip.
-	 * 
-	 * <strong>EXPERIMENTAL</strong> This method has been added as part of a
-	 * work in progress. This API may change at any given time. Please do not
-	 * use this API without consulting with the Platform/UI team.
-	 * 
-	 * @param tooltipForegroundColor
-	 *            The tooltipForegroundColor to set.
-	 */
-	public void setTooltipForegroundColor(Color tooltipForegroundColor) {
-		this.tooltipForegroundColor = tooltipForegroundColor;
-	}
-
-	/**
-	 * 
-	 * Return whether or not the tooltip foreground color has been set.
-	 * 
-	 * @return <code>boolean</code>. <code>true</code> if the tooltip foreground
-	 *         has been set.
-	 * 
-	 * <strong>EXPERIMENTAL</strong> This method has been added as part of a
-	 * work in progress. This API may change at any given time. Please do not
-	 * use this API without consulting with the Platform/UI team.
-	 */
-	public boolean hasNewTooltipForegroundColor() {
-		return tooltipForegroundColor != null;
-	}
-
-	/**
-	 * @return Returns the tooltipShift.
-	 */
-	public Point getTooltipShift() {
-		return tooltipShift;
-	}
-
-	/**
-	 * @param tooltipShift
-	 *            The tooltipShift to set.
-	 */
-	public void setTooltipShift(Point tooltipShift) {
-		this.tooltipShift = tooltipShift;
-	}
-
-	/**
-	 * @return Return whether or not the tooltip shift has been set.
-	 */
-	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 e284ee4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerRow.java
+++ /dev/null
@@ -1,223 +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
- *     Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation
- ******************************************************************************/
-
-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.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.Item;
-
-/**
- * ViewerRow is the abstract superclass of the part that represents items in a
- * Table or Tree.
- * 
- * @since 3.3 <strong>EXPERIMENTAL</strong> This class or interface has been
- *        added as part of a work in progress. This API may change at any given
- *        time. Please do not use this API without consulting with the
- *        Platform/UI team.
- * 
- */
-public abstract class ViewerRow {
-	/**
-	 * Key used to reference ViewerRow in the widgets data-map
-	 */
-	public static final String ROWPART_KEY = Policy.JFACE + ".ROWPART"; //$NON-NLS-1$
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param item
-	 */
-	ViewerRow(final Item item) {
-		item.setData(ViewerRow.ROWPART_KEY, this);
-		item.addDisposeListener(new DisposeListener() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
-			 */
-			public void widgetDisposed(DisposeEvent e) {
-				item.setData(ROWPART_KEY, null);
-			}
-
-		});
-	}
-
-	/**
-	 * 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 Item}
-	 */
-	public abstract Item getItem();
-
-	/**
-	 * Return the number of columns for the receiver.
-	 * 
-	 * @return int
-	 */
-	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 {@link ViewerCell}
-	 */
-	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();
-
-		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(this, column);
-
-		return null;
-	}
-
-	/**
-	 * Get the Control for the receiver.
-	 * 
-	 * @return {@link Control}
-	 */
-	public abstract Control getControl();
-
-}
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 d1b5c6d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/WrappedViewerLabelProvider.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.jface.viewers;
-
-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;
-
-	/**
-	 * 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 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 lable 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;
-	}
-}
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 37e3f20..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/ConcurrentTableUpdator.java
+++ /dev/null
@@ -1,378 +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;
-        
-        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 e7bdca6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/DeferredContentProvider.java
+++ /dev/null
@@ -1,221 +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.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.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;
-		
-		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() {
-			int start = getTopIndex();
-			int itemCount = getItemCount();
-			Table table = viewer.getTable();
-			return Math.min(table.getBounds().height / table.getItemHeight() + 2, 
-					itemCount - start);
-		}
-		
-		/* (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 4422714..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IConcurrentModel.java
+++ /dev/null
@@ -1,78 +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 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
- */
-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 3e09b02..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IntHashMap.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.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; 
-    
-    public IntHashMap(int size, float loadFactor) {
-        map = new HashMap(size, loadFactor);
-    }
-    
-    public IntHashMap() {
-        map = new HashMap();
-    }
-    
-    public void remove(Object key) {
-        map.remove(key);
-    }
-    
-    public void put(Object key, int value) {
-        map.put(key, new Integer(value));
-    }
-    
-    public int get(Object key) {
-        return get(key, 0);
-    }
-    
-    public int get(Object key, int defaultValue) {
-        Integer result = (Integer)map.get(key);
-        
-        if (result != null) {
-            return result.intValue();
-        }
-        
-        return defaultValue;
-    }
-    
-    public boolean containsKey(Object key) {
-        return map.containsKey(key);
-    }
-    
-    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 4773e3b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/LazySortedCollection.java
+++ /dev/null
@@ -1,1432 +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.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 000ec48..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/SetModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 e156512..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 7131086..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/ApplicationWindow.java
+++ /dev/null
@@ -1,865 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.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.
-     */
-    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) {
-            menuBarManager.updateAll(true);
-            shell.setMenuBar(menuBarManager.createMenuBar((Decorations) shell));
-        }
-
-        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 !"carbon".equals(SWT.getPlatform()); //$NON-NLS-1$
-    }
-
-    /**
-     * 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>
-     * @return a tool bar manager
-     */
-    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>
-     * 
-	 * <p>
-	 * <strong>EXPERIMENTAL</strong>. This method 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 a tool bar manager
-     * @since 3.2
-     */
-    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>
-     * 
-     * @return a cool bar manager
-     * @since 3.0
-     */
-    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>
-     * 
-	 * <p>
-	 * <strong>EXPERIMENTAL</strong>. This method 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 a cool bar manager
-     * @since 3.2
-     */
-    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>
-     * @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>
-     * 
-     * @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).
-     * 
-	 * <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 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.
-     * 
-	 * <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 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.isEnabled();
-			}
-
-            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/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/Window.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/window/Window.java
deleted file mode 100644
index bf5423a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/Window.java
+++ /dev/null
@@ -1,1076 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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>
-	 * 
-	 * @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>
-	 * The default implementation of this framework method creates a new shell
-	 * and configures it using <code/>configureShell</code>. Rather than
-	 * override this method, subclasses should instead override
-	 * <code/>configureShell</code>.
-	 * </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);
-			}
-		}
-		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 7667685..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 099f8f2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizard.java
+++ /dev/null
@@ -1,233 +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.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 47848f7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardContainer.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 ed74fdd..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardContainer2.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.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 5e117e6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardNode.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 b3598ce..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardPage.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-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 2507ca4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/ProgressMonitorPart.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 {
-
-    protected Label fLabel;
-
-    protected String fTaskName;
-
-    protected String fSubTaskName;
-
-    protected ProgressIndicator fProgressIndicator;
-
-    protected Control fCancelComponent;
-
-    protected boolean fIsCanceled;
-
-    protected IStatus blockedStatus;
-
-    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 layou is <code>null</code>
-     * the part's default layout is used.
-     * @param layout The layoutfor 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() {
-        String text = fSubTaskName == null ? "" : fSubTaskName; //$NON-NLS-1$
-        if (fTaskName != null && fTaskName.length() > 0) {
-            text = JFaceResources.format(
-                    "Set_SubTask", new Object[] { fTaskName, text });//$NON-NLS-1$
-        }
-        return escapeMetaCharacters(text);
-    }
-
-    /**
-     * 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 8de13f3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/Wizard.java
+++ /dev/null
@@ -1,546 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.dialogs.IPageTransitionListener;
-import org.eclipse.jface.dialogs.IPageTransitionProvider;
-import org.eclipse.jface.dialogs.PageTransitionEvent;
-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, IPageTransitionListener {
-    /**
-     * 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);
-    }
-
-    /* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IPageTransitionListener#pageTransition(org.eclipse.jface.dialogs.PageTransitionEvent)
-	 */
-	public void pageTransition(PageTransitionEvent event) {
-		int eventType = event.getType();
-		if (eventType == PageTransitionEvent.EVENT_NEXT) {
-			event.doit = doNextPressed();
-		}
-		else if (eventType == PageTransitionEvent.EVENT_BACK){
-			event.doit = doBackPressed();
-		}
-	}
-
-	/**
-	 * Add the listener that gets notified when a page is transitioning.
-	 */
-    private void hookPageTransitionProvider(){
-		IPageTransitionProvider provider = getPageTransitionProvider();
-		if (provider != null)
-			provider.addPageTransitionListener(this);
-    }
-    
-    /**
-     * Remove the listener that gets notified when a page is transitioning.
-     */
-    private void unhookPageTransitionListener(){
-		IPageTransitionProvider provider = getPageTransitionProvider();
-		if (provider != null)
-			provider.removePageTransitionListener(this); 	
-    }
-
-    /**
-     * Return the wizard container that facilitates the page transition events.
-     * 
-     * @return IPageTransitionProvider the page transition provider
-     */
-    private IPageTransitionProvider getPageTransitionProvider(){
-    	IWizardContainer container = getContainer();
-   		if (container instanceof IPageTransitionProvider){
-    		return (IPageTransitionProvider)container;
-    	}
-    	return null;
-    }
-	
-	/**
-	 * <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>
-	 * 
-	 * This method is called when the next button of the wizard container is
-	 * pressed. This method should be overridden when validation of a wizard
-	 * page should be done upon page completion, rather than at the widget
-	 * level.
-	 * 
-	 * @return <code>true</code> if the next page should be shown,
-	 *         <code>false</code> otherwise
-	 * @since 3.3
-	 */
-	protected boolean doNextPressed(){
-		return true;
-	}
-
-	/**
-	 * <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>
-	 * 
-	 * This method is called when the back button of the wizard container is
-	 * pressed. This method should be overridden when validation of a wizard
-	 * page should be done upon page completion, rather than at the widget
-	 * level.
-	 * 
-	 * @return <code>true</code> if the previous page should be shown,
-	 *         <code>false</code> otherwise
-	 * @since 3.3
-	 */
-	protected boolean doBackPressed(){
-		return true;
-	}
-	
-	/**
-     * 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() {
-    	unhookPageTransitionListener();
-        // 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;
-        hookPageTransitionProvider();
-    }
-
-    /**
-     * 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 2e3454c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardDialog.java
+++ /dev/null
@@ -1,1460 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.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.IPageTransitionListener;
-import org.eclipse.jface.dialogs.IPageTransitionProvider;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.PageChangedEvent;
-import org.eclipse.jface.dialogs.PageTransitionEvent;
-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.core.runtime.Assert;
-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, IPageTransitionProvider {
-    /**
-     * 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 pageTransitionListeners = 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;
-		}
-
-        // If page transition unsuccessful, do not change the page
-        if (!doPageTransition(PageTransitionEvent.EVENT_BACK))
-        	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);
-    }
-
-    /**
-     * 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);
-        gridData.widthHint = 0;
-        gridData.heightHint = 0;
-        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);
-        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;
-        }
-
-        // If page transition unsuccessful, do not advance the page
-        if (!doPageTransition(PageTransitionEvent.EVENT_NEXT))
-        	return;
-        
-        // show the next page
-        showPage(page);
-    }
-    
-    /**
-	 * Notifies page transition listeners and returns result of page transition
-	 * processing to the sender.
-	 * 
-	 * @param eventType
-	 * @return <code>true</code> if page transition listener completes
-	 *         successfully, <code>false</code> otherwise
-	 */
-    private boolean doPageTransition(int eventType){
-    	PageTransitionEvent e = new PageTransitionEvent(this, getCurrentPage(),
-				eventType);
-		firePageTransitioning(e);
-		// Prevent navigation if necessary
-		if (e.doit == false){
-			return false;
-		}
-		return true;
-    }
-
-    /**
-     * 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;
-		}
-        //Update for the new page ina 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());
-            // 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) {
-            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.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();
-        
-        // progress monitor required for this wizard - resize dialog 
-        if (wizard.needsProgressMonitor()){
-        	GridData data = (GridData)progressMonitorPart.getLayoutData();
-        	data.widthHint = SWT.DEFAULT;
-        	data.heightHint = SWT.DEFAULT;
-	    	Shell shell = getShell();
-	    	if (shell != null){
-	    		// ensure the wizard does not shrink upon resize
-	    		Point currentSize = shell.getSize();
-	    		Point newSize = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-	    		// only adjust height for progress bar, adjusting the width will resize 
-	    		// the wizard too wide when there is a long wizard description.
-	    		int height = Math.max(currentSize.y, newSize.y);
-	    		setShellSize(currentSize.x, height);
-	    		progressMonitorPart.getParent().layout(true);
-	    	}
-        }
-        
-		// 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);
-                }
-            });
-        }
-    }
-
-	/* 
-	 * <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>
-	 * 
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IPageChangingProvider#addPageChangingListener(org.eclipse.jface.dialogs.IPageTransitionListener)
-	 */
-	public void addPageTransitionListener(IPageTransitionListener listener) {
-		pageTransitionListeners.add(listener);		
-	}
-
-	/* 
-	 * <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>
-	 * 
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IPageChangingProvider#removePageChangingdListener(org.eclipse.jface.dialogs.IPageTransitionListener)
-	 */
-	public void removePageTransitionListener(IPageTransitionListener listener) {
-		pageTransitionListeners.remove(listener);		
-	}
-	
-	/**
-	 * <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>
-     * 
-     * Notifies any selection changing listeners that the selected page
-     * is changing.
-     * Only listeners registered at the time this method is called are notified.
-     *
-     * @param event a selection changing event
-     *
-     * @see IPageTransitionListener#pageTransition(PageTransitionEvent)
-     */
-    protected void firePageTransitioning(final PageTransitionEvent event) {
-        Object[] listeners = pageTransitionListeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            final IPageTransitionListener l = (IPageTransitionListener) listeners[i];
-            SafeRunnable.run(new SafeRunnable() {
-                public void run() {
-                    l.pageTransition(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 40c1202..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 f0e7c52..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 5f58575..0000000
--- a/bundles/org.eclipse.ui.browser/.project
+++ /dev/null
@@ -1,28 +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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</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 e982ead..0000000
--- a/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +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.100.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-internal:=true,
- 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.1.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.2.0,4.0.0)"
-Eclipse-LazyStart: true
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
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/component.xml b/bundles/org.eclipse.ui.browser/component.xml
deleted file mode 100644
index 8538781..0000000
--- a/bundles/org.eclipse.ui.browser/component.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="Web Browser Support">
-  <description url=""></description>
-  <component-depends unrestricted="true"></component-depends>
-  <plugin id="org.eclipse.ui.browser" fragment="false"/>
-  <package name="org.eclipse.ui.browser">
-    <type name="BrowserFactory" implement="false" instantiate="false"/>
-  </package>
-</component>
\ No newline at end of file
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 c377f93..0000000
--- a/bundles/org.eclipse.ui.browser/plugin.xml
+++ /dev/null
@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension-point id="browsers" name="%browser_extension_point_name" schema="schema/browsers.exsd"/>
-
-   <extension point="org.eclipse.ui.preferencePages">
-      <page
-         id="org.eclipse.ui.browser.preferencePage"
-         name="%preferenceWebBrowserTitle"
-         category="org.eclipse.ui.preferencePages.Workbench"
-         class="org.eclipse.ui.internal.browser.WebBrowserPreferencePage">
-           <keywordReference id="org.eclipse.ui.browser.preferenceKeywords"/>
-      </page>
-   </extension>
-
-   <extension point="org.eclipse.ui.keywords">
-      <keyword
-         label="%preferenceKeywords"
-         id="org.eclipse.ui.browser.preferenceKeywords"/>
-   </extension>  
-
-   <extension point="org.eclipse.ui.browserSupport">
-      <support
-         default="true"
-         class="org.eclipse.ui.internal.browser.DefaultBrowserSupport"/>
-   </extension>
-
-   <extension point="org.eclipse.ui.views">
-      <view
-         allowMultiple="true"
-         category="org.eclipse.ui"
-         class="org.eclipse.ui.internal.browser.WebBrowserView"
-         icon="$nl$/icons/obj16/internal_browser.gif"
-         id="org.eclipse.ui.browser.view"
-         name="%viewWebBrowserTitle"/>
-   </extension>
-
-   <extension point="org.eclipse.ui.editors">
-      <editor
-         class="org.eclipse.ui.internal.browser.WebBrowserEditor"
-         contributorClass="org.eclipse.ui.internal.browser.WebBrowserEditorActionBarContributor"
-         icon="$nl$/icons/obj16/internal_browser.gif"
-         id="org.eclipse.ui.browser.editor"
-         name="%viewWebBrowserTitle"/>
-      <editor
-         extensions="htm,html,shtml"
-         icon="$nl$/icons/obj16/internal_browser.gif"
-         id="org.eclipse.ui.browser.editorSupport"
-         launcher="org.eclipse.ui.internal.browser.BrowserLauncher"
-         name="%viewWebBrowserSupportTitle"/>
-  </extension>
-
-<!--
-  <extension point="org.eclipse.ui.actionSets">
-    <actionSet
-      id="org.eclipse.ui.browser.actionSet"
-      label="%actionSetWebBrowserTitle"
-      visible="true">
-      <action
-        id="org.eclipse.ui.browser.action.open"
-        toolbarPath="browser"
-        label="%actionSetOpenWebBrowser"
-        tooltip="%actionSetOpenWebBrowser"
-        icon="icons/obj16/internal_browser.gif"
-        class="org.eclipse.ui.internal.browser.OpenBrowserWorkbenchAction"/>
-    </actionSet>
-  </extension>
--->
-
-   <!-- Web Browsers -->
-   <extension point="org.eclipse.ui.browser.browsers">
-      <!-- Linux -->
-      <browser
-         id="org.eclipse.ui.browser.mozilla"
-         name="%browserMozilla"
-         os="linux,aix,hpux,solaris"
-         executable="mozilla"
-         factoryclass="org.eclipse.ui.internal.browser.browsers.MozillaFactory">
-         <location>usr/bin/mozilla</location>
-         <location>usr/X11/bin/mozilla</location>
-      </browser>
-      <browser
-         id="org.eclipse.ui.browser.netscape"
-         name="%browserNetscape"
-         os="linux,aix,hpux,solaris"
-         executable="netscape"
-         factoryclass="org.eclipse.ui.internal.browser.browsers.MozillaFactory">
-         <location>usr/bin/netscape</location>
-         <location>usr/X11R6/bin/netscape</location>
-         <location>usr/dt/bin/netscape</location>
-      </browser>
-      <browser
-         id="org.eclipse.ui.browser.firefox"
-         name="%browserFirefox"
-         os="linux,aix,hpux,solaris"
-         executable="firefox"
-         factoryclass="org.eclipse.ui.internal.browser.browsers.MozillaFactory">
-      </browser>
-      <browser
-         id="org.eclipse.ui.browser.konqueror"
-         name="%browserKonqueror"
-         os="linux,aix,hpux,solaris"
-         executable="konqueror">
-         <location>opt/kde3/bin/konqueror</location>
-      </browser>
-      <browser
-         id="org.eclipse.ui.browser.galeon"
-         name="%browserGaleon"
-         os="linux,aix,hpux,solaris"
-         executable="galeon">
-         <location>opt/usr/gnome/bin/galeon</location>
-      </browser>
-      
-      <!-- Windows -->
-      <browser
-         id="org.eclipse.ui.browser.mozilla"
-         name="%browserMozilla"
-         os="Win32"
-         executable="mozilla.exe"
-         factoryclass="org.eclipse.ui.internal.browser.browsers.MozillaFactory">
-         <location>Program Files\mozilla.org\Mozilla\mozilla.exe</location>
-      </browser>
-      <browser
-         id="org.eclipse.ui.browser.netscape7"
-         name="%browserNetscape7"
-         os="Win32"
-         executable="netsc.exe"
-         factoryclass="org.eclipse.ui.internal.browser.browsers.MozillaFactory">
-         <location>Program Files\Netscape\Netscape\netscp.exe</location>
-      </browser>
-      <browser
-         id="org.eclipse.ui.browser.netscape4"
-         name="%browserNetscape4"
-         os="Win32"
-         executable="netscape.exe"
-         factoryclass="org.eclipse.ui.internal.browser.browsers.MozillaFactory">
-         <location>Program Files\Netscape\Communicator\Program\netscape.exe</location>
-      </browser>
-      <browser
-         id="org.eclipse.ui.browser.firefox"
-         name="%browserFirefox"
-         os="Win32"
-         executable="firefox.exe"
-         factoryclass="org.eclipse.ui.internal.browser.browsers.MozillaFactory">
-         <location>Program Files\mozilla.org\Firefox\firefox.exe</location>
-         <location>Program Files\Mozilla Firefox\firefox.exe</location>
-      </browser>
-      <browser
-         id="org.eclipse.ui.browser.ie"
-         name="%browserInternetExplorer"
-         os="Win32"
-         executable="iexplore.exe">
-         <location>Program Files\Internet Explorer\iexplore.exe</location>
-      </browser>
-      <browser
-         id="org.eclipse.ui.browser.opera"
-         name="%browserOpera"
-         os="Win32"
-         executable="opera.exe">
-         <location>Program Files\Opera7\opera.exe</location>
-      </browser>
-      
-      <!-- Mac -->
-      <browser
-         id="org.eclipse.ui.browser.firefox"
-         name="%browserFirefox"
-         os="MacOSX"
-         executable="firefox-bin"
-         factoryclass="org.eclipse.ui.internal.browser.browsers.MozillaFactory">
-         <location>Applications/Firefox.app/Contents/MacOS/firefox-bin</location>
-      </browser>
-      <browser
-         id="org.eclipse.ui.browser.camino"
-         name="%browserCamino"
-         os="MacOSX"
-         executable="Camino">
-         <location>Applications/Camino.app/Contents/MacOS/Camino</location>
-      </browser>
-<!--      <browser
-         id="org.eclipse.ui.browser.safari"
-         name="%browserSafari"
-         os="MacOSX"
-         executable="Safari"
-         factoryclass="org.eclipse.ui.internal.browser.macosx.SafariBrowserFactory">
-         <location>Applications/Safari.app/Contents/MacOS/Safari</location>
-      </browser> -->
-      <browser
-         id="org.eclipse.ui.browser.mozilla"
-         name="%browserMozilla"
-         os="MacOSX"
-         executable="mozilla-bin"
-         factoryclass="org.eclipse.ui.internal.browser.browsers.MozillaFactory">
-         <location>Applications/Mozilla.app/Contents/MacOS/mozilla-bin</location>
-      </browser>
-      <browser
-         id="org.eclipse.ui.browser.ie"
-         name="%browserInternetExplorer"
-         os="MacOSX"
-         executable="Internet&#0032;Explorer">
-         <location>Applications/Internet Explorer.app/Contents/MacOS/"Internet Explorer"</location>
-      </browser>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            defaultHandler="org.eclipse.ui.internal.browser.OpenBrowserHandler"
-            description="%command.openBrowser.description"
-            id="org.eclipse.ui.browser.openBrowser"
-            name="%command.openBrowser.name">
-         <commandParameter
-               id="url"
-               name="%commandParameter.openBrowser.url.name"
-               optional="true"/>
-         <commandParameter
-               id="browserId"
-               name="%commandParameter.openBrowser.browserId.name"
-               optional="true"/>
-         <commandParameter
-               id="name"
-               name="%commandParameter.openBrowser.name.name"
-               optional="true"/>
-         <commandParameter
-               id="tooltip"
-               name="%commandParameter.openBrowser.tooltip.name"
-               optional="true"/>
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commandImages">
-      <image
-            commandId="org.eclipse.ui.browser.openBrowser"
-            icon="$nl$/icons/obj16/internal_browser.gif"/>
-   </extension>
-
-</plugin>
\ No newline at end of file
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 e808b72..0000000
--- a/bundles/org.eclipse.ui.browser/schema/browsers.exsd
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.browser">
-<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">
-      <complexType>
-         <sequence>
-            <element ref="browser" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="browser">
-      <complexType>
-         <sequence>
-            <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. Only browsers with the correct OS will be used. If the os parameter is empty, the browser will be assumed to work on all OS
-               </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 browser extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.help.base.browser&quot;&gt;
-  &lt;browser 
-   id=&quot;org.eclipse.myPlugin.myBrowserID&quot;
-   factoryClass=&quot;org.eclipse.myPlugin.myPackage.MyFactoryClass&quot;
-   name=&quot;My Browser&quot;&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 9ff1294..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptorDialog.java
+++ /dev/null
@@ -1,206 +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.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.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;
-	}
-
-	public BrowserDescriptorDialog(Shell parentShell) {
-		super(parentShell);
-		browser = BrowserManager.getInstance().createExternalWebBrowser();
-		isEdit = false;
-	}
-
-	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) {
-		final Text text = new Text(comp, SWT.BORDER);
-		if (txt != null)
-			text.setText(txt);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
-		data.widthHint = 250;
-		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();
-			}
-		});
-		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();
-			}
-		});
-		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);
-			}
-		});
-		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 987967b..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserManager.java
+++ /dev/null
@@ -1,223 +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.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.Preferences;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.XMLMemento;
-/**
- * 
- */
-public class BrowserManager extends Observable {
-	protected List browsers;
-	protected IBrowserDescriptor currentBrowser;
-	
-	private Preferences.IPropertyChangeListener 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 Preferences.IPropertyChangeListener() {
-			public void propertyChange(Preferences.PropertyChangeEvent event) {
-				String property = event.getProperty();
-				if (!ignorePreferenceChanges && property.equals("browsers")) { //$NON-NLS-1$
-					loadBrowsers();
-				}
-				if (!property.equals(WebBrowserPreference.PREF_INTERNAL_WEB_BROWSER_HISTORY)) {
-					setChanged();
-					notifyObservers();
-				}
-			}
-		};
-		
-		WebBrowserUIPlugin.getInstance().getPluginPreferences().addPropertyChangeListener(pcl);
-	}
-
-	protected static void safeDispose() {
-		if (instance == null)
-			return;
-		instance.dispose();
-	}
-
-	protected void dispose() {
-		Preferences prefs = WebBrowserUIPlugin.getInstance().getPluginPreferences();
-		if (prefs != null)
-			prefs.removePropertyChangeListener(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$
-		
-		Preferences prefs = WebBrowserUIPlugin.getInstance().getPluginPreferences();
-		String xmlString = prefs.getString("browsers"); //$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();
-			Preferences prefs = WebBrowserUIPlugin.getInstance().getPluginPreferences();
-			prefs.setValue("browsers", xmlString); //$NON-NLS-1$
-			WebBrowserUIPlugin.getInstance().savePluginPreferences();
-		} 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();
-	}
-}
\ No newline at end of file
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 8685d32..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserText.java
+++ /dev/null
@@ -1,196 +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.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);
-    }
-}
\ No newline at end of file
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 57c14a6..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java
+++ /dev/null
@@ -1,951 +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 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());
-                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 (event.addressBar)
-						 style += LOCATION_BAR;
-					 if (event.toolBar)
-						 style += BUTTON_BAR;
-                BrowserViewer browser2 = new BrowserViewer(shell2, 0);
-                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 (showToolbar) {
-            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)
-                        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 8c7b9dc..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/DefaultBrowserSupport.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.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$
-
-	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 = SHARED_ID;
-		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
-		if ((style & AS_EXTERNAL) != 0
-				|| WebBrowserPreference.getBrowserChoice() != WebBrowserPreference.INTERNAL) {
-			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();
-			HashMap wmap = (HashMap) browserIdMap.get(baseId);
-			if (wmap != null) {
-				wmap.remove(key);
-				if (wmap.isEmpty())
-					browserIdMap.remove(baseId);
-			}
-		} else
-			browserIdMap.remove(baseId);
-	}
-}
\ 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 dd26c6e..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ExternalBrowserInstance.java
+++ /dev/null
@@ -1,106 +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.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 && !WebBrowserUtil.isWindows()) {
-			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 = parameters;
-		if (params == null)
-			params = ""; //$NON-NLS-1$
-
-		if (urlText != null) {
-			int urlIndex = params.indexOf(IBrowserDescriptor.URL_PARAMETER);
-			if (urlIndex >= 0)
-				params = params.substring(0, urlIndex)
-						+ " " + urlText + " " + params.substring(urlIndex + IBrowserDescriptor.URL_PARAMETER.length()); //$NON-NLS-1$ //$NON-NLS-2$
-			else {
-				if (!params.endsWith(" ")) //$NON-NLS-1$
-					params += " "; //$NON-NLS-1$ 
-				params += 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 90ed621..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserInstance.java
+++ /dev/null
@@ -1,87 +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.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 (part.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;
-	}
-}
\ No newline at end of file
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 4e40bf6..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.properties
+++ /dev/null
@@ -1,69 +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
-###############################################################################
-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,\nalthough 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.
\ No newline at end of file
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 47a1585..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditor.java
+++ /dev/null
@@ -1,367 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 203, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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
-			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 f82d208..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorActionBarContributor.java
+++ /dev/null
@@ -1,279 +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 org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.actions.ActionFactory;
-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;
-			WebBrowserEditorInput input = editor.getWebBrowserEditorInput();
-			
-			if (input == null || input.isLocationBarLocal()) {
-				IActionBars actionBars = getActionBars();
-				actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), editor.getCopyAction());
-				actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), editor.getCutAction());
-				actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), editor.getPasteAction());
-			}
-			
-			//if (input.isToolbarGlobal())
-			//	getWebBrowser().backNextListener = this.updater;
-				
-			//editor.updateActions();
-		} 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 3cdee2a..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorInput.java
+++ /dev/null
@@ -1,350 +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;
-
-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 << 2;
-
-	// 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 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) {
-		URL url2 = null;
-		int newStyle = 0;
-
-		try {
-			newStyle = memento.getInteger(MEMENTO_STYLE).intValue();
-
-			if (newStyle != 0)
-				url = new URL(memento.getString(MEMENTO_URL));
-		} catch (Exception e) {
-			// could not determine the style
-		}
-
-		String id2 = null;
-		try {
-			id2 = memento.getString(MEMENTO_ID);
-			if (id2 != null && id2.length() < 1)
-				id2 = null;
-		} catch (Exception e) {
-			// ignore
-		}
-
-		return new WebBrowserEditorInput(url2, newStyle, id2);
-	}
-
-	/**
-	 * Indicates whether some other object is "equal to" this one. In this case
-	 * it means that the underlying IFolders are equal.
-	 */
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (!(obj instanceof WebBrowserEditorInput))
-			return false;
-		WebBrowserEditorInput other = (WebBrowserEditorInput) obj;
-
-		if (url != null && !url.equals(obj))
-			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) {
-		if ((style & IWorkbenchBrowserSupport.PERSISTENT) != 0 && url != null)
-			memento.putString(MEMENTO_URL, url.toExternalForm());
-
-		memento.putInteger(MEMENTO_STYLE, style);
-
-		if (id != null)
-			memento.putString(MEMENTO_ID, id);
-	}
-
-	/**
-	 * 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$
-	}
-}
\ No newline at end of file
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 aa7ff6a..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreference.java
+++ /dev/null
@@ -1,163 +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.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * 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$
-			}
-		}
-		getPreferenceStore().setValue(PREF_INTERNAL_WEB_BROWSER_HISTORY,
-				sb.toString());
-		WebBrowserUIPlugin.getInstance().savePluginPreferences();
-	}
-
-	/**
-	 * 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) {
-		getPreferenceStore().setValue(PREF_BROWSER_CHOICE, choice);
-		WebBrowserUIPlugin.getInstance().savePluginPreferences();
-		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 a3f35f1..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreferencePage.java
+++ /dev/null
@@ -1,616 +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.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(GridData.FILL_HORIZONTAL
-				| GridData.VERTICAL_ALIGN_FILL);
-		composite.setLayoutData(data);
-
-		Label label = new Label(composite, SWT.WRAP);
-		label.setText(Messages.preferenceWebBrowserDescription);
-		data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-		
-		label = new Label(composite, SWT.WRAP);
-		data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-
-		internal = new Button(composite, SWT.RADIO);
-		internal.setText(Messages.prefInternalBrowser);
-		data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		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(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		data.horizontalSpan = 2;
-		external.setLayoutData(data);
-
-		label = new Label(composite, SWT.NONE);
-		label.setText(Messages.browserList);
-		data = new GridData(GridData.FILL_HORIZONTAL
-				| GridData.VERTICAL_ALIGN_CENTER);
-		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(GridData.FILL_BOTH);
-		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 3249300..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUtil.java
+++ /dev/null
@@ -1,296 +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.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) {
-			WebBrowserUIPlugin.getInstance().getLog().log(
-					new Status(IStatus.WARNING, WebBrowserUIPlugin.PLUGIN_ID,
-							0, "Internal browser is not available: " + t.getMessage(), null)); //$NON-NLS-1$
-			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;
-	}
-}
\ 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 cdb38bd..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaBrowser.java
+++ /dev/null
@@ -1,172 +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 java.net.URL;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.browser.AbstractWebBrowser;
-import org.eclipse.ui.internal.browser.WebBrowserUIPlugin;
-/**
- * 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;
-
-	/**
-	 * Constructor
-	 * 
-	 * @executable executable filename to launch
-	 * @executableName name of the program to display when error occurs
-	 */
-	public MozillaBrowser(String id, String executable) {
-		super(id);
-		this.executable = executable;
-	}
-
-	/*
-	 * @see IBrowser#displayURL(String)
-	 */
-	public void openURL(URL url2) {
-		String url = url2.toExternalForm();
-		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 + " " + url) == 0) //$NON-NLS-1$
-					return;
-				browserFullyOpenedAt = System.currentTimeMillis() + DELAY;
-				return;
-			}
-			if (openBrowser(executable + " -remote openURL(" + url + ")") //$NON-NLS-1$ //$NON-NLS-2$
-					== 0)
-				return;
-			
-			if (exitRequested)
-				return;
-			browserFullyOpenedAt = System.currentTimeMillis() + DELAY;
-			openBrowser(executable + " " + 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 a5dc6eb..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaFactory.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.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 = new MozillaBrowser(id, location);
-		}
-		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 39375e3..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 065ac06..0000000
--- a/bundles/org.eclipse.ui.carbon/.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/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 98eaaa8..0000000
--- a/bundles/org.eclipse.ui.carbon/.project
+++ /dev/null
@@ -1,31 +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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</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 2c0ffb8..0000000
--- a/bundles/org.eclipse.ui.carbon/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.carbon; singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.ui;bundle-version="[3.2.0,4.0.0)"
-Bundle-Localization: fragment-carbon
-Export-Package: org.eclipse.ui.carbon
-Eclipse-LazyStart: true
-Eclipse-PlatformFilter: (osgi.ws=carbon)
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
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 af90fd1..0000000
--- a/bundles/org.eclipse.ui.carbon/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-bin.includes = fragment.xml,\
-               fragment-carbon.properties,\
-               META-INF/,\
-               .
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 fadc7b6..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.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/carbon/CarbonUIEnhancer.java b/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/carbon/CarbonUIEnhancer.java
deleted file mode 100644
index 6ed4a1d..0000000
--- a/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/carbon/CarbonUIEnhancer.java
+++ /dev/null
@@ -1,311 +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.carbon;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-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.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-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.
- */
-public class CarbonUIEnhancer implements IStartup {
-
-    class Target {
-		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 runAction("toggleCoolbar"); //$NON-NLS-1$
-				}
-			}
-			return OS.eventNotHandledErr;
-		}
-
-        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 String RESOURCE_BUNDLE = "org.eclipse.ui.carbon.Messages"; //$NON-NLS-1$
-	
-    private String fAboutActionName;
-
-    /**
-     * 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$
-    }
-
-    /* (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) {
-            int menu = outMenu[0];
-
-            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(menu, str, (short) 0, 0, kHICommandAbout);
-            OS.CFRelease(str);
-
-            // add separator between About & Preferences
-            OS.InsertMenuItemTextWithCFString(menu, 0, (short) 1, OS.kMenuItemAttrSeparator, 0);
-
-            // enable pref menu
-            OS.EnableMenuCommand(menu, kHICommandPreferences);
-
-            // disable services menu
-            OS.DisableMenuCommand(menu, kHICommandServices);
-        }
-
-        // schedule disposal of callback object
-        display.disposeExec(new Runnable() {
-            public void run() {
-                commandCallback.dispose();
-            }
-        });
-    }
-
-    /**
-     * 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()) {
-        		action.run();
-        		return OS.noErr;
-        	}
-        }
-        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/carbon/Messages.properties b/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/carbon/Messages.properties
deleted file mode 100644
index 698f8ab..0000000
--- a/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/carbon/Messages.properties
+++ /dev/null
@@ -1,13 +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
-###############################################################################
-
-AboutAction.format=About {0}
-AboutAction.name=About
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 3c23ea4..0000000
--- a/bundles/org.eclipse.ui.forms/.project
+++ /dev/null
@@ -1,28 +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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
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 2338189..0000000
--- a/bundles/org.eclipse.ui.forms/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Wed May 03 14:07:17 EDT 2006
-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/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF
deleted file mode 100644
index fd8bacf..0000000
--- a/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %name
-Bundle-SymbolicName: org.eclipse.ui.forms
-Bundle-Version: 3.2.0.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-internal:=true,
- org.eclipse.ui.internal.provisional.forms
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.jface;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.2.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,
- CDC-1.0/Foundation-1.0,
- J2SE-1.3
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 30121ee..0000000
--- a/bundles/org.eclipse.ui.forms/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = plugin.properties,\
-               .,\
-               about.html,\
-               META-INF/
-source.. = src/
-src.includes = about.html
diff --git a/bundles/org.eclipse.ui.forms/component.xml b/bundles/org.eclipse.ui.forms/component.xml
deleted file mode 100644
index 0f2d49a..0000000
--- a/bundles/org.eclipse.ui.forms/component.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="UI  Forms"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.ui.forms" fragment="false"/><package name="org.eclipse.ui.forms"></package><package name="org.eclipse.ui.forms.widgets"></package><package name="org.eclipse.ui.forms.editor"></package><package name="org.eclipse.ui.forms.events"></package></component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/plugin.properties b/bundles/org.eclipse.ui.forms/plugin.properties
deleted file mode 100644
index 7d11d9a..0000000
--- a/bundles/org.eclipse.ui.forms/plugin.properties
+++ /dev/null
@@ -1,17 +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
-###############################################################################
-#
-# 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 e191954..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/AbstractFormPart.java
+++ /dev/null
@@ -1,118 +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;
-/**
- * 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 7e80154..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/DetailsPart.java
+++ /dev/null
@@ -1,332 +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;
-
-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 isDisposed() {
-			return 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 c1798ad..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormColors.java
+++ /dev/null
@@ -1,543 +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 java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-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.
-	 */
-	public static final String TITLE = "org.eclipse.ui.forms.TITLE"; //$NON-NLS-1$
-
-	/**
-	 * Key for the tree/table border color.
-	 */
-	public static final String BORDER = "org.eclipse.ui.forms.BORDER"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section separator color.
-	 */
-	public static final String SEPARATOR = "org.eclipse.ui.forms.SEPARATOR"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section title bar background.
-	 */
-	public static final String TB_BG = "org.eclipse.ui.forms.TB_BG"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section title bar foreground.
-	 * 
-	 * 
-	 */
-	public static final String TB_FG = "org.eclipse.ui.forms.TB_FG"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section title bar gradient.
-	 */
-	public static final String TB_GBG = "org.eclipse.ui.forms.TB_GBG"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section title bar border.
-	 */
-	public static final String TB_BORDER = "org.eclipse.ui.forms.TB_BORDER"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section toggle color. Since 3.1, this color is used for all
-	 * section styles.
-	 */
-	public static final String TB_TOGGLE = "org.eclipse.ui.forms.TB_TOGGLE"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section toggle hover color.
-	 * 
-	 * @since 3.1
-	 */
-	public static final String TB_TOGGLE_HOVER = "org.eclipse.ui.forms.TB_TOGGLE_HOVER"; //$NON-NLS-1$	
-
-	protected Map colorRegistry = new HashMap(10);
-
-	protected Color background;
-
-	protected Color foreground;
-
-	private boolean shared;
-
-	protected Display display;
-
-	protected Color border;
-
-	private static final RGB WHITE = new RGB(255, 255, 255);
-
-	private static final RGB BLACK = new RGB(0, 0, 0);
-
-	/**
-	 * 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, COMPOSITE_SEPARATOR and
-	 * DEFAULT_HEADER. Subclasses can override to allocate this colors
-	 * differently.
-	 */
-	protected void initializeColorTable() {
-		createTitleColor();
-		createTwistieColors();
-		createColor(SEPARATOR, getColor(TITLE).getRGB());
-		RGB borderRGB = getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT);
-		createColor(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 (getColor(FormColors.TB_BG) != null)
-			return;
-		createTitleBarGradientColors();
-		createTitleBarOutlineColors();
-	}
-
-	/**
-	 * 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) {
-		return createColor(key, rgb.red, rgb.green, rgb.blue);
-	}
-
-	/**
-	 * 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) {
-		Color c = new Color(display, r, g, b);
-		Color prevC = (Color) colorRegistry.get(key);
-		if (prevC != null)
-			prevC.dispose();
-		colorRegistry.put(key, c);
-		return c;
-	}
-
-	/**
-	 * 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(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();
-	}
-
-	/**
-	 * 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) {
-		return (Color) colorRegistry.get(key);
-	}
-
-	/**
-	 * Disposes all the colors in the registry.
-	 */
-	public void dispose() {
-		Iterator e = colorRegistry.values().iterator();
-		while (e.hasNext())
-			((Color) e.next()).dispose();
-		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);
-	}
-
-	private void createTwistieColors() {
-		RGB rgb = getColor(TITLE).getRGB();
-		createColor(TB_TOGGLE, rgb);
-
-		// hover twistie
-		rgb = blend(rgb, WHITE, 70);
-		// bounds
-		if (testTwoPrimaryColors(rgb, 215, 226))
-			rgb = blend(rgb, BLACK, 90);
-		else if (testTwoPrimaryColors(rgb, 225, 256))
-			rgb = blend(rgb, BLACK, 95);
-		createColor(TB_TOGGLE_HOVER, rgb);
-	}
-
-	private void createTitleBarGradientColors() {
-		RGB tbBg = getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT);
-		Color bg = getImpliedBackground();
-		RGB formBackground = bg.getRGB();
-
-		// blend 77% white with the title background gradient
-		tbBg = blend(formBackground, tbBg, 77);
-
-		if (isWhiteBackground()) {
-			// corrections
-			if (testTwoPrimaryColors(tbBg, 241, 256)) {
-				// too light
-				tbBg = blend(tbBg, BLACK, 90);
-			} else if (testTwoPrimaryColors(tbBg, 0, 231)) {
-				// too dark
-				if (testAnyPrimaryColor(tbBg, 214, 231))
-					tbBg = blend(tbBg, WHITE, 95);
-				else if (testAnyPrimaryColor(tbBg, 199, 215))
-					tbBg = blend(tbBg, WHITE, 90);
-			}
-		} else {
-			if (testTwoPrimaryColors(tbBg, 209, 256)) {
-				// too light
-				if (testAnyPrimaryColor(tbBg, 210, 236))
-					tbBg = blend(tbBg, BLACK, 60);
-				else if (testAnyPrimaryColor(tbBg, 235, 256))
-					tbBg = blend(tbBg, BLACK, 20);
-			}
-		}
-		createColor(FormColors.TB_BG, tbBg);
-
-		// blend 50 % white with the previous blend for half-way
-		RGB tbGbg = blend(formBackground, tbBg, 50);
-		createColor(FormColors.TB_GBG, tbGbg);
-	}
-
-	private void createTitleBarOutlineColors() {
-		// title bar outline - border color
-		RGB tbBorder = getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT);
-		// Perform adjustments for too bright
-		if (isWhiteBackground()) {
-			if (testTwoPrimaryColors(tbBorder, 215, 256)) {
-				// too bright
-				if (testAnyPrimaryColor(tbBorder, 215, 226))
-					// decrease white by 10%
-					tbBorder = blend(tbBorder, BLACK, 90);
-				else if (testAnyPrimaryColor(tbBorder, 225, 256))
-					// decrease white by 20%
-					tbBorder = blend(tbBorder, BLACK, 70);
-			} else if (testTwoPrimaryColors(tbBorder, 0, 186)) {
-				// too dark
-				if (testAnyPrimaryColor(tbBorder, 175, 186))
-					// add 5% white
-					tbBorder = blend(tbBorder, WHITE, 95);
-				else if (testTwoPrimaryColors(tbBorder, 154, 176))
-					// add 10% white
-					tbBorder = blend(tbBorder, WHITE, 90);
-				else if (testTwoPrimaryColors(tbBorder, 124, 155))
-					// add 20% white
-					tbBorder = blend(tbBorder, WHITE, 80);
-			}
-		} else {
-			if (testTwoPrimaryColors(tbBorder, 200, 256))
-				// too bright - decrease white by 50%
-				tbBorder = blend(tbBorder, BLACK, 50);
-		}
-		createColor(FormColors.TB_BORDER, tbBorder);
-	}
-}
\ No newline at end of file
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 b6d76f2..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkGroup.java
+++ /dev/null
@@ -1,205 +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;
-
-import java.util.ArrayList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.events.*;
-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 class GroupListener implements Listener, IHyperlinkListener {
-		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;
-			if (getActiveBackground() != null)
-				link.setBackground(getActiveBackground());
-			if (getActiveForeground() != null)
-				link.setForeground(getActiveForeground());
-			if (getHyperlinkUnderlineMode() == UNDERLINE_HOVER)
-				link.setUnderlined(true);
-			link.setCursor(getHyperlinkCursor());			
-		}
-		private void onMouseExit(Event e) {
-			Hyperlink link = (Hyperlink) e.widget;
-			if (getBackground() != null)
-				link.setBackground(getBackground());
-			if (getForeground() != null)
-				link.setForeground(getForeground());
-			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 (getBackground() != null)
-			link.setBackground(getBackground());
-		if (getForeground() != null)
-			link.setForeground(getForeground());
-		if (getHyperlinkUnderlineMode() == UNDERLINE_ALWAYS)
-			link.setUnderlined(true);
-		hook(link);
-	}
-	/**
-	 * 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);
-		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);
-		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 26e43f0..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkSettings.java
+++ /dev/null
@@ -1,182 +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;
-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 otwerwise not intended to be
- * subclassed.
- * 
- * @since 3.0
- */
-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 603fbb9..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPage.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 8f2fe00..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPageProvider.java
+++ /dev/null
@@ -1,42 +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;
-
-/**
- * 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/IFormPart.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormPart.java
deleted file mode 100644
index 438e516..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormPart.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 initialize
- * with the form and 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 to notify
- * 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 
- * 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 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 e824f7c..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IManagedForm.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.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
- */
-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();
-}
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 26c40db..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IPartSelectionListener.java
+++ /dev/null
@@ -1,33 +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;
-
-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 eae939e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/ManagedForm.java
+++ /dev/null
@@ -1,323 +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 java.util.Vector;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.*;
-
-/**
- * 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;
-	}
-}
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 d157d0d..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/MasterDetailsBlock.java
+++ /dev/null
@@ -1,119 +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;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.*;
-
-/**
- * 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;
-
-	/**
-	 * 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();
-		FormToolkit toolkit = managedForm.getToolkit();
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		form.getBody().setLayout(layout);
-		sashForm = new SashForm(form.getBody(), SWT.NULL);
-		toolkit.adapt(sashForm, false, false);
-		sashForm.setMenu(form.getBody().getMenu());
-		sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
-		createMasterPart(managedForm, sashForm);
-		createDetailsPart(managedForm, sashForm);
-		createToolBarActions(managedForm);
-		form.updateToolBar();
-	}
-
-	/**
-	 * 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);
-	}
-}
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 563d1de..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/SectionPart.java
+++ /dev/null
@@ -1,117 +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;
-
-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 89b5d02..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormEditor.java
+++ /dev/null
@@ -1,666 +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 java.util.Vector;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.dialogs.IPageChangeProvider;
-import org.eclipse.jface.dialogs.IPageChangedListener;
-import org.eclipse.jface.dialogs.PageChangedEvent;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-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 implements
-		IPageChangeProvider {
-
-	/**
-	 * 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 ListenerList pageListeners = new ListenerList();
-
-	private static class FormEditorSelectionProvider extends
-			MultiPageSelectionProvider {
-		private ISelection globalSelection;
-
-		/**
-		 * @param multiPageEditor
-		 */
-		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();
-			}
-			return globalSelection;
-		}
-
-		/*
-		 * (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#addPageChangedListener(org.eclipse.jface.dialogs.IPageChangedListener)
-	 */
-	public void addPageChangedListener(IPageChangedListener listener) {
-		pageListeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IPageChangeProvider#removePageChangedListener(org.eclipse.jface.dialogs.IPageChangedListener)
-	 */
-	public void removePageChangedListener(IPageChangedListener listener) {
-		pageListeners.remove(listener);
-	}
-
-	/*
-	 * (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);
-	}
-
-	/**
-	 * 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
-		}
-	}
-
-	/**
-	 * 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();
-	}
-
-	/**
-	 * 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);
-	}
-
-	/**
-	 * 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();
-			}
-		}
-		super.removePage(pageIndex);
-	}
-
-	// fix the page indices after the removal
-	private void updatePageIndices() {
-		for (int i = 0; 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 oldPage = getCurrentPage();
-		if (oldPage != -1 && pages.size() > oldPage
-				&& pages.get(oldPage) instanceof IFormPage
-				&& oldPage != newPageIndex) {
-			// Check the old page
-			IFormPage oldFormPage = (IFormPage) pages.get(oldPage);
-			if (oldFormPage.canLeaveThePage() == false) {
-				setActivePage(oldPage);
-				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 (oldPage != -1 && pages.size() > oldPage
-				&& pages.get(oldPage) instanceof IFormPage) {
-			// Commit old page before activating the new one
-			IFormPage oldFormPage = (IFormPage) pages.get(oldPage);
-			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 (oldPage != -1 && pages.size() > oldPage
-				&& pages.get(oldPage) instanceof IFormPage)
-			((IFormPage) pages.get(oldPage)).setActive(false);
-		// Call super - this will cause pages to switch
-		super.pageChange(newPageIndex);
-		this.currentPage = newPageIndex;
-		IFormPage newPage = getActivePageInstance();
-		if (newPage != null)
-			firePageChanged(new PageChangedEvent(this, newPage));
-	}
-
-	/**
-	 * 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
-	 */
-	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) {
-			pageChange(pageIndex);
-			IFormPage activePage = (IFormPage) pages.get(pageIndex);
-			activePage.setActive(true);
-			super.setActivePage(pageIndex);
-		} 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());
-		}
-	}
-
-	private void firePageChanged(final PageChangedEvent event) {
-		Object[] listeners = pageListeners.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);
-				}
-			});
-		}
-	}
-}
\ No newline at end of file
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 9b96146..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormPage.java
+++ /dev/null
@@ -1,279 +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.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.
-			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 bf84643..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/IFormPage.java
+++ /dev/null
@@ -1,130 +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.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/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 cbe07ce..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionAdapter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-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 5324629..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionEvent.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-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 6eec96c..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkAdapter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-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 1674a76..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkEvent.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.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 79aca9c..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IExpansionListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-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 85de398..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IHyperlinkListener.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.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 dc1334e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/AbstractHyperlink.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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.
- * 
- * @since 3.0
- */
-public abstract class AbstractHyperlink extends Canvas {
-	private boolean hasFocus;
-
-	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.MouseUp:
-					handleMouseUp(e);
-					break;
-				}
-			}
-		};
-		addListener(SWT.MouseEnter, listener);
-		addListener(SWT.MouseExit, listener);
-		addListener(SWT.MouseUp, 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) {
-		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) {
-		getAccessible().setFocus(ACC.CHILDID_SELF);
-		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());
-	}
-
-	/**
-	 * 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 (hasFocus) {
-			Rectangle carea = getClientArea();
-			gc.setForeground(getForeground());
-			gc.drawFocus(0, 0, carea.width, carea.height);
-		}
-	}
-
-	private void handleMouseUp(Event e) {
-		if (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);
-	}
-}
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 e4eec10..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayout.java
+++ /dev/null
@@ -1,271 +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
- *     dinko.ivanov@sap.com - patch #70790
- *******************************************************************************/
-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.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 (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.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 (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 66326b8..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayoutData.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-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 aligned to the right.
-	 */
-	public static final int CENTER = 2;
-	/**
-	 * Horizontal alignment constant - control will be centered.
-	 */
-	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 fd32559..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ExpandableComposite.java
+++ /dev/null
@@ -1,1014 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.Vector;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-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.
- * 
- * @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;
-
-	private static final Point NULL_SIZE = new Point(0, 0);
-
-	private int VSPACE = 3;
-
-	protected int GAP = 4;
-
-	private int SEPARATOR_HEIGHT = 2;
-
-	private int expansionStyle = TWISTIE | FOCUS_TITLE | EXPANDED;
-
-	private boolean expanded;
-
-	private Control textClient;
-
-	private Control client;
-
-	private Vector listeners;
-
-	protected ToggleHyperlink toggle;
-
-	protected Control textLabel;
-
-	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 = GAP;
-				tvmargin = GAP;
-			}
-			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 + GAP;
-			if (textClient != null)
-				tcsize = textClientCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			if (tcsize.x > 0)
-				twidth -= tcsize.x + GAP;
-			Point size = NULL_SIZE;
-			if (textLabel != null)
-				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 + GAP;
-			}
-			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);
-						descriptionCache.setBounds(cx, y, dsize.x, 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 + GAP;
-			}
-			int thmargin = 0;
-			int tvmargin = 0;
-
-			if (hasTitleBar()) {
-				thmargin = GAP;
-				tvmargin = GAP;
-			}
-			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);
-				if (innertHint != SWT.DEFAULT)
-					innertHint -= GAP + tcsize.x;
-			}
-			Point size = NULL_SIZE;
-
-			if (textLabel != null)
-				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 += GAP + tcsize.x;
-			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;
-
-				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);
-					if (expanded)
-						height += dsize.y + clientVerticalSpacing;
-				} else {
-					height += clientVerticalSpacing;
-					if (getSeparatorControl()!=null)
-						height -= VSPACE;
-				}
-				width = Math.max(width, csize.x);
-				if (expanded)
-					height += csize.y;
-			}
-			if (toggle != null) {
-				height = height - size.y + Math.max(size.y, tsize.y);
-				width += twidth;
-			}
-			
-			Point result = new Point(width + marginWidth + marginWidth
-					+ thmargin + thmargin, height + marginHeight + marginHeight
-					+ tvmargin + tvmargin);
-			return result;
-		}
-
-		public int computeMinimumWidth(Composite parent, boolean changed) {
-			/*
-			initCache(changed);
-
-			int width = 0;
-			Point size = NULL_SIZE;
-			if (textLabel != null)
-				size = textLabelCache.computeSize(5, SWT.DEFAULT);
-			Point tcsize = NULL_SIZE;
-			if (textClient != null) {
-				tcsize = textClientCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			int thmargin = 0;
-
-			if (hasTitleBar()) {
-				thmargin = GAP;
-			}
-			if (size.x > 0)
-				width = size.x;
-			if (tcsize.x > 0)
-				width += GAP + tcsize.x;
-
-			if ((expanded || (expansionStyle & COMPACT) == 0) && client != null) {
-				Point dsize = null;
-				if (getDescriptionControl() != null) {
-					dsize = descriptionCache.computeSize(5, SWT.DEFAULT);
-					width = Math.max(width, dsize.x);
-				}
-				int cwidth = FormUtil.computeMinimumWidth(client, changed);
-				width = Math.max(width, cwidth);
-			}
-			if (toggle != null) {
-				Point tsize = toggleCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				width += tsize.x + GAP;
-			}
-			return width + marginWidth + marginWidth + thmargin + thmargin;
-			*/
-			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) {
-			/*
-
-			initCache(changed);
-
-			int width = 0;
-			Point size = NULL_SIZE;
-			if (textLabel != null)
-				size = textLabelCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			Point tcsize = NULL_SIZE;
-			int thmargin = 0;
-
-			if (hasTitleBar()) {
-				thmargin = GAP;
-			}
-			if (textClient != null) {
-				tcsize = textClientCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			if (size.x > 0)
-				width = size.x;
-			if (tcsize.x > 0)
-				width += GAP + tcsize.x;
-			if ((expanded || (expansionStyle & COMPACT) == 0) && client != null) {
-				Point dsize = null;
-				if (getDescriptionControl() != null) {
-					dsize = descriptionCache.computeSize(SWT.DEFAULT,
-							SWT.DEFAULT);
-					width = Math.max(width, dsize.x);
-				}
-				int cwidth = FormUtil.computeMaximumWidth(client, changed);
-				width = Math.max(width, cwidth);
-			}
-			if (toggle != null) {
-				Point tsize = toggleCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				width += tsize.x + GAP;
-			}
-			return width + marginWidth + marginWidth + thmargin + thmargin;
-			*/
-			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
-	 * @param expansionStyle
-	 *            the style of the expansion widget (TREE_NODE, TWISTIE,
-	 *            CLIENT_INDENT, COMPACT, FOCUS_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());
-		listeners = new Vector();
-		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 ((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;
-						}
-					}
-				};
-				label.addListener(SWT.MouseDown, listener);
-				label.addListener(SWT.MouseUp, listener);
-				label.addListener(SWT.MouseEnter, listener);
-				label.addListener(SWT.MouseExit, 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;
-							programmaticToggleState();
-							setFocus();
-						}
-					}
-				}
-			});
-		}
-	}
-
-	/**
-	 * 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);
-	}
-
-	/**
-	 * 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) {
-		if (!listeners.contains(listener))
-			listeners.add(listener);
-	}
-
-	/**
-	 * Removes the expansion listener.
-	 * 
-	 * @param listener
-	 *            the listner to remove
-	 */
-	public void removeExpansionListener(IExpansionListener listener) {
-		if (listeners.contains(listener))
-			listeners.remove(listener);
-	}
-
-	private void toggleState() {
-		boolean newState = !isExpanded();
-		fireExpanding(newState, true);
-		internalSetExpanded(newState);
-		fireExpanding(newState, false);
-		if (newState)
-			FormUtil.ensureVisible(this);
-	}
-
-	/**
-	 * 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) {
-	}
-
-	private void fireExpanding(boolean state, boolean before) {
-		int size = listeners.size();
-		if (size == 0)
-			return;
-		ExpansionEvent e = new ExpansionEvent(this, state);
-		for (int i = 0; i < size; i++) {
-			IExpansionListener listener = (IExpansionListener) listeners.get(i);
-			if (before)
-				listener.expansionStateChanging(e);
-			else
-				listener.expansionStateChanged(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;
-	}
-
-	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) {
-		titleBarForeground= color;
-		textLabel.setForeground(color);
-	}
-
-	/**
-	 * Returns the title bar foreground when TITLE_BAR style is used.
-	 * 
-	 * @return the title bar foreground
-	 */
-	public Color getTitleBarForeground() {
-		return titleBarForeground;
-	}
-
-	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();
-	}
-}
\ No newline at end of file
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 6f08e6f..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Form.java
+++ /dev/null
@@ -1,557 +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.jface.action.IToolBarManager;
-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.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.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>
- * The form supports status messages. These messages can have various severity
- * (error, warning, info or none). Message tray can be minimized and later
- * restored by the user, but can only be closed programmatically.
- * <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 next to the title. If title tool bar is also present, a new
- * row is created in the header, and the tool bar is right-justified in the
- * 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
- * worm 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);
- * formContent.setText(&quot;Sample form&quot;);
- * formContent.getBody().setLayout(new GridLayout());
- * toolkit.createButton(formContent.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
- */
-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 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;
-
-			Point 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.
-	 * 
-	 * @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.
-	 * 
-	 * @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.
-	 * 
-	 * @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.getBackgroundImage();
-	}
-
-	/**
-	 * 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.
-	 * 
-	 * @since 3.2
-	 * 
-	 * @param backgroundImage
-	 *            the head background image.
-	 * 
-	 */
-	public void setBackgroundImage(Image backgroundImage) {
-		head.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 head.getToolBarManager();
-	}
-
-	/**
-	 * 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 true;
-	}
-
-	/**
-	 * 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
-	 */
-	public void setBackgroundImageTiled(boolean backgroundImageTiled) {
-		head.setBackgroundImageTiled(backgroundImageTiled);
-	}
-
-	/**
-	 * Returns the background image alignment.
-	 * 
-	 * @deprecated due to the underlying widget limitations, background image is
-	 *             always tiled and alignment cannot be controlled.
-	 * @return SWT.LEFT
-	 */
-	public int getBackgroundImageAlignment() {
-		return head.getBackgroundImageAlignment();
-	}
-
-	/**
-	 * 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) {
-	}
-
-	void setSelectionText(FormText text) {
-		if (selectionText != null && selectionText != text) {
-			selectionText.clearSelection();
-		}
-		this.selectionText = text;
-	}
-
-	/**
-	 * 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. If gradient text
-	 * background is used, the separator will use gradient colors.
-	 * 
-	 * @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
-	 */
-
-	public Color getSeparatorColor() {
-		return head.getSeparatorColor();
-	}
-
-	/**
-	 * 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
-	 */
-	public void setSeparatorColor(Color separatorColor) {
-		head.setSeparatorColor(separatorColor);
-	}
-
-	/**
-	 * 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) {
-		head.setMessage(message);
-	}
-
-	/**
-	 * 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>.
-	 * </p>
-	 * <p>
-	 * 
-	 * @param newMessage
-	 *            the message, or <code>null</code> to clear the message
-	 * @param newType
-	 *            the message type
-	 * @since 3.2
-	 */
-
-	public void setMessage(String newMessage, int newType) {
-		head.setMessage(newMessage, newType);
-	}
-
-	/**
-	 * 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);
-	}
-}
\ 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 225e24e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormText.java
+++ /dev/null
@@ -1,1686 +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 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.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. 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.
- * </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.
- * </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
-	//TODO We should remove the dependency on Platform
-	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 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 += 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.x = marginWidth;
-			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.
-	 * 
-	 * @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) {
-			boldFont.dispose();
-			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 (isFocusControl()) {
-					int selectedIndex = model.getSelectedSegmentIndex();
-					if (selectedIndex == -1) {
-						childID = ACC.CHILDID_SELF;
-					} else {
-						childID = selectedIndex;
-					}
-				}
-				e.childID = childID;
-			}
-
-			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) {
-					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);
-			else {
-			}
-		} else {
-			if (e.button == 1) {
-				endSelection(e);
-				IHyperlinkSegment segmentUnder = model
-						.findHyperlinkAt(e.x, e.y);
-				if (segmentUnder != null && selData == null) {
-					activateLink(segmentUnder, e.stateMask);
-				}
-			}
-			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) {
-					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);
-		}
-	}
-
-	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 = FormUtil.createBoldFont(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 (!isEnabled()) {
-			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);
-		}
-		gc.drawImage(textBuffer, x, y);
-		textGC.dispose();
-		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) {
-				boldFont.dispose();
-				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 873186f..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormToolkit.java
+++ /dev/null
@@ -1,858 +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
- *     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.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;
-
-	/* 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 = FormUtil.createBoldFont(colors.getDisplay(),
-						normalFont);
-			}
-		}
-
-		public void dispose() {
-			if (boldFont != null) {
-				boldFont.dispose();
-				boldFont = null;
-			}
-		}
-	}
-
-	/**
-	 * Creates a toolkit that is self-sufficient (will manage its own colors).
-	 * 
-	 */
-	public FormToolkit(Display display) {
-		this(new FormColors(display));
-	}
-
-	/**
-	 * Creates a toolkit that will use the provided (shared) colors. The toolkit
-	 * will <b>not </b> dispose the provided colors.
-	 * 
-	 * @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(FormColors.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();
-			}
-		});
-		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(FormColors.TB_TOGGLE_HOVER));
-			section.toggle.setDecorationColor(colors
-					.getColor(FormColors.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(FormColors.TB_GBG));
-			section.setTitleBarBorderColor(colors
-					.getColor(FormColors.TB_BORDER));
-			section.setTitleBarGradientBackground(colors
-					.getColor(FormColors.TB_GBG));
-			section.setTitleBarForeground(colors.getColor(FormColors.TB_FG));
-		}
-		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.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(FormColors.TITLE));
-		colors.initializeSectionToolBarColors();
-		form.getForm().setSeparatorColor(colors.getColor(FormColors.TB_BORDER));
-		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(FormColors.TITLE));
-		colors.initializeSectionToolBarColors();
-		formContent.setSeparatorColor(colors.getColor(FormColors.TB_BORDER));
-		formContent.setFont(JFaceResources.getHeaderFont());
-		return formContent;
-	}
-
-	/**
-	 * 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 (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
-	 * pargin 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 border in the following way:
-	 * 
-	 * <pre>
-	 * 
-	 *  
-	 *   
-	 *           widget.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER);
-	 *           
-	 *           or
-	 *           
-	 *           widget.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-	 *          
-	 *   
-	 *  
-	 * </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;
-	}
-
-	/**
-	 * 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$
-		if (osname.equals("Windows XP")) { //$NON-NLS-1$
-			// Skinned widgets used on XP - 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 f771478..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Hyperlink.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.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.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.
- * 
- * @see org.eclipse.ui.forms.HyperlinkGroup
- * @since 3.0
- */
-public class Hyperlink extends AbstractHyperlink {
-	private String text;
-
-	private boolean underlined;
-
-	/**
-	 * 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 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;
-	}
-
-	/**
-	 * 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());
-		gc.setForeground(getForeground());
-		if ((getStyle() & SWT.WRAP) != 0) {
-			FormUtil.paintWrapText(gc, text, bounds, underlined);
-		} else {
-			Point textSize = computeTextSize(bounds.width, SWT.DEFAULT);
-			int textWidth = textSize.x;
-			int textHeight = textSize.y;
-			gc.drawText(getText(), 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);
-			}
-		}
-	}
-
-	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());
-		}
-		gc.dispose();
-		return extent;
-	}
-}
\ No newline at end of file
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 fb3a4a1..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ILayoutExtension.java
+++ /dev/null
@@ -1,48 +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.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 f1eec30..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ImageHyperlink.java
+++ /dev/null
@@ -1,287 +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.forms.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-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.
- * 
- * @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 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);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.widgets.AbstractHyperlink#paintHyperlink(org.eclipse.swt.events.PaintEvent)
-	 */
-	protected void paintHyperlink(GC gc) {
-		Rectangle clientArea = getClientArea();
-		Image image = null;
-		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 = clientArea.width - maxsize.x - spacing
-				- marginWidth - marginWidth;
-		int y = marginHeight + maxsize.y / 2 - ibounds.height / 2;
-
-		if (horizontalAlignment == SWT.LEFT) {
-			int x = marginWidth + maxsize.x / 2 - ibounds.width / 2;
-			int textX = marginWidth + maxsize.x + spacing;
-			if (image != null)
-				gc.drawImage(image, x, y);
-			if (getText() != null)
-				drawText(gc, clientArea, textX, textWidth);
-		} else if (horizontalAlignment == SWT.RIGHT) {
-			int x = marginWidth;
-			if (getText() != null) {
-				x += drawText(gc, clientArea, 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;
-	}
-
-	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;
-		}
-	}
-}
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 3eea570..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutCache.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.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 2855839..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutComposite.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-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 d44eb60..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledForm.java
+++ /dev/null
@@ -1,196 +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.widgets;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-/**
- * 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
- */
-public class ScrolledForm extends SharedScrolledComposite {
-	private Form content;
-	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());
-	}
-/**
- * Passes the menu to the body.
- * @param menu
- */
-	public void setMenu(Menu menu) {
-		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.
-	 * 
-	 * @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();
-	}
-	/**
-	 * Recomputes the body layout and form 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 <samp>true </samp>, drop any cached layout information and
-	 *            compute new one.
-	 */
-	public void reflow(boolean flushCache) {
-		//content.getBody().layout();
-		//content.layout();
-		super.reflow(flushCache);
-	}
-	/**
-	 * 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;
-	}
-}
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 2d411dc..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledFormText.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-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 8017a89..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledPageBook.java
+++ /dev/null
@@ -1,215 +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.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
-	 * @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 f5b48aa..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Section.java
+++ /dev/null
@@ -1,475 +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
- *     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.Text;
-
-/**
- * A variation of the expandable composite that adds optional description below
- * the title. Section is often used as a basic building block if 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)
-						image.dispose();
-					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);
-		reflow();
-	}
-
-	/**
-	 * Reflows this section and all the parents up the hierarchy
-	 * until a ScrolledForm is reached.
-	 */
-	protected void reflow() {
-		Composite c = this;
-		while (c != null) {
-			c.setRedraw(false);
-			c = c.getParent();
-			if (c instanceof ScrolledForm) {
-				break;
-			}
-		}
-		c = this;
-		while (c != null) {
-			c.layout(true);
-			c = c.getParent();
-			if (c instanceof ScrolledForm) {
-				((ScrolledForm) c).reflow(true);
-				break;
-			}
-		}
-		c = this;
-		while (c != null) {
-			c.setRedraw(true);
-			c = c.getParent();
-			if (c instanceof ScrolledForm) {
-				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 gbg = 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);
-			gbg = (Color) titleColors.get(COLOR_GBG);
-			fg = getTitleBarForeground();
-			border = (Color) titleColors.get(COLOR_BORDER);
-		}
-		if (bg == null)
-			bg = getBackground();
-		if (fg == null)
-			fg = getForeground();
-		if (border == null)
-			border = fg;
-		if (gbg == null)
-			gbg = bg;
-		int theight = 0;
-		int tvmargin = GAP;
-		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 + GAP;
-			if (getTextClient() != null)
-				tcsize = getTextClient().getSize();
-			if (tcsize != null)
-				twidth -= tcsize.x + GAP;
-			Point size = textLabel.getSize();
-			if (tsize != null)
-				theight += Math.max(theight, tsize.y);
-			if (tcsize != null)
-				theight = Math.max(theight, tcsize.y);
-			theight = Math.max(theight, size.y);
-			theight += tvmargin + tvmargin;
-		} else {
-			theight = 5;
-		}
-		int midpoint = (theight * 66) / 100;
-		int rem = theight - midpoint;
-
-		if ((getExpansionStyle() & TITLE_BAR) != 0) {
-			if (getBackgroundImage() == null)
-				updateHeaderImage(bg, gbg, bounds, theight, midpoint, rem);
-			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());
-		// 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 - 1, marginHeight,
-				bounds.width - marginWidth - 1, marginHeight + 2 });
-		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 && toggle != null
-				&& !isExpanded()) {
-			// left vertical edge
-			gc.drawLine(marginWidth, marginHeight + 2, marginWidth,
-					marginHeight + theight - 1);
-			// right vertical edge
-			gc.drawLine(bounds.width - marginWidth - 1, marginHeight + 2,
-					bounds.width - marginWidth - 1, marginHeight + theight - 1);
-			// bottom edge (if closed)
-			gc.drawLine(marginWidth, marginHeight + theight - 1, bounds.width
-					- marginWidth - 1, marginHeight + theight - 1);
-		} else if (isExpanded()) {
-			// left vertical edge gradient
-			gc.fillGradientRectangle(marginWidth, marginHeight + 2, 1,
-					theight - 2, true);
-			// right vertical edge gradient
-			gc.fillGradientRectangle(bounds.width - marginWidth - 1,
-					marginHeight + 2, 1, theight - 2, true);
-		}
-		if (buffer != null) {
-			// e.gc.drawImage(buffer, bounds.x, bounds.y);
-			e.gc.drawImage(buffer, 0, 0);
-			gc.dispose();
-			buffer.dispose();
-		}
-	}
-
-	private void updateHeaderImage(Color bg, Color gbg, Rectangle bounds,
-			int theight, int midpoint, int rem) {
-		Image image = new Image(getDisplay(), 1, theight);
-		image.setBackground(getBackground());
-		GC gc = new GC(image);
-		gc.setBackground(getBackground());
-		gc.fillRectangle(0, 0, 1, theight);
-		gc.setForeground(bg);
-		gc.setBackground(gbg);
-		gc.fillGradientRectangle(0, marginHeight, 1, midpoint - 1, true);
-		gc.setForeground(gbg);
-		gc.setBackground(getBackground());
-		gc.fillGradientRectangle(0, marginHeight + midpoint - 1, 
-				1, rem - 1, true);
-		gc.dispose();
-		super.setBackgroundImage(image);
-	}
-
-	/**
-	 * Background image is used for the title gradient - does nothing.
-	 */
-	public final void setBackgroundImage(Image image) {
-	}
-}
\ No newline at end of file
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 4d9aabc..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SharedScrolledComposite.java
+++ /dev/null
@@ -1,264 +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.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 = true;
-	
-	/**
-	 * 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();
-		}
-		setRedraw(false);
-		Point newSize = contentCache.computeSize(FormUtil.getWidthHint(
-				clientArea.width, c), FormUtil.getHeightHint(clientArea.height,
-				c));
-
-		// Point currentSize = c.getSize();
-		if (!(expandHorizontal && expandVertical)) {
-			c.setSize(newSize);
-		}
-
-		setMinSize(newSize);
-		FormUtil.updatePageIncrement(this);
-
-		ignoreLayouts = false;
-		layout(flushCache);
-		ignoreLayouts = true;
-
-		contentCache.layoutIfNecessary();
-		setRedraw(true);
-	}
-
-	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;
-			}
-			getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					if (!isDisposed())
-						reflow(flushCache);
-					reflowPending = false;
-				}
-			});
-			reflowPending = true;
-		} 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. This improves
-	 * performance by 
-	 * @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 e56219d..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SizeCache.java
+++ /dev/null
@@ -1,531 +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 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.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, heightHint);
-
-            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(widthHint, heightHint);
-
-            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 Composite) {
-            // For composites, subtract off the trim size
-            Composite composite = (Composite) control;
-            Rectangle trim = composite.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 7e776e0..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapData.java
+++ /dev/null
@@ -1,197 +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.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * Layout data used in conjunction with <code>HTMLTableLayout</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 convinience constructor - allows passing the horizontal alignment
-	 * style.
-	 * 
-	 * @param align
-	 *            horizontal alignment (LEFT, MIDDLE, RIGHT, FILL or FILL_GRAB).
-	 */
-	public TableWrapData(int align) {
-		this(align, TOP, 1, 1);
-	}
-
-	/**
-	 * The convinience 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 convinience 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 d10e650..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapLayout.java
+++ /dev/null
@@ -1,867 +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.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 column;
-
-		int height;
-
-		int totalHeight;
-
-		public RowSpan(Control child, int column, int row) {
-			this.child = child;
-			this.column = column;
-			this.row = row;
-		}
-
-		public void update(int currentRow, int rowHeight) {
-			TableWrapData td = (TableWrapData) child.getLayoutData();
-			if (currentRow - row <= td.rowspan - 1) {
-				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 37d51d3..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ToggleHyperlink.java
+++ /dev/null
@@ -1,228 +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.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.*;
-/**
- * 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.
- * 
- * @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) {
-				if (getParent() instanceof ExpandableComposite) {
-					String name = ((ExpandableComposite)getParent()).getText();
-					int index = name.indexOf('&');
-					if (index != -1) {
-						name = name.substring(0, index) + name.substring(index + 1);
-					}
-					e.result = name;
-				}
-					
-			}
-			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 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) {
-						e.result = "0"; //$NON-NLS-1$
-					}
-				});
-	}
-	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;
-		}
-	}
-}
\ No newline at end of file
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 4270a4c..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TreeNode.java
+++ /dev/null
@@ -1,71 +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.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.
- * 
- * @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 (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 96a2736..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Twistie.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-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.
- * 
- * @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/Messages.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.java
deleted file mode 100644
index 94eb6f8..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.java
+++ /dev/null
@@ -1,30 +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.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;
-}
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 a7f13d8..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.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
-###############################################################################
-FormText_copy=&Copy
-Form_tooltip_minimize=Minimize
-FormDialog_defaultTitle=Form Dialog
-Form_tooltip_restore=Restore
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 435dad3..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BreakSegment.java
+++ /dev/null
@@ -1,72 +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.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.x = locator.indent;
-		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 801cbc9..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java
+++ /dev/null
@@ -1,304 +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.forms.widgets;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-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.ImageData;
-import org.eclipse.swt.graphics.ImageLoader;
-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;
-
-public class BusyIndicator extends Canvas {
-	private static final int MARGIN = 2;
-
-	private ImageData[] progressData;
-
-	protected ImageLoader loader;
-
-	protected Image image;
-
-	protected Image animationImage;
-
-	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);
-
-		loadProgressImage();
-
-		addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				onPaint(event);
-			}
-		});
-	}
-
-	private void loadProgressImage() {
-		InputStream is = BusyIndicator.class
-				.getResourceAsStream("progress.gif"); //$NON-NLS-1$
-		if (is != null) {
-			loader = new ImageLoader();
-			try {
-				progressData = loader.load(is);
-			} catch (IllegalArgumentException e) {
-			}
-			try {
-				is.close();
-			} catch (IOException e) {
-			}
-		}
-	}
-
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		Point size = new Point(0, 0);
-		if (image != null) {
-			Rectangle ibounds = image.getBounds();
-			size.x = ibounds.width;
-			size.y = ibounds.height;
-		}
-		if (loader != null) {
-			size.x = Math.max(size.x, loader.logicalScreenWidth);
-			size.y = Math.max(size.y, loader.logicalScreenHeight);
-		}
-		size.x += MARGIN + MARGIN;
-		size.y += MARGIN + MARGIN;
-		return size;
-	}
-
-	/**
-	 * Creates a thread to animate the image.
-	 */
-	protected synchronized void createBusyThread() {
-		if (busyThread != null)
-			return;
-
-		stop = false;
-		busyThread = new Thread() {
-			private Image timage;
-
-			public void run() {
-				try {
-					/*
-					 * Create an off-screen image to draw on, and fill it with
-					 * the shell background.
-					 */
-					Image offScreenImage = new Image(getDisplay(),
-							loader.logicalScreenWidth,
-							loader.logicalScreenHeight);
-					final GC offScreenImageGC = new GC(offScreenImage);
-					getDisplay().asyncExec(new Runnable() {
-						public void run() {
-							drawBackground(offScreenImageGC, 0, 0, loader.logicalScreenWidth, loader.logicalScreenHeight);
-						}
-					});
-					try {
-						/*
-						 * Create the first image and draw it on the off-screen
-						 * image.
-						 */
-						int imageDataIndex = 0;
-						ImageData imageData = progressData[imageDataIndex];
-						if (timage != null && !timage.isDisposed())
-							timage.dispose();
-						timage = new Image(getDisplay(), imageData);
-						offScreenImageGC.drawImage(timage, 0, 0,
-								imageData.width, imageData.height, imageData.x,
-								imageData.y, imageData.width, imageData.height);
-
-						/*
-						 * Now loop through the images, creating and drawing
-						 * each one on the off-screen image before drawing it on
-						 * the shell.
-						 */
-						int repeatCount = loader.repeatCount;
-						while (loader.repeatCount == 0 || repeatCount > 0) {
-							if (stop || isDisposed())
-								break;
-							switch (imageData.disposalMethod) {
-							case SWT.DM_FILL_BACKGROUND:
-								/*
-								 * Fill with the background color before
-								 * drawing.
-								 */
-								offScreenImageGC.fillRectangle(imageData.x,
-										imageData.y, imageData.width,
-										imageData.height);
-								break;
-							case SWT.DM_FILL_PREVIOUS:
-								/* Restore the previous image before drawing. */
-								offScreenImageGC.drawImage(timage, 0, 0,
-										imageData.width, imageData.height,
-										imageData.x, imageData.y,
-										imageData.width, imageData.height);
-								break;
-							}
-
-							imageDataIndex = (imageDataIndex + 1)
-									% progressData.length;
-							imageData = progressData[imageDataIndex];
-							timage.dispose();
-							timage = new Image(getDisplay(), imageData);
-							offScreenImageGC.drawImage(timage, 0, 0,
-									imageData.width, imageData.height,
-									imageData.x, imageData.y, imageData.width,
-									imageData.height);
-
-							/* Draw the off-screen image to the shell. */
-							animationImage = offScreenImage;
-							getDisplay().syncExec(new Runnable() {
-								public void run() {
-									if (!isDisposed())
-										redraw();
-								}
-							});
-							/*
-							 * Sleep for the specified delay time (adding
-							 * commonly-used slow-down fudge factors).
-							 */
-							try {
-								int ms = imageData.delayTime * 10;
-								if (ms < 20)
-									ms += 50;
-								if (ms < 30)
-									ms += 20;
-								Thread.sleep(ms);
-							} catch (InterruptedException e) {
-							}
-
-							/*
-							 * If we have just drawn the last image, decrement
-							 * the repeat count and start again.
-							 */
-							if (imageDataIndex == progressData.length - 1)
-								repeatCount--;
-						}
-					} catch (SWTException ex) {
-						//System.out
-						//		.println("There was an error animating the GIF");
-					} finally {
-						if (offScreenImage != null
-								&& !offScreenImage.isDisposed())
-							offScreenImage.dispose();
-						if (offScreenImageGC != null
-								&& !offScreenImageGC.isDisposed())
-							offScreenImageGC.dispose();
-						if (timage != null && !timage.isDisposed())
-							timage.dispose();
-					}
-					if (busyThread == null)
-						Display.getDefault().syncExec(new Runnable() {
-							public void run() {
-								animationImage = null;
-								redraw();
-							}
-						});
-				} 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) {
-		if (animationImage!=null && animationImage.isDisposed()) {
-			animationImage=null;
-		}
-		Rectangle rect = getClientArea();
-		if (rect.width == 0 || rect.height == 0)
-			return;
-
-		GC gc = event.gc;
-		Image activeImage = animationImage != null ? animationImage : image;
-		if (activeImage != null) {
-			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 (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();
-		}
-	}
-}
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 29cd139..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 (wHint!=SWT.DEFAULT && fill)
-			size.x = Math.max(size.x, wHint);
-		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;
-	}
-}
\ No newline at end of file
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 734bedb..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormHeading.java
+++ /dev/null
@@ -1,1152 +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.core.runtime.Assert;
-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.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.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.Rectangle;
-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.Display;
-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.ToolBar;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.SizeCache;
-import org.eclipse.ui.internal.forms.Messages;
-
-/**
- * Form header moved out of the form class.
- */
-public class FormHeading extends Canvas {
-	private int TITLE_HMARGIN = 10;
-
-	private int TITLE_VMARGIN = 5;
-
-	private int TITLE_GAP = 5;
-
-	private int SEPARATOR_HEIGHT = 6;
-	
-	private static final int SEPARATOR = 1 << 1;
-	private static final int TILED = 1 << 2;
-
-	private Image gradientImage;
-
-	private Image image;
-
-	private Color baseBg;
-	
-	private int flags;
-	
-	private Color separatorColor;
-
-	private GradientInfo gradientInfo;
-
-	private String text;
-
-	private ToolBarManager toolBarManager;
-
-	private SizeCache titleCache = new SizeCache();
-
-	private SizeCache toolbarCache = new SizeCache();
-
-	private SizeCache clientCache = new SizeCache();
-
-	private BusyIndicator busyLabel;
-
-	private Label titleLabel;
-
-	private Control headClient;
-
-	private MessageArea messageArea;
-
-	private class GradientInfo {
-		Color[] gradientColors;
-
-		int[] percents;
-
-		boolean vertical;
-	}
-
-	private class MessageArea extends Composite {
-		static final int BUTTON_BORDER = SWT.COLOR_WIDGET_DARK_SHADOW;
-
-		static final int BUTTON_FILL = SWT.COLOR_LIST_BACKGROUND;
-
-		static final int BUTTON_SIZE = 18;
-
-		private Image normal;
-
-		private Image hot;
-
-		static final int CLOSED = 0;
-
-		static final int OPENNING = 1;
-
-		static final int OPEN = 2;
-
-		static final int CLOSING = 3;
-
-		private CLabel label;
-
-		private ImageHyperlink rlink;
-
-		private ImageHyperlink mlink;
-
-		private int state = CLOSED;
-
-		private boolean minimized;
-
-		private boolean animationStart;
-
-		public MessageArea(Composite parent, int style) {
-			super(parent, SWT.NULL);
-			Composite container = new Composite(this, SWT.NULL);
-			GridLayout glayout = new GridLayout();
-			glayout.numColumns = 2;
-			glayout.marginWidth = 0;
-			glayout.marginHeight = 0;
-			container.setLayout(glayout);
-			label = new CLabel(container, SWT.NULL);
-			label.setLayoutData(new GridData(GridData.FILL_BOTH));
-			mlink = new ImageHyperlink(container, SWT.NULL);
-			mlink.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					setMinimized(true);
-				}
-			});
-			mlink.setToolTipText(Messages.Form_tooltip_minimize);
-			rlink = new ImageHyperlink(this, SWT.NULL);
-			rlink.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					setMinimized(false);
-				}
-			});
-			if (gradientInfo == null && getBackgroundImage() == null)
-				rlink.setBackground(getBackground());
-			rlink.setVisible(false);
-			rlink.setToolTipText(Messages.Form_tooltip_restore);
-			createMinimizedImages();
-			addPaintListener(new PaintListener() {
-				public void paintControl(PaintEvent e) {
-					onPaint(e);
-				}
-			});
-			addDisposeListener(new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					disposeMinimizeImages();
-				}
-			});
-			super.setLayout(new Layout() {
-				public void layout(Composite parent, boolean changed) {
-					Rectangle carea = getClientArea();
-					if (minimized) {
-						rlink.setBounds(carea.x, carea.y, carea.width,
-								carea.height);
-					} else {
-						label.getParent().setBounds(carea.x + 2, carea.y + 2,
-								carea.width - 4, carea.height - 4);
-					}
-				}
-
-				public Point computeSize(Composite parent, int wHint,
-						int hHint, boolean changed) {
-					Point size = new Point(0, 0);
-					if (minimized)
-						size = rlink.computeSize(wHint, hHint, changed);
-					else
-						size = label.getParent().computeSize(wHint, hHint,
-								changed);
-					if (!minimized) {
-						size.x += 4;
-						size.y += 4;
-					}
-					return size;
-				}
-			});
-		}
-
-		public void setMinimized(boolean minimized) {
-			setBackground(minimized ? null : baseBg);
-			this.minimized = minimized;
-			if (minimized) {
-				rlink.setImage(label.getImage());
-			}
-			rlink.setVisible(minimized);
-			label.getParent().setVisible(!minimized);
-			layout();
-
-			FormHeading.this.layout();
-			FormHeading.this.redraw();
-		}
-
-		public boolean isMinimized() {
-			return minimized;
-		}
-
-		public synchronized void setState(int state) {
-			this.state = state;
-			if (state == OPENNING)
-				setVisible(true);
-			else if (state == CLOSED)
-				setVisible(false);
-		}
-
-		public int getState() {
-			return state;
-		}
-
-		public void setBackground(Color bg) {
-			super.setBackground(bg);
-			label.setBackground(bg);
-			mlink.setBackground(bg);
-			rlink.setBackground(bg);
-			label.getParent().setBackground(bg);
-			createMinimizedImages();
-		}
-
-		public void setText(String text) {
-			this.label.setText(text);
-		}
-
-		public void setImage(Image image) {
-			this.label.setImage(image);
-		}
-
-		public boolean isInTransition() {
-			return state == OPENNING || state == CLOSING;
-		}
-
-		private void onPaint(PaintEvent e) {
-			if (minimized)
-				return;
-			Rectangle carea = getClientArea();
-			e.gc.setForeground(getForeground());
-			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 });
-		}
-
-		public boolean isAnimationStart() {
-			return animationStart;
-		}
-
-		public void setAnimationStart(boolean animationStart) {
-			this.animationStart = animationStart;
-		}
-
-		private void createMinimizedImages() {
-			disposeMinimizeImages();
-			normal = new Image(getDisplay(), BUTTON_SIZE, BUTTON_SIZE);
-			GC gc = new GC(normal);
-			paintNormalImage(getDisplay(), gc);
-			gc.dispose();
-			hot = new Image(getDisplay(), BUTTON_SIZE, BUTTON_SIZE);
-			gc = new GC(hot);
-			paintHotImage(getDisplay(), gc);
-			gc.dispose();
-			mlink.setImage(normal);
-			mlink.setHoverImage(hot);
-		}
-
-		private void disposeMinimizeImages() {
-			if (normal != null) {
-				normal.dispose();
-				normal = null;
-			}
-			if (hot != null) {
-				hot.dispose();
-				hot = null;
-			}
-		}
-
-		private void paintNormalImage(Display display, GC gc) {
-			gc.setForeground(display.getSystemColor(BUTTON_BORDER));
-			// gc.setBackground(display.getSystemColor(BUTTON_FILL));
-			gc.setBackground(getBackground());
-			paintInnerContent(gc);
-		}
-
-		private void paintHotImage(Display display, GC gc) {
-			gc.setForeground(display.getSystemColor(BUTTON_BORDER));
-			// gc.setBackground(display.getSystemColor(BUTTON_FILL));
-			// gc.setBackground(getBackground());
-			// gc.fillRoundRectangle(0, 0, BUTTON_SIZE, BUTTON_SIZE, 6, 6);
-			gc.drawRoundRectangle(0, 0, BUTTON_SIZE - 1, BUTTON_SIZE - 1, 6, 6);
-			paintInnerContent(gc);
-		}
-
-		private void paintInnerContent(GC gc) {
-			int x = BUTTON_SIZE / 2 - 5;
-			int y = 2;
-			gc.fillRectangle(x, y, 9, 3);
-			gc.drawRectangle(x, y, 9, 3);
-		}
-	}
-
-	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) {
-			if (flushCache) {
-				titleCache.flush();
-				toolbarCache.flush();
-				clientCache.flush();
-			}
-
-			int width = 0;
-			int height = 0;
-			Point tbsize = null;
-
-			if (headClient != null) {
-				clientCache.setControl(headClient);
-				Point clsize = clientCache
-						.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				if (text != null)
-					width += TITLE_GAP;
-				width += clsize.x;
-				height += clsize.y;
-			}
-
-			if (toolBarManager != null) {
-				ToolBar toolBar = toolBarManager.getControl();
-				if (toolBar != null) {
-					toolbarCache.setControl(toolBar);
-					tbsize = toolbarCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-					if (headClient == null) {
-						if (text != null)
-							width += TITLE_GAP;
-						width += tbsize.x;
-						height = tbsize.y;
-					}
-				}
-			}
-			int iwidth = 0;
-			int iheight = 0;
-			if (messageArea != null && messageArea.isMinimized()) {
-				Point rsize = messageArea.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				iwidth = Math.max(iwidth, rsize.x);
-				iheight = Math.max(iheight, rsize.y);
-			}
-			if (busyLabel != null) {
-				Point bsize = busyLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				iwidth = Math.max(iwidth, bsize.x);
-				iheight = Math.max(iheight, bsize.y);
-			}
-			if (iwidth > 0) {
-				if (text != null)
-					width += TITLE_GAP;
-				width += iwidth;
-				height = Math.max(height, iheight);
-			}
-			if (text != null) {
-				GC gc = new GC(composite);
-				gc.setFont(getFont());
-
-				if (wHint != SWT.DEFAULT) {
-					int twHint = wHint - width;
-					Point wsize = FormUtil.computeWrapSize(gc, text, twHint);
-					width += wsize.x;
-					height = Math.max(wsize.y, height);
-				} else {
-					Point extent = gc.textExtent(text);
-					width += extent.x;
-					height = Math.max(extent.y, height);
-				}
-				gc.dispose();
-			}
-			int secondRowHeight = 0;
-			if (headClient != null) {
-				if (tbsize != null)
-					secondRowHeight = tbsize.y;
-			}
-
-			if (messageArea != null) {
-				Point masize = messageArea
-						.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				if (headClient == null)
-					height = Math.max(masize.y, height);
-				else {
-					secondRowHeight = Math.max(secondRowHeight, masize.y);
-				}
-			}
-			if (secondRowHeight > 0)
-				height += secondRowHeight;
-			if (isSeparatorVisible())
-				height += SEPARATOR_HEIGHT;
-			if (height != 0)
-				height += TITLE_VMARGIN * 2;
-			if (width != 0)
-				width += TITLE_HMARGIN * 2;
-			int ihHint = hHint;
-			if (ihHint > 0 && ihHint != SWT.DEFAULT)
-				ihHint -= height;
-			return new Point(width, height);
-		}
-
-		protected void layout(Composite composite, boolean flushCache) {
-			if (flushCache) {
-				toolbarCache.flush();
-			}
-			Rectangle carea = composite.getClientArea();
-			int height = 0;
-			Point tbsize = null;
-			Point clsize = null;
-			int twidth = carea.width - TITLE_HMARGIN * 2;
-			if ((image != null || text != null || (messageArea != null && messageArea
-					.isMinimized()))
-					&& toolBarManager != null) {
-				ToolBar toolBar = toolBarManager.getControl();
-				if (toolBar != null) {
-					toolbarCache.setControl(toolBar);
-					tbsize = toolbarCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-					if (headClient == null) {
-						toolbarCache.setBounds(carea.width - 1 - TITLE_HMARGIN
-								- tbsize.x, TITLE_VMARGIN, tbsize.x, tbsize.y);
-						height = tbsize.y;
-					}
-				}
-			}
-
-			Rectangle clientRect = null;
-
-			if (headClient != null) {
-				clientCache.setControl(headClient);
-				clsize = clientCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				clientRect = new Rectangle(carea.width - 1 - TITLE_HMARGIN
-						- clsize.x, TITLE_VMARGIN, clsize.x, clsize.y);
-				height = clsize.y;
-				twidth -= clsize.x + TITLE_GAP;
-			}
-			if (headClient == null && tbsize != null) {
-				twidth -= tbsize.x + TITLE_GAP;
-			}
-			int tx = TITLE_HMARGIN;
-			int iwidth = 0;
-			if (image != null) {
-				Rectangle ibounds = image.getBounds();
-				iwidth = ibounds.width;
-			}
-			Point msize = null;
-			Point bsize = null;
-			int mx = 0;
-			if (messageArea != null && messageArea.isMinimized()) {
-				msize = messageArea.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				iwidth = Math.max(msize.x, iwidth);
-				mx = tx;
-			}
-			if (busyLabel != null) {
-				bsize = busyLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				iwidth = Math.max(bsize.x, iwidth);
-				mx = tx;
-			}
-			if (iwidth > 0) {
-				tx += iwidth + TITLE_GAP;
-				if (text != null)
-					twidth -= TITLE_GAP;
-				twidth -= iwidth;
-			}
-			Rectangle titleRect = new Rectangle(0, 0, 0, 0);
-			if (text != null) {
-				Point tsize = titleCache.computeSize(twidth, SWT.DEFAULT);
-				height = tsize.y;
-				if (headClient == null) {
-					if (tbsize != null)
-						height = Math.max(tbsize.y, height);
-				} else {
-					height = Math.max(clsize.y, height);
-				}
-				int minTextWidth = tsize.x;
-				Point realtsize = titleCache.computeSize(SWT.DEFAULT,
-						SWT.DEFAULT);
-				minTextWidth = Math.min(realtsize.x, minTextWidth);
-				titleCache.setBounds(tx, TITLE_VMARGIN, minTextWidth, height);
-				titleRect = titleCache.getControl().getBounds();
-				if (minTextWidth < tsize.x && headClient != null) {
-					// fix up the head client to use the extra space
-					int hx = tx + minTextWidth + TITLE_GAP;
-					int hwidth = carea.width - TITLE_HMARGIN - hx;
-					clientRect.x = hx;
-					clientRect.width = hwidth;
-				}
-			}
-			if (headClient != null && clientRect != null)
-				clientCache.setBounds(clientRect);
-
-			if (msize != null) {
-				messageArea.setBounds(mx, titleRect.y + titleRect.height / 2
-						- msize.y / 2, msize.x, msize.y);
-			}
-			if (bsize != null) {
-				busyLabel.setBounds(mx, titleRect.y + titleRect.height / 2
-						- bsize.y / 2, bsize.x, bsize.y);
-			}
-			if (headClient != null) {
-				if (tbsize != null) {
-					height += TITLE_GAP;
-					toolbarCache.setBounds(carea.width - 1 - TITLE_HMARGIN
-							- tbsize.x, TITLE_VMARGIN + height, tbsize.x,
-							tbsize.y);
-					height += tbsize.y;
-					// height += TITLE_GAP;
-				}
-			}
-			if (height > 0)
-				height += TITLE_VMARGIN * 2;
-			if (isSeparatorVisible())
-				height += SEPARATOR_HEIGHT;
-			if (messageArea != null
-					&& !messageArea.isMinimized()
-					&& (messageArea.isAnimationStart() || !messageArea
-							.isInTransition()) && messageArea.isVisible()) {
-				Point masize = messageArea
-						.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				int may = messageArea.isAnimationStart()
-						&& messageArea.getState() == MessageArea.OPENNING ? height - 1
-						: height - 1 - masize.y;
-				if (isSeparatorVisible())
-					may -= SEPARATOR_HEIGHT;
-				if (headClient != null)
-					may -= 2;
-				int mawidth = carea.width - TITLE_HMARGIN - TITLE_HMARGIN;
-				if (tbsize != null)
-					mawidth -= tbsize.x + TITLE_GAP;
-				messageArea.setBounds(TITLE_HMARGIN, may, mawidth, masize.y);
-				messageArea.setAnimationStart(false);
-			}
-		}
-	}
-
-	/**
-	 * 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) {
-					gradientImage.dispose();
-					gradientImage = null;
-				}
-			}
-		});
-		addListener(SWT.Resize, new Listener() {
-			public void handleEvent(Event e) {
-				if (gradientInfo != null)
-					updateGradientImage();
-			}
-		});
-		super.setLayout(new FormHeadingLayout());
-		titleLabel = new Label(this, SWT.WRAP);
-		titleCache = new SizeCache(titleLabel);
-	}
-
-	/**
-	 * 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 text;
-	}
-
-	/**
-	 * 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 image;
-	}
-
-	/**
-	 * Sets the background color of the header.
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		titleLabel.setBackground(bg);
-		if (toolBarManager != null)
-			toolBarManager.getControl().setBackground(bg);
-		baseBg = bg;
-	}
-
-	/**
-	 * Sets the foreground color of the header.
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		titleLabel.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) {
-		this.text = text;
-		if (toolBarManager != null) {
-			toolBarManager.getControl().setVisible(
-					image != null || text != null);
-		}
-		if (text != null) {
-			titleCache.setControl(titleLabel);
-			titleLabel.setText(text);
-		}
-		titleLabel.setVisible(text != null);
-		layout();
-		redraw();
-	}
-
-	public void setFont(Font font) {
-		super.setFont(font);
-		titleLabel.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) {
-		this.image = image;
-		if (toolBarManager != null) {
-			toolBarManager.getControl().setVisible(
-					image != null || text != null);
-		}
-		if (image != null) {
-			createBusyLabel();
-		} else if (image == null && busyLabel != null) {
-			if (!busyLabel.isBusy()) {
-				busyLabel.dispose();
-				busyLabel = null;
-			}
-		}
-		busyLabel.setImage(image);
-		layout();
-	}
-
-	private void createBusyLabel() {
-		if (busyLabel == null) {
-			busyLabel = new BusyIndicator(this, SWT.NULL);
-			if (gradientInfo == null && getBackgroundImage() == null)
-				busyLabel.setBackground(getBackground());
-		}
-	}
-
-	public void setTextBackground(Color[] gradientColors, int[] percents,
-			boolean vertical) {
-		gradientInfo = new GradientInfo();
-		gradientInfo.gradientColors = gradientColors;
-		gradientInfo.percents = percents;
-		gradientInfo.vertical = vertical;
-		titleLabel.setBackground(null);
-		super.setBackground(null);
-		if (toolBarManager != null)
-			toolBarManager.getControl().setBackground(null);
-		if (busyLabel != null)
-			busyLabel.setBackground(null);
-		updateGradientImage();
-	}
-
-	public void setBackgroundImage(Image image) {
-		super.setBackgroundImage(image);
-		if (image != null) {
-			titleLabel.setBackground(null);
-			if (toolBarManager != null)
-				toolBarManager.getControl().setBackground(null);
-			if (busyLabel != null)
-				busyLabel.setBackground(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;
-	}
-
-	/**
-	 * 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 || isBackgroundImageTiled())
-				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()) {
-			// gradient
-			if (gradientInfo != null && gradientInfo.gradientColors.length >= 2) {
-				igc.setBackground(gradientInfo.gradientColors[0]);
-				igc
-						.setForeground(gradientInfo.gradientColors[gradientInfo.gradientColors.length - 1]);
-				igc.fillGradientRectangle(0, carea.height - SEPARATOR_HEIGHT
-						+ 3, carea.width, SEPARATOR_HEIGHT - 2,
-						gradientInfo.vertical);
-			}
-			// bg separator
-			igc.setForeground(baseBg);
-			igc.drawPolyline(new int[] { 0,
-					carea.height - SEPARATOR_HEIGHT + 2, 2,
-					carea.height - SEPARATOR_HEIGHT, carea.width - 3,
-					carea.height - SEPARATOR_HEIGHT, carea.width - 1,
-					carea.height - SEPARATOR_HEIGHT + 2 });
-			// color separator
-			if (separatorColor != null)
-				igc.setForeground(separatorColor);
-			else
-				igc.setForeground(getForeground());
-			igc.drawPolyline(new int[] { 0, carea.height, 0,
-					carea.height - SEPARATOR_HEIGHT + 3, 2,
-					carea.height - SEPARATOR_HEIGHT + 1, carea.width - 3,
-					carea.height - SEPARATOR_HEIGHT + 1, carea.width - 1,
-					carea.height - SEPARATOR_HEIGHT + 3, carea.width - 1,
-					carea.height });
-		}
-		gc.drawImage(buffer, carea.x, carea.y);
-		igc.dispose();
-		buffer.dispose();
-	}
-
-	private void updateGradientImage() {
-		Rectangle rect = getBounds();
-		boolean vertical = gradientInfo.vertical;
-		if (gradientImage != null)
-			gradientImage.dispose();
-		int width = vertical ? 1 : rect.width;
-		int height = vertical ? rect.height : 1;
-		gradientImage = new Image(getDisplay(), Math.max(width, 1), Math.max(
-				height, 1));
-		GC gc = new GC(gradientImage);
-		drawTextGradient(gc, width, height);
-		gc.dispose();
-		setBackgroundImage(gradientImage);
-	}
-
-	private void drawTextGradient(GC gc, int width, int height) {
-		final Color oldBackground = gc.getBackground();
-		if (gradientInfo.gradientColors.length == 1) {
-			if (gradientInfo.gradientColors[0] != null)
-				gc.setBackground(gradientInfo.gradientColors[0]);
-			gc.fillRectangle(0, 0, width, height);
-		} else {
-			final Color oldForeground = gc.getForeground();
-			Color lastColor = gradientInfo.gradientColors[0];
-			if (lastColor == null)
-				lastColor = oldBackground;
-			int pos = 0;
-			for (int i = 0; i < gradientInfo.percents.length; ++i) {
-				gc.setForeground(lastColor);
-				lastColor = gradientInfo.gradientColors[i + 1];
-				if (lastColor == null)
-					lastColor = oldBackground;
-				gc.setBackground(lastColor);
-				if (gradientInfo.vertical) {
-					final int gradientHeight = (gradientInfo.percents[i]
-							* height / 100)
-							- pos;
-					gc.fillGradientRectangle(0, pos, width, gradientHeight,
-							true);
-					pos += gradientHeight;
-				} else {
-					final int gradientWidth = (gradientInfo.percents[i] * width / 100)
-							- pos;
-					gc.fillGradientRectangle(pos, 0, gradientWidth, height,
-							false);
-					pos += gradientWidth;
-				}
-			}
-			if (gradientInfo.vertical && pos < height) {
-				gc.setBackground(baseBg);
-				gc.fillRectangle(0, pos, width, height - pos);
-			}
-			if (!gradientInfo.vertical && pos < width) {
-				gc.setBackground(baseBg);
-				gc.fillRectangle(pos, 0, width - pos, height);
-			}
-			gc.setForeground(oldForeground);
-		}
-	}
-
-	/**
-	 * Always returns true
-	 * 
-	 * @return Returns true
-	 */
-	public boolean isBackgroundImageTiled() {
-		return (flags & TILED) !=0;
-	}
-
-	/**
-	 *
-	 */
-	public void setBackgroundImageTiled(boolean backgroundImageTiled) {
-		if (backgroundImageTiled)
-			flags |= TILED;
-		else
-			flags &= ~TILED;
-	}
-
-	/**
-	 *@return SWT.LEFT
-	 */
-	public int getBackgroundImageAlignment() {
-		return SWT.LEFT;
-	}
-
-	/**
-	 * No-op.
-	 * @depracated background image alignment is always 0,0.
-	 * @since 3.1
-	 */
-	public void setBackgroundImageAlignment(int backgroundImageAlignment) {
-	}
-
-	/**
-	 * Background image is always clipped.
-	 * @deprecated not used
-	 * @return true
-	 */
-	public boolean isBackgroundImageClipped() {
-		return true;
-	}
-
-	/**
-	 * Background image is always clipped.
-	 * @deprecated not used
-	 */
-	public void setBackgroundImageClipped(boolean backgroundImageClipped) {
-	}
-
-	/**
-	 * TODO add javadoc experimental - do not use yet
-	 * 
-	 * @return <code>true</code> if the receiver is a visible separator,
-	 *         <code>false</code> otherwise
-	 */
-	public boolean isSeparatorVisible() {
-		return (flags & SEPARATOR)!=0;
-	}
-
-	/**
-	 * experimental - do not use yet TODO add javadoc
-	 */
-	public void setSeparatorVisible(boolean addSeparator) {
-		if (addSeparator)
-			flags |= SEPARATOR;
-		else
-			flags &= ~SEPARATOR;
-	}
-
-	/**
-	 * experimental - do not use yet TODO add javadoc
-	 */
-
-	public Color getSeparatorColor() {
-		return separatorColor;
-	}
-
-	/**
-	 * experimental - do not use yet TODO add javadoc
-	 */
-	public void setSeparatorColor(Color separatorColor) {
-		this.separatorColor = separatorColor;
-	}
-
-	/**
-	 * Sets the message for this form.
-	 * 
-	 * @param message
-	 *            the message, or <code>null</code> to clear the message
-	 * @since 3.2
-	 */
-	public void setMessage(String message) {
-		this.setMessage(message, IMessageProvider.NONE);
-	}
-
-	/**
-	 * 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>.
-	 * </p>
-	 * <p>
-	 * 
-	 * @param newMessage
-	 *            the message, or <code>null</code> to clear the message
-	 * @param newType
-	 *            the message type
-	 * @since 3.2
-	 */
-
-	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(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;
-			}
-		}
-		showMessage(newMessage, newImage);
-	}
-
-	private void showMessage(String newMessage, Image newImage) {
-		if (newMessage == null) {
-			if (messageArea != null)
-				setMessageAreaVisible(false);
-		} else {
-			if (messageArea == null) {
-				messageArea = new MessageArea(this, SWT.NULL);
-				messageArea.setBackground(baseBg);
-				messageArea
-						.setForeground(separatorColor != null ? separatorColor
-								: getForeground());
-			}
-			messageArea.setText(newMessage);
-			messageArea.setImage(newImage);
-			setMessageAreaVisible(true);
-		}
-	}
-
-	private void setMessageAreaVisible(boolean visible) {
-		if (messageArea.isMinimized()) {
-			if (!visible)
-				messageArea.setState(MessageArea.CLOSED);
-			messageArea.setMinimized(false);
-		}
-		// check if we need to do anything
-		switch (messageArea.getState()) {
-		case MessageArea.OPENNING:
-		case MessageArea.OPEN:
-			if (visible)
-				return;
-			break;
-		case MessageArea.CLOSING:
-		case MessageArea.CLOSED:
-			if (!visible)
-				return;
-			break;
-		}
-		// we do
-		messageArea.moveAbove(null);
-		messageArea.setAnimationStart(true);
-		messageArea.setState(visible ? MessageArea.OPENNING
-				: MessageArea.CLOSING);
-		layout(true);
-		Rectangle startBounds = messageArea.getBounds();
-		final int endY = visible ? startBounds.y - startBounds.height
-				: startBounds.y + startBounds.height;
-
-		Runnable runnable = new Runnable() {
-			public void run() {
-				final boolean[] result = new boolean[1];
-				/*
-				 * getDisplay().syncExec(new Runnable() { public void run() { if
-				 * (headClient!=null) headClient.setRedraw(false); } });
-				 */
-				for (;;) {
-					getDisplay().syncExec(new Runnable() {
-						public void run() {
-							Point loc = messageArea.getLocation();
-							if (messageArea.getState() == MessageArea.OPENNING) {
-								// opening
-								loc.y--;
-								if (loc.y > endY)
-									messageArea.setLocation(loc);
-								else {
-									result[0] = true;
-									messageArea.setState(MessageArea.OPEN);
-									layout(true);
-								}
-							} else {
-								// closing
-								loc.y++;
-								if (loc.y < endY)
-									messageArea.setLocation(loc);
-								else {
-									result[0] = true;
-									messageArea.setState(MessageArea.CLOSED);
-									layout(true);
-								}
-							}
-						}
-					});
-					if (result[0]) {
-						/*
-						 * getDisplay().syncExec(new Runnable() { public void
-						 * run() { if (headClient!=null)
-						 * headClient.setRedraw(true); } });
-						 */
-						break;
-					}
-					Thread.yield();
-					try {
-						Thread.sleep(5);
-					} catch (InterruptedException e) {
-						// TODO Auto-generated catch block
-						e.printStackTrace();
-					}
-				}
-			}
-		};
-		Thread t = new Thread(runnable);
-		t.start();
-	}
-
-	/**
-	 * Tests if the form is in the 'busy' state.
-	 * 
-	 * @return <code>true</code> if busy, <code>false</code> otherwise.
-	 */
-
-	public boolean isBusy() {
-		return busyLabel != null && busyLabel.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 (busy)
-			createBusyLabel();
-		if (busy == busyLabel.isBusy())
-			return;
-		busyLabel.setBusy(busy);
-		layout();
-	}
-
-	public Control getHeadClient() {
-		return headClient;
-	}
-
-	public void setHeadClient(Control headClient) {
-		Assert.isTrue(headClient.getParent() == this);
-		this.headClient = headClient;
-		layout();
-	}
-}
\ No newline at end of file
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 238a418..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormTextModel.java
+++ /dev/null
@@ -1,743 +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.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.InputSource;
-import org.xml.sax.SAXException;
-
-public class FormTextModel {
-	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();
-			InputSource source = new InputSource(is);
-			Document doc = parser.parse(source);
-			processDocument(doc, expandURLs);
-		} catch (ParserConfigurationException e) {
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, e);
-		} catch (SAXException e) {
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, e);
-		} 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,
-							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,
-							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,
-							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$
-		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, 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, getHyperlinkSettings(),
-						null);
-				p = null;
-			}
-		}
-		if (p != null) {
-			// no new line
-			String text = regularText.substring(pstart);
-			p.parseRegularText(text, convertURLs, 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 ce8bf7b..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormUtil.java
+++ /dev/null
@@ -1,504 +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 com.ibm.icu.text.BreakIterator;
-
-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.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.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.Display;
-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.FormToolkit;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-
-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 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;
-			} else {
-				maxWidth = Math.max(maxWidth, extent.x);
-			}
-			last = loc;
-		}
-		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) {
-		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);
-		}
-	}
-
-	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;
-			}
-		}
-	}
-
-	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 Font createBoldFont(Display display, Font regularFont) {
-		FontData[] fontDatas = regularFont.getFontData();
-		for (int i = 0; i < fontDatas.length; i++) {
-			fontDatas[i].setStyle(fontDatas[i].getStyle() | SWT.BOLD);
-		}
-		return new Font(display, fontDatas);
-	}
-
-	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);
-	}
-}
\ No newline at end of file
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 5b741ee..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.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 272ed06..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Locator.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 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 677d887..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ObjectSegment.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.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 > wHint) {
-			// new line
-			if (computeHeightOnly)
-				loc.collectHeights();
-			loc.x = loc.indent;
-			loc.x += iwidth;
-			loc.y += loc.rowHeight;
-			loc.width = loc.indent + iwidth;
-			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 > width) {
-			// new row
-			loc.newLine();
-			loc.rowCounter++;
-		}
-		//TODO vertical alignment is not used
-		int ix = loc.x;
-		int 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 731fde8..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Paragraph.java
+++ /dev/null
@@ -1,225 +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.io.*;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.ui.forms.HyperlinkSettings;
-
-/**
- * @version 1.0
- * @author
- */
-public class Paragraph {
-	public static final String HTTP = "http://"; //$NON-NLS-1$
-
-	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,
-			HyperlinkSettings settings, String fontId) {
-		parseRegularText(text, expandURLs, settings, fontId, null);
-	}
-
-	public void parseRegularText(String text, boolean expandURLs,
-			HyperlinkSettings settings, String fontId, String colorId) {
-		if (text.length() == 0)
-			return;
-		if (expandURLs) {
-			int loc = text.indexOf(HTTP);
-
-			if (loc == -1)
-				addSegment(new TextSegment(text, fontId, colorId));
-			else {
-				int textLoc = 0;
-				while (loc != -1) {
-					addSegment(new TextSegment(text.substring(textLoc, loc),
-							fontId, colorId));
-					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 = text.indexOf(HTTP, textLoc);
-				}
-				if (textLoc < text.length()) {
-					addSegment(new TextSegment(text.substring(textLoc), fontId,
-							colorId));
-				}
-			}
-		} else {
-			addSegment(new TextSegment(text, fontId, colorId));
-		}
-	}
-
-	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;
-		int innerWidth = width - loc.marginWidth*2;
-		for (int j = 0; j < segments.length; j++) {
-			ParagraphSegment segment = segments[j];
-			segment.advanceLocator(gc, innerWidth, 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 64deeee..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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
-	 */
-	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 selected
-	 * @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
-	 */
-	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
-	 */
-	public abstract boolean intersects(Rectangle rect);
-	/**
-	 * Returns the tool tip of this segment or <code>null</code>
-	 * if not defined.
-	 * @return
-	 */
-	public String getTooltipText() {
-		return null;
-	}
-	/**
-	 * @param fontId TODO
-	 * 
-	 */
-	public void clearCache(String fontId) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/PixelConverter.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/PixelConverter.java
deleted file mode 100644
index 9e7fb3b..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/PixelConverter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Control;
-
-public class PixelConverter {
-	/**
-	 * Number of horizontal dialog units per character, value <code>4</code>.
-	 */
-	private static final int HORIZONTAL_DIALOG_UNIT_PER_CHAR = 4;
-
-	private FontMetrics fFontMetrics;
-
-	public PixelConverter(Control control) {
-		GC gc = new GC(control);
-		gc.setFont(control.getFont());
-		fFontMetrics = gc.getFontMetrics();
-		gc.dispose();
-	}
-
-	/**
-	 * @see DialogPage#convertHorizontalDLUsToPixels
-	 */
-	public int convertHorizontalDLUsToPixels(int dlus) {
-		// round to the nearest pixel
-		return (fFontMetrics.getAverageCharWidth() * dlus + HORIZONTAL_DIALOG_UNIT_PER_CHAR / 2)
-				/ HORIZONTAL_DIALOG_UNIT_PER_CHAR;
-	}
-}
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 f4ce572..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.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;
-	}
-}
\ No newline at end of file
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 78224d2..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextHyperlinkSegment.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.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;
-		underline = settings.getHyperlinkUnderlineMode() == HyperlinkSettings.UNDERLINE_ALWAYS;
-	}
-
-	/*
-	 * @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;
-		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);
-	}
-
-	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 152b8f4..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextSegment.java
+++ /dev/null
@@ -1,713 +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 com.ibm.icu.text.BreakIterator;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-
-/**
- * @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);
-	}
-
-	public TextSegment(String text, String fontId, String colorId) {
-		this.text = cleanup(text);
-		this.fontId = fontId;
-		this.colorId = colorId;
-	}
-
-	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 > wHint) {
-				// new line
-				locator.x = locator.indent;
-				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.indent + width;
-			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;
-			
-			if (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 (underline || hover || rolloverMode) {
-			if (rolloverMode && !hover)
-				reverse = true;
-		}
-		if (reverse) {
-			drawUnderline(gc, swidth, clipX, clipLineY, hover, rolloverMode);
-			gc.drawString(s, clipX, clipY, false);
-		} else {
-			gc.drawString(s, clipX, clipY, false);
-			drawUnderline(gc, swidth, clipX, clipLineY, hover, rolloverMode);
-		}
-	}
-
-	private void drawUnderline(GC gc, int swidth, int x, int y, boolean hover,
-			boolean rolloverMode) {
-		if (underline || hover || 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;
-				if (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)
-			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/WrappedPageBook.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/WrappedPageBook.java
deleted file mode 100644
index d191f66..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/WrappedPageBook.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.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>
- * 
- * @see PageBookView
- */
-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.forms/src/org/eclipse/ui/internal/forms/widgets/progress.gif b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/progress.gif
deleted file mode 100644
index 10de255..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/progress.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/provisional/forms/FormDialog.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/provisional/forms/FormDialog.java
deleted file mode 100644
index 185c767..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/provisional/forms/FormDialog.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.internal.provisional.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.Shell;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.ManagedForm;
-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;
-
-	public FormDialog(Shell shell) {
-		super(shell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-	}
-
-	public FormDialog(IShellProvider parentShell) {
-		super(parentShell);
-	}
-	
-	public boolean close() {
-		boolean rcode = super.close();
-		toolkit.dispose();
-		return rcode;
-	}
-
-	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;
-	}
-	
-	protected Control createButtonBar(Composite parent) {
-		Control sep = toolkit.createCompositeSeparator(parent);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.heightHint =1;
-		sep.setLayoutData(gd);
-		Control bar = super.createButtonBar(parent);
-		recursiveAdapt((Composite)bar);
-		return bar;
-	}
-	
-	private void recursiveAdapt(Composite parent) {
-		toolkit.adapt(parent);
-		Control [] children = parent.getChildren();
-		for (int i=0; i<children.length; i++) {
-			Control c = children[i];
-			if (c instanceof Composite)
-				recursiveAdapt((Composite)c);
-			else
-				toolkit.adapt(c, false, false);
-		}
-	}
-	
-	protected void createFormContent(IManagedForm mform) {
-		mform.getForm().setText(Messages.FormDialog_defaultTitle);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/.classpath b/bundles/org.eclipse.ui.ide/.classpath
deleted file mode 100644
index 69bb1c8..0000000
--- a/bundles/org.eclipse.ui.ide/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="extensions"/>
-	<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.ide/.cvsignore b/bundles/org.eclipse.ui.ide/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/bundles/org.eclipse.ui.ide/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/.options b/bundles/org.eclipse.ui.ide/.options
deleted file mode 100644
index 1b35337..0000000
--- a/bundles/org.eclipse.ui.ide/.options
+++ /dev/null
@@ -1,13 +0,0 @@
-# Debugging options for the org.eclipse.ui.ide plugin.
-
-# Turn on debugging for the org.eclipse.ui plugin.
-org.eclipse.ui.ide/debug=false
-
-# Show a dialog with details button when an internal error occur.
-org.eclipse.ui.ide/debug/internalerror/openDialog=false
-
-# Verbose information when IDE performs explicit garbage collection
-org.eclipse.ui.ide/debug/gc=false
-
-# Print debug information when workspace undo monitor purges the undo history
-org.eclipse.ui.ide/debug/undomonitor=false
diff --git a/bundles/org.eclipse.ui.ide/.project b/bundles/org.eclipse.ui.ide/.project
deleted file mode 100644
index 7658587..0000000
--- a/bundles/org.eclipse.ui.ide/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.ide</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.ide/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.ide/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 31046f5..0000000
--- a/bundles/org.eclipse.ui.ide/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:18:42 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=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.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.ide/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.ide/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index c25b294..0000000
--- a/bundles/org.eclipse.ui.ide/.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/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.ide/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 498f3ae..0000000
--- a/bundles/org.eclipse.ui.ide/.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/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.ide/META-INF/MANIFEST.MF
deleted file mode 100644
index 20ce77a..0000000
--- a/bundles/org.eclipse.ui.ide/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,56 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.ide; singleton:=true
-Bundle-Version: 3.3.0.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.ui.internal.ide.IDEWorkbenchPlugin
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui,
- org.eclipse.ui.actions,
- org.eclipse.ui.dialogs,
- org.eclipse.ui.ide,
- org.eclipse.ui.ide.dialogs,
- org.eclipse.ui.ide.fileSystem,
- org.eclipse.ui.ide.undo,
- org.eclipse.ui.internal.ide;x-internal:=true,
- org.eclipse.ui.internal.ide.actions;x-internal:=true,
- org.eclipse.ui.internal.ide.commands;x-internal:=true,
- org.eclipse.ui.internal.ide.dialogs;x-internal:=true,
- org.eclipse.ui.internal.ide.filesystem;x-internal:=true,
- org.eclipse.ui.internal.ide.handlers;x-internal:=true,
- org.eclipse.ui.internal.ide.misc;x-internal:=true,
- org.eclipse.ui.internal.ide.model;x-internal:=true,
- org.eclipse.ui.internal.ide.registry;x-internal:=true,
- org.eclipse.ui.internal.ide.update;x-internal:=true,
- org.eclipse.ui.internal.views.bookmarkexplorer;x-internal:=true,
- org.eclipse.ui.internal.views.framelist;x-internal:=true,
- org.eclipse.ui.internal.views.navigator;x-internal:=true,
- org.eclipse.ui.internal.views.properties;x-internal:=true,
- org.eclipse.ui.internal.views.tasklist;x-internal:=true,
- org.eclipse.ui.internal.wizards.datatransfer;x-internal:=true,
- org.eclipse.ui.internal.wizards.newresource;x-internal:=true,
- org.eclipse.ui.model,
- org.eclipse.ui.part,
- org.eclipse.ui.views.bookmarkexplorer,
- org.eclipse.ui.views.framelist,
- org.eclipse.ui.views.markers,
- org.eclipse.ui.views.markers.internal;x-internal:=true,
- org.eclipse.ui.views.navigator,
- org.eclipse.ui.views.properties,
- org.eclipse.ui.views.tasklist,
- org.eclipse.ui.wizards.datatransfer,
- org.eclipse.ui.wizards.newresource
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.filesystem;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.help;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui.views;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.update.configurator;bundle-version="[3.1.100,4.0.0)",
- org.eclipse.update.core;bundle-version="[3.1.100,4.0.0)",
- org.eclipse.update.ui;bundle-version="[3.1.100,4.0.0)"
-Eclipse-LazyStart: true
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.ui.ide/about.html b/bundles/org.eclipse.ui.ide/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.ide/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/build.properties b/bundles/org.eclipse.ui.ide/build.properties
deleted file mode 100644
index 42c1b4d..0000000
--- a/bundles/org.eclipse.ui.ide/build.properties
+++ /dev/null
@@ -1,22 +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
-###############################################################################
-
-bin.includes = plugin.properties,\
-               .options,\
-               plugin.xml,\
-               about.html,\
-               icons/,\
-               .,\
-               META-INF/
-src.includes = about.html,\
-               schema/
-source.. = extensions/,\
-                 src/
diff --git a/bundles/org.eclipse.ui.ide/component.xml b/bundles/org.eclipse.ui.ide/component.xml
deleted file mode 100644
index 1d20a78..0000000
--- a/bundles/org.eclipse.ui.ide/component.xml
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<component xmlns="http://eclipse.org/component"
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://eclipse.org/component ../component.xsd "
-   name="Platform UI IDE">
- <plugin id="org.eclipse.ui.ide" />
- <plugin id="org.eclipse.ui.workbench.compatibility" fragment="true" />
- <plugin id="org.eclipse.ui.win32" fragment="true" />
-
-<package name="org.eclipse.ui" exclusive="false" >
-  <type name="ICapabilityInstallWizard"/>
-  <type name="ICapabilityUninstallWizard"/>
-  <type name="IContributorResourceAdapter"/>
-  <type name="IFileEditorInput"/>
-  <type name="IMarkerActionFilter"/>
-  <type name="IMarkerHelpRegistry"/>
-  <type name="IMarkerResolution"/>
-  <type name="IMarkerResolution2"/>
-  <type name="IMarkerResolutionGenerator"/>
-  <type name="IMarkerResolutionGenerator2"/>
-  <type name="IProjectActionFilter" />
-  <type name="IResourceActionFilter"/>
-  <type name="IStorageEditorInput"/>
-  <type name="ResourceWorkingSetFilter"/>
-</package>
-
-<package name="org.eclipse.ui.actions" exclusive="false" >
-  <type name="AddBookmarkAction" subclass="false"/>
-  <type name="AddTaskAction" subclass="false"/>
-  <type name="BuildAction" subclass="false"/>
-  <type name="CloseResourceAction" subclass="false"/>
-  <type name="CopyFilesAndFoldersOperation" subclass="false"/>
-  <type name="CopyProjectAction"/>
-  <type name="CopyProjectOperation" subclass="false"/>
-  <type name="CopyResourceAction" subclass="false"/>
-  <type name="CreateFileAction" subclass="false"/>
-  <type name="CreateFolderAction" subclass="false"/>
-  <type name="CreateProjectAction"/>
-  <type name="DeleteResourceAction" subclass="false"/>
-  <type name="GlobalBuildAction" subclass="false"/>
-  <type name="MoveFilesAndFoldersOperation" subclass="false"/>
-  <type name="MoveProjectAction"/>
-  <type name="MoveResourceAction" subclass="false"/>
-  <type name="NewExampleAction" subclass="false"/>
-  <type name="NewProjectAction" subclass="false"/>
-  <type name="NewWizardMenu"/>
-  <type name="OpenFileAction" subclass="false"/>
-  <type name="OpenResourceAction" subclass="false"/>
-  <type name="OpenSystemEditorAction" subclass="false"/>
-  <type name="OpenWithMenu" subclass="false"/>
-  <type name="QuickStartAction"/>
-  <type name="ReadOnlyStateChecker"/>
-  <type name="RefreshAction" subclass="false"/>
-  <type name="RenameResourceAction" subclass="false"/>
-  <type name="ScrubLocalAction" subclass="false"/>
-  <type name="SelectionListenerAction"/>
-  <type name="TextActionHandler" subclass="false"/>
-  <type name="WorkspaceAction"/>
-  <type name="WorkspaceModifyDelegatingOperation" subclass="false"/>
-  <type name="WorkspaceModifyOperation"/>
-</package>
-
-<package name="org.eclipse.ui.dialogs" exclusive="false" >
-  <type name="ContainerGenerator" subclass="false"/>
-  <type name="ContainerSelectionDialog" subclass="false"/>
-  <type name="FileSelectionDialog" subclass="false"/>
-  <type name="MarkerResolutionSelectionDialog" subclass="false"/>
-  <type name="NewFolderDialog" subclass="false"/>
-  <type name="ProjectLocationMoveDialog"/>
-  <type name="ProjectLocationSelectionDialog"/>
-  <type name="ResourceListSelectionDialog"/>
-  <type name="ResourceSelectionDialog" subclass="false"/>
-  <type name="SaveAsDialog" subclass="false"/>
-  <type name="WizardDataTransferPage" subclass="false"/>
-  <type name="WizardExportPage"/>
-  <type name="WizardExportResourcesPage"/>
-  <type name="WizardImportPage"/>
-  <type name="WizardNewFileCreationPage"/>
-  <type name="WizardNewFolderMainPage"/>
-  <type name="WizardNewLinkPage" subclass="false"/>
-  <type name="WizardNewProjectCreationPage"/>
-  <type name="WizardNewProjectReferencePage"/>
-  <type name="WizardResourceImportPage"/>
-</package>
-
-<package name="org.eclipse.ui.model" exclusive="false" >
-  <type name="WorkbenchContentProvider" subclass="false"/>
-</package>
-
-<package name="org.eclipse.ui.part" exclusive="false" >
-  <type name="FileEditorInput" subclass="false"/>
-  <type name="FileEditorInputFactory" subclass="false" instantiate="false"/>
-  <type name="FileInPlaceEditorInput" subclass="false"/>
-  <type name="MarkerTransfer" subclass="false"/>
-  <type name="ResourceTransfer" subclass="false"/>
-</package>
-
-<package name="org.eclipse.ui.ide" >
-  <type name="IDE"/>
-  <type name="IDEActionFactory"/>
-  <type name="IDEEncoding"/>
-  <type name="IGotoMarker"/>
-  <type name="IIDEActionConstants" implement="false"/>
-</package>
-
-<package name="org.eclipse.ui.ide.dialogs" >
-  <type name="AbstractEncodingFieldEditor"/>
-  <type name="EncodingFieldEditor"/>
-  <type name="ResourceEncodingFieldEditor"/>
-</package>
-
-<package name="org.eclipse.ui.views.bookmarkexplorer" >
-  <type name="BookmarkNavigator" subclass="false" instantiate="false"/>
-</package>
-
-<package name="org.eclipse.ui.views.framelist" >
-  <type name="BackAction"/>
-  <type name="ForwardAction"/>
-  <type name="Frame"/>
-  <type name="FrameAction"/>
-  <type name="FrameList"/>
-  <type name="GoIntoAction"/>
-  <type name="IFrameSource"/>
-  <type name="TreeFrame"/>
-  <type name="TreeViewerFrameSource"/>
-  <type name="UpAction"/>
-</package>
-
-<package name="org.eclipse.ui.views.markers" >
-  <type name="MarkerViewUtil"/>
-</package>
-
-<package name="org.eclipse.ui.views.navigator" >
-  <type name="CollapseAllAction"/>
-  <type name="FilterSelectionAction"/>
-  <type name="GotoActionGroup"/>
-  <type name="GotoResourceAction"/>
-  <type name="IResourceNavigator" implement="false"/>
-  <type name="LocalSelectionTransfer" subclass="false"/>
-  <type name="MainActionGroup"/>
-  <type name="NavigatorDragAdapter"/>
-  <type name="NavigatorDropAdapter"/>
-  <type name="NavigatorFrameSource"/>
-  <type name="OpenActionGroup"/>
-  <type name="RefactorActionGroup"/>
-  <type name="ResourceNavigator"/>
-  <type name="ResourceNavigatorAction"/>
-  <type name="ResourceNavigatorActionGroup"/>
-  <type name="ResourceNavigatorMessages"/>
-  <type name="ResourceNavigatorMoveAction"/>
-  <type name="ResourceNavigatorRenameAction"/>
-  <type name="ResourcePatternFilter"/>
-  <type name="ResourceSelectionUtil" instantiate="false" subclass="false"/>
-  <type name="ResourceSorter" subclass="false"/>
-  <type name="ShowInNavigatorAction"/>
-  <type name="SortAndFilterActionGroup"/>
-  <type name="SortViewAction"/>
-  <type name="ToggleLinkingAction"/>
-  <type name="WorkspaceActionGroup"/>
-</package>
-
-<package name="org.eclipse.ui.views.properties" exclusive="false" >
-  <type name="FilePropertySource"/>
-  <type name="IDEPropertiesMessages"/>
-  <type name="IResourcePropertyConstants"/>
-  <type name="ResourcePropertySource"/>
-</package>
-
-<package name="org.eclipse.ui.views.tasklist" >
-  <type name="ITaskListResourceAdapter"/>
-  <type name="TaskList" subclass="false" instantiate="false"/>
-  <type name="TaskPropertiesDialog"/>
-</package>
-
-<package name="org.eclipse.ui.wizards.datatransfer" >
-  <type name="ExternalProjectImportWizard" subclass="false"/>
-  <type name="FileSystemExportWizard" subclass="false"/>
-  <type name="FileSystemImportWizard" subclass="false"/>
-  <type name="FileSystemStructureProvider"/>
-  <type name="IImportStructureProvider"/>
-  <type name="ImportOperation" subclass="false"/>
-  <type name="PopulateElementOperation"/>
-  <type name="PopulateRootOperation"/>
-  <type name="SelectFilesOperation"/>
-  <type name="WizardExternalProjectImportPage"/>
-  <type name="ZipFileExportWizard" subclass="false"/>
-  <type name="ZipFileImportWizard" subclass="false"/>
-  <type name="ZipFileStructureProvider"/>
-</package>
-
-<package name="org.eclipse.ui.wizards.newresource" >
-  <type name="BasicNewFileResourceWizard" subclass="false"/>
-  <type name="BasicNewFolderResourceWizard" subclass="false"/>
-  <type name="BasicNewProjectResourceWizard" subclass="false"/>
-  <type name="BasicNewResourceWizard" subclass="false"/>
-</package>
-
- <component-depends unrestricted="true"/>
-
-</component>
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IContributorResourceAdapter.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IContributorResourceAdapter.java
deleted file mode 100644
index 26bfc45..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IContributorResourceAdapter.java
+++ /dev/null
@@ -1,39 +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;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * The IContributorResourceAdapter is an interface that defines
- * the API required to get a resource that an object adapts to
- * for use of object contributions, decorators and property
- * pages that have adaptable = true.
- * Implementors of this interface are typically registered with an
- * IAdapterFactory for lookup via the getAdapter() mechanism.
- */
-public interface IContributorResourceAdapter {
-
-    /**
-     * Return the resource that the supplied adaptable 
-     * adapts to. An IContributorResourceAdapter assumes
-     * that any object passed to it adapts to one equivalent
-     * resource.
-     * 
-     * @param adaptable the adaptable being queried
-     * @return a resource, or <code>null</code> if there
-     * 	is no adapted resource for this type
-     */
-    public IResource getAdaptedResource(IAdaptable adaptable);
-
-}
-
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IFileEditorInput.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IFileEditorInput.java
deleted file mode 100644
index edf2374..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IFileEditorInput.java
+++ /dev/null
@@ -1,50 +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;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * This interface defines a file-oriented input to an editor.
- * <p>
- * Clients implementing this editor input interface should override
- * <code>Object.equals(Object)</code> to answer true for two inputs
- * that are the same. The <code>IWorbenchPage.openEditor</code> APIs
- * are dependent on this to find an editor with the same input.
- * </p><p>
- * File-oriented editors should support this as a valid input type, and allow
- * full read-write editing of its content.
- * </p><p>
- * A default implementation of this interface is provided by 
- * org.eclipse.ui.part.FileEditorInput.  
- * </p><p>
- * All editor inputs must implement the <code>IAdaptable</code> interface;
- * extensions are managed by the platform's adapter manager.
- * </p>
- *
- * @see org.eclipse.core.resources.IFile
- */
-public interface IFileEditorInput extends IStorageEditorInput {
-    /**
-     * Returns the file resource underlying this editor input.
-     * <p>
-     * The <code>IFile</code> returned can be a handle to a resource
-     * that does not exist in the workspace. As such, an editor should
-     * provide appropriate feedback to the user instead of simply failing
-     * during input validation. For example, a text editor could open
-     * in read-only mode with a message in the text area to inform the
-     * user that the file does not exist.
-     * </p>
-     *
-     * @return the underlying file
-     */
-    public IFile getFile();
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerActionFilter.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerActionFilter.java
deleted file mode 100644
index acfc0ac..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerActionFilter.java
+++ /dev/null
@@ -1,79 +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;
-
-
-/**
- * Describes the public attributes for a marker and the acceptable values
- * each may have.  
- * <p>
- * A popup menu extension may use these constants to describe its object target.  
- * Each identifies an attribute name or possible value.  
- * <p>
- * Clients are not expected to implement this interface.
- * </p>
- *
- * @see IActionFilter
- */
-public interface IMarkerActionFilter extends IActionFilter {
-    /**
-     * An attribute indicating the marker type (value <code>"type"</code>).  
-     * The attribute value in xml should match one of the marker types defined in 
-     * the workbench's marker extension point.  Common examples are 
-     * <code>IMarker.TASK, IMarker.BOOKMARK, and IMarker.MARKER</code>.
-     */
-    public static final String TYPE = "type"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating the marker super type (value <code>"superType"</code>).  
-     * The attribute value in xml should match one of the marker types defined in 
-     * the workbench's marker extension point.  Common examples are 
-     * <code>IMarker.TASK, IMarker.BOOKMARK, and IMarker.MARKER</code>.
-     */
-    public static final String SUPER_TYPE = "superType"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating the marker priority (value <code>"priority"</code>).
-     * The attribute value in xml must be one of <code>IMarker.PRIORITY_LOW, 
-     * IMarker.PRIORITY_NORMAL, or IMarker.PRIORITY_HIGH</code> 
-     */
-    public static final String PRIORITY = "priority"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating the marker severity (value <code>"severity"</code>).  
-     * The attribute value in xml in xml must be one of <code>IMarker.SEVERITY_ERROR, 
-     * IMarker.SEVERITY_WARNING, or IMarker.SEVERITY_INFO</code> 
-     */
-    public static final String SEVERITY = "severity"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating whether the marker is considered done (value 
-     * <code>"done"</code>).
-     * The attribute value in xml must be one of <code>"true" or "false"</code>.
-     */
-    public static final String DONE = "done"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating the marker message (value <code>"message"</code>).
-     * The attribute value in xml is unconstrained. "*" may be used at the start or
-     * the end to represent "one or more characters".
-     */
-    public static final String MESSAGE = "message"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating the type of resource associated with the marker
-     * (value <code>"resourceType"</code>). The attribute value in xml must be
-     * one of <code>IResource.FILE, IResource.PROJECT, IResource.FOLDER,
-     * or IResource.ROOT</code>.
-     */
-    public static final String RESOURCE_TYPE = "resourceType"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerHelpRegistry.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerHelpRegistry.java
deleted file mode 100644
index 9b05c53..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerHelpRegistry.java
+++ /dev/null
@@ -1,60 +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;
-
-import org.eclipse.core.resources.IMarker;
-
-/** 
- * Registry of F1 help contexts and resolutions for markers.
- * <p>
- * The information contained in the registry is read from the 
- * org.eclipse.ui.markerhelp and org.eclipse.ui.markerresolution
- * extension points.
- * </p>
- * 
- * @since 2.0
- */
-public interface IMarkerHelpRegistry {
-    /**
-     * Returns a help context id for the given marker or
-     * <code>null</code> if no help has been registered 
-     * for the marker.
-     * 
-     * @param marker the marker for which to obtain help
-     * @since 2.0
-     */
-    public String getHelp(IMarker marker);
-
-    /**
-     * Returns <code>false</code> if there are no resolutions for 
-     * the given marker. Returns <code>true</code> if their may
-     * be resolutions. In most cases a <code>true</code> value 
-     * means there are resolutions but due to plugin loading 
-     * issues getResolutions may sometimes return an empty array
-     * after this method returns <code>true</code>. 
-     * 
-     * @param marker the marker for which to determine if there
-     * are resolutions
-     * @since 2.0
-     */
-    public boolean hasResolutions(IMarker marker);
-
-    /**
-     * Returns an array of resolutions for the given marker. 
-     * The returned array will be empty if there are no resolutions
-     * for the marker.
-     * 
-     * @param marker the marker for which to obtain resolutions
-     * @since 2.0
-     */
-    public IMarkerResolution[] getResolutions(IMarker marker);
-}
-
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolution.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolution.java
deleted file mode 100644
index bb4fc19..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolution.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.ui;
-
-import org.eclipse.core.resources.IMarker;
-
-/** 
- * Resolution for a marker. When run, a resolution would 
- * typically eliminate the need for the marker.
- * 
- * @since 2.0
- */
-public interface IMarkerResolution {
-    /** 
-     * Returns a short label indicating what the resolution will do. 
-     * 
-     * @return a short label for this resolution
-     */
-    public String getLabel();
-
-    /**
-     * Runs this resolution.
-     * 
-     * @param marker the marker to resolve
-     */
-    public void run(IMarker marker);
-}
-
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolution2.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolution2.java
deleted file mode 100644
index 32a8834..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolution2.java
+++ /dev/null
@@ -1,41 +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;
-
-import org.eclipse.swt.graphics.Image;
-
-/** 
- * Extends <code>IMarkerResolution</code>.  This interface should be used 
- * in place of <code>IMarkerResolution</code> if a description and/or image 
- * are desired.
- * 
- * @since 3.0
- */
-public interface IMarkerResolution2 extends IMarkerResolution {
-
-    /**
-     * Returns optional additional information about the resolution.
-     * The additional information will be presented to assist the user
-     * in deciding if the selected proposal is the desired choice.
-     *
-     * @return the additional information or <code>null</code>
-     */
-    public String getDescription();
-
-    /**
-     * Returns the image to be displayed in the list of resolutions.
-     * The image would typically be shown to the left of the display string.
-     *
-     * @return the image to be shown or <code>null</code> if no image is desired
-     */
-    public Image getImage();
-}
-
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolutionGenerator.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolutionGenerator.java
deleted file mode 100644
index 7426f22..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolutionGenerator.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.ui;
-
-import org.eclipse.core.resources.IMarker;
-
-/** 
- * Creates resolutions for a given marker. 
- * When run, a resolution would typically eliminate 
- * the need for the marker.
- * 
- * @since 2.0
- */
-public interface IMarkerResolutionGenerator {
-    /** 
-     * Returns resolutions for the given marker (may
-     * be empty). 
-     * 
-     * @return resolutions for the given marker
-     */
-    public IMarkerResolution[] getResolutions(IMarker marker);
-}
-
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolutionGenerator2.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolutionGenerator2.java
deleted file mode 100644
index e6a101f..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IMarkerResolutionGenerator2.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;
-
-import org.eclipse.core.resources.IMarker;
-
-/** 
- * A marker resolution generator should implement this interface rather than   
- * <code>IMarkerResolutionGenerator</code> if it can determine whether a particular marker 
- * has any resolutions more efficiently than computing all the resolutions.
- * 
- * @since 2.1
- */
-public interface IMarkerResolutionGenerator2 extends IMarkerResolutionGenerator {
-
-    /** 
-     * Returns whether there are any resolutions for the given marker.
-     * 
-     * @return <code>true</code> if there are resolutions for the given marker,
-     *   <code>false</code> if not
-     */
-    public boolean hasResolutions(IMarker marker);
-}
-
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IProjectActionFilter.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IProjectActionFilter.java
deleted file mode 100644
index ff9710b..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IProjectActionFilter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui;
-
-
-/**
- * Describes the public attributes for a project and the acceptable values
- * each may have.  
- * <p>
- * A popup menu extension may use these constants to describe its object target.  
- * Each identifies an attribute name or possible value.  
- * <p>
- * Clients are not expected to implement this interface.
- * </p>
- *
- * @see org.eclipse.ui.IActionFilter
- */
-public interface IProjectActionFilter extends IResourceActionFilter {
-
-    /**
-     * An attribute indicating the project nature (value <code>"nature"</code>).
-     * The attribute value in xml is unconstrained.
-     */
-    public static final String NATURE = "nature"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating whether the project is open (value <code>"open"</code>).
-     * The attribute value in xml must be one of <code>"true" or "false"</code>.
-     */
-    public static final String OPEN = "open"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IResourceActionFilter.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IResourceActionFilter.java
deleted file mode 100644
index 6ea19f9..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IResourceActionFilter.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;
-
-/**
- * Describes the public attributes for a resource and the acceptable values
- * each may have.  
- * <p>
- * A popup menu extension may use these constants to describe its object target.  
- * Each identifies an attribute name or possible value.  
- * <p>
- * Clients are not expected to implement this interface.
- * </p>
- *
- * @see org.eclipse.ui.IActionFilter
- */
-public interface IResourceActionFilter extends IActionFilter {
-    /**
-     * An attribute indicating the file name (value <code>"name"</code>).  
-     * The attribute value in xml is unconstrained.  "*" may be used at the start or
-     * the end to represent "one or more characters".
-     */
-    public static final String NAME = "name"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating the file extension (value <code>"extension"</code>).
-     * The attribute value in xml is unconstrained.
-     */
-    public static final String EXTENSION = "extension"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating the file path (value <code>"path"</code>).
-     * The attribute value in xml is unconstrained.  "*" may be used at the start or
-     * the end to represent "one or more characters".
-     */
-    public static final String PATH = "path"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating whether the file is read only (value <code>"readOnly"</code>).
-     * The attribute value in xml must be one of <code>"true" or "false"</code>.
-     */
-    public static final String READ_ONLY = "readOnly"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating the project nature (value <code>"projectNature"</code>).
-     * The attribute value in xml is unconstrained.
-     */
-    public static final String PROJECT_NATURE = "projectNature"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating a persistent property on the selected resource 
-     * (value <code>"persistentProperty"</code>).
-     * If the value is a simple string, then this simply tests for existence of the property on the resource.
-     * If it has the format <code>"propertyName=propertyValue" this obtains the value of the property
-     * with the specified name and tests it for equality with the specified value.
-     */
-    public static final String PERSISTENT_PROPERTY = "persistentProperty"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating a persistent property on the selected resource's project. 
-     * (value <code>"projectPersistentProperty"</code>).
-     * If the value is a simple string, then this simply tests for existence of the property on the resource.
-     * If it has the format <code>"propertyName=propertyValue" this obtains the value of the property
-     * with the specified name and tests it for equality with the specified value.
-     */
-    public static final String PROJECT_PERSISTENT_PROPERTY = "projectPersistentProperty"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating a session property on the selected resource 
-     * (value <code>"sessionProperty"</code>).
-     * If the value is a simple string, then this simply tests for existence of the property on the resource.
-     * If it has the format <code>"propertyName=propertyValue" this obtains the value of the property
-     * with the specified name and tests it for equality with the specified value.
-     */
-    public static final String SESSION_PROPERTY = "sessionProperty"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating a session property on the selected resource's project. 
-     * (value <code>"projectSessionProperty"</code>).
-     * If the value is a simple string, then this simply tests for existence of the property on the resource.
-     * If it has the format <code>"propertyName=propertyValue" this obtains the value of the property
-     * with the specified name and tests it for equality with the specified value.
-     */
-    public static final String PROJECT_SESSION_PROPERTY = "projectSessionProperty"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating that this is an xml file
-     * and we should ensure that the first tag (or top-level
-     * tag) has this name.
-     * @since 3.0
-     * @deprecated Please use content types instead.
-     */
-    public static final String XML_FIRST_TAG = "xmlFirstTag"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating that this is an xml file and we should ensure that the DTD
-     * definition in this xml file is the value supplied with this attribute.
-     * @since 3.0
-     * @deprecated Please use content types instead.
-     */
-    public static final String XML_DTD_NAME = "xmlDTDName"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating that this is a file, and we are looking to verify
-     * that the file matches the content type matching the given identifier.
-     * The identifier is provided in the value.
-     * @since 3.0
-     */
-    public static final String CONTENT_TYPE_ID = "contentTypeId"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IStorageEditorInput.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IStorageEditorInput.java
deleted file mode 100644
index 6e0a7a9..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/IStorageEditorInput.java
+++ /dev/null
@@ -1,44 +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;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Interface for a <code>IStorage</code> input to an editor.
- * <p>
- * Clients implementing this editor input interface should override
- * <code>Object.equals(Object)</code> to answer true for two inputs
- * that are the same. The <code>IWorbenchPage.openEditor</code> APIs
- * are dependent on this to find an editor with the same input.
- * </p><p>
- * Clients should implement this interface to declare new types of 
- * <code>IStorage</code> editor inputs.
- * </p><p>
- * File-oriented editors should support this as a valid input type, and display
- * its content for viewing (but not allow modification).
- * Within the editor, the "save" and "save as" operations should create a new 
- * file resource within the workspace.
- * </p><p>
- * All editor inputs must implement the <code>IAdaptable</code> interface;
- * extensions are managed by the platform's adapter manager.
- * </p>
- */
-public interface IStorageEditorInput extends IEditorInput {
-    /**
-     * Returns the underlying IStorage object.
-     *
-     * @return an IStorage object.
-     * @exception CoreException if this method fails
-     */
-    public IStorage getStorage() throws CoreException;
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/ResourceWorkingSetFilter.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/ResourceWorkingSetFilter.java
deleted file mode 100644
index 5c7b053..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/ResourceWorkingSetFilter.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-
-/**
- * A resource working set filter filters resources from a view that 
- * are neither a parent nor children of a working set element.
- * 
- * @since 2.0
- */
-public class ResourceWorkingSetFilter extends ViewerFilter {
-    private IWorkingSet workingSet = null;
-
-    private IAdaptable[] cachedWorkingSet = null;
-
-    /**
-     * Returns the active working set the filter is working with.
-     * 
-     * @return the active working set 
-     */
-    public IWorkingSet getWorkingSet() {
-        return workingSet;
-    }
-
-    /**
-     * Sets the active working set.
-     * 
-     * @param workingSet the working set the filter should work with
-     */
-    public void setWorkingSet(IWorkingSet workingSet) {
-        this.workingSet = workingSet;
-    }
-
-    /**
-     * Determines if an element should be filtered out.
-     * 
-     * @see ViewerFilter#select(Viewer, Object, Object)
-     */
-    public boolean select(Viewer viewer, Object parentElement, Object element) {
-        IResource resource = null;
-
-        if (workingSet == null) {
-            return true;
-        }
-        if (element instanceof IResource) {
-            resource = (IResource) element;
-        } else if (element instanceof IAdaptable) {
-            IAdaptable adaptable = (IAdaptable) element;
-            resource = (IResource) adaptable.getAdapter(IResource.class);
-        }
-        if (resource != null) {
-            return isEnclosed(resource);
-        }
-        return true;
-    }
-
-    /**
-     * Returns if the given resource is enclosed by a working set element.
-     * The IContainmentAdapter of each working set element is used for the
-     * containment test. If there is no IContainmentAdapter for a working 
-     * set element, a simple resource based test is used. 
-     * 
-     * @param element resource to test for enclosure by a working set
-     * 	element 
-     * @return true if element is enclosed by a working set element and 
-     * 	false otherwise. 
-     */
-    private boolean isEnclosed(IResource element) {
-        IPath elementPath = element.getFullPath();
-        IAdaptable[] workingSetElements = cachedWorkingSet;
-
-        // working set elements won't be cached if select is called
-        // directly, outside filter. fixes bug 14500.
-        if (workingSetElements == null) {
-			workingSetElements = workingSet.getElements();
-		}
-
-        for (int i = 0; i < workingSetElements.length; i++) {
-            IAdaptable workingSetElement = workingSetElements[i];
-            IContainmentAdapter containmentAdapter = (IContainmentAdapter) workingSetElement
-                    .getAdapter(IContainmentAdapter.class);
-
-            // if there is no IContainmentAdapter defined for the working  
-            // set element type fall back to using resource based  
-            // containment check 
-            if (containmentAdapter != null) {
-                if (containmentAdapter.contains(workingSetElement, element,
-                        IContainmentAdapter.CHECK_CONTEXT
-                                | IContainmentAdapter.CHECK_IF_CHILD
-                                | IContainmentAdapter.CHECK_IF_ANCESTOR
-                                | IContainmentAdapter.CHECK_IF_DESCENDANT)) {
-					return true;
-				}
-            } else if (isEnclosedResource(element, elementPath,
-                    workingSetElement)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Returns if the given resource is enclosed by a working set element.
-     * A resource is enclosed if it is either a parent of a working set 
-     * element, a child of a working set element or a working set element
-     * itself.
-     * Simple path comparison is used. This is only guaranteed to return
-     * correct results for resource working set elements. 
-     * 
-     * @param element resource to test for enclosure by a working set
-     * 	element
-     * @param elementPath full, absolute path of the element to test 
-     * @return true if element is enclosed by a working set element and 
-     * 	false otherwise. 
-     */
-    private boolean isEnclosedResource(IResource element, IPath elementPath,
-            IAdaptable workingSetElement) {
-        IResource workingSetResource = null;
-
-        if (workingSetElement.equals(element)) {
-			return true;
-		}
-        if (workingSetElement instanceof IResource) {
-            workingSetResource = (IResource) workingSetElement;
-        } else {
-            workingSetResource = (IResource) workingSetElement
-                    .getAdapter(IResource.class);
-        }
-        if (workingSetResource != null) {
-            IPath resourcePath = workingSetResource.getFullPath();
-            if (resourcePath.isPrefixOf(elementPath)) {
-				return true;
-			}
-            if (elementPath.isPrefixOf(resourcePath)) {
-				return true;
-			}
-        }
-        return false;
-    }
-
-    /**
-     * Filters out elements that are neither a parent nor a child of 
-     * a working set element.
-     * 
-     * @see ViewerFilter#filter(Viewer, Object, Object[])
-     */
-    public Object[] filter(Viewer viewer, Object parent, Object[] elements) {
-        Object[] result = null;
-        if (workingSet != null) {
-			cachedWorkingSet = workingSet.getElements();
-		}
-        try {
-            result = super.filter(viewer, parent, elements);
-        } finally {
-            cachedWorkingSet = null;
-        }
-        return result;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/AddBookmarkAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/AddBookmarkAction.java
deleted file mode 100644
index 0b0fd7d..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/AddBookmarkAction.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 20510 - Add Bookmark action has wrong label in navigator or
- *       packages view
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.CreateMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.views.bookmarkexplorer.BookmarkMessages;
-import org.eclipse.ui.views.bookmarkexplorer.BookmarkPropertiesDialog;
-
-/**
- * Standard action for adding a bookmark to the currently selected file
- * resource(s).
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class AddBookmarkAction extends SelectionListenerAction {
-
-	/**
-	 * The id of this action.
-	 */
-	public static final String ID = PlatformUI.PLUGIN_ID + ".AddBookmarkAction"; //$NON-NLS-1$
-
-	/**
-	 * The shell in which to show any dialogs.
-	 */
-	private Shell shell;
-
-	/**
-	 * Whether to prompt the user for the bookmark name.
-	 */
-	private boolean promptForName = true;
-
-	/**
-	 * Creates a new bookmark action. By default, prompts the user for the
-	 * bookmark name.
-	 * 
-	 * @param shell
-	 *            the shell for any dialogs
-	 */
-	public AddBookmarkAction(Shell shell) {
-		this(shell, true);
-	}
-
-	/**
-	 * Creates a new bookmark action.
-	 * 
-	 * @param shell
-	 *            the shell for any dialogs
-	 * @param promptForName
-	 *            whether to ask the user for the bookmark name
-	 */
-	public AddBookmarkAction(Shell shell, boolean promptForName) {
-		super(IDEWorkbenchMessages.AddBookmarkLabel);
-		setId(ID);
-		if (shell == null) {
-			throw new IllegalArgumentException();
-		}
-		this.shell = shell;
-		this.promptForName = promptForName;
-		setToolTipText(IDEWorkbenchMessages.AddBookmarkToolTip);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.ADD_BOOKMARK_ACTION);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public void run() {
-		IStructuredSelection selection = getStructuredSelection();
-		for (Iterator i = selection.iterator(); i.hasNext();) {
-			Object o = i.next();
-			IFile file = null;
-			if (o instanceof IFile) {
-				file = (IFile) o;
-			} else if (o instanceof IAdaptable) {
-				Object resource = ((IAdaptable) o).getAdapter(IResource.class);
-				if (resource instanceof IFile) {
-					file = (IFile) resource;
-				}
-			}
-			if (file != null) {
-				if (promptForName) {
-					BookmarkPropertiesDialog dialog = new BookmarkPropertiesDialog(
-							shell);
-					dialog.setResource(file);
-					dialog.open();
-				} else {
-					Map attrs = new HashMap();
-					attrs.put(IMarker.MESSAGE, file.getName());
-					CreateMarkersOperation op = new CreateMarkersOperation(
-							IMarker.BOOKMARK, attrs, file,
-							BookmarkMessages.CreateBookmark_undoText);
-					try {
-						PlatformUI.getWorkbench().getOperationSupport()
-								.getOperationHistory().execute(op, null,
-										WorkspaceUndoUtil.getUIInfoAdapter(shell));
-					} catch (ExecutionException e) {
-						IDEWorkbenchPlugin.log(null, e); // We don't care
-					}
-				}
-			}
-		}
-
-	}
-
-	/**
-	 * The <code>AddBookmarkAction</code> implementation of this
-	 * <code>SelectionListenerAction</code> method enables the action only if
-	 * the selection is not empty and contains just file resources.
-	 */
-	protected boolean updateSelection(IStructuredSelection selection) {
-		// @issue typed selections
-		return super.updateSelection(selection) && !selection.isEmpty()
-				&& selectionIsOfType(IResource.FILE);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/AddTaskAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/AddTaskAction.java
deleted file mode 100644
index 3550f66..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/AddTaskAction.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.actions;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.views.markers.internal.DialogTaskProperties;
-
-/**
- * Standard action for adding a task to the currently selected file
- * resource(s).
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @since 2.1
- */
-public class AddTaskAction extends SelectionListenerAction {
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID + ".AddTaskAction";//$NON-NLS-1$
-
-    /**
-     * The shell in which to show any dialogs.
-     */
-    private Shell shell;
-
-    /**
-     * Creates a new instance of the receiver.
-     * 
-     * @param shell shell to use to show any dialogs
-     */
-    public AddTaskAction(Shell shell) {
-        super(IDEWorkbenchMessages.AddTaskLabel);
-        setId(ID);
-        this.shell = shell;
-        Assert.isNotNull(shell);
-        setToolTipText(IDEWorkbenchMessages.AddTaskToolTip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.ADD_TASK_ACTION);
-    }
-
-    private IResource getElement(IStructuredSelection selection) {
-        if (selection.size() != 1) {
-			return null;
-		}
-
-        Object element = selection.getFirstElement();
-        IResource resource = null;
-        if (element instanceof IResource) {
-			resource = (IResource) element;
-		}
-        if (element instanceof IAdaptable) {
-			resource = (IResource) ((IAdaptable) element)
-                    .getAdapter(IResource.class);
-		}
-
-        if (resource != null && resource instanceof IProject) {
-            IProject project = (IProject) resource;
-            if (project.isOpen() == false) {
-				resource = null;
-			}
-        }
-        return resource;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAction.
-     */
-    public void run() {
-        IResource resource = getElement(getStructuredSelection());
-        if (resource != null) {
-            DialogTaskProperties dialog = new DialogTaskProperties(shell);
-            dialog.setResource(resource);
-            dialog.open();
-        }
-    }
-
-    /**
-     * The <code>AddTaskAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method enables the action only
-     * if the selection contains a single resource and the resource is
-     * not a closed project.
-     * 
-     * @param selection the selection to update the enabled state for
-     */
-    protected boolean updateSelection(IStructuredSelection selection) {
-        return super.updateSelection(selection)
-                && getElement(selection) != null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/BuildAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/BuildAction.java
deleted file mode 100644
index 7a7a7bb..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/BuildAction.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-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.IProgressMonitor;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-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.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.actions.BuildUtilities;
-
-/**
- * Standard actions for full and incremental builds of the selected project(s).
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class BuildAction extends WorkspaceAction {
-
-    /**
-     * The id of an incremental build action.
-     */
-    public static final String ID_BUILD = PlatformUI.PLUGIN_ID + ".BuildAction";//$NON-NLS-1$
-
-    /**
-     * The id of a rebuild all action.
-     */
-    public static final String ID_REBUILD_ALL = PlatformUI.PLUGIN_ID
-            + ".RebuildAllAction";//$NON-NLS-1$
-
-    private int buildType;
-
-    /**
-     * The list of IProjects to build (computed lazily).
-     */
-    private List projectsToBuild = null;
-
-    /**
-     * Creates a new action of the appropriate type. The action id is 
-     * <code>ID_BUILD</code> for incremental builds and <code>ID_REBUILD_ALL</code>
-     * for full builds.
-     *
-     * @param shell the shell for any dialogs
-     * @param type the type of build; one of
-     *  <code>IncrementalProjectBuilder.INCREMENTAL_BUILD</code> or 
-     *  <code>IncrementalProjectBuilder.FULL_BUILD</code>
-     */
-    public BuildAction(Shell shell, int type) {
-        super(shell, "");//$NON-NLS-1$
-
-        if (type == IncrementalProjectBuilder.INCREMENTAL_BUILD) {
-            setText(IDEWorkbenchMessages.BuildAction_text);
-            setToolTipText(IDEWorkbenchMessages.BuildAction_toolTip);
-            setId(ID_BUILD);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                    IIDEHelpContextIds.INCREMENTAL_BUILD_ACTION);
-        } else {
-            setText(IDEWorkbenchMessages.RebuildAction_text);
-            setToolTipText(IDEWorkbenchMessages.RebuildAction_tooltip);
-            setId(ID_REBUILD_ALL);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-					IIDEHelpContextIds.FULL_BUILD_ACTION);
-        }
-
-        this.buildType = type;
-    }
-
-    /**
-     * Adds the given project and all of its prerequisities, transitively,
-     * to the provided set.
-     */
-    private void addAllProjects(IProject project, HashSet projects) {
-        if (project == null || !project.isAccessible()
-                || projects.contains(project)) {
-			return;
-		}
-        projects.add(project);
-        try {
-            IProject[] preReqs = project.getReferencedProjects();
-            for (int i = 0; i < preReqs.length; i++) {
-				addAllProjects(preReqs[i], projects);
-			}
-        } catch (CoreException e) {
-            //ignore inaccessible projects
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected List getActionResources() {
-        return getProjectsToBuild();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getOperationMessage() {
-        return IDEWorkbenchMessages.BuildAction_operationMessage;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getProblemsMessage() {
-        return IDEWorkbenchMessages.BuildAction_problemMessage;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getProblemsTitle() {
-        return IDEWorkbenchMessages.BuildAction_problemTitle;
-    }
-
-    /**
-     * Returns the projects to build.
-     * This contains the set of projects which have builders, across all selected resources.
-     */
-    List getProjectsToBuild() {
-        if (projectsToBuild == null) {
-            projectsToBuild = new ArrayList(3);
-            for (Iterator i = getSelectedResources().iterator(); i.hasNext();) {
-                IResource resource = (IResource) i.next();
-                IProject project = resource.getProject();
-                if (project != null) {
-                    if (!projectsToBuild.contains(project)) {
-                        if (hasBuilder(project)) {
-                            projectsToBuild.add(project);
-                        }
-                    }
-                }
-            }
-        }
-        return projectsToBuild;
-    }
-
-    /**
-     * 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 couldn't be determined
-     */
-    boolean hasBuilder(IProject project) {
-    	if (!project.isAccessible())
-    		return false;
-        try {
-            ICommand[] commands = project.getDescription().getBuildSpec();
-            if (commands.length > 0) {
-                return true;
-            }
-        } catch (CoreException e) {
-            // this method is called when selection changes, so
-            // just fall through if it fails.
-            // this shouldn't happen anyway, since the list of selected resources
-            // has already been checked for accessibility before this is called
-        }
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected void invokeOperation(IResource resource, IProgressMonitor monitor)
-            throws CoreException {
-        ((IProject) resource).build(buildType, monitor);
-    }
-    
-    /* (non-Javadoc)
-     * Method declared on Action
-     */
-    public boolean isEnabled() {
-    	//update enablement based on active window and part
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window != null) {
-			selectionChanged(new StructuredSelection(BuildUtilities.findSelectedProjects(window)));
-		}
-		return super.isEnabled();
-	}
-    
-    /**
-     * Returns whether the user's preference is set to automatically save modified
-     * resources before a manual build is done.
-     *
-     * @return <code>true</code> if Save All Before Build is enabled
-     */
-    public static boolean isSaveAllSet() {
-        IPreferenceStore store = IDEWorkbenchPlugin.getDefault()
-                .getPreferenceStore();
-        return store.getBoolean(IDEInternalPreferences.SAVE_ALL_BEFORE_BUILD);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     *
-     * Change the order of the resources so that
-     * it matches the build order. Closed and
-     * non existant projects are eliminated. Also,
-     * any projects in cycles are eliminated.
-     */
-    List pruneResources(List resourceCollection) {
-        //recursively compute project prerequisites
-        HashSet toBuild = new HashSet();
-        for (Iterator it = resourceCollection.iterator(); it.hasNext();) {
-			addAllProjects((IProject) it.next(), toBuild);
-		}
-
-        // Optimize...
-        if (toBuild.size() < 2) {
-			return resourceCollection;
-		}
-
-        // Try the workspace's description build order if specified
-        String[] orderedNames = ResourcesPlugin.getWorkspace().getDescription()
-                .getBuildOrder();
-        if (orderedNames != null) {
-            List orderedProjects = new ArrayList(toBuild.size());
-            IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-            for (int i = 0; i < orderedNames.length; i++) {
-                IProject handle = root.getProject(orderedNames[i]);
-                if (toBuild.contains(handle)) {
-                    orderedProjects.add(handle);
-                    toBuild.remove(handle);
-                }
-            }
-            //Add anything not specified before we return
-            orderedProjects.addAll(toBuild);
-            return orderedProjects;
-        }
-
-        // Try the project prerequisite order then
-        IProject[] projects = new IProject[toBuild.size()];
-        projects = (IProject[]) toBuild.toArray(projects);
-        IWorkspace.ProjectOrder po = ResourcesPlugin.getWorkspace()
-                .computeProjectOrder(projects);
-        ArrayList orderedProjects = new ArrayList();
-        orderedProjects.addAll(Arrays.asList(po.projects));
-        return orderedProjects;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAction; overrides method on WorkspaceAction.
-     * This override allows the user to save the contents of selected
-     * open editors so that the updated contents will be used for building.
-     */
-    public void run() {
-	    List projects = getProjectsToBuild();
-	    if (projects == null || projects.isEmpty()) {
-			return;
-		}
-
-	    // Save all resources prior to doing build
-        BuildUtilities.saveEditors(projects);
-        runInBackground(ResourcesPlugin.getWorkspace().getRuleFactory()
-                .buildRule(), ResourcesPlugin.FAMILY_MANUAL_BUILD);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected boolean shouldPerformResourcePruning() {
-        return true;
-    }
-
-    /**
-     * The <code>BuildAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method ensures that this action is
-     * enabled only if all of the selected resources have buildable projects.
-     */
-    protected boolean updateSelection(IStructuredSelection s) {
-        projectsToBuild = null;
-        IProject[] projects = (IProject[]) getProjectsToBuild().toArray(new IProject[0]);
-        return BuildUtilities.isEnabled(projects, IncrementalProjectBuilder.INCREMENTAL_BUILD);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseResourceAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseResourceAction.java
deleted file mode 100644
index 4035020..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseResourceAction.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.ui.actions;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-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.IResourceRuleFactory;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.core.resources.mapping.ResourceChangeValidator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ListSelectionDialog;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.ResourceUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.model.AdaptableList;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchPartLabelProvider;
-
-/**
- * Standard action for closing the currently selected project(s).
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class CloseResourceAction extends WorkspaceAction implements
-        IResourceChangeListener {
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID
-            + ".CloseResourceAction"; //$NON-NLS-1$
-	private String[] modelProviderIds;
-
-    /**
-     * Creates a new action.
-     *
-     * @param shell the shell for any dialogs
-     */
-    public CloseResourceAction(Shell shell) {
-        super(shell, IDEWorkbenchMessages.CloseResourceAction_text);
-        setId(ID);
-        setToolTipText(IDEWorkbenchMessages.CloseResourceAction_toolTip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.CLOSE_RESOURCE_ACTION);
-    }
-    
-    /**
-	 * Override super constructor to allow subclass to 
-	 * override with unique text.
-	 */
-    protected CloseResourceAction(Shell shell, String text) {
-    	super(shell, text);
-    }
-
-    /**
-     * Return a list of dirty editors associated with the given projects.  Return
-     * editors from all perspectives.
-     * 
-     * @return List the dirty editors
-     */
-    List getDirtyEditors(List projects) {
-        List dirtyEditors = new ArrayList(0);
-        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++) {
-                IWorkbenchPage page = pages[j];
-                IEditorPart[] editors = page.getDirtyEditors();
-                for (int k = 0; k < editors.length; k++) {
-                    IEditorPart editor = editors[k];
-                    IFile inputFile = ResourceUtil.getFile(editor.getEditorInput());
-                    if (inputFile != null) {
-                        if (projects.contains(inputFile.getProject())) {
-                            dirtyEditors.add(editor);
-                        }
-                    }
-                }
-            }
-        }
-        return dirtyEditors;
-    }
-
-    /**
-     * Open a dialog that can be used to select which of the given
-     * editors to save. Return the list of editors to save.  A value of 
-     * null implies that the operation was cancelled.
-     * 
-     * @return List the editors to save
-     */
-    List getEditorsToSave(List dirtyEditors) {
-        if (dirtyEditors.isEmpty()) {
-			return new ArrayList(0);
-		}
-
-        // The list may have multiple editors opened for the same input,
-        // so process the list for duplicates.
-        List saveEditors = new ArrayList(0);
-        List dirtyInputs = new ArrayList(0);
-        Iterator iter = dirtyEditors.iterator();
-        while (iter.hasNext()) {
-            IEditorPart editor = (IEditorPart) iter.next();
-            IFile inputFile = ResourceUtil.getFile(editor.getEditorInput());
-            if (inputFile != null) {
-                // if the same file is open in multiple perspectives,
-                // we don't want to count it as dirty multiple times
-                if (!dirtyInputs.contains(inputFile)) {
-                    dirtyInputs.add(inputFile);
-                    saveEditors.add(editor);
-                }
-            }
-        }
-        AdaptableList input = new AdaptableList(saveEditors);
-        ListSelectionDialog dlg = new ListSelectionDialog(getShell(), input,
-                new WorkbenchContentProvider(),
-                new WorkbenchPartLabelProvider(), IDEWorkbenchMessages.EditorManager_saveResourcesMessage);
-
-        dlg.setInitialSelections(saveEditors.toArray(new Object[saveEditors
-                .size()]));
-        dlg.setTitle(IDEWorkbenchMessages.EditorManager_saveResourcesTitle);
-        int result = dlg.open();
-
-        if (result == IDialogConstants.CANCEL_ID) {
-			return null;
-		}
-        return Arrays.asList(dlg.getResult());
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getOperationMessage() {
-        return IDEWorkbenchMessages.CloseResourceAction_operationMessage;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getProblemsMessage() {
-        return IDEWorkbenchMessages.CloseResourceAction_problemMessage;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getProblemsTitle() {
-        return IDEWorkbenchMessages.CloseResourceAction_title;
-    }
-
-    protected void invokeOperation(IResource resource, IProgressMonitor monitor)
-	        throws CoreException {
-	    ((IProject) resource).close(monitor);
-	}
-
-    /** 
-     * The implementation of this <code>WorkspaceAction</code> method
-     * method saves and closes the resource's dirty editors before closing 
-     * it.
-     */
-    public void run() {
-        if (!saveDirtyEditors()) {
-			return;
-		}
-        if (!validateClose()) {
-        	return;
-        }
-        //be conservative and include all projects in the selection - projects
-        //can change state between now and when the job starts
-    	ISchedulingRule rule = null;
-    	IResourceRuleFactory factory = ResourcesPlugin.getWorkspace().getRuleFactory();
-        Iterator resources = getSelectedResources().iterator();
-        while (resources.hasNext()) {
-            IProject project = (IProject) resources.next();
-       		rule = MultiRule.combine(rule, factory.modifyRule(project));
-        }
-        runInBackground(rule);
-    }
-
-    /**
-     * Causes all dirty editors associated to the resource(s) to be saved, if so
-     * specified by the user, and closed.
-     */
-    boolean saveDirtyEditors() {
-        // Get the items to close.
-        List projects = getSelectedResources();
-        if (projects == null || projects.isEmpty()) {
-			// no action needs to be taken since no projects are selected
-            return false;
-		}
-
-        // Collect all the dirty editors that are associated to the projects that are
-        // to be closed.
-        final List dirtyEditors = getDirtyEditors(projects);
-
-        // See which editors should be saved.
-        final List saveEditors = getEditorsToSave(dirtyEditors);
-        if (saveEditors == null) {
-			// the operation was cancelled
-            return false;
-		}
-
-        // Save and close the dirty editors.
-        BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-            public void run() {
-                Iterator iter = dirtyEditors.iterator();
-                while (iter.hasNext()) {
-                    IEditorPart editor = (IEditorPart) iter.next();
-                    IWorkbenchPage page = editor.getEditorSite().getPage();
-                    if (saveEditors.contains(editor)) {
-                        // do a direct save vs. using page.saveEditor, so that 
-                        // progress dialogs do not flash up on the screen multiple 
-                        // times
-                        editor.doSave(new NullProgressMonitor());
-                    }
-                    page.closeEditor(editor, false);
-                }
-            }
-        });
-
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected boolean shouldPerformResourcePruning() {
-        return false;
-    }
-
-    /**
-     * The <code>CloseResourceAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method ensures that this action is
-     * enabled only if one of the selections is an open project.
-     */
-    protected boolean updateSelection(IStructuredSelection s) {
-        // don't call super since we want to enable if open project is selected.
-        if (!selectionIsOfType(IResource.PROJECT)) {
-			return false;
-		}
-
-        Iterator resources = getSelectedResources().iterator();
-        while (resources.hasNext()) {
-            IProject currentResource = (IProject) resources.next();
-            if (currentResource.isOpen()) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Handles a resource changed event by updating the enablement
-     * if one of the selected projects is opened or closed.
-     */
-    public void resourceChanged(IResourceChangeEvent event) {
-        // Warning: code duplicated in OpenResourceAction
-        List sel = getSelectedResources();
-        // don't bother looking at delta if selection not applicable
-        if (selectionIsOfType(IResource.PROJECT)) {
-            IResourceDelta delta = event.getDelta();
-            if (delta != null) {
-                IResourceDelta[] projDeltas = delta
-                        .getAffectedChildren(IResourceDelta.CHANGED);
-                for (int i = 0; i < projDeltas.length; ++i) {
-                    IResourceDelta projDelta = projDeltas[i];
-                    if ((projDelta.getFlags() & IResourceDelta.OPEN) != 0) {
-                        if (sel.contains(projDelta.getResource())) {
-                            selectionChanged(getStructuredSelection());
-                            return;
-                        }
-                    }
-                }
-            }
-        }
-    }
-    
-    /**
-     * Returns the model provider ids that are known to the client
-     * that instantiated this operation.
-     * 
-     * @return the model provider ids that are known to the client
-     * that instantiated this operation.
-     * @since 3.2
-     */
-	public String[] getModelProviderIds() {
-		return modelProviderIds;
-	}
-
-	/**
-     * Sets the model provider ids that are known to the client
-     * that instantiated this operation. Any potential side effects
-     * reported by these models during validation will be ignored.
-     * 
-	 * @param modelProviderIds the model providers known to the client
-	 * who is using this operation.
-	 * @since 3.2
-	 */
-	public void setModelProviderIds(String[] modelProviderIds) {
-		this.modelProviderIds = modelProviderIds;
-	}
-	
-	/**
-	 * Validates the operation against the model providers.
-	 * 
-	 * @return whether the operation should proceed
-	 */
-    private boolean validateClose() {
-    	IResourceChangeDescriptionFactory factory = ResourceChangeValidator.getValidator().createDeltaFactory();
-    	List resources = getActionResources();
-    	for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			IResource resource = (IResource) iter.next();
-			if (resource instanceof IProject) {
-				IProject project = (IProject) resource;
-				factory.close(project);
-			}
-		}
-    	String message;
-    	if (resources.size() == 1) {
-    		message = NLS.bind(IDEWorkbenchMessages.CloseResourceAction_warningForOne, ((IResource)resources.get(0)).getName());
-    	} else {
-    		message = IDEWorkbenchMessages.CloseResourceAction_warningForMultiple;
-    	}
-		return IDE.promptToConfirm(getShell(), IDEWorkbenchMessages.CloseResourceAction_confirm, message, factory.getDelta(), getModelProviderIds(), false /* no need to syncExec */);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseUnrelatedProjectsAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseUnrelatedProjectsAction.java
deleted file mode 100644
index 4020a4b..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseUnrelatedProjectsAction.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.actions;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.misc.DisjointSet;
-
-/**
- * This action closes all projects that are unrelated to the selected projects. A
- * project is unrelated if it is not directly or transitively referenced by one 
- * of the selected projects, and does not directly or transitively reference
- * one of the selected projects.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @see IDEActionFactory#CLOSE_UNRELATED_PROJECTS
- * @since 3.3
- */
-public class CloseUnrelatedProjectsAction extends CloseResourceAction {
-	/**
-	 * The id of this action.
-	 */
-	public static final String ID = PlatformUI.PLUGIN_ID + ".CloseUnrelatedProjectsAction"; //$NON-NLS-1$
-
-	private final List projectsToClose = new ArrayList();
-
-	private boolean selectionDirty = true;
-
-	private List oldSelection = Collections.EMPTY_LIST;
-
-	/**
-	 * Builds the connected component set for the input projects.
-	 * The result is a DisjointSet where all related projects belong
-	 * to the same set.
-	 */
-	private static DisjointSet buildConnectedComponents(IProject[] projects) {
-		//initially each vertex is in a set by itself
-		DisjointSet set = new DisjointSet();
-		for (int i = 0; i < projects.length; i++) {
-			set.makeSet(projects[i]);
-		}
-		for (int i = 0; i < projects.length; i++) {
-			try {
-				IProject[] references = projects[i].getReferencedProjects();
-				//each reference represents an edge in the project reference
-				//digraph from projects[i] -> references[j]
-				for (int j = 0; j < references.length; j++) {
-					Object setOne = set.findSet(projects[i]);
-					//note that referenced projects may not exist in the workspace
-					Object setTwo = set.findSet(references[j]);
-					//these two projects are related, so join their sets
-					if (setOne != null && setTwo != null && setOne != setTwo)
-						set.union(setOne, setTwo);
-				}
-			} catch (CoreException e) {
-				//assume inaccessible projects have no references
-			}
-		}
-		return set;
-	}
-
-	/**
-	 * Creates this action.
-	 * 
-	 * @param shell
-	 *            The shell to use for parenting any dialogs created by this
-	 *            action.
-	 */
-	public CloseUnrelatedProjectsAction(Shell shell) {
-		super(shell, IDEWorkbenchMessages.CloseUnrelatedProjectsAction_text);
-		setId(ID);
-		setToolTipText(IDEWorkbenchMessages.CloseUnrelatedProjectsAction_toolTip);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IIDEHelpContextIds.CLOSE_UNRELATED_PROJECTS_ACTION);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionListenerAction#clearCache()
-	 */
-	protected void clearCache() {
-		super.clearCache();
-		oldSelection = Collections.EMPTY_LIST;
-		selectionDirty = true;
-	}
-
-	/**
-	 * Computes the related projects of the selection.
-	 */
-	private void computeRelated(List selection) {
-		//build the connected component set for all projects in the workspace
-		DisjointSet set = buildConnectedComponents(ResourcesPlugin.getWorkspace().getRoot().getProjects());
-		//remove the connected components that the selected projects are in
-		for (Iterator it = selection.iterator(); it.hasNext();)
-			set.removeSet(it.next());
-		//the remainder of the projects in the disjoint set are unrelated to the selection
-		projectsToClose.clear();
-		set.toList(projectsToClose);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionListenerAction#getSelectedResources()
-	 */
-	protected List getSelectedResources() {
-		if (selectionDirty) {
-			List newSelection = super.getSelectedResources();
-			if (!oldSelection.equals(newSelection)) {
-				oldSelection = newSelection;
-				computeRelated(newSelection);
-			}
-			selectionDirty = false;
-		}
-		return projectsToClose;
-	}
-
-	/**
-	 * Handles a resource changed event by updating the enablement
-	 * when projects change.
-	 * <p>
-	 * This method overrides the super-type implementation to update
-	 * the selection when the open state or description of any project changes.
-	 */
-	public void resourceChanged(IResourceChangeEvent event) {
-		// don't bother looking at delta if selection not applicable
-		if (selectionIsOfType(IResource.PROJECT)) {
-			IResourceDelta delta = event.getDelta();
-			if (delta != null) {
-				IResourceDelta[] projDeltas = delta.getAffectedChildren(IResourceDelta.CHANGED);
-				for (int i = 0; i < projDeltas.length; ++i) {
-					IResourceDelta projDelta = projDeltas[i];
-					//changing either the description or the open state can affect enablement
-					if ((projDelta.getFlags() & (IResourceDelta.OPEN | IResourceDelta.DESCRIPTION)) != 0) {
-						selectionChanged(getStructuredSelection());
-						return;
-					}
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyFilesAndFoldersOperation.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyFilesAndFoldersOperation.java
deleted file mode 100644
index c301834..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyFilesAndFoldersOperation.java
+++ /dev/null
@@ -1,1747 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URI;
-import com.ibm.icu.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.filesystem.IFileStore;
-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.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.WorkspaceJob;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.core.resources.mapping.ResourceChangeValidator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.dialogs.ErrorDialog;
-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.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ContainerGenerator;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.StatusUtil;
-import org.eclipse.ui.internal.ide.dialogs.IDEResourceInfoUtils;
-import org.eclipse.ui.wizards.datatransfer.FileStoreStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;
-
-/**
- * Perform the copy of file and folder resources from the clipboard when paste
- * action is invoked.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class CopyFilesAndFoldersOperation {
-
-	/**
-	 * Status containing the errors detected when running the operation or
-	 * <code>null</code> if no errors detected.
-	 */
-	private MultiStatus errorStatus;
-
-	/**
-	 * The parent shell used to show any dialogs.
-	 */
-	private Shell messageShell;
-
-	/**
-	 * Whether or not the copy has been canceled by the user.
-	 */
-	private boolean canceled = false;
-
-	/**
-	 * Overwrite all flag.
-	 */
-	private boolean alwaysOverwrite = false;
-
-	private String[] modelProviderIds;
-
-	/**
-	 * Returns a new name for a copy of the resource at the given path in the
-	 * given workspace. This name is determined automatically.
-	 * 
-	 * @param originalName
-	 *            the full path of the resource
-	 * @param workspace
-	 *            the workspace
-	 * @return the new full path for the copy
-	 */
-	static IPath getAutoNewNameFor(IPath originalName, IWorkspace workspace) {
-		int counter = 1;
-		String resourceName = originalName.lastSegment();
-		IPath leadupSegment = originalName.removeLastSegments(1);
-
-		while (true) {
-			String nameSegment;
-
-			if (counter > 1) {
-				nameSegment = NLS
-						.bind(
-								IDEWorkbenchMessages.CopyFilesAndFoldersOperation_copyNameTwoArgs,
-								new Integer(counter), resourceName);
-			} else {
-				nameSegment = NLS
-						.bind(
-								IDEWorkbenchMessages.CopyFilesAndFoldersOperation_copyNameOneArg,
-								resourceName);
-			}
-
-			IPath pathToTry = leadupSegment.append(nameSegment);
-
-			if (!workspace.getRoot().exists(pathToTry)) {
-				return pathToTry;
-			}
-
-			counter++;
-		}
-	}
-
-	/**
-	 * Creates a new operation initialized with a shell.
-	 * 
-	 * @param shell
-	 *            parent shell for error dialogs
-	 */
-	public CopyFilesAndFoldersOperation(Shell shell) {
-		messageShell = shell;
-	}
-
-	/**
-	 * Returns whether this operation is able to perform on-the-fly
-	 * auto-renaming of resources with name collisions.
-	 * 
-	 * @return <code>true</code> if auto-rename is supported, and
-	 *         <code>false</code> otherwise
-	 */
-	protected boolean canPerformAutoRename() {
-		return true;
-	}
-
-	/**
-	 * Returns the message for querying deep copy/move of a linked resource.
-	 * 
-	 * @param source
-	 *            resource the query is made for
-	 * @return the deep query message
-	 */
-	protected String getDeepCheckQuestion(IResource source) {
-		return NLS
-				.bind(
-						IDEWorkbenchMessages.CopyFilesAndFoldersOperation_deepCopyQuestion,
-						source.getFullPath().makeRelative());
-	}
-
-	/**
-	 * Checks whether the infos exist.
-	 * 
-	 * @param stores
-	 *            the file infos to test
-	 * @return Multi status with one error message for each missing file.
-	 */
-	IStatus checkExist(IFileStore[] stores) {
-		MultiStatus multiStatus = new MultiStatus(PlatformUI.PLUGIN_ID,
-				IStatus.OK, getProblemsMessage(), null);
-
-		for (int i = 0; i < stores.length; i++) {
-			if (stores[i].fetchInfo().exists() == false) {
-				String message = NLS
-						.bind(
-								IDEWorkbenchMessages.CopyFilesAndFoldersOperation_resourceDeleted,
-								stores[i].getName());
-				IStatus status = new Status(IStatus.ERROR,
-						PlatformUI.PLUGIN_ID, IStatus.OK, message, null);
-				multiStatus.add(status);
-			}
-		}
-		return multiStatus;
-	}
-
-	/**
-	 * Checks whether the resources with the given names exist.
-	 * 
-	 * @param resources
-	 *            IResources to checl
-	 * @return Multi status with one error message for each missing file.
-	 */
-	IStatus checkExist(IResource[] resources) {
-		MultiStatus multiStatus = new MultiStatus(PlatformUI.PLUGIN_ID,
-				IStatus.OK, getProblemsMessage(), null);
-
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			if (resource != null) {
-				URI location = resource.getLocationURI();
-				String message = null;
-				if (location != null) {
-					IFileInfo info = IDEResourceInfoUtils.getFileInfo(location);
-					if (info == null || info.exists() == false) {
-						if (resource.isLinked()) {
-							message = NLS
-									.bind(
-											IDEWorkbenchMessages.CopyFilesAndFoldersOperation_missingLinkTarget,
-											resource.getName());
-						} else {
-							message = NLS
-									.bind(
-											IDEWorkbenchMessages.CopyFilesAndFoldersOperation_resourceDeleted,
-											resource.getName());
-						}
-					}
-				}
-				if (message != null) {
-					IStatus status = new Status(IStatus.ERROR,
-							PlatformUI.PLUGIN_ID, IStatus.OK, message, null);
-					multiStatus.add(status);
-				}
-			}
-		}
-		return multiStatus;
-	}
-
-	/**
-	 * Check if the user wishes to overwrite the supplied resource or all
-	 * resources.
-	 * 
-	 * @param source
-	 *            the source resource
-	 * @param destination
-	 *            the resource to be overwritten
-	 * @return one of IDialogConstants.YES_ID, IDialogConstants.YES_TO_ALL_ID,
-	 *         IDialogConstants.NO_ID, IDialogConstants.CANCEL_ID indicating
-	 *         whether the current resource or all resources can be overwritten,
-	 *         or if the operation should be canceled.
-	 */
-	private int checkOverwrite(final IResource source,
-			final IResource destination) {
-		final int[] result = new int[1];
-
-		// Dialogs need to be created and opened in the UI thread
-		Runnable query = new Runnable() {
-			public void run() {
-				String message;
-				int resultId[] = { IDialogConstants.YES_ID,
-						IDialogConstants.YES_TO_ALL_ID, IDialogConstants.NO_ID,
-						IDialogConstants.CANCEL_ID };
-				String labels[] = new String[] { IDialogConstants.YES_LABEL,
-						IDialogConstants.YES_TO_ALL_LABEL,
-						IDialogConstants.NO_LABEL,
-						IDialogConstants.CANCEL_LABEL };
-
-				if (destination.getType() == IResource.FOLDER) {
-					if (homogenousResources(source, destination)) {
-						message = NLS
-								.bind(
-										IDEWorkbenchMessages.CopyFilesAndFoldersOperation_overwriteMergeQuestion,
-										destination.getFullPath()
-												.makeRelative());
-					} else {
-						if (destination.isLinked()) {
-							message = NLS
-									.bind(
-											IDEWorkbenchMessages.CopyFilesAndFoldersOperation_overwriteNoMergeLinkQuestion,
-											destination.getFullPath()
-													.makeRelative());
-						} else {
-							message = NLS
-									.bind(
-											IDEWorkbenchMessages.CopyFilesAndFoldersOperation_overwriteNoMergeNoLinkQuestion,
-											destination.getFullPath()
-													.makeRelative());
-						}
-						resultId = new int[] { IDialogConstants.YES_ID,
-								IDialogConstants.NO_ID,
-								IDialogConstants.CANCEL_ID };
-						labels = new String[] { IDialogConstants.YES_LABEL,
-								IDialogConstants.NO_LABEL,
-								IDialogConstants.CANCEL_LABEL };
-					}
-				} else {
-					String[] bindings = new String[] {
-							IDEResourceInfoUtils.getLocationText(destination),
-							IDEResourceInfoUtils
-									.getDateStringValue(destination),
-							IDEResourceInfoUtils.getLocationText(source),
-							IDEResourceInfoUtils.getDateStringValue(source) };
-					message = NLS
-							.bind(
-									IDEWorkbenchMessages.CopyFilesAndFoldersOperation_overwriteWithDetailsQuestion,
-									bindings);
-				}
-				MessageDialog dialog = new MessageDialog(
-						messageShell,
-						IDEWorkbenchMessages.CopyFilesAndFoldersOperation_resourceExists,
-						null, message, MessageDialog.QUESTION, labels, 0);
-				dialog.open();
-				if (dialog.getReturnCode() == SWT.DEFAULT) {
-					// A window close returns SWT.DEFAULT, which has to be
-					// mapped to a cancel
-					result[0] = IDialogConstants.CANCEL_ID;
-				} else {
-					result[0] = resultId[dialog.getReturnCode()];
-				}
-			}
-		};
-		messageShell.getDisplay().syncExec(query);
-		return result[0];
-	}
-
-	/**
-	 * Recursively collects existing files in the specified destination path.
-	 * 
-	 * @param destinationPath
-	 *            destination path to check for existing files
-	 * @param copyResources
-	 *            resources that may exist in the destination
-	 * @param existing
-	 *            holds the collected existing files
-	 */
-	private void collectExistingReadonlyFiles(IPath destinationPath,
-			IResource[] copyResources, ArrayList existing) {
-		IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
-
-		for (int i = 0; i < copyResources.length; i++) {
-			IResource source = copyResources[i];
-			IPath newDestinationPath = destinationPath.append(source.getName());
-			IResource newDestination = workspaceRoot
-					.findMember(newDestinationPath);
-			IFolder folder;
-
-			if (newDestination == null) {
-				continue;
-			}
-			folder = getFolder(newDestination);
-			if (folder != null) {
-				IFolder sourceFolder = getFolder(source);
-
-				if (sourceFolder != null) {
-					try {
-						collectExistingReadonlyFiles(newDestinationPath,
-								sourceFolder.members(), existing);
-					} catch (CoreException exception) {
-						recordError(exception);
-					}
-				}
-			} else {
-				IFile file = getFile(newDestination);
-
-				if (file != null) {
-					if (file.isReadOnly()) {
-						existing.add(file);
-					}
-					if (getValidateConflictSource()) {
-						IFile sourceFile = getFile(source);
-						if (sourceFile != null) {
-							existing.add(sourceFile);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Copies the resources to the given destination. This method is called
-	 * recursively to merge folders during folder copy.
-	 * 
-	 * @param resources
-	 *            the resources to copy
-	 * @param destination
-	 *            destination to which resources will be copied
-	 * @param subMonitor
-	 *            a progress monitor for showing progress and for cancelation
-	 */
-	protected void copy(IResource[] resources, IPath destination,
-			IProgressMonitor subMonitor) throws CoreException {
-
-		subMonitor
-				.beginTask(
-						IDEWorkbenchMessages.CopyFilesAndFoldersOperation_CopyResourcesTask,
-						resources.length);
-
-		for (int i = 0; i < resources.length; i++) {
-			IResource source = resources[i];
-			IPath destinationPath = destination.append(source.getName());
-			IWorkspace workspace = source.getWorkspace();
-			IWorkspaceRoot workspaceRoot = workspace.getRoot();
-			IResource existing = workspaceRoot.findMember(destinationPath);
-			if (source.getType() == IResource.FOLDER && existing != null) {
-				// the resource is a folder and it exists in the destination,
-				// copy the
-				// children of the folder.
-				if (homogenousResources(source, existing)) {
-					IResource[] children = ((IContainer) source).members();
-					copy(children, destinationPath, new SubProgressMonitor(
-							subMonitor, 1));
-				} else {
-					// delete the destination folder, copying a linked folder
-					// over an unlinked one or vice versa. Fixes bug 28772.
-					delete(existing, new SubProgressMonitor(subMonitor, 0));
-					source.copy(destinationPath, IResource.SHALLOW,
-							new SubProgressMonitor(subMonitor, 1));
-				}
-			} else {
-				if (existing != null) {
-					if (homogenousResources(source, existing)) {
-						copyExisting(source, existing, new SubProgressMonitor(
-								subMonitor, 1));
-					} else {
-						// Copying a linked resource over unlinked or vice
-						// versa.
-						// Can't use setContents here. Fixes bug 28772.
-						delete(existing, new SubProgressMonitor(subMonitor, 0));
-						source.copy(destinationPath, IResource.SHALLOW,
-								new SubProgressMonitor(subMonitor, 1));
-					}
-				} else {
-					source.copy(destinationPath, IResource.SHALLOW,
-							new SubProgressMonitor(subMonitor, 1));
-
-				}
-
-				if (subMonitor.isCanceled()) {
-					throw new OperationCanceledException();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Sets the content of the existing file to the source file content.
-	 * 
-	 * @param source
-	 *            source file to copy
-	 * @param existing
-	 *            existing file to set the source content in
-	 * @param subMonitor
-	 *            a progress monitor for showing progress and for cancelation
-	 * @throws CoreException
-	 *             setContents failed
-	 */
-	private void copyExisting(IResource source, IResource existing,
-			IProgressMonitor subMonitor) throws CoreException {
-		IFile existingFile = getFile(existing);
-
-		if (existingFile != null) {
-			IFile sourceFile = getFile(source);
-
-			if (sourceFile != null) {
-				existingFile.setContents(sourceFile.getContents(),
-						IResource.KEEP_HISTORY, new SubProgressMonitor(
-								subMonitor, 0));
-			}
-		}
-	}
-
-	/**
-	 * Copies the given resources to the destination. The current Thread is
-	 * halted while the resources are copied using a WorkspaceModifyOperation.
-	 * This method should be called from the UIThread.
-	 * 
-	 * @param resources
-	 *            the resources to copy
-	 * @param destination
-	 *            destination to which resources will be copied
-	 * @return IResource[] the resulting {@link IResource}[]
-	 * @see WorkspaceModifyOperation
-	 * @see Display#getThread()
-	 * @see Thread#currentThread()
-	 */
-	public IResource[] copyResources(final IResource[] resources,
-			IContainer destination) {
-		return copyResources(resources, destination, true, null);
-	}
-
-	/**
-	 * Copies the given resources to the destination in the current Thread
-	 * without forking a new Thread or blocking using a
-	 * WorkspaceModifyOperation. It recommended that this method only be called
-	 * from a {@link WorkspaceJob} to avoid possible deadlock.
-	 * 
-	 * @param resources
-	 *            the resources to copy
-	 * @param destination
-	 *            destination to which resources will be copied
-	 * @param monitor
-	 *            the monitor that information will be sent to.
-	 * @return IResource[] the resulting {@link IResource}[]
-	 * @see WorkspaceModifyOperation
-	 * @see WorkspaceJob
-	 * @since 3.2
-	 */
-	public IResource[] copyResourcesInCurrentThread(
-			final IResource[] resources, IContainer destination,
-			IProgressMonitor monitor) {
-		return copyResources(resources, destination, false, monitor);
-	}
-
-	/**
-	 * Copies the given resources to the destination.
-	 * 
-	 * @param resources
-	 *            the resources to copy
-	 * @param destination
-	 *            destination to which resources will be copied
-	 * @return IResource[] the resulting {@link IResource}[]
-	 */
-	private IResource[] copyResources(final IResource[] resources,
-			IContainer destination, boolean fork, IProgressMonitor monitor) {
-		final IPath destinationPath = destination.getFullPath();
-		final IResource[][] copiedResources = new IResource[1][0];
-
-		// test resources for existence separate from validate API.
-		// Validate is performance critical and resource exists
-		// check is potentially slow. Fixes bugs 16129/28602.
-		IStatus resourceStatus = checkExist(resources);
-		if (resourceStatus.getSeverity() != IStatus.OK) {
-			displayError(resourceStatus);
-			return copiedResources[0];
-		}
-		String errorMsg = validateDestination(destination, resources);
-		if (errorMsg != null) {
-			displayError(errorMsg);
-			return copiedResources[0];
-		}
-
-		if (!validateOperation(resources, destinationPath)) {
-			return copiedResources[0];
-		}
-
-		if (fork) {
-			WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-				public void execute(IProgressMonitor monitor) {
-					copyResources(resources, destinationPath, copiedResources,
-							monitor);
-				}
-			};
-
-			try {
-				PlatformUI.getWorkbench().getProgressService().run(true, true,
-						op);
-			} catch (InterruptedException e) {
-				return copiedResources[0];
-			} catch (InvocationTargetException e) {
-				display(e);
-			}
-		} else {
-			copyResources(resources, destinationPath, copiedResources, monitor);
-		}
-
-		// If errors occurred, open an Error dialog
-		if (errorStatus != null) {
-			displayError(errorStatus);
-			errorStatus = null;
-		}
-		return copiedResources[0];
-	}
-
-	/**
-	 * Validates the copy or move operation.
-	 * 
-	 * @param resources
-	 *            the resources being copied or moved
-	 * @param destinationPath
-	 *            the destination of the copy or move
-	 * @return whether the operation should proceed
-	 * @since 3.2
-	 */
-	private boolean validateOperation(IResource[] resources,
-			IPath destinationPath) {
-		IResourceChangeDescriptionFactory factory = ResourceChangeValidator
-				.getValidator().createDeltaFactory();
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			if (isMove()) {
-				factory.move(resource, destinationPath.append(resource
-						.getName()));
-			} else {
-				factory.copy(resource, destinationPath.append(resource
-						.getName()));
-			}
-		}
-		String title;
-		String message;
-		if (isMove()) {
-			title = IDEWorkbenchMessages.CopyFilesAndFoldersOperation_confirmMove;
-			message = IDEWorkbenchMessages.CopyFilesAndFoldersOperation_warningMove;
-		} else {
-			title = IDEWorkbenchMessages.CopyFilesAndFoldersOperation_confirmCopy;
-			message = IDEWorkbenchMessages.CopyFilesAndFoldersOperation_warningCopy;
-		}
-		return IDE.promptToConfirm(messageShell, title, message, factory
-				.getDelta(), modelProviderIds, true /* syncExec */);
-	}
-
-	/**
-	 * Return whether the operation is a move or a copy
-	 * 
-	 * @return whether the operation is a move or a copy
-	 * @since 3.2
-	 */
-	protected boolean isMove() {
-		return false;
-	}
-
-	private void display(InvocationTargetException e) {
-		// CoreExceptions are collected above, but unexpected runtime
-		// exceptions and errors may still occur.
-		IDEWorkbenchPlugin.getDefault().getLog().log(
-				StatusUtil.newStatus(IStatus.ERROR, MessageFormat.format(
-						"Exception in {0}.performCopy(): {1}", //$NON-NLS-1$
-						new Object[] { getClass().getName(),
-								e.getTargetException() }), null));
-		displayError(NLS
-				.bind(
-						IDEWorkbenchMessages.CopyFilesAndFoldersOperation_internalError,
-						e.getTargetException().getMessage()));
-	}
-
-	/**
-	 * Copies the given URIS and folders to the destination. The current Thread
-	 * is halted while the resources are copied using a
-	 * WorkspaceModifyOperation. This method should be called from the UI
-	 * Thread.
-	 * 
-	 * @param uris
-	 *            the URIs to copy
-	 * @param destination
-	 *            destination to which files will be copied
-	 * @see WorkspaceModifyOperation
-	 * @see Display#getThread()
-	 * @see Thread#currentThread()
-	 * @since 3.2
-	 */
-	public void copyFiles(URI[] uris, IContainer destination) {
-		IFileStore[] stores = buildFileStores(uris);
-		if (stores == null) {
-			return;
-		}
-
-		copyFileStores(destination, stores, true, null);
-	}
-
-	/**
-	 * Copies the given files and folders to the destination without forking a
-	 * new Thread or blocking using a WorkspaceModifyOperation. It is
-	 * recommended that this method only be called from a {@link WorkspaceJob}
-	 * to avoid possible deadlock.
-	 * 
-	 * @param uris
-	 *            the URIs to copy
-	 * @param destination
-	 *            destination to which URIS will be copied
-	 * @param monitor
-	 *            the monitor that information will be sent to.
-	 * @see WorkspaceModifyOperation
-	 * @see WorkspaceJob
-	 * @since 3.2
-	 */
-	public void copyFilesInCurrentThread(URI[] uris, IContainer destination,
-			IProgressMonitor monitor) {
-		IFileStore[] stores = buildFileStores(uris);
-		if (stores == null) {
-			return;
-		}
-
-		copyFileStores(destination, stores, false, monitor);
-	}
-
-	/**
-	 * Build the collection of fileStores that map to fileNames. If any of them
-	 * cannot be found then match then return <code>null</code>.
-	 * 
-	 * @param uris
-	 * @return IFileStore[]
-	 */
-	private IFileStore[] buildFileStores(URI[] uris) {
-		IFileStore[] stores = new IFileStore[uris.length];
-		for (int i = 0; i < uris.length; i++) {
-			IFileStore store;
-			try {
-				store = EFS.getStore(uris[i]);
-			} catch (CoreException e) {
-				IDEWorkbenchPlugin.log(e.getMessage(), e);
-				reportFileInfoNotFound(uris[i].toString());
-				return null;
-			}
-			if (store == null) {
-				reportFileInfoNotFound(uris[i].toString());
-				return null;
-			}
-			stores[i] = store;
-		}
-		return stores;
-
-	}
-
-	/**
-	 * Copies the given files and folders to the destination. The current Thread
-	 * is halted while the resources are copied using a
-	 * WorkspaceModifyOperation. This method should be called from the UI
-	 * Thread.
-	 * 
-	 * @param fileNames
-	 *            names of the files to copy
-	 * @param destination
-	 *            destination to which files will be copied
-	 * @see WorkspaceModifyOperation
-	 * @see Display#getThread()
-	 * @see Thread#currentThread()
-	 * @since 3.2
-	 */
-	public void copyFiles(final String[] fileNames, IContainer destination) {
-		IFileStore[] stores = buildFileStores(fileNames);
-		if (stores == null) {
-			return;
-		}
-
-		copyFileStores(destination, stores, true, null);
-	}
-
-	/**
-	 * Copies the given files and folders to the destination without forking a
-	 * new Thread or blocking using a WorkspaceModifyOperation. It is
-	 * recommended that this method only be called from a {@link WorkspaceJob}
-	 * to avoid possible deadlock.
-	 * 
-	 * @param fileNames
-	 *            names of the files to copy
-	 * @param destination
-	 *            destination to which files will be copied
-	 * @param monitor
-	 *            the monitor that information will be sent to.
-	 * @see WorkspaceModifyOperation
-	 * @see WorkspaceJob
-	 * @since 3.2
-	 */
-	public void copyFilesInCurrentThread(final String[] fileNames,
-			IContainer destination, IProgressMonitor monitor) {
-		IFileStore[] stores = buildFileStores(fileNames);
-		if (stores == null) {
-			return;
-		}
-
-		copyFileStores(destination, stores, false, monitor);
-	}
-
-	/**
-	 * Build the collection of fileStores that map to fileNames. If any of them
-	 * cannot be found then match then return null.
-	 * 
-	 * @param fileNames
-	 * @return IFileStore[]
-	 */
-	private IFileStore[] buildFileStores(final String[] fileNames) {
-		IFileStore[] stores = new IFileStore[fileNames.length];
-		for (int i = 0; i < fileNames.length; i++) {
-			IFileStore store = IDEResourceInfoUtils.getFileStore(fileNames[i]);
-			if (store == null) {
-				reportFileInfoNotFound(fileNames[i]);
-				return null;
-			}
-			stores[i] = store;
-		}
-		return stores;
-	}
-
-	/**
-	 * Report that a file info could not be found.
-	 * 
-	 * @param fileName
-	 */
-	private void reportFileInfoNotFound(final String fileName) {
-
-		messageShell.getDisplay().syncExec(new Runnable() {
-			public void run() {
-				ErrorDialog
-						.openError(
-								messageShell,
-								getProblemsTitle(),
-								NLS
-										.bind(
-												IDEWorkbenchMessages.CopyFilesAndFoldersOperation_infoNotFound,
-												fileName), null);
-			}
-		});
-	}
-
-	/**
-	 * Copies the given files and folders to the destination.
-	 * 
-	 * @param stores
-	 *            the file stores to copy
-	 * @param destination
-	 *            destination to which files will be copied
-	 */
-	private void copyFileStores(IContainer destination,
-			final IFileStore[] stores, boolean fork, IProgressMonitor monitor) {
-		// test files for existence separate from validate API
-		// because an external file may not exist until the copy actually
-		// takes place (e.g., WinZip contents).
-		IStatus fileStatus = checkExist(stores);
-		if (fileStatus.getSeverity() != IStatus.OK) {
-			displayError(fileStatus);
-			return;
-		}
-		String errorMsg = validateImportDestinationInternal(destination, stores);
-		if (errorMsg != null) {
-			displayError(errorMsg);
-			return;
-		}
-		final IPath destinationPath = destination.getFullPath();
-
-		if (fork) {
-			WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-				public void execute(IProgressMonitor monitor) {
-					copyFileStores(stores, destinationPath, monitor);
-				}
-			};
-			try {
-				PlatformUI.getWorkbench().getProgressService().run(true, true,
-						op);
-			} catch (InterruptedException e) {
-				return;
-			} catch (InvocationTargetException exception) {
-				display(exception);
-			}
-		} else {
-			copyFileStores(stores, destinationPath, monitor);
-		}
-
-		// If errors occurred, open an Error dialog
-		if (errorStatus != null) {
-			displayError(errorStatus);
-			errorStatus = null;
-		}
-	}
-
-	/**
-	 * Display the supplied status in an error dialog.
-	 * 
-	 * @param status
-	 *            The status to display
-	 */
-	private void displayError(final IStatus status) {
-		messageShell.getDisplay().syncExec(new Runnable() {
-			public void run() {
-				ErrorDialog.openError(messageShell, getProblemsTitle(), null,
-						status);
-			}
-		});
-	}
-
-	/**
-	 * Creates a file or folder handle for the source resource as if it were to
-	 * be created in the destination container.
-	 * 
-	 * @param destination
-	 *            destination container
-	 * @param source
-	 *            source resource
-	 * @return IResource file or folder handle, depending on the source type.
-	 */
-	IResource createLinkedResourceHandle(IContainer destination,
-			IResource source) {
-		IWorkspace workspace = destination.getWorkspace();
-		IWorkspaceRoot workspaceRoot = workspace.getRoot();
-		IPath linkPath = destination.getFullPath().append(source.getName());
-		IResource linkHandle;
-
-		if (source.getType() == IResource.FOLDER) {
-			linkHandle = workspaceRoot.getFolder(linkPath);
-		} else {
-			linkHandle = workspaceRoot.getFile(linkPath);
-		}
-		return linkHandle;
-	}
-
-	/**
-	 * Removes the given resource from the workspace.
-	 * 
-	 * @param resource
-	 *            resource to remove from the workspace
-	 * @param monitor
-	 *            a progress monitor for showing progress and for cancelation
-	 * @return true the resource was deleted successfully false the resource was
-	 *         not deleted because a CoreException occurred
-	 */
-	boolean delete(IResource resource, IProgressMonitor monitor) {
-		boolean force = false; // don't force deletion of out-of-sync resources
-
-		if (resource.getType() == IResource.PROJECT) {
-			// if it's a project, ask whether content should be deleted too
-			IProject project = (IProject) resource;
-			try {
-				project.delete(true, force, monitor);
-			} catch (CoreException e) {
-				recordError(e); // log error
-				return false;
-			}
-		} else {
-			// if it's not a project, just delete it
-			int flags = IResource.KEEP_HISTORY;
-			if (force) {
-				flags = flags | IResource.FORCE;
-			}
-			try {
-				resource.delete(flags, monitor);
-			} catch (CoreException e) {
-				recordError(e); // log error
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Opens an error dialog to display the given message.
-	 * 
-	 * @param message
-	 *            the error message to show
-	 */
-	private void displayError(final String message) {
-		messageShell.getDisplay().syncExec(new Runnable() {
-			public void run() {
-				MessageDialog.openError(messageShell, getProblemsTitle(),
-						message);
-			}
-		});
-	}
-
-	/**
-	 * Returns the resource either casted to or adapted to an IFile.
-	 * 
-	 * @param resource
-	 *            resource to cast/adapt
-	 * @return the resource either casted to or adapted to an IFile.
-	 *         <code>null</code> if the resource does not adapt to IFile
-	 */
-	protected IFile getFile(IResource resource) {
-		if (resource instanceof IFile) {
-			return (IFile) resource;
-		}
-		return (IFile) ((IAdaptable) resource).getAdapter(IFile.class);
-	}
-
-	/**
-	 * Returns java.io.File objects for the given file names.
-	 * 
-	 * @param fileNames
-	 *            files to return File object for.
-	 * @return java.io.File objects for the given file names.
-	 * @deprecated This method is not longer in use anywhere in this class and
-	 *             is only provided for backwards compatability with subclasses
-	 *             of the receiver.
-	 */
-	protected File[] getFiles(String[] fileNames) {
-		File[] files = new File[fileNames.length];
-
-		for (int i = 0; i < fileNames.length; i++) {
-			files[i] = new File(fileNames[i]);
-		}
-		return files;
-	}
-
-	/**
-	 * Returns the resource either casted to or adapted to an IFolder.
-	 * 
-	 * @param resource
-	 *            resource to cast/adapt
-	 * @return the resource either casted to or adapted to an IFolder.
-	 *         <code>null</code> if the resource does not adapt to IFolder
-	 */
-	protected IFolder getFolder(IResource resource) {
-		if (resource instanceof IFolder) {
-			return (IFolder) resource;
-		}
-		return (IFolder) ((IAdaptable) resource).getAdapter(IFolder.class);
-	}
-
-	/**
-	 * Returns a new name for a copy of the resource at the given path in the
-	 * given workspace.
-	 * 
-	 * @param originalName
-	 *            the full path of the resource
-	 * @param workspace
-	 *            the workspace
-	 * @return the new full path for the copy, or <code>null</code> if the
-	 *         resource should not be copied
-	 */
-	private IPath getNewNameFor(final IPath originalName,
-			final IWorkspace workspace) {
-		final IResource resource = workspace.getRoot().findMember(originalName);
-		final IPath prefix = resource.getFullPath().removeLastSegments(1);
-		final String returnValue[] = { "" }; //$NON-NLS-1$
-
-		messageShell.getDisplay().syncExec(new Runnable() {
-			public void run() {
-				IInputValidator validator = new IInputValidator() {
-					public String isValid(String string) {
-						if (resource.getName().equals(string)) {
-							return IDEWorkbenchMessages.CopyFilesAndFoldersOperation_nameMustBeDifferent;
-						}
-						IStatus status = workspace.validateName(string,
-								resource.getType());
-						if (!status.isOK()) {
-							return status.getMessage();
-						}
-						if (workspace.getRoot().exists(prefix.append(string))) {
-							return IDEWorkbenchMessages.CopyFilesAndFoldersOperation_nameExists;
-						}
-						return null;
-					}
-				};
-
-				InputDialog dialog = new InputDialog(
-						messageShell,
-						IDEWorkbenchMessages.CopyFilesAndFoldersOperation_inputDialogTitle,
-						NLS
-								.bind(
-										IDEWorkbenchMessages.CopyFilesAndFoldersOperation_inputDialogMessage,
-										resource.getName()), getAutoNewNameFor(
-								originalName, workspace).lastSegment()
-								.toString(), validator);
-				dialog.setBlockOnOpen(true);
-				dialog.open();
-				if (dialog.getReturnCode() == Window.CANCEL) {
-					returnValue[0] = null;
-				} else {
-					returnValue[0] = dialog.getValue();
-				}
-			}
-		});
-		if (returnValue[0] == null) {
-			throw new OperationCanceledException();
-		}
-		return prefix.append(returnValue[0]);
-	}
-
-	/**
-	 * Returns the task title for this operation's progress dialog.
-	 * 
-	 * @return the task title
-	 */
-	protected String getOperationTitle() {
-		return IDEWorkbenchMessages.CopyFilesAndFoldersOperation_operationTitle;
-	}
-
-	/**
-	 * Returns the message for this operation's problems dialog.
-	 * 
-	 * @return the problems message
-	 */
-	protected String getProblemsMessage() {
-		return IDEWorkbenchMessages.CopyFilesAndFoldersOperation_problemMessage;
-	}
-
-	/**
-	 * Returns the title for this operation's problems dialog.
-	 * 
-	 * @return the problems dialog title
-	 */
-	protected String getProblemsTitle() {
-		return IDEWorkbenchMessages.CopyFilesAndFoldersOperation_copyFailedTitle;
-	}
-
-	/**
-	 * Returns whether the source file in a destination collision will be
-	 * validateEdited together with the collision itself. Returns false. Should
-	 * return true if the source file is to be deleted after the operation.
-	 * 
-	 * @return boolean <code>true</code> if the source file in a destination
-	 *         collision should be validateEdited. <code>false</code> if only
-	 *         the destination should be validated.
-	 */
-	protected boolean getValidateConflictSource() {
-		return false;
-	}
-
-	/**
-	 * Returns whether the given resources are either both linked or both
-	 * unlinked.
-	 * 
-	 * @param source
-	 *            source resource
-	 * @param destination
-	 *            destination resource
-	 * @return boolean <code>true</code> if both resources are either linked
-	 *         or unlinked. <code>false</code> otherwise.
-	 */
-	protected boolean homogenousResources(IResource source,
-			IResource destination) {
-		boolean isSourceLinked = source.isLinked();
-		boolean isDestinationLinked = destination.isLinked();
-
-		return (isSourceLinked && isDestinationLinked || isSourceLinked == false
-				&& isDestinationLinked == false);
-	}
-
-	/**
-	 * Returns whether the given resource is accessible. Files and folders are
-	 * always considered accessible and a project is accessible if it is open.
-	 * 
-	 * @param resource
-	 *            the resource
-	 * @return <code>true</code> if the resource is accessible, and
-	 *         <code>false</code> if it is not
-	 */
-	private boolean isAccessible(IResource resource) {
-		switch (resource.getType()) {
-		case IResource.FILE:
-			return true;
-		case IResource.FOLDER:
-			return true;
-		case IResource.PROJECT:
-			return ((IProject) resource).isOpen();
-		default:
-			return false;
-		}
-	}
-
-	/**
-	 * Returns whether any of the given source resources are being recopied to
-	 * their current container.
-	 * 
-	 * @param sourceResources
-	 *            the source resources
-	 * @param destination
-	 *            the destination container
-	 * @return <code>true</code> if at least one of the given source
-	 *         resource's parent container is the same as the destination
-	 */
-	boolean isDestinationSameAsSource(IResource[] sourceResources,
-			IContainer destination) {
-		IPath destinationLocation = destination.getLocation();
-
-		for (int i = 0; i < sourceResources.length; i++) {
-			IResource sourceResource = sourceResources[i];
-			if (sourceResource.getParent().equals(destination)) {
-				return true;
-			} else if (destinationLocation != null) {
-				// do thorough check to catch linked resources. Fixes bug 29913.
-				IPath sourceLocation = sourceResource.getLocation();
-				IPath destinationResource = destinationLocation
-						.append(sourceResource.getName());
-				if (sourceLocation != null
-						&& sourceLocation.isPrefixOf(destinationResource)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Copies the given resources to the destination container with the given
-	 * name.
-	 * <p>
-	 * Note: the destination container may need to be created prior to copying
-	 * the resources.
-	 * </p>
-	 * 
-	 * @param resources
-	 *            the resources to copy
-	 * @param destination
-	 *            the path of the destination container
-	 * @param monitor
-	 *            a progress monitor for showing progress and for cancelation
-	 * @return <code>true</code> if the copy operation completed without
-	 *         errors
-	 */
-	private boolean performCopy(IResource[] resources, IPath destination,
-			IProgressMonitor monitor) {
-		try {
-			ContainerGenerator generator = new ContainerGenerator(destination);
-			generator.generateContainer(new SubProgressMonitor(monitor, 10));
-			IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 75);
-			copy(resources, destination, subMonitor);
-		} catch (CoreException e) {
-			recordError(e); // log error
-			return false;
-		} finally {
-			monitor.done();
-		}
-		return true;
-	}
-
-	/**
-	 * Individually copies the given resources to the specified destination
-	 * container checking for name collisions. If a collision is detected, it is
-	 * saved with a new name.
-	 * <p>
-	 * Note: the destination container may need to be created prior to copying
-	 * the resources.
-	 * </p>
-	 * 
-	 * @param resources
-	 *            the resources to copy
-	 * @param destination
-	 *            the path of the destination container
-	 * @return <code>true</code> if the copy operation completed without
-	 *         errors.
-	 */
-	private boolean performCopyWithAutoRename(IResource[] resources,
-			IPath destination, IProgressMonitor monitor) {
-		IWorkspace workspace = resources[0].getWorkspace();
-
-		try {
-			ContainerGenerator generator = new ContainerGenerator(destination);
-			generator.generateContainer(new SubProgressMonitor(monitor, 10));
-
-			IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 75);
-			subMonitor.beginTask(getOperationTitle(), resources.length);
-
-			for (int i = 0; i < resources.length; i++) {
-				IResource source = resources[i];
-				IPath destinationPath = destination.append(source.getName());
-
-				if (workspace.getRoot().exists(destinationPath)) {
-					destinationPath = getNewNameFor(destinationPath, workspace);
-				}
-				if (destinationPath != null) {
-					try {
-						source.copy(destinationPath, IResource.SHALLOW,
-								new SubProgressMonitor(subMonitor, 0));
-					} catch (CoreException e) {
-						recordError(e); // log error
-						return false;
-					}
-				}
-				subMonitor.worked(1);
-				if (subMonitor.isCanceled()) {
-					throw new OperationCanceledException();
-				}
-			}
-		} catch (CoreException e) {
-			recordError(e); // log error
-			return false;
-		} finally {
-			monitor.done();
-		}
-
-		return true;
-	}
-
-	/**
-	 * Performs an import of the given stores into the provided container.
-	 * Returns a status indicating if the import was successful.
-	 * 
-	 * @param stores
-	 *            stores that are to be imported
-	 * @param target
-	 *            container to which the import will be done
-	 * @param monitor
-	 *            a progress monitor for showing progress and for cancelation
-	 */
-	private void performFileImport(IFileStore[] stores, IContainer target,
-			IProgressMonitor monitor) {
-		IOverwriteQuery query = new IOverwriteQuery() {
-			public String queryOverwrite(String pathString) {
-				if (alwaysOverwrite) {
-					return ALL;
-				}
-
-				final String returnCode[] = { CANCEL };
-				final String msg = NLS
-						.bind(
-								IDEWorkbenchMessages.CopyFilesAndFoldersOperation_overwriteQuestion,
-								pathString);
-				final String[] options = { IDialogConstants.YES_LABEL,
-						IDialogConstants.YES_TO_ALL_LABEL,
-						IDialogConstants.NO_LABEL,
-						IDialogConstants.CANCEL_LABEL };
-				messageShell.getDisplay().syncExec(new Runnable() {
-					public void run() {
-						MessageDialog dialog = new MessageDialog(
-								messageShell,
-								IDEWorkbenchMessages.CopyFilesAndFoldersOperation_question,
-								null, msg, MessageDialog.QUESTION, options, 0);
-						dialog.open();
-						int returnVal = dialog.getReturnCode();
-						String[] returnCodes = { YES, ALL, NO, CANCEL };
-						returnCode[0] = returnVal == -1 ? CANCEL
-								: returnCodes[returnVal];
-					}
-				});
-				if (returnCode[0] == ALL) {
-					alwaysOverwrite = true;
-				} else if (returnCode[0] == CANCEL) {
-					canceled = true;
-				}
-				return returnCode[0];
-			}
-		};
-
-		ImportOperation op = new ImportOperation(target.getFullPath(),
-				stores[0].getParent(), FileStoreStructureProvider.INSTANCE,
-				query, Arrays.asList(stores));
-		op.setContext(messageShell);
-		op.setCreateContainerStructure(false);
-		try {
-			op.run(monitor);
-		} catch (InterruptedException e) {
-			return;
-		} catch (InvocationTargetException e) {
-			if (e.getTargetException() instanceof CoreException) {
-				displayError(((CoreException) e.getTargetException())
-						.getStatus());
-			} else {
-				display(e);
-			}
-			return;
-		}
-		// Special case since ImportOperation doesn't throw a CoreException on
-		// failure.
-		IStatus status = op.getStatus();
-		if (!status.isOK()) {
-			if (errorStatus == null) {
-				errorStatus = new MultiStatus(PlatformUI.PLUGIN_ID,
-						IStatus.ERROR, getProblemsMessage(), null);
-			}
-			errorStatus.merge(status);
-		}
-	}
-
-	/**
-	 * Records the core exception to be displayed to the user once the action is
-	 * finished.
-	 * 
-	 * @param error
-	 *            a <code>CoreException</code>
-	 */
-	private void recordError(CoreException error) {
-		if (errorStatus == null) {
-			errorStatus = new MultiStatus(PlatformUI.PLUGIN_ID, IStatus.ERROR,
-					getProblemsMessage(), error);
-		}
-
-		errorStatus.merge(error.getStatus());
-	}
-
-	/**
-	 * Checks whether the destination is valid for copying the source resources.
-	 * <p>
-	 * Note this method is for internal use only. It is not API.
-	 * </p>
-	 * 
-	 * @param destination
-	 *            the destination container
-	 * @param sourceResources
-	 *            the source resources
-	 * @return an error message, or <code>null</code> if the path is valid
-	 */
-	public String validateDestination(IContainer destination,
-			IResource[] sourceResources) {
-		if (!isAccessible(destination)) {
-			return IDEWorkbenchMessages.CopyFilesAndFoldersOperation_destinationAccessError;
-		}
-		IContainer firstParent = null;
-		URI destinationLocation = destination.getLocationURI();
-		for (int i = 0; i < sourceResources.length; i++) {
-			IResource sourceResource = sourceResources[i];
-			if (firstParent == null) {
-				firstParent = sourceResource.getParent();
-			} else if (firstParent.equals(sourceResource.getParent()) == false) {
-				// Resources must have common parent. Fixes bug 33398.
-				return IDEWorkbenchMessages.CopyFilesAndFoldersOperation_parentNotEqual;
-			}
-
-			URI sourceLocation = sourceResource.getLocationURI();
-			if (sourceLocation == null) {
-				if (sourceResource.isLinked()) {
-					// Don't allow copying linked resources with undefined path
-					// variables. See bug 28754.
-					return NLS
-							.bind(
-									IDEWorkbenchMessages.CopyFilesAndFoldersOperation_missingPathVariable,
-									sourceResource.getName());
-				}
-				return NLS
-						.bind(
-								IDEWorkbenchMessages.CopyFilesAndFoldersOperation_resourceDeleted,
-								sourceResource.getName());
-
-			}
-			if (sourceLocation.equals(destinationLocation)) {
-				return NLS
-						.bind(
-								IDEWorkbenchMessages.CopyFilesAndFoldersOperation_sameSourceAndDest,
-								sourceResource.getName());
-			}
-			// is the source a parent of the destination?
-			if (new Path(sourceLocation.toString()).isPrefixOf(new Path(
-					destinationLocation.toString()))) {
-				return IDEWorkbenchMessages.CopyFilesAndFoldersOperation_destinationDescendentError;
-			}
-
-			String linkedResourceMessage = validateLinkedResource(destination,
-					sourceResource);
-			if (linkedResourceMessage != null) {
-				return linkedResourceMessage;
-			}
-		}
-		return null;
-	}
-
-
-	/**
-	 * Validates that the given source resources can be copied to the
-	 * destination as decided by the VCM provider.
-	 * 
-	 * @param destination
-	 *            copy destination
-	 * @param sourceResources
-	 *            source resources
-	 * @return <code>true</code> all files passed validation or there were no
-	 *         files to validate. <code>false</code> one or more files did not
-	 *         pass validation.
-	 */
-	private boolean validateEdit(IContainer destination,
-			IResource[] sourceResources) {
-		ArrayList copyFiles = new ArrayList();
-
-		collectExistingReadonlyFiles(destination.getFullPath(),
-				sourceResources, copyFiles);
-		if (copyFiles.size() > 0) {
-			IFile[] files = (IFile[]) copyFiles.toArray(new IFile[copyFiles
-					.size()]);
-			IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			IStatus status = workspace.validateEdit(files, messageShell);
-
-			canceled = status.isOK() == false;
-			return status.isOK();
-		}
-		return true;
-	}
-
-	/**
-	 * Checks whether the destination is valid for copying the source files.
-	 * <p>
-	 * Note this method is for internal use only. It is not API.
-	 * </p>
-	 * 
-	 * @param destination
-	 *            the destination container
-	 * @param sourceNames
-	 *            the source file names
-	 * @return an error message, or <code>null</code> if the path is valid
-	 */
-	public String validateImportDestination(IContainer destination,
-			String[] sourceNames) {
-
-		IFileStore[] stores = new IFileStore[sourceNames.length];
-		for (int i = 0; i < sourceNames.length; i++) {
-			IFileStore store = IDEResourceInfoUtils
-					.getFileStore(sourceNames[i]);
-			if (store == null) {
-				return NLS
-						.bind(
-								IDEWorkbenchMessages.CopyFilesAndFoldersOperation_infoNotFound,
-								sourceNames[i]);
-			}
-			stores[i] = store;
-		}
-		return validateImportDestinationInternal(destination, stores);
-
-	}
-
-	/**
-	 * Checks whether the destination is valid for copying the source file
-	 * stores.
-	 * <p>
-	 * Note this method is for internal use only. It is not API.
-	 * </p>
-	 * <p>
-	 * TODO Bug 117804. This method has been renamed to avoid a bug in the
-	 * Eclipse compiler with regards to visibility and type resolution when
-	 * linking.
-	 * </p>
-	 * 
-	 * @param destination
-	 *            the destination container
-	 * @param sourceStores
-	 *            the source IFileStore
-	 * @return an error message, or <code>null</code> if the path is valid
-	 */
-	private String validateImportDestinationInternal(IContainer destination,
-			IFileStore[] sourceStores) {
-		if (!isAccessible(destination)) 
-			return IDEWorkbenchMessages.CopyFilesAndFoldersOperation_destinationAccessError;
-		
-
-		IFileStore destinationStore;
-		try {
-			destinationStore = EFS.getStore(destination.getLocationURI());
-		} catch (CoreException exception) {
-			IDEWorkbenchPlugin.log(exception.getLocalizedMessage(), exception);
-			return NLS
-					.bind(
-							IDEWorkbenchMessages.CopyFilesAndFoldersOperation_internalError,
-							exception.getLocalizedMessage());
-		}
-		for (int i = 0; i < sourceStores.length; i++) {
-			IFileStore sourceStore = sourceStores[i];
-			IFileStore sourceParentStore = sourceStore.getParent();
-
-			if (sourceStore != null) {
-				if (destinationStore.equals(sourceStore)
-						|| (sourceParentStore != null && destinationStore
-								.equals(sourceParentStore))) {
-					return NLS
-							.bind(
-									IDEWorkbenchMessages.CopyFilesAndFoldersOperation_importSameSourceAndDest,
-									sourceStore.getName());
-				}
-				// work around bug 16202. replacement for
-				// sourcePath.isPrefixOf(destinationPath)
-				IFileStore destinationParent = destinationStore.getParent();
-				if (sourceStore.isParentOf(destinationParent)) {
-					return IDEWorkbenchMessages.CopyFilesAndFoldersOperation_destinationDescendentError;
-				}
-
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Check if the destination is valid for the given source resource.
-	 * 
-	 * @param destination
-	 *            destination container of the operation
-	 * @param source
-	 *            source resource
-	 * @return String error message or null if the destination is valid
-	 */
-	private String validateLinkedResource(IContainer destination,
-			IResource source) {
-		if (source.isLinked() == false) {
-			return null;
-		}
-		IWorkspace workspace = destination.getWorkspace();
-		IResource linkHandle = createLinkedResourceHandle(destination, source);
-		IStatus locationStatus = workspace.validateLinkLocation(linkHandle,
-				source.getRawLocation());
-
-		if (locationStatus.getSeverity() == IStatus.ERROR) {
-			return locationStatus.getMessage();
-		}
-		IPath sourceLocation = source.getLocation();
-		if (source.getProject().equals(destination.getProject()) == false
-				&& source.getType() == IResource.FOLDER
-				&& sourceLocation != null) {
-			// prevent merging linked folders that point to the same
-			// file system folder
-			try {
-				IResource[] members = destination.members();
-				for (int j = 0; j < members.length; j++) {
-					if (sourceLocation.equals(members[j].getLocation())
-							&& source.getName().equals(members[j].getName())) {
-						return NLS
-								.bind(
-										IDEWorkbenchMessages.CopyFilesAndFoldersOperation_sameSourceAndDest,
-										source.getName());
-					}
-				}
-			} catch (CoreException exception) {
-				displayError(NLS
-						.bind(
-								IDEWorkbenchMessages.CopyFilesAndFoldersOperation_internalError,
-								exception.getMessage()));
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns whether moving all of the given source resources to the given
-	 * destination container could be done without causing name collisions.
-	 * 
-	 * @param destination
-	 *            the destination container
-	 * @param sourceResources
-	 *            the list of resources
-	 * @return <code>true</code> if there would be no name collisions, and
-	 *         <code>false</code> if there would
-	 */
-	private IResource[] validateNoNameCollisions(IContainer destination,
-			IResource[] sourceResources) {
-		List copyItems = new ArrayList();
-		IWorkspaceRoot workspaceRoot = destination.getWorkspace().getRoot();
-		int overwrite = IDialogConstants.NO_ID;
-
-		// Check to see if we would be overwriting a parent folder.
-		// Cancel entire copy operation if we do.
-		for (int i = 0; i < sourceResources.length; i++) {
-			final IResource sourceResource = sourceResources[i];
-			final IPath destinationPath = destination.getFullPath().append(
-					sourceResource.getName());
-			final IPath sourcePath = sourceResource.getFullPath();
-
-			IResource newResource = workspaceRoot.findMember(destinationPath);
-			if (newResource != null && destinationPath.isPrefixOf(sourcePath)) {
-				displayError(NLS
-						.bind(
-								IDEWorkbenchMessages.CopyFilesAndFoldersOperation_overwriteProblem,
-								destinationPath, sourcePath));
-
-				canceled = true;
-				return null;
-			}
-		}
-		// Check for overwrite conflicts
-		for (int i = 0; i < sourceResources.length; i++) {
-			final IResource source = sourceResources[i];
-			final IPath destinationPath = destination.getFullPath().append(
-					source.getName());
-
-			IResource newResource = workspaceRoot.findMember(destinationPath);
-			if (newResource != null) {
-				if (overwrite != IDialogConstants.YES_TO_ALL_ID
-						|| (newResource.getType() == IResource.FOLDER && homogenousResources(
-								source, destination) == false)) {
-					overwrite = checkOverwrite(source, newResource);
-				}
-				if (overwrite == IDialogConstants.YES_ID
-						|| overwrite == IDialogConstants.YES_TO_ALL_ID) {
-					copyItems.add(source);
-				} else if (overwrite == IDialogConstants.CANCEL_ID) {
-					canceled = true;
-					return null;
-				}
-			} else {
-				copyItems.add(source);
-			}
-		}
-		return (IResource[]) copyItems.toArray(new IResource[copyItems.size()]);
-	}
-
-	private void copyResources(final IResource[] resources,
-			final IPath destinationPath, final IResource[][] copiedResources,
-			IProgressMonitor monitor) {
-		IResource[] copyResources = resources;
-
-		// Fix for bug 31116. Do not provide a task name when
-		// creating the task.
-		monitor.beginTask("", 100); //$NON-NLS-1$
-		monitor.setTaskName(getOperationTitle());
-		monitor.worked(10); // show some initial progress
-
-		// Checks only required if this is an exisiting container path.
-		boolean copyWithAutoRename = false;
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		if (root.exists(destinationPath)) {
-			IContainer container = (IContainer) root
-					.findMember(destinationPath);
-			// If we're copying to the source container then perform
-			// auto-renames on all resources to avoid name collisions.
-			if (isDestinationSameAsSource(copyResources, container)
-					&& canPerformAutoRename()) {
-				copyWithAutoRename = true;
-			} else {
-				// If no auto-renaming will be happening, check for
-				// potential name collisions at the target resource
-				copyResources = validateNoNameCollisions(container,
-						copyResources);
-				if (copyResources == null) {
-					if (canceled) {
-						return;
-					}
-					displayError(IDEWorkbenchMessages.CopyFilesAndFoldersOperation_nameCollision);
-					return;
-				}
-				if (validateEdit(container, copyResources) == false) {
-					return;
-				}
-			}
-		}
-
-		errorStatus = null;
-		if (copyResources.length > 0) {
-			if (copyWithAutoRename) {
-				performCopyWithAutoRename(copyResources, destinationPath,
-						monitor);
-			} else {
-				performCopy(copyResources, destinationPath, monitor);
-			}
-		}
-		copiedResources[0] = copyResources;
-	}
-
-	private void copyFileStores(final IFileStore[] stores,
-			final IPath destinationPath, IProgressMonitor monitor) {
-		// Checks only required if this is an exisiting container path.
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		if (root.exists(destinationPath)) {
-			IContainer container = (IContainer) root
-					.findMember(destinationPath);
-
-			performFileImport(stores, container, monitor);
-		}
-	}
-
-	/**
-	 * Returns the model provider ids that are known to the client that
-	 * instantiated this operation.
-	 * 
-	 * @return the model provider ids that are known to the client that
-	 *         instantiated this operation.
-	 * @since 3.2
-	 */
-	public String[] getModelProviderIds() {
-		return modelProviderIds;
-	}
-
-	/**
-	 * Sets the model provider ids that are known to the client that
-	 * instantiated this operation. Any potential side effects reported by these
-	 * models during validation will be ignored.
-	 * 
-	 * @param modelProviderIds
-	 *            the model providers known to the client who is using this
-	 *            operation.
-	 * @since 3.2
-	 */
-	public void setModelProviderIds(String[] modelProviderIds) {
-		this.modelProviderIds = modelProviderIds;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectAction.java
deleted file mode 100644
index 7c26eda..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectAction.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-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.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ProjectLocationSelectionDialog;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * The CopyProjectAction is the action designed to copy projects specifically
- * as they have different semantics from other resources.
- * Note that this action assumes that a single project is selected and being
- * manipulated. This should be disabled for multi select or no selection.
- */
-public class CopyProjectAction extends SelectionListenerAction {
-    private static String COPY_TOOL_TIP = IDEWorkbenchMessages.CopyProjectAction_toolTip;
-
-    private static String COPY_TITLE = IDEWorkbenchMessages.CopyProjectAction_title;
-
-    private static String COPY_PROGRESS_TITLE = IDEWorkbenchMessages.CopyProjectAction_progressTitle;
-
-    private static String PROBLEMS_TITLE = IDEWorkbenchMessages.CopyProjectAction_copyFailedTitle;
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID + ".CopyProjectAction";//$NON-NLS-1$
-
-    /**
-     * The shell in which to show any dialogs.
-     */
-    protected Shell shell;
-
-    /**
-     * Status containing the errors detected when running the operation or
-     * <code>null</code> if no errors detected.
-     */
-    protected IStatus errorStatus;
-
-	private String[] modelProviderIds;
-
-    /**
-     * Creates a new project copy action with the default text.
-     *
-     * @param shell the shell for any dialogs
-     */
-    public CopyProjectAction(Shell shell) {
-        this(shell, COPY_TITLE);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.COPY_PROJECT_ACTION);
-    }
-
-    /**
-     * Creates a new project copy action with the given text.
-     *
-     * @param shell the shell for any dialogs
-     * @param name the string used as the text for the action, 
-     *   or <code>null</code> if there is no text
-     */
-    CopyProjectAction(Shell shell, String name) {
-        super(name);
-        setToolTipText(COPY_TOOL_TIP);
-        setId(CopyProjectAction.ID);
-        if (shell == null) {
-            throw new IllegalArgumentException();
-        }
-        this.shell = shell;
-    }
-
-    /**
-     * Create a new IProjectDescription for the copy using the name and path selected
-     * from the dialog.
-     * @return IProjectDescription
-     * @param project the source project
-     * @param projectName the name for the new project
-     * @param rootLocation the path the new project will be stored under.
-     */
-    protected IProjectDescription createDescription(IProject project,
-            String projectName, IPath rootLocation) throws CoreException {
-        //Get a copy of the current description and modify it
-        IProjectDescription newDescription = project.getDescription();
-        newDescription.setName(projectName);
-
-        //If the location is the default then set the location to null
-        if (rootLocation.equals(Platform.getLocation())) {
-			newDescription.setLocation(null);
-		} else {
-			newDescription.setLocation(rootLocation);
-		}
-
-        return newDescription;
-    }
-
-    /**
-     * Opens an error dialog to display the given message.
-     * <p>
-     * Note that this method must be called from UI thread.
-     * </p>
-     *
-     * @param message the message
-     */
-    void displayError(String message) {
-        MessageDialog.openError(this.shell, getErrorsTitle(), message);
-    }
-
-    /**
-     * Return the title of the errors dialog.
-     * @return java.lang.String
-     */
-    protected String getErrorsTitle() {
-        return PROBLEMS_TITLE;
-    }
-
-    /**
-     * Get the plugin used by a copy action
-     * @return AbstractUIPlugin
-     */
-    protected org.eclipse.ui.plugin.AbstractUIPlugin getPlugin() {
-        return (AbstractUIPlugin) Platform.getPlugin(PlatformUI.PLUGIN_ID);
-    }
-
-    /**
-     * Copies the project to the new values.
-     *
-     * @param project the project to copy
-     * @param projectName the name of the copy
-     * @param newLocation IPath
-     * @return <code>true</code> if the copy operation completed, and 
-     *   <code>false</code> if it was abandoned part way
-     */
-    boolean performCopy(final IProject project, final String projectName,
-            final IPath newLocation) {
-        WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-            public void execute(IProgressMonitor monitor) {
-
-                monitor.beginTask(COPY_PROGRESS_TITLE, 100);
-                try {
-                    if (monitor.isCanceled()) {
-						throw new OperationCanceledException();
-					}
-
-                    //Get a copy of the current description and modify it
-                    IProjectDescription newDescription = createDescription(
-                            project, projectName, newLocation);
-                    monitor.worked(50);
-
-                    project.copy(newDescription, IResource.SHALLOW
-                            | IResource.FORCE, monitor);
-
-                    monitor.worked(50);
-
-                } catch (CoreException e) {
-                    recordError(e); // log error
-                } finally {
-                    monitor.done();
-                }
-            }
-        };
-
-        try {
-            new ProgressMonitorJobsDialog(shell).run(true, true, op);
-        } catch (InterruptedException e) {
-            return false;
-        } catch (InvocationTargetException e) {
-            displayError(NLS.bind(IDEWorkbenchMessages.CopyProjectAction_internalError, e.getTargetException().getMessage()));
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Query for a new project name and destination using the parameters in the existing
-     * project.
-     * @return Object []  or null if the selection is cancelled
-     * @param project  the project we are going to copy.
-     */
-    protected Object[] queryDestinationParameters(IProject project) {
-        ProjectLocationSelectionDialog dialog = new ProjectLocationSelectionDialog(
-                shell, project);
-        dialog.setTitle(IDEWorkbenchMessages.CopyProjectAction_copyTitle);
-        dialog.open();
-        return dialog.getResult();
-    }
-
-    /**
-     * Records the core exception to be displayed to the user
-     * once the action is finished.
-     *
-     * @param error a <code>CoreException</code>
-     */
-    final void recordError(CoreException error) {
-        this.errorStatus = error.getStatus();
-    }
-
-    /**
-     * Implementation of method defined on <code>IAction</code>.
-     */
-    public void run() {
-
-        errorStatus = null;
-
-        IProject project = (IProject) getSelectedResources().get(0);
-
-        //Get the project name and location in a two element list
-        Object[] destinationPaths = queryDestinationParameters(project);
-        if (destinationPaths == null) {
-			return;
-		}
-
-        String newName = (String) destinationPaths[0];
-        IPath newLocation = new Path((String) destinationPaths[1]);
-        if (!CopyProjectOperation.validateCopy(shell, project, newName, getModelProviderIds())) {
-			return;
-		}
-
-        boolean completed = performCopy(project, newName, newLocation);
-
-        if (!completed) {
-			return; // not appropriate to show errors
-		}
-
-        // If errors occurred, open an Error dialog
-        if (errorStatus != null) {
-            ErrorDialog.openError(this.shell, getErrorsTitle(), null,
-                    errorStatus);
-            errorStatus = null;
-        }
-    }
-
-	/**
-     * The <code>CopyResourceAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method enables this action only if 
-     * there is a single selection which is a project.
-     */
-    protected boolean updateSelection(IStructuredSelection selection) {
-        if (!super.updateSelection(selection)) {
-            return false;
-        }
-        if (getSelectedNonResources().size() > 0) {
-            return false;
-        }
-
-        // to enable this command there must be one project selected and nothing else
-        List selectedResources = getSelectedResources();
-        if (selectedResources.size() != 1) {
-			return false;
-		}
-        IResource source = (IResource) selectedResources.get(0);
-        if (source instanceof IProject && ((IProject) source).isOpen()) {
-			return true;
-		}
-        return false;
-    }
-    
-    /**
-     * Returns the model provider ids that are known to the client
-     * that instantiated this operation.
-     * 
-     * @return the model provider ids that are known to the client
-     * that instantiated this operation.
-     * @since 3.2
-     */
-	public String[] getModelProviderIds() {
-		return modelProviderIds;
-	}
-
-	/**
-     * Sets the model provider ids that are known to the client
-     * that instantiated this operation. Any potential side effects
-     * reported by these models during validation will be ignored.
-     * 
-	 * @param modelProviderIds the model providers known to the client
-	 * who is using this operation.
-	 * @since 3.2
-	 */
-	public void setModelProviderIds(String[] modelProviderIds) {
-		this.modelProviderIds = modelProviderIds;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectOperation.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectOperation.java
deleted file mode 100644
index 59a1065..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectOperation.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.core.resources.mapping.ResourceChangeValidator;
-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.MultiStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ProjectLocationSelectionDialog;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog;
-
-/**
- * Implementation class to perform the actual copying of project resources from the clipboard 
- * when paste action is invoked.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class CopyProjectOperation {
-
-    /**
-     * Status containing the errors detected when running the operation or
-     * <code>null</code> if no errors detected.
-     */
-    private MultiStatus errorStatus;
-
-    /**
-     * The parent shell used to show any dialogs.
-     */
-    private Shell parentShell;
-
-	private String[] modelProviderIds;
-
-    /**
-     * Validates that the copy of the project will not have undesirable side effects.
-     *
-     * @param shell a shell
-     * @param project the project being copied
-     * @param newName the new name of the project
-     * @param modelProviderIds the model provider ids of models that are known to the client
-     * (and can hence be ignored)
-     * @return whether the operation should proceed
-     * @since 3.2
-     */
-    protected static boolean validateCopy(Shell shell, IProject project, String newName, String[] modelProviderIds) {
-    	IResourceChangeDescriptionFactory factory = ResourceChangeValidator.getValidator().createDeltaFactory();
-    	factory.copy(project, new Path(newName));
-		return IDE.promptToConfirm(shell, IDEWorkbenchMessages.CopyProjectAction_confirm, NLS.bind(IDEWorkbenchMessages.CopyProjectAction_warning, project.getName()), factory.getDelta(), modelProviderIds, false /* no need to sync exec */);
-	}
-    
-    /** 
-     * Create a new operation initialized with a shell. 
-     * 
-     * @param shell parent shell for error dialogs
-     */
-    public CopyProjectOperation(Shell shell) {
-        parentShell = shell;
-    }
-
-    /**
-     * Paste a copy of the project on the clipboard to the workspace.
-     * @param project The project that is beign copied.
-     */
-    public void copyProject(IProject project) {
-        errorStatus = null;
-
-        //Get the project name and location in a two element list
-        ProjectLocationSelectionDialog dialog = new ProjectLocationSelectionDialog(
-                parentShell, project);
-        dialog.setTitle(IDEWorkbenchMessages.CopyProjectOperation_copyProject);
-        if (dialog.open() != Window.OK) {
-			return;
-		}
-
-        Object[] destinationPaths = dialog.getResult();
-        if (destinationPaths == null) {
-			return;
-		}
-
-        String newName = (String) destinationPaths[0];
-        IPath newLocation = new Path((String) destinationPaths[1]);
-
-        if (!validateCopy(parentShell, project, newName, getModelProviderIds())) {
-			return;
-		}
-        
-        boolean completed = performProjectCopy(project, newName, newLocation);
-
-        if (!completed) {
-			return; // not appropriate to show errors
-		}
-
-        // If errors occurred, open an Error dialog
-        if (errorStatus != null) {
-            ErrorDialog.openError(parentShell, IDEWorkbenchMessages.CopyProjectOperation_copyFailedTitle,
-                    null, errorStatus);
-            errorStatus = null;
-        }
-    }
-
-    /**
-     * Copies the project to the new values.
-     *
-     * @param project the project to copy
-     * @param projectName the name of the copy
-     * @param newLocation IPath
-     * @return <code>true</code> if the copy operation completed, and 
-     *   <code>false</code> if it was abandoned part way
-     */
-    private boolean performProjectCopy(final IProject project,
-            final String projectName, final IPath newLocation) {
-        WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-            public void execute(IProgressMonitor monitor) {
-                try {
-                    if (monitor.isCanceled()) {
-						throw new OperationCanceledException();
-					}
-                    
-                    monitor.setTaskName(IDEWorkbenchMessages.CopyProjectOperation_progressTitle);
-                    
-                    //Get a copy of the current description and modify it
-                    IProjectDescription newDescription = createProjectDescription(
-                            project, projectName, newLocation);
-                    project.copy(newDescription, IResource.SHALLOW
-                            | IResource.FORCE, monitor);
-                } catch (CoreException e) {
-                    recordError(e); // log error
-                }
-            }
-        };
-
-        try {
-            new ProgressMonitorJobsDialog(parentShell).run(true, true, op);
-        } catch (InterruptedException e) {
-            return false;
-        } catch (InvocationTargetException e) {
-            final String message = e.getTargetException().getMessage();
-            parentShell.getDisplay().syncExec(new Runnable() {
-                public void run() {
-                    MessageDialog.openError(parentShell, IDEWorkbenchMessages.CopyProjectOperation_copyFailedTitle,
-                            NLS.bind(IDEWorkbenchMessages.CopyProjectOperation_internalError, message));
-                }
-            });
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Create a new IProjectDescription for the copy using the auto-generated
-     * name and path.
-     * 
-     * @return IProjectDescription
-     * @param project the source project
-     * @param projectName the name for the new project
-     * @param rootLocation the path the new project will be stored under.
-     * @throws CoreException
-     */
-    private IProjectDescription createProjectDescription(IProject project,
-            String projectName, IPath rootLocation) throws CoreException {
-        //Get a copy of the current description and modify it
-        IProjectDescription newDescription = project.getDescription();
-        newDescription.setName(projectName);
-
-        //If the location is the default then set the location to null
-        if (rootLocation.equals(Platform.getLocation())) {
-			newDescription.setLocation(null);
-		} else {
-			newDescription.setLocation(rootLocation);
-		}
-
-        return newDescription;
-    }
-
-    /**
-     * Records the core exception to be displayed to the user
-     * once the action is finished.
-     *
-     * @param error a <code>CoreException</code>
-     */
-    private void recordError(CoreException error) {
-
-        if (errorStatus == null) {
-			errorStatus = new MultiStatus(
-                    PlatformUI.PLUGIN_ID,
-                    IStatus.ERROR,
-                    IDEWorkbenchMessages.CopyProjectOperation_copyFailedMessage,
-                    error);
-		}
-
-        errorStatus.merge(error.getStatus());
-    }
-
-    /**
-     * Returns the model provider ids that are known to the client
-     * that instantiated this operation.
-     * 
-     * @return the model provider ids that are known to the client
-     * that instantiated this operation.
-     * @since 3.2
-     */
-	public String[] getModelProviderIds() {
-		return modelProviderIds;
-	}
-
-	/**
-     * Sets the model provider ids that are known to the client
-     * that instantiated this operation. Any potential side effects
-     * reported by these models during validation will be ignored.
-     * 
-	 * @param modelProviderIds the model providers known to the client
-	 * who is using this operation.
-	 * @since 3.2
-	 */
-	public void setModelProviderIds(String[] modelProviderIds) {
-		this.modelProviderIds = modelProviderIds;
-	}
-}
-
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyResourceAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyResourceAction.java
deleted file mode 100644
index 78eec3b..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyResourceAction.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.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.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ContainerSelectionDialog;
-import org.eclipse.ui.dialogs.ISelectionValidator;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-
-/**
- * Standard action for copying the currently selected resources elsewhere
- * in the workspace. All resources being copied as a group must be siblings.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class CopyResourceAction extends SelectionListenerAction implements
-        ISelectionValidator {
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID
-            + ".CopyResourceAction"; //$NON-NLS-1$
-
-    /**
-     * The shell in which to show any dialogs.
-     */
-    private Shell shell;
-
-    /**
-     * The operation to run.  This is created only during the life-cycle of the
-     * run method.
-     */
-    protected CopyFilesAndFoldersOperation operation;
-
-	private String[] modelProviderIds;
-
-    /**
-     * Returns a new name for a copy of the resource at the given path in the given
-     * workspace. This name could be determined either automatically or by querying
-     * the user. This name will <b>not</b> be verified by the caller, so it must be
-     * valid and unique.
-     * <p>
-     * Note this method is for internal use only.
-     * </p>
-     *
-     * @param originalName the full path of the resource
-     * @param workspace the workspace
-     * @return the new full path for the copy, or <code>null</code> if the resource
-     *   should not be copied
-     */
-    public static IPath getNewNameFor(IPath originalName, IWorkspace workspace) {
-        return CopyFilesAndFoldersOperation.getAutoNewNameFor(originalName,
-                workspace);
-    }
-
-    /**
-     * Creates a new action.
-     *
-     * @param shell the shell for any dialogs
-     */
-    public CopyResourceAction(Shell shell) {
-        this(shell, IDEWorkbenchMessages.CopyResourceAction_title);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.COPY_RESOURCE_ACTION);
-    }
-
-    /**
-     * Creates a new action with the given text.
-     *
-     * @param shell the shell for any dialogs
-     * @param name the string used as the name for the action, 
-     *   or <code>null</code> if there is no name
-     */
-    CopyResourceAction(Shell shell, String name) {
-        super(name);
-        setToolTipText(IDEWorkbenchMessages.CopyResourceAction_toolTip);
-        setId(CopyResourceAction.ID);
-        if (shell == null) {
-            throw new IllegalArgumentException();
-        }
-        this.shell = shell;
-    }
-
-    /**
-     * Returns the operation to perform when this action runs.
-     * 
-     * @return the operation to perform when this action runs.
-     */
-    protected CopyFilesAndFoldersOperation createOperation() {
-        return new CopyFilesAndFoldersOperation(getShell());
-    }
-
-    /**
-     * Returns the path of the container to initially select in the container
-     * selection dialog, or <code>null</code> if there is no initial selection
-     * @return The initial container; <code>null</code> if none.
-     */
-    IContainer getInitialContainer() {
-        List resources = getSelectedResources();
-        if (resources.size() > 0) {
-            IResource resource = (IResource) resources.get(0);
-            return resource.getParent();
-        }
-        return null;
-    }
-
-    /**
-     * Returns an array of resources to use for the operation from 
-     * the provided list.
-     * 
-     * @param resourceList The list of resources to converted into an array.
-     * @return an array of resources to use for the operation
-     */
-    protected IResource[] getResources(List resourceList) {
-        return (IResource[]) resourceList.toArray(new IResource[resourceList
-                .size()]);
-    }
-
-    /**
-     * Returns the shell in which to show any dialogs
-     * @return The shell for parenting dialogs; never <code>null</code>.
-     */
-    Shell getShell() {
-        return shell;
-    }
-
-    /**
-     * The <code>CopyResourceAction</code> implementation of this 
-     * <code>ISelectionValidator</code> method checks whether the given path
-     * is a good place to copy the selected resources.
-     */
-    public String isValid(Object destination) {
-        IWorkspaceRoot root = IDEWorkbenchPlugin.getPluginWorkspace().getRoot();
-        IContainer container = (IContainer) root
-                .findMember((IPath) destination);
-
-        if (container != null) {
-            // create a new operation here. 
-            // isValid is API and may be called in any context.
-            CopyFilesAndFoldersOperation newOperation = createOperation();
-            List sources = getSelectedResources();
-            IResource[] resources = (IResource[]) sources
-                    .toArray(new IResource[sources.size()]);
-            return newOperation.validateDestination(container, resources);
-        }
-        return null;
-    }
-
-    /**
-     * Asks the user for the destination of this action.
-     *
-     * @return the path on an existing or new resource container, or 
-     *  <code>null</code> if the operation should be abandoned
-     */
-    IPath queryDestinationResource() {
-        // start traversal at root resource, should probably start at a
-        // better location in the tree
-        ContainerSelectionDialog dialog = new ContainerSelectionDialog(shell,
-                getInitialContainer(), true, IDEWorkbenchMessages.CopyResourceAction_selectDestination);
-        dialog.setValidator(this);
-        dialog.showClosedProjects(false);
-        dialog.open();
-        Object[] result = dialog.getResult();
-        if (result != null && result.length == 1) {
-            return (IPath) result[0];
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAction.
-     */
-    public void run() {
-        try {
-            operation = createOperation();
-            operation.setModelProviderIds(getModelProviderIds());
-
-            // WARNING: do not query the selected resources more than once
-            // since the selection may change during the run, 
-            // e.g. due to window activation when the prompt dialog is dismissed.
-            // For more details, see Bug 60606 [Navigator] (data loss) Navigator deletes/moves the wrong file
-            List sources = getSelectedResources();
-
-            IPath destination = queryDestinationResource();
-            if (destination == null) {
-				return;
-			}
-
-            IWorkspaceRoot root = IDEWorkbenchPlugin.getPluginWorkspace()
-                    .getRoot();
-            IContainer container = (IContainer) root.findMember(destination);
-            if (container == null) {
-                return;
-            }
-
-            runOperation(getResources(sources), container);
-        } finally {
-            operation = null;
-        }
-    }
-
-    /**
-     * Runs the operation created in <code>createOperaiton</code>
-     * 
-     * @param resources source resources to pass to the operation
-     * @param destination destination container to pass to the operation
-     */
-    protected void runOperation(IResource[] resources, IContainer destination) {
-        operation.copyResources(resources, destination);
-    }
-
-    /**
-     * The <code>CopyResourceAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method enables this action only if 
-     * all of the one or more selections are sibling resources which are 
-     * local (depth infinity).
-     */
-    protected boolean updateSelection(IStructuredSelection selection) {
-        if (!super.updateSelection(selection)) {
-            return false;
-        }
-        if (getSelectedNonResources().size() > 0) {
-            return false;
-        }
-
-        // to enable this command all selected resources must be siblings
-        List selectedResources = getSelectedResources();
-        if (selectedResources.size() == 0) {
-			return false;
-		}
-        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.exists()) {
-                return false;
-            }
-            if (currentResource.getType() == IResource.PROJECT) {
-                return false;
-            }
-            IContainer parent = currentResource.getParent();
-            if ((parent != null) && (!parent.equals(firstParent))) {
-                return false;
-            }
-        }
-        return true;
-    }
-    
-    /**
-     * Returns the model provider ids that are known to the client
-     * that instantiated this operation.
-     * 
-     * @return the model provider ids that are known to the client
-     * that instantiated this operation.
-     * @since 3.2
-     */
-	public String[] getModelProviderIds() {
-		return modelProviderIds;
-	}
-
-	/**
-     * Sets the model provider ids that are known to the client
-     * that instantiated this operation. Any potential side effects
-     * reported by these models during validation will be ignored.
-     * 
-	 * @param modelProviderIds the model providers known to the client
-	 * who is using this operation.
-	 * @since 3.2
-	 */
-	public void setModelProviderIds(String[] modelProviderIds) {
-		this.modelProviderIds = modelProviderIds;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CreateFileAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CreateFileAction.java
deleted file mode 100644
index 1355ea2..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CreateFileAction.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.wizards.newresource.BasicNewFileResourceWizard;
-
-/**
- * Standard action for creating a file resource within the currently
- * selected folder or project.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @deprecated should use NewWizardMenu to populate a New submenu instead (see Navigator view)
- */
-public class CreateFileAction extends SelectionListenerAction {
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID + ".CreateFileAction";//$NON-NLS-1$
-
-    /**
-     * The shell in which to show any dialogs.
-     */
-    private Shell shell;
-
-    /**
-     * Creates a new action for creating a file resource.
-     *
-     * @param shell the shell for any dialogs
-     * 
-     * @deprecated see deprecated tag on class
-     */
-    public CreateFileAction(Shell shell) {
-        super(IDEWorkbenchMessages.CreateFileAction_text);
-        if (shell == null) {
-            throw new IllegalArgumentException();
-        }
-        this.shell = shell;
-        setToolTipText(IDEWorkbenchMessages.CreateFileAction_toolTip);
-        setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-                .getImageDescriptor(ISharedImages.IMG_OBJ_FILE));
-        setId(ID);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.CREATE_FILE_ACTION);
-    }
-
-    /**
-     * The <code>CreateFileAction</code> implementation of this
-     * <code>IAction</code> method opens a <code>BasicNewFileResourceWizard</code>
-     * in a wizard dialog under the shell passed to the constructor.
-     */
-    public void run() {
-        BasicNewFileResourceWizard wizard = new BasicNewFileResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), getStructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(shell, wizard);
-        dialog.create();
-        dialog.getShell().setText(
-                IDEWorkbenchMessages.CreateFileAction_title);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_FILE_WIZARD);
-        dialog.open();
-    }
-
-    /**
-     * The <code>CreateFileAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method enables the action only
-     * if the selection contains folders and open projects.
-     */
-    protected boolean updateSelection(IStructuredSelection s) {
-        if (!super.updateSelection(s)) {
-            return false;
-        }
-        Iterator resources = getSelectedResources().iterator();
-        while (resources.hasNext()) {
-            IResource resource = (IResource) resources.next();
-            if (!resourceIsType(resource, IResource.PROJECT | IResource.FOLDER)
-                    || !resource.isAccessible()) {
-                return false;
-            }
-        }
-        return true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CreateFolderAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CreateFolderAction.java
deleted file mode 100644
index deb3682..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CreateFolderAction.java
+++ /dev/null
@@ -1,106 +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.actions;
-
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.wizards.newresource.BasicNewFolderResourceWizard;
-
-/**
- * Standard action for creating a folder resource within the currently
- * selected folder or project.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @deprecated should use NewWizardMenu to populate a New submenu instead (see Navigator view)
- */
-public class CreateFolderAction extends SelectionListenerAction {
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID
-            + ".CreateFolderAction";//$NON-NLS-1$
-
-    /**
-     * The shell in which to show any dialogs.
-     */
-    private Shell shell;
-
-    /**
-     * Creates a new action for creating a folder resource.
-     *
-     * @param shell the shell for any dialogs
-     * 
-     * @deprecated see deprecated tag on class
-     */
-    public CreateFolderAction(Shell shell) {
-        super(IDEWorkbenchMessages.CreateFolderAction_text);
-        if (shell == null) {
-            throw new IllegalArgumentException();
-        }
-        this.shell = shell;
-        setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-                .getImageDescriptor(ISharedImages.IMG_OBJ_FOLDER));
-        setToolTipText(IDEWorkbenchMessages.CreateFolderAction_toolTip);
-        setId(ID);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.CREATE_FOLDER_ACTION);
-    }
-
-    /**
-     * The <code>CreateFolderAction</code> implementation of this
-     * <code>IAction</code> method opens a <code>BasicNewFolderResourceWizard</code>
-     * in a wizard dialog under the shell passed to the constructor.
-     */
-    public void run() {
-        BasicNewFolderResourceWizard wizard = new BasicNewFolderResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), getStructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(shell, wizard);
-        dialog.create();
-        dialog.getShell().setText(
-                IDEWorkbenchMessages.CreateFolderAction_title);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_FOLDER_WIZARD);
-        dialog.open();
-
-    }
-
-    /**
-     * The <code>CreateFolderAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method enables the action only
-     * if the selection contains folders and open projects.
-     */
-    protected boolean updateSelection(IStructuredSelection s) {
-        if (!super.updateSelection(s)) {
-            return false;
-        }
-        Iterator resources = getSelectedResources().iterator();
-        while (resources.hasNext()) {
-            IResource resource = (IResource) resources.next();
-            if (!resourceIsType(resource, IResource.PROJECT | IResource.FOLDER)
-                    || !resource.isAccessible()) {
-                return false;
-            }
-        }
-        return true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/DeleteResourceAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/DeleteResourceAction.java
deleted file mode 100644
index fe7e5ab..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/DeleteResourceAction.java
+++ /dev/null
@@ -1,770 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceRuleFactory;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.core.resources.mapping.ResourceChangeValidator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-
-/**
- * Standard action for deleting the currently selected resources.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class DeleteResourceAction extends SelectionListenerAction {
-
-	static class DeleteProjectDialog extends MessageDialog {
-
-		private IResource[] projects;
-
-		private boolean deleteContent = false;
-
-		/**
-		 * Control testing mode. In testing mode, it returns true to delete
-		 * contents and does not pop up the dialog.
-		 */
-		private boolean fIsTesting = false;
-
-		private Button radio1;
-
-		private Button radio2;
-
-		DeleteProjectDialog(Shell parentShell, IResource[] projects) {
-			super(parentShell, getTitle(projects), null, // accept the
-					// default window
-					// icon
-					getMessage(projects), MessageDialog.QUESTION, new String[] {
-							IDialogConstants.YES_LABEL,
-							IDialogConstants.NO_LABEL }, 0); // yes is the
-			// default
-			this.projects = projects;
-		}
-
-		static String getTitle(IResource[] projects) {
-			if (projects.length == 1) {
-				return IDEWorkbenchMessages.DeleteResourceAction_titleProject1;
-			}
-			return IDEWorkbenchMessages.DeleteResourceAction_titleProjectN;
-		}
-
-		static String getMessage(IResource[] projects) {
-			if (projects.length == 1) {
-				IProject project = (IProject) projects[0];
-				return NLS
-						.bind(
-								IDEWorkbenchMessages.DeleteResourceAction_confirmProject1,
-								project.getName());
-			}
-			return NLS.bind(
-					IDEWorkbenchMessages.DeleteResourceAction_confirmProjectN,
-					new Integer(projects.length));
-		}
-
-		/*
-		 * (non-Javadoc) Method declared on Window.
-		 */
-		protected void configureShell(Shell newShell) {
-			super.configureShell(newShell);
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell,
-					IIDEHelpContextIds.DELETE_PROJECT_DIALOG);
-		}
-
-		protected Control createCustomArea(Composite parent) {
-			Composite composite = new Composite(parent, SWT.NONE);
-			composite.setLayout(new GridLayout());
-			radio1 = new Button(composite, SWT.RADIO);
-			radio1.addSelectionListener(selectionListener);
-			String text1;
-			if (projects.length == 1) {
-				IProject project = (IProject) projects[0];
-				if (project == null || project.getLocation() == null) {
-					text1 = IDEWorkbenchMessages.DeleteResourceAction_deleteContentsN;
-				} else {
-					text1 = NLS
-							.bind(
-									IDEWorkbenchMessages.DeleteResourceAction_deleteContents1,
-									project.getLocation().toOSString());
-				}
-			} else {
-				text1 = IDEWorkbenchMessages.DeleteResourceAction_deleteContentsN;
-			}
-			radio1.setText(text1);
-			radio1.setFont(parent.getFont());
-
-			radio2 = new Button(composite, SWT.RADIO);
-			radio2.addSelectionListener(selectionListener);
-			String text2 = IDEWorkbenchMessages.DeleteResourceAction_doNotDeleteContents;
-			radio2.setText(text2);
-			radio2.setFont(parent.getFont());
-
-			// set initial state
-			radio1.setSelection(deleteContent);
-			radio2.setSelection(!deleteContent);
-
-			return composite;
-		}
-
-		private SelectionListener selectionListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				Button button = (Button) e.widget;
-				if (button.getSelection()) {
-					deleteContent = (button == radio1);
-				}
-			}
-		};
-
-		boolean getDeleteContent() {
-			return deleteContent;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.window.Window#open()
-		 */
-		public int open() {
-			// Override Window#open() to allow for non-interactive testing.
-			if (fIsTesting) {
-				deleteContent = true;
-				return Window.OK;
-			}
-			return super.open();
-		}
-
-		/**
-		 * Set this delete dialog into testing mode. It won't pop up, and it
-		 * returns true for deleteContent.
-		 * 
-		 * @param t
-		 *            the testing mode
-		 */
-		void setTestingMode(boolean t) {
-			fIsTesting = t;
-		}
-	}
-
-	/**
-	 * The id of this action.
-	 */
-	public static final String ID = PlatformUI.PLUGIN_ID
-			+ ".DeleteResourceAction";//$NON-NLS-1$
-
-	/**
-	 * The shell in which to show any dialogs.
-	 */
-	private Shell shell;
-
-	/**
-	 * Whether or not we are deleting content for projects.
-	 */
-	private boolean deleteContent = false;
-
-	/**
-	 * Whether or not to automatically delete out of sync resources
-	 */
-	private boolean forceOutOfSyncDelete = false;
-
-	/**
-	 * Flag that allows testing mode ... it won't pop up the project delete
-	 * dialog, and will return "delete all content".
-	 */
-	protected boolean fTestingMode = false;
-
-	private String[] modelProviderIds;
-
-	/**
-	 * Creates a new delete resource action.
-	 * 
-	 * @param shell
-	 *            the shell for any dialogs
-	 */
-	public DeleteResourceAction(Shell shell) {
-		super(IDEWorkbenchMessages.DeleteResourceAction_text);
-		setToolTipText(IDEWorkbenchMessages.DeleteResourceAction_toolTip);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.DELETE_RESOURCE_ACTION);
-		setId(ID);
-		if (shell == null) {
-			throw new IllegalArgumentException();
-		}
-		this.shell = shell;
-	}
-
-	/**
-	 * Returns whether delete can be performed on the current selection.
-	 * 
-	 * @param resources
-	 *            the selected resources
-	 * @return <code>true</code> if the resources can be deleted, and
-	 *         <code>false</code> if the selection contains non-resources or
-	 *         phantom resources
-	 */
-	private boolean canDelete(IResource[] resources) {
-		// allow only projects or only non-projects to be selected;
-		// note that the selection may contain multiple types of resource
-		if (!(containsOnlyProjects(resources) || containsOnlyNonProjects(resources))) {
-			return false;
-		}
-
-		if (resources.length == 0) {
-			return false;
-		}
-		// Return true if everything in the selection exists.
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			if (resource.isPhantom()) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Returns whether the selection contains linked resources.
-	 * 
-	 * @param resources
-	 *            the selected resources
-	 * @return <code>true</code> if the resources contain linked resources,
-	 *         and <code>false</code> otherwise
-	 */
-	private boolean containsLinkedResource(IResource[] resources) {
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			if (resource.isLinked()) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Returns whether the selection contains only non-projects.
-	 * 
-	 * @param resources
-	 *            the selected resources
-	 * @return <code>true</code> if the resources contains only non-projects,
-	 *         and <code>false</code> otherwise
-	 */
-	private boolean containsOnlyNonProjects(IResource[] resources) {
-		int types = getSelectedResourceTypes(resources);
-		// check for empty selection
-		if (types == 0) {
-			return false;
-		}
-		// note that the selection may contain multiple types of resource
-		return (types & IResource.PROJECT) == 0;
-	}
-
-	/**
-	 * Returns whether the selection contains only projects.
-	 * 
-	 * @param resources
-	 *            the selected resources
-	 * @return <code>true</code> if the resources contains only projects, and
-	 *         <code>false</code> otherwise
-	 */
-	private boolean containsOnlyProjects(IResource[] resources) {
-		int types = getSelectedResourceTypes(resources);
-		// note that the selection may contain multiple types of resource
-		return types == IResource.PROJECT;
-	}
-
-	/**
-	 * Creates and returns a result status appropriate for the given list of
-	 * exceptions.
-	 * 
-	 * @param exceptions
-	 *            The list of exceptions that occurred (may be empty)
-	 * @return The result status for the deletion
-	 */
-	private IStatus createResult(List exceptions) {
-		if (exceptions.isEmpty()) {
-			return Status.OK_STATUS;
-		}
-		final int exceptionCount = exceptions.size();
-		if (exceptionCount == 1) {
-			return ((CoreException) exceptions.get(0)).getStatus();
-		}
-		CoreException[] children = (CoreException[]) exceptions
-				.toArray(new CoreException[exceptionCount]);
-		boolean outOfSync = false;
-		for (int i = 0; i < children.length; i++) {
-			if (children[i].getStatus().getCode() == IResourceStatus.OUT_OF_SYNC_LOCAL) {
-				outOfSync = true;
-				break;
-			}
-		}
-		String title = outOfSync ? IDEWorkbenchMessages.DeleteResourceAction_outOfSyncError
-				: IDEWorkbenchMessages.DeleteResourceAction_deletionExceptionMessage;
-		final MultiStatus multi = new MultiStatus(
-				IDEWorkbenchPlugin.IDE_WORKBENCH, 0, title, null);
-		for (int i = 0; i < exceptionCount; i++) {
-			CoreException exception = children[i];
-			IStatus status = exception.getStatus();
-			multi.add(new Status(status.getSeverity(), status.getPlugin(),
-					status.getCode(), status.getMessage(), exception));
-		}
-		return multi;
-	}
-
-	/**
-	 * Asks the user to confirm a delete operation.
-	 * 
-	 * @param resources
-	 *            the selected resources
-	 * @return <code>true</code> if the user says to go ahead, and
-	 *         <code>false</code> if the deletion should be abandoned
-	 */
-	private boolean confirmDelete(IResource[] resources) {
-		if (validateDelete(resources)) {
-			if (containsOnlyProjects(resources)) {
-				return confirmDeleteProjects(resources);
-			}
-			return confirmDeleteNonProjects(resources);
-		}
-		return false;
-	}
-
-	/**
-	 * Asks the user to confirm a delete operation, where the selection contains
-	 * no projects.
-	 * 
-	 * @param resources
-	 *            the selected resources
-	 * @return <code>true</code> if the user says to go ahead, and
-	 *         <code>false</code> if the deletion should be abandoned
-	 */
-	private boolean confirmDeleteNonProjects(IResource[] resources) {
-		String title;
-		String msg;
-		if (resources.length == 1) {
-			title = IDEWorkbenchMessages.DeleteResourceAction_title1;
-			IResource resource = resources[0];
-			if (resource.isLinked()) {
-				msg = NLS
-						.bind(
-								IDEWorkbenchMessages.DeleteResourceAction_confirmLinkedResource1,
-								resource.getName());
-			} else {
-				msg = NLS.bind(
-						IDEWorkbenchMessages.DeleteResourceAction_confirm1,
-						resource.getName());
-			}
-		} else {
-			title = IDEWorkbenchMessages.DeleteResourceAction_titleN;
-			if (containsLinkedResource(resources)) {
-				msg = NLS
-						.bind(
-								IDEWorkbenchMessages.DeleteResourceAction_confirmLinkedResourceN,
-								new Integer(resources.length));
-			} else {
-				msg = NLS.bind(
-						IDEWorkbenchMessages.DeleteResourceAction_confirmN,
-						new Integer(resources.length));
-			}
-		}
-		return MessageDialog.openQuestion(shell, title, msg);
-	}
-
-	/**
-	 * Asks the user to confirm a delete operation, where the selection contains
-	 * only projects. Also remembers whether project content should be deleted.
-	 * 
-	 * @param resources
-	 *            the selected resources
-	 * @return <code>true</code> if the user says to go ahead, and
-	 *         <code>false</code> if the deletion should be abandoned
-	 */
-	private boolean confirmDeleteProjects(IResource[] resources) {
-		DeleteProjectDialog dialog = new DeleteProjectDialog(shell, resources);
-		dialog.setTestingMode(fTestingMode);
-		int code = dialog.open();
-		deleteContent = dialog.getDeleteContent();
-		return code == 0; // YES
-	}
-
-	/**
-	 * Deletes the given resources.
-	 */
-	private void delete(IResource[] resourcesToDelete, IProgressMonitor monitor)
-			throws CoreException {
-		final List exceptions = new ArrayList();
-		forceOutOfSyncDelete = false;
-		monitor.beginTask("", resourcesToDelete.length); //$NON-NLS-1$
-		try {
-			for (int i = 0; i < resourcesToDelete.length; ++i) {
-				if (monitor.isCanceled()) {
-					throw new OperationCanceledException();
-				}
-				try {
-					delete(resourcesToDelete[i], new SubProgressMonitor(
-							monitor, 1,
-							SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
-				} catch (CoreException e) {
-					exceptions.add(e);
-				}
-			}
-			IStatus result = createResult(exceptions);
-			if (!result.isOK()) {
-				throw new CoreException(result);
-			}
-		} finally {
-			monitor.done();
-		}
-	}
-
-	/**
-	 * Deletes the given resource.
-	 */
-	private void delete(IResource resourceToDelete, IProgressMonitor monitor)
-			throws CoreException {
-		boolean force = false; // don't force deletion of out-of-sync resources
-		try {
-			if (resourceToDelete.getType() == IResource.PROJECT) {
-				// if it's a project, ask whether content should be deleted too
-				IProject project = (IProject) resourceToDelete;
-				project.delete(deleteContent, force, monitor);
-			} else {
-				// if it's not a project, just delete it
-				resourceToDelete.delete(IResource.KEEP_HISTORY, monitor);
-			}
-		} catch (CoreException exception) {
-			if (resourceToDelete.getType() == IResource.FILE) {
-				IStatus[] children = exception.getStatus().getChildren();
-
-				if (children.length == 1
-						&& children[0].getCode() == IResourceStatus.OUT_OF_SYNC_LOCAL) {
-					if (forceOutOfSyncDelete) {
-						resourceToDelete.delete(IResource.KEEP_HISTORY
-								| IResource.FORCE, monitor);
-					} else {
-						int result = queryDeleteOutOfSync(resourceToDelete);
-
-						if (result == IDialogConstants.YES_ID) {
-							resourceToDelete.delete(IResource.KEEP_HISTORY
-									| IResource.FORCE, monitor);
-						} else if (result == IDialogConstants.YES_TO_ALL_ID) {
-							forceOutOfSyncDelete = true;
-							resourceToDelete.delete(IResource.KEEP_HISTORY
-									| IResource.FORCE, monitor);
-						} else if (result == IDialogConstants.CANCEL_ID) {
-							throw new OperationCanceledException();
-						}
-					}
-				} else {
-					throw exception;
-				}
-			} else {
-				throw exception;
-			}
-		}
-	}
-
-	/**
-	 * Return an array of the currently selected resources.
-	 * 
-	 * @return the selected resources
-	 */
-	private IResource[] getSelectedResourcesArray() {
-		List selection = getSelectedResources();
-		IResource[] resources = new IResource[selection.size()];
-		selection.toArray(resources);
-		return resources;
-	}
-
-	/**
-	 * Returns a bit-mask containing the types of resources in the selection.
-	 * 
-	 * @param resources
-	 *            the selected resources
-	 */
-	private int getSelectedResourceTypes(IResource[] resources) {
-		int types = 0;
-		for (int i = 0; i < resources.length; i++) {
-			types |= resources[i].getType();
-		}
-		return types;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public void run() {
-		final IResource[] resources = getSelectedResourcesArray();
-		// WARNING: do not query the selected resources more than once
-		// since the selection may change during the run,
-		// e.g. due to window activation when the prompt dialog is dismissed.
-		// For more details, see Bug 60606 [Navigator] (data loss) Navigator
-		// deletes/moves the wrong file
-		if (!confirmDelete(resources)) {
-			return;
-		}
-
-		Job deletionCheckJob = new Job(IDEWorkbenchMessages.DeleteResourceAction_checkJobName) {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-			 */
-			protected IStatus run(IProgressMonitor monitor) {
-				IResource[] resourcesToDelete = getResourcesToDelete(resources);
-
-				if (resourcesToDelete.length == 0)
-					return Status.CANCEL_STATUS;
-				scheduleDeleteJob(resourcesToDelete);
-				return Status.OK_STATUS;
-			}
-			
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.runtime.jobs.Job#belongsTo(java.lang.Object)
-			 */
-			public boolean belongsTo(Object family) {
-				if (IDEWorkbenchMessages.DeleteResourceAction_jobName
-						.equals(family)) {
-					return true;
-				}
-				return super.belongsTo(family);
-			}
-		};
-
-		deletionCheckJob.schedule();
-
-	}
-
-	/**
-	 * Schedule a job to delete the resources to delete.
-	 * 
-	 * @param resourcesToDelete
-	 */
-	private void scheduleDeleteJob(final IResource[] resourcesToDelete) {
-		// use a non-workspace job with a runnable inside so we can avoid
-		// periodic updates
-		Job deleteJob = new Job(
-				IDEWorkbenchMessages.DeleteResourceAction_jobName) {
-			public IStatus run(IProgressMonitor monitor) {
-				try {
-					ResourcesPlugin.getWorkspace().run(
-							new IWorkspaceRunnable() {
-								public void run(IProgressMonitor monitor)
-										throws CoreException {
-									delete(resourcesToDelete, monitor);
-								}
-							}, null, IWorkspace.AVOID_UPDATE, monitor);
-				} catch (CoreException e) {
-					return e.getStatus();
-				}
-				return Status.OK_STATUS;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.runtime.jobs.Job#belongsTo(java.lang.Object)
-			 */
-			public boolean belongsTo(Object family) {
-				if (IDEWorkbenchMessages.DeleteResourceAction_jobName
-						.equals(family)) {
-					return true;
-				}
-				return super.belongsTo(family);
-			}
-
-		};
-		deleteJob.setRule(getDeleteRule(resourcesToDelete));
-		deleteJob.setUser(true);
-		deleteJob.schedule();
-	}
-
-	/*
-	 * Return the scheduling rule that encompasses the deletion of the selected
-	 * resources
-	 */
-	private ISchedulingRule getDeleteRule(IResource[] resourcesToDelete) {
-		IResourceRuleFactory ruleFactory = ResourcesPlugin.getWorkspace()
-				.getRuleFactory();
-		ISchedulingRule combinedRule = null;
-		for (int i = 0; i < resourcesToDelete.length; i++) {
-			IResource resource = resourcesToDelete[i];
-			ISchedulingRule deleteRule = ruleFactory.deleteRule(resource);
-			if (combinedRule == null) {
-				combinedRule = deleteRule;
-			} else {
-				combinedRule = MultiRule.combine(combinedRule, deleteRule);
-			}
-		}
-		return combinedRule;
-	}
-
-	/**
-	 * Returns the resources to delete based on the selection and their
-	 * read-only status.
-	 * 
-	 * @param resources
-	 *            the selected resources
-	 * @return the resources to delete
-	 */
-	private IResource[] getResourcesToDelete(IResource[] resources) {
-
-		if (containsOnlyProjects(resources) && !deleteContent) {
-			// We can just return the selection
-			return resources;
-		}
-
-		ReadOnlyStateChecker checker = new ReadOnlyStateChecker(this.shell,
-				IDEWorkbenchMessages.DeleteResourceAction_title1,
-				IDEWorkbenchMessages.DeleteResourceAction_readOnlyQuestion);
-		checker.setIgnoreLinkedResources(true);
-		return checker.checkReadOnlyResources(resources);
-	}
-
-	/**
-	 * The <code>DeleteResourceAction</code> implementation of this
-	 * <code>SelectionListenerAction</code> method disables the action if the
-	 * selection contains phantom resources or non-resources
-	 */
-	protected boolean updateSelection(IStructuredSelection selection) {
-		return super.updateSelection(selection)
-				&& canDelete(getSelectedResourcesArray());
-	}
-
-	/**
-	 * Ask the user whether the given resource should be deleted despite being
-	 * out of sync with the file system.
-	 * 
-	 * @param resource
-	 *            the out of sync resource
-	 * @return One of the IDialogConstants constants indicating which of the
-	 *         Yes, Yes to All, No, Cancel options has been selected by the
-	 *         user.
-	 */
-	private int queryDeleteOutOfSync(IResource resource) {
-		final MessageDialog dialog = new MessageDialog(
-				shell,
-				IDEWorkbenchMessages.DeleteResourceAction_messageTitle,
-				null,
-				NLS
-						.bind(
-								IDEWorkbenchMessages.DeleteResourceAction_outOfSyncQuestion,
-								resource.getName()), MessageDialog.QUESTION,
-				new String[] { IDialogConstants.YES_LABEL,
-						IDialogConstants.YES_TO_ALL_LABEL,
-						IDialogConstants.NO_LABEL,
-						IDialogConstants.CANCEL_LABEL }, 0);
-		shell.getDisplay().syncExec(new Runnable() {
-			public void run() {
-				dialog.open();
-			}
-		});
-		int result = dialog.getReturnCode();
-		if (result == 0) {
-			return IDialogConstants.YES_ID;
-		}
-		if (result == 1) {
-			return IDialogConstants.YES_TO_ALL_ID;
-		}
-		if (result == 2) {
-			return IDialogConstants.NO_ID;
-		}
-		return IDialogConstants.CANCEL_ID;
-	}
-
-	/**
-	 * Validates the operation against the model providers.
-	 * 
-	 * @param resources
-	 *            the resources to be deleted
-	 * @return whether the operation should proceed
-	 */
-	private boolean validateDelete(IResource[] resources) {
-		IResourceChangeDescriptionFactory factory = ResourceChangeValidator
-				.getValidator().createDeltaFactory();
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			factory.delete(resource);
-		}
-		return IDE.promptToConfirm(shell,
-				IDEWorkbenchMessages.DeleteResourceAction_confirm,
-				IDEWorkbenchMessages.DeleteResourceAction_warning, factory
-						.getDelta(), getModelProviderIds(), false /*
-																	 * no need
-																	 * to
-																	 * syncExec
-																	 */);
-	}
-
-	/**
-	 * Returns the model provider ids that are known to the client that
-	 * instantiated this operation.
-	 * 
-	 * @return the model provider ids that are known to the client that
-	 *         instantiated this operation.
-	 * @since 3.2
-	 */
-	public String[] getModelProviderIds() {
-		return modelProviderIds;
-	}
-
-	/**
-	 * Sets the model provider ids that are known to the client that
-	 * instantiated this operation. Any potential side effects reported by these
-	 * models during validation will be ignored.
-	 * 
-	 * @param modelProviderIds
-	 *            the model providers known to the client who is using this
-	 *            operation.
-	 * @since 3.2
-	 */
-	public void setModelProviderIds(String[] modelProviderIds) {
-		this.modelProviderIds = modelProviderIds;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/GlobalBuildAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/GlobalBuildAction.java
deleted file mode 100644
index 49c696c..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/GlobalBuildAction.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-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.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.actions.BuildUtilities;
-
-/**
- * Standard action for full and incremental builds of all projects within the
- * workspace.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class GlobalBuildAction extends Action implements
-        ActionFactory.IWorkbenchAction {
-    /**
-     * The type of build performed by this action. Can be either
-     * <code>IncrementalProjectBuilder.INCREMENTAL_BUILD</code> or
-     * <code>IncrementalProjectBuilder.FULL_BUILD</code>.
-     */
-    private int buildType;
-
-    /**
-     * The workbench window; or <code>null</code> if this action has been
-     * <code>dispose</code>d.
-     */
-    private IWorkbenchWindow workbenchWindow;
-
-    /**
-     * Creates a new action of the appropriate type. The action id is
-     * <code>IWorkbenchActionConstants.BUILD</code> for incremental builds and
-     * <code>IWorkbenchActionConstants.REBUILD_ALL</code> for full builds.
-     * 
-     * @param workbench
-     *            the active workbench
-     * @param shell
-     *            the shell for any dialogs
-     * @param type
-     *            the type of build; one of
-     *            <code>IncrementalProjectBuilder.INCREMENTAL_BUILD</code> or
-     *            <code>IncrementalProjectBuilder.FULL_BUILD</code>
-     * 
-     * @deprecated use GlobalBuildAction(IWorkbenchWindow, type) instead
-     */
-    public GlobalBuildAction(IWorkbench workbench, Shell shell, int type) {
-        // always use active window; ignore shell
-        this(workbench.getActiveWorkbenchWindow(), type);
-        if (shell == null) {
-            throw new IllegalArgumentException();
-        }
-    }
-
-    /**
-     * Creates a new action of the appropriate type. The action id is
-     * <code>IWorkbenchActionConstants.BUILD</code> for incremental builds and
-     * <code>IWorkbenchActionConstants.REBUILD_ALL</code> for full builds.
-     * 
-     * @param window
-     *            the window in which this action appears
-     * @param type
-     *            the type of build; one of
-     *            <code>IncrementalProjectBuilder.INCREMENTAL_BUILD</code> or
-     *            <code>IncrementalProjectBuilder.FULL_BUILD</code>
-     */
-    public GlobalBuildAction(IWorkbenchWindow window, int type) {
-        if (window == null) {
-            throw new IllegalArgumentException();
-        }
-        this.workbenchWindow = window;
-        setBuildType(type);
-    }
-
-    /**
-     * Sets the build type.
-     * 
-     * @param type
-     *            the type of build; one of
-     *            <code>IncrementalProjectBuilder.INCREMENTAL_BUILD</code> or
-     *            <code>IncrementalProjectBuilder.FULL_BUILD</code>
-     */
-    private void setBuildType(int type) {
-        // allow AUTO_BUILD as well for backwards compatibility, but treat it
-        // the same as INCREMENTAL_BUILD
-        switch (type) {
-        case IncrementalProjectBuilder.INCREMENTAL_BUILD:
-        case IncrementalProjectBuilder.AUTO_BUILD:
-            setText(IDEWorkbenchMessages.GlobalBuildAction_text);
-            setToolTipText(IDEWorkbenchMessages.GlobalBuildAction_toolTip);
-            setId("build"); //$NON-NLS-1$
-            workbenchWindow.getWorkbench().getHelpSystem().setHelp(this,
-                    IIDEHelpContextIds.GLOBAL_INCREMENTAL_BUILD_ACTION);
-            setImageDescriptor(IDEInternalWorkbenchImages
-                    .getImageDescriptor(IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC));
-            setDisabledImageDescriptor(IDEInternalWorkbenchImages
-                    .getImageDescriptor(IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC_DISABLED));
-            setActionDefinitionId("org.eclipse.ui.project.buildAll"); //$NON-NLS-1$
-            break;
-        case IncrementalProjectBuilder.FULL_BUILD:
-            setText(IDEWorkbenchMessages.GlobalBuildAction_rebuildText);
-            setToolTipText(IDEWorkbenchMessages.GlobalBuildAction_rebuildToolTip);
-            setId("rebuildAll"); //$NON-NLS-1$
-            workbenchWindow.getWorkbench().getHelpSystem().setHelp(this,
-                    IIDEHelpContextIds.GLOBAL_FULL_BUILD_ACTION);
-            setActionDefinitionId("org.eclipse.ui.project.rebuildAll"); //$NON-NLS-1$
-            break;
-        default:
-            throw new IllegalArgumentException("Invalid build type"); //$NON-NLS-1$
-        }
-        this.buildType = type;
-    }
-
-    /**
-     * Returns the shell to use.
-     */
-    private Shell getShell() {
-        return workbenchWindow.getShell();
-    }
-
-    /**
-     * Returns the operation name to use
-     */
-    private String getOperationMessage() {
-        if (buildType == IncrementalProjectBuilder.INCREMENTAL_BUILD) {
-			return IDEWorkbenchMessages.GlobalBuildAction_buildOperationTitle;
-		}
-        return IDEWorkbenchMessages.GlobalBuildAction_rebuildAllOperationTitle;
-    }
-
-    /**
-     * Builds all projects within the workspace. Does not save any open editors.
-     */
-    public void doBuild() {
-        doBuildOperation();
-    }
-
-    /**
-     * Invokes a build on all projects within the workspace. Reports any errors
-     * with the build to the user.
-     */
-    /* package */void doBuildOperation() {
-        Job buildJob = new Job(IDEWorkbenchMessages.GlobalBuildAction_jobTitle) {
-            /*
-             * (non-Javadoc)
-             * 
-             * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-             */
-            protected IStatus run(IProgressMonitor monitor) {
-                final MultiStatus status = new MultiStatus(
-                        PlatformUI.PLUGIN_ID, 0, IDEWorkbenchMessages.GlobalBuildAction_buildProblems,
-                        null);
-                monitor.beginTask(getOperationMessage(), 100);
-                try {
-                    ResourcesPlugin.getWorkspace().build(buildType,
-                            new SubProgressMonitor(monitor, 100));
-                } catch (CoreException e) {
-                    status.add(e.getStatus());
-                } finally {
-                    monitor.done();
-                }
-                return status;
-            }
-
-            /*
-             * (non-Javadoc)
-             * 
-             * @see org.eclipse.core.runtime.jobs.Job#belongsTo(java.lang.Object)
-             */
-            public boolean belongsTo(Object family) {
-                return ResourcesPlugin.FAMILY_MANUAL_BUILD == family;
-            }
-        };
-        buildJob.setRule(ResourcesPlugin.getWorkspace().getRuleFactory()
-                .buildRule());
-        buildJob.setUser(true);
-        buildJob.schedule();
-    }
-
-    /**
-     * Returns an array of all projects in the workspace
-     */
-    /* package */IProject[] getWorkspaceProjects() {
-        return ResourcesPlugin.getWorkspace().getRoot().getProjects();
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IAction.
-     * 
-     * Builds all projects within the workspace. Saves all editors prior to
-     * build depending on user's preference.
-     */
-    public void run() {
-        if (workbenchWindow == null) {
-            // action has been disposed
-            return;
-        }
-        // Do nothing if there are no projects...
-        IProject[] roots = getWorkspaceProjects();
-        if (roots.length < 1) {
-			return;
-		}
-        // Verify that there are builders registered on at
-        // least one project
-        if (!verifyBuildersAvailable(roots)) {
-			return;
-		}
-        if (!verifyNoManualRunning()) {
-			return;
-		}
-        // Save all resources prior to doing build
-        BuildUtilities.saveEditors(null);
-        // Perform the build on all the projects
-        doBuildOperation();
-    }
-
-    /**
-     * Checks that there is at least one project with a builder registered on
-     * it.
-     */
-    /* package */boolean verifyBuildersAvailable(IProject[] roots) {
-        try {
-            for (int i = 0; i < roots.length; i++) {
-                if (roots[i].isAccessible()) {
-					if (roots[i].getDescription().getBuildSpec().length > 0) {
-						return true;
-					}
-				}
-            }
-        } catch (CoreException e) {
-            IDEWorkbenchPlugin.log(getClass(), "verifyBuildersAvailable", e); //$NON-NLS-1$
-            ErrorDialog
-                    .openError(
-                            getShell(),
-                            IDEWorkbenchMessages.GlobalBuildAction_buildProblems,
-                            NLS.bind(IDEWorkbenchMessages.GlobalBuildAction_internalError, e.getMessage()),
-                            e.getStatus());
-            return false;
-        }
-        return false;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on ActionFactory.IWorkbenchAction.
-     * 
-     * @since 3.0
-     */
-    public void dispose() {
-        if (workbenchWindow == null) {
-            // action has already been disposed
-            return;
-        }
-        workbenchWindow = null;
-    }
-
-    /**
-     * Verify that no manual build is running. If it is then give the use the
-     * option to cancel. If they cancel, cancel the jobs and return true,
-     * otherwise return false.
-     * 
-     * @return whether or not there is a manual build job running.
-     */
-    private boolean verifyNoManualRunning() {
-        Job[] buildJobs = Platform.getJobManager().find(
-                ResourcesPlugin.FAMILY_MANUAL_BUILD);
-        if (buildJobs.length == 0) {
-			return true;
-		}
-        boolean cancel = MessageDialog.openQuestion(workbenchWindow.getShell(),
-                IDEWorkbenchMessages.GlobalBuildAction_BuildRunningTitle,
-                IDEWorkbenchMessages.GlobalBuildAction_BuildRunningMessage);
-        if (cancel) {
-            for (int i = 0; i < buildJobs.length; i++) {
-                Job job = buildJobs[i];
-                job.cancel();
-            }
-        }
-        //If they cancelled get them to do it again.
-        return false;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveFilesAndFoldersOperation.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveFilesAndFoldersOperation.java
deleted file mode 100644
index 5cefd4a..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveFilesAndFoldersOperation.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-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.IWorkspaceRoot;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * Moves files and folders.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 2.1
- */
-public class MoveFilesAndFoldersOperation extends CopyFilesAndFoldersOperation {
-
-    /** 
-     * Creates a new operation initialized with a shell.
-     * 
-     * @param shell parent shell for error dialogs
-     */
-    public MoveFilesAndFoldersOperation(Shell shell) {
-        super(shell);
-    }
-
-    /**
-     * Returns whether this operation is able to perform on-the-fly 
-     * auto-renaming of resources with name collisions.
-     *
-     * @return <code>true</code> if auto-rename is supported, 
-     * 	and <code>false</code> otherwise
-     */
-    protected boolean canPerformAutoRename() {
-        return false;
-    }
-
-    /**
-     * Moves the resources to the given destination.  This method is 
-     * called recursively to merge folders during folder move.
-     * 
-     * @param resources the resources to move
-     * @param destination destination to which resources will be moved
-     * @param subMonitor a progress monitor for showing progress and for cancelation
-     */
-    protected void copy(IResource[] resources, IPath destination,
-            IProgressMonitor subMonitor) throws CoreException {
-        for (int i = 0; i < resources.length; i++) {
-            IResource source = resources[i];
-            IPath destinationPath = destination.append(source.getName());
-            IWorkspace workspace = source.getWorkspace();
-            IWorkspaceRoot workspaceRoot = workspace.getRoot();
-            IResource existing = workspaceRoot.findMember(destinationPath);
-            if (source.getType() == IResource.FOLDER && existing != null) {
-                // the resource is a folder and it exists in the destination, move the
-                // children of the folder.
-                if (homogenousResources(source, existing)) {
-                    IResource[] children = ((IContainer) source).members();
-                    copy(children, destinationPath, subMonitor);
-                    delete(source, subMonitor);
-                } else {
-                    // delete the destination folder, moving a linked folder
-                    // over an unlinked one or vice versa. Fixes bug 28772. 
-                    delete(existing, new SubProgressMonitor(subMonitor, 0));
-                    source.move(destinationPath, IResource.SHALLOW
-                            | IResource.KEEP_HISTORY, new SubProgressMonitor(
-                            subMonitor, 0));
-                }
-            } else {
-                // if we're merging folders, we could be overwriting an existing file				
-                if (existing != null) {
-                    if (homogenousResources(source, existing)) {
-						moveExisting(source, existing, subMonitor);
-					} else {
-                        // Moving a linked resource over unlinked or vice versa.
-                        // Can't use setContents here. Fixes bug 28772.
-                        delete(existing, new SubProgressMonitor(subMonitor, 0));
-                        source.move(destinationPath, IResource.SHALLOW
-                                | IResource.KEEP_HISTORY,
-                                new SubProgressMonitor(subMonitor, 0));
-                    }
-                } else {
-                    source.move(destinationPath, IResource.SHALLOW
-                            | IResource.KEEP_HISTORY, new SubProgressMonitor(
-                            subMonitor, 0));
-                }
-                subMonitor.worked(1);
-                if (subMonitor.isCanceled()) {
-                    throw new OperationCanceledException();
-                }
-            }
-        }
-    }
-
-    /**
-     * Returns the message for querying deep copy/move of a linked 
-     * resource.
-     *
-     * @param source resource the query is made for
-     * @return the deep query message
-     */
-    protected String getDeepCheckQuestion(IResource source) {
-        return NLS.bind(IDEWorkbenchMessages.CopyFilesAndFoldersOperation_deepMoveQuestion, source.getFullPath().makeRelative());
-    }
-
-    /**
-     * Returns the task title for this operation's progress dialog.
-     *
-     * @return the task title
-     */
-    protected String getOperationTitle() {
-        return IDEWorkbenchMessages.MoveFilesAndFoldersOperation_operationTitle;
-    }
-
-    /**
-     * Returns the message for this operation's problems dialog.
-     *
-     * @return the problems message
-     */
-    protected String getProblemsMessage() {
-        return IDEWorkbenchMessages.MoveFilesAndFoldersOperation_problemMessage;
-    }
-
-    /**
-     * Returns the title for this operation's problems dialog.
-     *
-     * @return the problems dialog title
-     */
-    protected String getProblemsTitle() {
-        return IDEWorkbenchMessages.MoveFilesAndFoldersOperation_moveFailedTitle;
-    }
-
-    /**
-     * Returns whether the source file in a destination collision
-     * will be validateEdited together with the collision itself.
-     * Returns true.
-     * 
-     * @return boolean <code>true</code>, the source file in a  
-     * 	destination collision should be validateEdited.  
-     */
-    protected boolean getValidateConflictSource() {
-        return true;
-    }
-
-    /**
-     * Sets the content of the existing file to the source file content.
-     * Deletes the source file.
-     * 
-     * @param source source file to move
-     * @param existing existing file to set the source content in
-     * @param subMonitor a progress monitor for showing progress and for cancelation
-     * @throws CoreException setContents failed
-     */
-    private void moveExisting(IResource source, IResource existing,
-            IProgressMonitor subMonitor) throws CoreException {
-        IFile existingFile = getFile(existing);
-
-        if (existingFile != null) {
-            IFile sourceFile = getFile(source);
-
-            if (sourceFile != null) {
-                existingFile.setContents(sourceFile.getContents(),
-                        IResource.KEEP_HISTORY, new SubProgressMonitor(
-                                subMonitor, 0));
-                delete(sourceFile, subMonitor);
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Overrides method in CopyFilesAndFoldersOperation
-     *
-     * Note this method is for internal use only. It is not API.
-     *
-     */
-    public String validateDestination(IContainer destination,
-            IResource[] sourceResources) {
-        IPath destinationLocation = destination.getLocation();
-
-        for (int i = 0; i < sourceResources.length; i++) {
-            IResource sourceResource = sourceResources[i];
-
-            // is the source being copied onto itself?
-            if (sourceResource.getParent().equals(destination)) {
-                return NLS.bind(IDEWorkbenchMessages.MoveFilesAndFoldersOperation_sameSourceAndDest, sourceResource.getName());
-            }
-            // test if linked source is copied onto itself. Fixes bug 29913.
-            if (destinationLocation != null) {
-                IPath sourceLocation = sourceResource.getLocation();
-                IPath destinationResource = destinationLocation
-                        .append(sourceResource.getName());
-                if (sourceLocation != null
-                        && sourceLocation.isPrefixOf(destinationResource)) {
-                    return NLS.bind(IDEWorkbenchMessages.MoveFilesAndFoldersOperation_sameSourceAndDest, sourceResource.getName());
-                }
-            }
-        }
-        return super.validateDestination(destination, sourceResources);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.actions.CopyFilesAndFoldersOperation#isMove()
-     */
-    protected boolean isMove() {
-    	return true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveProjectAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveProjectAction.java
deleted file mode 100644
index 4cb301b..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveProjectAction.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.core.resources.mapping.ResourceChangeValidator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ProjectLocationMoveDialog;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog;
-
-/**
- * The MoveProjectAction is the action designed to move projects specifically as
- * they have different semantics from other resources.
- */
-public class MoveProjectAction extends CopyProjectAction {
-	private static String MOVE_TOOL_TIP = IDEWorkbenchMessages.MoveProjectAction_toolTip;
-
-	private static String MOVE_TITLE = IDEWorkbenchMessages.MoveProjectAction_text;
-
-	private static String PROBLEMS_TITLE = IDEWorkbenchMessages.MoveProjectAction_dialogTitle;
-
-	private static String MOVE_PROGRESS_TITLE = IDEWorkbenchMessages.MoveProjectAction_progressMessage;
-
-	/**
-	 * The id of this action.
-	 */
-	public static final String ID = PlatformUI.PLUGIN_ID + ".MoveProjectAction";//$NON-NLS-1$
-
-	/**
-	 * Creates a new project move action with the given text.
-	 * 
-	 * @param shell
-	 *            the shell for any dialogs
-	 */
-	public MoveProjectAction(Shell shell) {
-		super(shell, MOVE_TITLE);
-		setToolTipText(MOVE_TOOL_TIP);
-		setId(MoveProjectAction.ID);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.MOVE_PROJECT_ACTION);
-	}
-
-	/**
-	 * Return the title of the errors dialog.
-	 * 
-	 * @return java.lang.String
-	 */
-	protected String getErrorsTitle() {
-		return PROBLEMS_TITLE;
-	}
-
-	/**
-	 * Moves the project to the new values.
-	 * 
-	 * @param project
-	 *            the project to copy
-	 * @param projectName
-	 *            the name of the copy
-	 * @param newLocation
-	 *            IPath
-	 * @return <code>true</code> if the copy operation completed, and
-	 *         <code>false</code> if it was abandoned part way
-	 */
-	boolean performMove(final IProject project, final String projectName,
-			final IPath newLocation) {
-		WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-			public void execute(IProgressMonitor monitor) {
-				try {
-					if (monitor.isCanceled()) {
-						throw new OperationCanceledException();
-					}
-					
-					monitor.setTaskName(MOVE_PROGRESS_TITLE);
-					//Get a copy of the current description and modify it
-					IProjectDescription newDescription = createDescription(
-							project, projectName, newLocation);
-
-					project.move(newDescription, IResource.FORCE
-							| IResource.SHALLOW, monitor);
-
-				} catch (CoreException e) {
-					recordError(e); // log error
-				} finally {
-					monitor.done();
-				}
-			}
-		};
-
-		try {
-			new ProgressMonitorJobsDialog(shell).run(true, true, op);
-		} catch (InterruptedException e) {
-			return false;
-		} catch (InvocationTargetException e) {
-			// CoreExceptions are collected above, but unexpected runtime
-			// exceptions and errors may still occur.
-			IDEWorkbenchPlugin.log(getClass(),
-                    "performMove()", e.getTargetException()); //$NON-NLS-1$
-			displayError(NLS.bind(IDEWorkbenchMessages.MoveProjectAction_internalError, e.getTargetException().getMessage()));
-			return false;
-		}
-
-		return true;
-	}
-
-	/**
-	 * Query for a new project destination using the parameters in the existing
-	 * project.
-	 * 
-	 * @return Object[] or null if the selection is cancelled
-	 * @param project
-	 *            the project we are going to move.
-	 */
-	protected Object[] queryDestinationParameters(IProject project) {
-		ProjectLocationMoveDialog dialog = new ProjectLocationMoveDialog(shell,
-				project);
-		dialog.setTitle(IDEWorkbenchMessages.MoveProjectAction_moveTitle);
-		dialog.open();
-		return dialog.getResult();
-	}
-
-	/**
-	 * Implementation of method defined on <code>IAction</code>.
-	 */
-	public void run() {
-
-		errorStatus = null;
-
-		IProject project = (IProject) getSelectedResources().get(0);
-
-		//Get the project name and location in a two element list
-		Object[] destinationPaths = queryDestinationParameters(project);
-		if (destinationPaths == null) {
-			return;
-		}
-
-		String projectName = (String) destinationPaths[0];
-		IPath newLocation = new Path((String) destinationPaths[1]);
-
-		if (!validateMove(project, projectName)) {
-			return;
-		}
-		
-		boolean completed = performMove(project, projectName, newLocation);
-
-		if (!completed) {
-			return; // not appropriate to show errors
-		}
-
-		// If errors occurred, open an Error dialog
-		if (errorStatus != null) {
-			ErrorDialog
-					.openError(this.shell, PROBLEMS_TITLE, null, errorStatus);
-			errorStatus = null;
-		}
-	}
-	
-	/**
-	 * Validates the operation against the model providers.
-	 *
-	 * @param project the project to move
-	 * @param newName the new name
-	 * @return whether the operation should proceed
-	 * @since 3.2
-	 */
-    private boolean validateMove(IProject project, String newName) {
-    	if (project.getName().equals(newName)) {
-    		// Only the location changed
-    		return true;
-    	}
-    	IResourceChangeDescriptionFactory factory = ResourceChangeValidator.getValidator().createDeltaFactory();
-    	factory.move(project, new Path(newName));
-		return IDE.promptToConfirm(shell, IDEWorkbenchMessages.CopyProjectAction_confirm, NLS.bind(IDEWorkbenchMessages.CopyProjectAction_warning, project.getName()), factory.getDelta(), getModelProviderIds(), false /* no need to syncExec */);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveResourceAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveResourceAction.java
deleted file mode 100644
index 403daa8..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/MoveResourceAction.java
+++ /dev/null
@@ -1,97 +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.actions;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-
-/**
- * Standard action for moving the currently selected resources elsewhere
- * in the workspace. All resources being moved as a group must be siblings.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class MoveResourceAction extends CopyResourceAction {
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID
-            + ".MoveResourceAction"; //$NON-NLS-1$
-
-    /**
-     * Keep a list of destinations so that any required update can be done after the
-     * move.
-     */
-    protected List destinations;
-
-    /**
-     * Creates a new action.
-     *
-     * @param shell the shell for any dialogs
-     */
-    public MoveResourceAction(Shell shell) {
-        super(shell, IDEWorkbenchMessages.MoveResourceAction_text);
-        setToolTipText(IDEWorkbenchMessages.MoveResourceAction_toolTip);
-        setId(MoveResourceAction.ID);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.MOVE_RESOURCE_ACTION);
-    }
-
-    /* (non-Javadoc)
-     * Overrides method in CopyResourceAction
-     */
-    protected CopyFilesAndFoldersOperation createOperation() {
-        return new MoveFilesAndFoldersOperation(getShell());
-    }
-
-    /**
-     * Returns the destination resources for the resources that have been moved so far.
-     *
-     * @return list of destination <code>IResource</code>s
-     */
-    protected List getDestinations() {
-        return destinations;
-    }
-
-    /* (non-Javadoc)
-     * Overrides method in CopyResourceAction
-     */
-    protected IResource[] getResources(List resourceList) {
-        ReadOnlyStateChecker checker = new ReadOnlyStateChecker(getShell(),
-                IDEWorkbenchMessages.MoveResourceAction_title,
-                IDEWorkbenchMessages.MoveResourceAction_checkMoveMessage);
-        return checker.checkReadOnlyResources(super.getResources(resourceList));
-    }
-
-    /* (non-Javadoc)
-     * Overrides method in CopyResourceAction
-     */
-    protected void runOperation(IResource[] resources, IContainer destination) {
-        //Initialize the destinations
-        destinations = new ArrayList();
-        IResource[] copiedResources = operation.copyResources(resources,
-                destination);
-
-        for (int i = 0; i < copiedResources.length; i++) {
-            destinations.add(destination.getFullPath().append(
-                    copiedResources[i].getName()));
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewExampleAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewExampleAction.java
deleted file mode 100644
index 29bbbe3..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewExampleAction.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import org.eclipse.jface.action.Action;
-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.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.dialogs.NewWizard;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.registry.WizardsRegistryReader;
-
-/**
- * Standard action for launching the create project selection
- * wizard.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class NewExampleAction extends Action {
-
-    /**
-     * The wizard dialog width
-     */
-    private static final int SIZING_WIZARD_WIDTH = 500;
-
-    /**
-     * The wizard dialog height
-     */
-    private static final int SIZING_WIZARD_HEIGHT = 500;
-
-    /**
-     * The workbench window this action will run in
-     */
-    private IWorkbenchWindow window;
-
-    /**
-     * This default constructor allows the the action to be called from the welcome page.
-     */
-    public NewExampleAction() {
-        this(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
-    }
-
-    /**
-     * Creates a new action for launching the new project
-     * selection wizard.
-     *
-     * @param window the workbench window to query the current
-     * 		selection and shell for opening the wizard.
-     */
-    public NewExampleAction(IWorkbenchWindow window) {
-        super(IDEWorkbenchMessages.NewExampleAction_text);
-        if (window == null) {
-            throw new IllegalArgumentException();
-        }
-        this.window = window;
-        ISharedImages images = PlatformUI.getWorkbench().getSharedImages();
-        setImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_NEW_WIZARD));
-        setDisabledImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_NEW_WIZARD_DISABLED));
-        setToolTipText(IDEWorkbenchMessages.NewExampleAction_toolTip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				org.eclipse.ui.internal.IWorkbenchHelpContextIds.NEW_ACTION);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAction.
-     */
-    public void run() {
-        // Create wizard selection wizard.
-        IWorkbench workbench = PlatformUI.getWorkbench();
-        NewWizard wizard = new NewWizard();
-        wizard
-                .setCategoryId(WizardsRegistryReader.FULL_EXAMPLES_WIZARD_CATEGORY);
-
-        ISelection selection = window.getSelectionService().getSelection();
-        IStructuredSelection selectionToPass = StructuredSelection.EMPTY;
-        if (selection instanceof IStructuredSelection) {
-			selectionToPass = (IStructuredSelection) selection;
-		}
-        wizard.init(workbench, selectionToPass);
-        IDialogSettings workbenchSettings = IDEWorkbenchPlugin.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.
-        Shell parent = window.getShell();
-        WizardDialog dialog = new WizardDialog(parent, wizard);
-        dialog.create();
-        wizard.setWindowTitle(IDEWorkbenchMessages.NewExample_title);
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_PROJECT_WIZARD);
-
-        // Open wizard.
-        dialog.open();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewProjectAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewProjectAction.java
deleted file mode 100644
index 88925ba..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewProjectAction.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import org.eclipse.jface.action.Action;
-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.WizardDialog;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.dialogs.NewWizard;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-
-/**
- * Standard action for launching the create project selection
- * wizard.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class NewProjectAction extends Action {
-
-    /**
-     * The wizard dialog width
-     */
-    private static final int SIZING_WIZARD_WIDTH = 500;
-
-    /**
-     * The wizard dialog height
-     */
-    private static final int SIZING_WIZARD_HEIGHT = 500;
-
-    /**
-     * The workbench window this action will run in
-     */
-    private IWorkbenchWindow window;
-
-    /**
-     * This default constructor allows the the action to be called from the welcome page.
-     */
-    public NewProjectAction() {
-        this(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
-    }
-
-    /**
-     * Creates a new action for launching the new project
-     * selection wizard.
-     *
-     * @param window the workbench window to query the current
-     * 		selection and shell for opening the wizard.
-     */
-    public NewProjectAction(IWorkbenchWindow window) {
-        super(IDEWorkbenchMessages.NewProjectAction_text);
-        if (window == null) {
-            throw new IllegalArgumentException();
-        }
-        this.window = window;
-        ISharedImages images = PlatformUI.getWorkbench().getSharedImages();
-        setImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_NEW_WIZARD));
-        setDisabledImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_NEW_WIZARD_DISABLED));
-        setToolTipText(IDEWorkbenchMessages.NewProjectAction_toolTip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				org.eclipse.ui.internal.IWorkbenchHelpContextIds.NEW_ACTION);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAction.
-     */
-    public void run() {
-        // Create wizard selection wizard.
-        IWorkbench workbench = PlatformUI.getWorkbench();
-        NewWizard wizard = new NewWizard();
-        wizard.setProjectsOnly(true);
-        ISelection selection = window.getSelectionService().getSelection();
-        IStructuredSelection selectionToPass = StructuredSelection.EMPTY;
-        if (selection instanceof IStructuredSelection) {
-			selectionToPass = (IStructuredSelection) selection;
-		}
-        wizard.init(workbench, selectionToPass);
-        IDialogSettings workbenchSettings = IDEWorkbenchPlugin.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(null, wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_PROJECT_WIZARD);
-
-        // Open wizard.
-        dialog.open();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewWizardMenu.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewWizardMenu.java
deleted file mode 100644
index 4e4ea31..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/NewWizardMenu.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.actions;
-
-import java.util.List;
-
-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.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.registry.WizardsRegistryReader;
-
-/**
- * A <code>NewWizardMenu</code> augments <code>BaseNewWizardMenu</code> with IDE-specific
- * actions: New Project... (always shown) and New Example... (shown only if there are example wizards installed).
- */
-public class NewWizardMenu extends BaseNewWizardMenu {
-
-    private final IAction newProjectAction;
-
-    private final IAction newExampleAction;
-
-    private boolean enabled = true;
-
-    /**
-     * Creates a new wizard shortcut menu for the IDE.
-     * 
-     * @param window
-     *            the window containing the menu
-     */
-    public NewWizardMenu(IWorkbenchWindow window) {
-        this(window, null);
-        
-    }
-    
-    /**
-     * Creates a new wizard shortcut menu for the IDE.
-     * 
-     * @param window
-     *            the window containing the menu
-     * @param id
-     *            the identifier for this contribution item 
-     */
-    public NewWizardMenu(IWorkbenchWindow window, String id) {
-        super(window, id);
-        newProjectAction = new NewProjectAction(window);
-        newExampleAction = new NewExampleAction(window);
-    }
-
-    /**
-     * Create a new wizard shortcut menu.  
-     * <p>
-     * If the menu will appear on a semi-permanent basis, for instance within
-     * a toolbar or menubar, the value passed for <code>register</code> should be true.
-     * If set, the menu will listen to perspective activation and update itself
-     * to suit.  In this case clients are expected to call <code>deregister</code> 
-     * when the menu is no longer needed.  This will unhook any perspective
-     * listeners.
-     * </p>
-     *
-     * @param innerMgr the location for the shortcut menu contents
-     * @param window the window containing the menu
-     * @param register if <code>true</code> the menu listens to perspective changes in
-     *      the window
-     * @deprecated use NewWizardMenu(IWorkbenchWindow) instead
-     */
-    public NewWizardMenu(IMenuManager innerMgr, IWorkbenchWindow window,
-            boolean register) {
-        this(window, null);
-        fillMenu(innerMgr);
-        // Must be done after constructor to ensure field initialization.
-    }
-    
-    /* (non-Javadoc)
-     * Fills the menu with New Wizards.
-     */
-    private void fillMenu(IContributionManager innerMgr) {
-        // Remove all.
-        innerMgr.removeAll();
-
-        IContributionItem[] items = getContributionItems();
-        for (int i = 0; i < items.length; i++) {
-            innerMgr.add(items[i]);
-        }
-    }
-
-    /**
-     * Removes all listeners from the containing workbench window.
-     * <p>
-     * This method should only be called if the shortcut menu is created with
-     * <code>register = true</code>.
-     * </p>
-     * 
-     * @deprecated has no effect
-     */
-    public void deregisterListeners() {
-        // do nothing
-    }
-
-    /**
-     * Return whether or not any examples are in the current install.
-     * 
-     * @return boolean
-     */
-    private boolean hasExamples() {
-        return registryHasCategory(WizardsRegistryReader.FULL_EXAMPLES_WIZARD_CATEGORY);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.actions.BaseNewWizardMenu#addItems(org.eclipse.jface.action.IContributionManager)
-     */
-    protected void addItems(List list) {
-        list.add(new ActionContributionItem(newProjectAction)); 
-        list.add(new Separator());
-        if (addShortcuts(list)) {
-        	list.add(new Separator());
-        }
-        if (hasExamples()) {
-            list.add(new ActionContributionItem(newExampleAction));
-            list.add(new Separator());
-        }
-        list.add(new ActionContributionItem(getShowDialogAction()));
-    }
-    
-	/* (non-Javadoc)
-	 * Method declared on IContributionItem.
-	 */
-	public boolean isEnabled() {
-		return enabled;
-	}
-
-	/**
-	 * Sets the enabled state of the receiver.
-	 * 
-	 * @param enabledValue if <code>true</code> the menu is enabled; else
-	 * 		it is disabled
-	 */
-	public void setEnabled(boolean enabledValue) {
-		this.enabled = enabledValue;
-	}
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.BaseNewWizardMenu#getContributionItems()
-	 */
-	protected IContributionItem[] getContributionItems() {
-		if (isEnabled()) {
-			return super.getContributionItems();
-		}
-		return new IContributionItem[0];
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenFileAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenFileAction.java
deleted file mode 100644
index e5cf23f..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenFileAction.java
+++ /dev/null
@@ -1,112 +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.actions;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.util.OpenStrategy;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.DialogUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.part.FileEditorInput;
-
-/**
- * Standard action for opening an editor on the currently selected file 
- * resource(s).
- * <p>
- * Note that there is a different action for opening closed projects:
- * <code>OpenResourceAction</code>.
- * </p>
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class OpenFileAction extends OpenSystemEditorAction {
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID + ".OpenFileAction";//$NON-NLS-1$
-
-    /**
-     * The editor to open.
-     */
-    private IEditorDescriptor editorDescriptor;
-
-    /**
-     * Creates a new action that will open editors on the then-selected file 
-     * resources. Equivalent to <code>OpenFileAction(page,null)</code>.
-     *
-     * @param page the workbench page in which to open the editor
-     */
-    public OpenFileAction(IWorkbenchPage page) {
-        this(page, null);
-    }
-
-    /**
-     * Creates a new action that will open instances of the specified editor on 
-     * the then-selected file resources.
-     *
-     * @param page the workbench page in which to open the editor
-     * @param descriptor the editor descriptor, or <code>null</code> if unspecified
-     */
-    public OpenFileAction(IWorkbenchPage page, IEditorDescriptor descriptor) {
-        super(page);
-        setText(descriptor == null ? IDEWorkbenchMessages.OpenFileAction_text : descriptor.getLabel());
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.OPEN_FILE_ACTION);
-        setToolTipText(IDEWorkbenchMessages.OpenFileAction_toolTip);
-        setId(ID);
-        this.editorDescriptor = descriptor;
-    }
-
-    /**
-     * Ensures that the contents of the given file resource are local.
-     *
-     * @param file the file resource
-     * @return <code>true</code> if the file is local, and <code>false</code> if
-     *   it could not be made local for some reason
-     */
-    boolean ensureFileLocal(final IFile file) {
-        //Currently fails due to Core PR.  Don't do it for now
-        //1G5I6PV: ITPCORE:WINNT - IResource.setLocal() attempts to modify immutable tree
-        //file.setLocal(true, IResource.DEPTH_ZERO);
-        return true;
-    }
-
-    /**
-     * Opens an editor on the given file resource.
-     *
-     * @param file the file resource
-     */
-    void openFile(IFile file) {
-        try {
-            boolean activate = OpenStrategy.activateOnOpen();
-            if (editorDescriptor == null) {
-                IDE.openEditor(getWorkbenchPage(), file, activate);
-            } else {
-                if (ensureFileLocal(file)) {
-                    getWorkbenchPage().openEditor(new FileEditorInput(file),
-                            editorDescriptor.getId(), activate);
-                }
-            }
-        } catch (PartInitException e) {
-            DialogUtil.openError(getWorkbenchPage().getWorkbenchWindow()
-                    .getShell(), IDEWorkbenchMessages.OpenFileAction_openFileShellTitle,
-                    e.getMessage(), e);
-        }
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenResourceAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenResourceAction.java
deleted file mode 100644
index d1455b0..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenResourceAction.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.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-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.IResourceRuleFactory;
-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.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-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.IIDEHelpContextIds;
-
-/**
- * Standard action for opening the currently selected project(s).
- * <p>
- * Note that there is a different action for opening an editor on file
- * resources: <code>OpenFileAction</code>.
- * </p>
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class OpenResourceAction extends WorkspaceAction implements IResourceChangeListener {
-
-	/**
-	 * The id of this action.
-	 */
-	public static final String ID = PlatformUI.PLUGIN_ID + ".OpenResourceAction"; //$NON-NLS-1$
-
-	/**
-	 * Creates a new action.
-	 * 
-	 * @param shell
-	 *            the shell for any dialogs
-	 */
-	public OpenResourceAction(Shell shell) {
-		super(shell, IDEWorkbenchMessages.OpenResourceAction_text);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IIDEHelpContextIds.OPEN_RESOURCE_ACTION);
-		setToolTipText(IDEWorkbenchMessages.OpenResourceAction_toolTip);
-		setId(ID);
-	}
-
-	/**
-	 * Returns the total number of closed projects in the workspace.
-	 */
-	private int countClosedProjects() {
-		int count = 0;
-		IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-		for (int i = 0; i < projects.length; i++) {
-			if (!projects[i].isOpen()) {
-				count++;
-			}
-		}
-		return count;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on WorkspaceAction.
-	 */
-	protected String getOperationMessage() {
-		return IDEWorkbenchMessages.OpenResourceAction_operationMessage;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on WorkspaceAction.
-	 */
-	protected String getProblemsMessage() {
-		return IDEWorkbenchMessages.OpenResourceAction_problemMessage;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on WorkspaceAction.
-	 */
-	protected String getProblemsTitle() {
-		return IDEWorkbenchMessages.OpenResourceAction_dialogTitle;
-	}
-
-	/**
-	 * Returns whether there are closed projects in the workspace that are
-	 * not part of the current selection.
-	 */
-	private boolean hasOtherClosedProjects() {
-		//count the closed projects in the selection
-		int closedInSelection = 0;
-		Iterator resources = getSelectedResources().iterator();
-		while (resources.hasNext()) {
-			IProject project = (IProject) resources.next();
-			if (!project.isOpen())
-				closedInSelection++;
-		}
-		//there are other closed projects if the selection does
-		//not contain all closed projects in the workspace
-		return closedInSelection < countClosedProjects();
-	}
-
-	protected void invokeOperation(IResource resource, IProgressMonitor monitor) throws CoreException {
-		((IProject) resource).open(monitor);
-	}
-
-	/**
-	 * Returns the preference for whether to open required projects when opening
-	 * a project. Consults the preference and prompts the user if necessary.
-	 * 
-	 * @return <code>true</code> if referenced projects should be opened, and
-	 *         <code>false</code> otherwise.
-	 */
-	private boolean promptToOpenWithReferences() {
-		IPreferenceStore store = IDEWorkbenchPlugin.getDefault().getPreferenceStore();
-		String key = IDEInternalPreferences.OPEN_REQUIRED_PROJECTS;
-		String value = store.getString(key);
-		if (MessageDialogWithToggle.ALWAYS.equals(value)) {
-			return true;
-		}
-		if (MessageDialogWithToggle.NEVER.equals(value)) {
-			return false;
-		}
-		String message = IDEWorkbenchMessages.OpenResourceAction_openRequiredProjects;
-		MessageDialogWithToggle dialog = MessageDialogWithToggle.openYesNoCancelQuestion(getShell(), IDEWorkbenchMessages.Question, message, null, false, store, key);
-		int result = dialog.getReturnCode();
-		if (result == Window.CANCEL) {
-			throw new OperationCanceledException();
-		}
-		return dialog.getReturnCode() == IDialogConstants.YES_ID;
-	}
-
-	/**
-	 * Handles a resource changed event by updating the enablement if one of the
-	 * selected projects is opened or closed.
-	 */
-	public void resourceChanged(IResourceChangeEvent event) {
-		// Warning: code duplicated in CloseResourceAction
-		List sel = getSelectedResources();
-		// don't bother looking at delta if selection not applicable
-		if (selectionIsOfType(IResource.PROJECT)) {
-			IResourceDelta delta = event.getDelta();
-			if (delta != null) {
-				IResourceDelta[] projDeltas = delta.getAffectedChildren(IResourceDelta.CHANGED);
-				for (int i = 0; i < projDeltas.length; ++i) {
-					IResourceDelta projDelta = projDeltas[i];
-					if ((projDelta.getFlags() & IResourceDelta.OPEN) != 0) {
-						if (sel.contains(projDelta.getResource())) {
-							selectionChanged(getStructuredSelection());
-							return;
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction; overrides method on
-	 * WorkspaceAction.
-	 */
-	public void run() {
-		try {
-			if (hasOtherClosedProjects() && promptToOpenWithReferences()) {
-				runOpenWithReferences();
-			}
-			ISchedulingRule rule = null;
-			// be conservative and include all projects in the selection - projects
-			// can change state between now and when the job starts
-			IResourceRuleFactory factory = ResourcesPlugin.getWorkspace().getRuleFactory();
-			Iterator resources = getSelectedResources().iterator();
-			while (resources.hasNext()) {
-				IProject project = (IProject) resources.next();
-				rule = MultiRule.combine(rule, factory.modifyRule(project));
-			}
-			runInBackground(rule);
-		} catch (OperationCanceledException e) {
-			//just return when canceled
-		}
-	}
-
-	/**
-	 * Opens the selected projects, and all related projects, in the background.
-	 */
-	private void runOpenWithReferences() {
-		final List resources = new ArrayList(getActionResources());
-		Job job = new WorkspaceJob(removeMnemonics(getText())) {
-
-			/**
-			 * Opens a project along with all projects it references
-			 */
-			private void doOpenWithReferences(IProject project, IProgressMonitor monitor) throws CoreException {
-				if (!project.exists() || project.isOpen()) {
-					return;
-				}
-				project.open(new SubProgressMonitor(monitor, 1000));
-				IProject[] references = project.getReferencedProjects();
-				for (int i = 0; i < references.length; i++) {
-					doOpenWithReferences(references[i], monitor);
-				}
-			}
-
-			public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
-				try {
-					// at most we can only open all projects currently closed
-					monitor.beginTask("", countClosedProjects() * 1000); //$NON-NLS-1$
-					monitor.setTaskName(getOperationMessage());
-					for (Iterator it = resources.iterator(); it.hasNext();) {
-						doOpenWithReferences((IProject) it.next(), monitor);
-					}
-				} finally {
-					monitor.done();
-				}
-				return Status.OK_STATUS;
-			}
-		};
-		job.setRule(ResourcesPlugin.getWorkspace().getRoot());
-		job.setUser(true);
-		job.schedule();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on WorkspaceAction.
-	 */
-	protected boolean shouldPerformResourcePruning() {
-		return false;
-	}
-
-	/**
-	 * The <code>OpenResourceAction</code> implementation of this
-	 * <code>SelectionListenerAction</code> method ensures that this action is
-	 * enabled only if one of the selections is a closed project.
-	 */
-	protected boolean updateSelection(IStructuredSelection s) {
-		// don't call super since we want to enable if closed project is
-		// selected.
-
-		if (!selectionIsOfType(IResource.PROJECT)) {
-			return false;
-		}
-
-		Iterator resources = getSelectedResources().iterator();
-		while (resources.hasNext()) {
-			IProject currentResource = (IProject) resources.next();
-			if (!currentResource.isOpen()) {
-				return true;
-			}
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenSystemEditorAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenSystemEditorAction.java
deleted file mode 100644
index 896481b..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenSystemEditorAction.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.actions;
-
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.DialogUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.part.FileEditorInput;
-
-/**
- * Standard action for opening a system editor on the currently selected file 
- * resource.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class OpenSystemEditorAction extends SelectionListenerAction {
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID
-            + ".OpenSystemEditorAction";//$NON-NLS-1$
-
-    /**
-     * The workbench page to open the editor in.
-     */
-    private IWorkbenchPage workbenchPage;
-
-    /**
-     * Creates a new action that will open system editors on the then-selected file 
-     * resources.
-     *
-     * @param page the workbench page in which to open the editor
-     */
-    public OpenSystemEditorAction(IWorkbenchPage page) {
-        super(IDEWorkbenchMessages.OpenSystemEditorAction_text);
-        setToolTipText(IDEWorkbenchMessages.OpenSystemEditorAction_toolTip);
-        setId(ID);
-        page.getWorkbenchWindow().getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.OPEN_SYSTEM_EDITOR_ACTION);
-        if (page == null) {
-            throw new IllegalArgumentException();
-        }
-        this.workbenchPage = page;
-    }
-
-    /**
-     * Return the workbench page to open the editor in.
-     *
-     * @return the workbench page to open the editor in
-     */
-    /* package */final IWorkbenchPage getWorkbenchPage() {
-        return workbenchPage;
-    }
-
-    /**
-     * Opens a system editor on the given file resource.
-     *
-     * @param file the file resource
-     */
-    /* package */void openFile(IFile file) {
-        try {
-            getWorkbenchPage().openEditor(new FileEditorInput(file),
-                    IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID);
-        } catch (PartInitException e) {
-            DialogUtil.openError(getWorkbenchPage().getWorkbenchWindow()
-                    .getShell(), IDEWorkbenchMessages.OpenSystemEditorAction_dialogTitle,
-                    e.getMessage(), e);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAction.
-     */
-    public void run() {
-        Iterator itr = getSelectedResources().iterator();
-        while (itr.hasNext()) {
-            IResource resource = (IResource) itr.next();
-            if (resource instanceof IFile) {
-				openFile((IFile) resource);
-			}
-        }
-    }
-
-    /**
-     * The <code>OpenSystemEditorAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method enables the action only
-     * if the selection contains just file resources.
-     */
-    protected boolean updateSelection(IStructuredSelection selection) {
-        return super.updateSelection(selection)
-                && selectionIsOfType(IResource.FILE);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenWithMenu.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenWithMenu.java
deleted file mode 100644
index 5b78475..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/OpenWithMenu.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import com.ibm.icu.text.Collator;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Hashtable;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.ide.DialogUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.part.FileEditorInput;
-
-/**
- * A menu for opening files in the workbench.
- * <p>
- * An <code>OpenWithMenu</code> is used to populate a menu with
- * "Open With" actions.  One action is added for each editor which is applicable
- * to the selected file. If the user selects one of these items, the corresponding
- * editor is opened on the file.
- * </p>
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class OpenWithMenu extends ContributionItem {
-    private IWorkbenchPage page;
-
-    private IAdaptable file;
-
-    private IEditorRegistry registry = PlatformUI.getWorkbench()
-            .getEditorRegistry();
-
-    private static Hashtable imageCache = new Hashtable(11);
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID + ".OpenWithMenu";//$NON-NLS-1$
-
-    /**
-     * Match both the input and id, so that different types of editor can be opened on the same input.
-     */
-    private static final int MATCH_BOTH = IWorkbenchPage.MATCH_INPUT | IWorkbenchPage.MATCH_ID;
-    
-    /*
-     * Compares the labels from two IEditorDescriptor objects 
-     */
-    private static final Comparator comparer = new Comparator() {
-        private Collator collator = Collator.getInstance();
-
-        public int compare(Object arg0, Object arg1) {
-            String s1 = ((IEditorDescriptor) arg0).getLabel();
-            String s2 = ((IEditorDescriptor) arg1).getLabel();
-            return collator.compare(s1, s2);
-        }
-    };
-
-    /**
-     * Constructs a new instance of <code>OpenWithMenu</code>. 
-     * <p>
-     * If this method is used be sure to set the selected file by invoking
-     * <code>setFile</code>.  The file input is required when the user
-     * selects an item in the menu.  At that point the menu will attempt to
-     * open an editor with the file as its input.
-     * </p>
-     *
-     * @param page the page where the editor is opened if an item within
-     *		the menu is selected
-     */
-    public OpenWithMenu(IWorkbenchPage page) {
-        this(page, null);
-    }
-
-    /**
-     * Constructs a new instance of <code>OpenWithMenu</code>.  
-     *
-     * @param page the page where the editor is opened if an item within
-     *		the menu is selected
-     * @param file the selected file
-     */
-    public OpenWithMenu(IWorkbenchPage page, IAdaptable file) {
-        super(ID);
-        this.page = page;
-        this.file = file;
-    }
-
-    /**
-     * Returns an image to show for the corresponding editor descriptor.
-     *
-     * @param editorDesc the editor descriptor, or null for the system editor
-     * @return the image or null
-     */
-    private Image getImage(IEditorDescriptor editorDesc) {
-        ImageDescriptor imageDesc = getImageDescriptor(editorDesc);
-        if (imageDesc == null) {
-            return null;
-        }
-        Image image = (Image) imageCache.get(imageDesc);
-        if (image == null) {
-            image = imageDesc.createImage();
-            imageCache.put(imageDesc, image);
-        }
-        return image;
-    }
-
-    /**
-     * Returns the image descriptor for the given editor descriptor,
-     * or null if it has no image.
-     */
-    private ImageDescriptor getImageDescriptor(IEditorDescriptor editorDesc) {
-        ImageDescriptor imageDesc = null;
-        if (editorDesc == null) {
-            imageDesc = registry
-                    .getImageDescriptor(getFileResource().getName());
-			//TODO: is this case valid, and if so, what are the implications for content-type editor bindings?
-        } else {
-            imageDesc = editorDesc.getImageDescriptor();
-        }
-        if (imageDesc == null) {
-            if (editorDesc.getId().equals(
-                    IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID)) {
-				imageDesc = registry
-                        .getSystemExternalEditorImageDescriptor(getFileResource()
-                                .getName());
-			}
-        }
-        return imageDesc;
-    }
-
-    /**
-     * Creates the menu item for the editor descriptor.
-     *
-     * @param menu the menu to add the item to
-     * @param descriptor the editor descriptor, or null for the system editor
-     * @param preferredEditor the descriptor of the preferred editor, or <code>null</code>
-     */
-    private void createMenuItem(Menu menu, final IEditorDescriptor descriptor,
-            final IEditorDescriptor preferredEditor) {
-        // XXX: Would be better to use bold here, but SWT does not support it.
-        final MenuItem menuItem = new MenuItem(menu, SWT.RADIO);
-        boolean isPreferred = preferredEditor != null
-                && descriptor.getId().equals(preferredEditor.getId());
-        menuItem.setSelection(isPreferred);
-        menuItem.setText(descriptor.getLabel());
-        Image image = getImage(descriptor);
-        if (image != null) {
-            menuItem.setImage(image);
-        }
-        Listener listener = new Listener() {
-            public void handleEvent(Event event) {
-                switch (event.type) {
-                case SWT.Selection:
-                    if (menuItem.getSelection()) {
-						openEditor(descriptor);
-					}
-                    break;
-                }
-            }
-        };
-        menuItem.addListener(SWT.Selection, listener);
-    }
-
-    /* (non-Javadoc)
-     * Fills the menu with perspective items.
-     */
-    public void fill(Menu menu, int index) {
-        IFile file = getFileResource();
-        if (file == null) {
-            return;
-        }
-
-        IEditorDescriptor defaultEditor = registry
-                .findEditor(IDEWorkbenchPlugin.DEFAULT_TEXT_EDITOR_ID); // may be null
-        IEditorDescriptor preferredEditor = IDE.getDefaultEditor(file); // may be null
-
-        Object[] editors = registry.getEditors(file.getName(), IDE.getContentType(file));
-        Collections.sort(Arrays.asList(editors), comparer);
-
-        boolean defaultFound = false;
-
-        //Check that we don't add it twice. This is possible
-        //if the same editor goes to two mappings.
-        ArrayList alreadyMapped = new ArrayList();
-
-        for (int i = 0; i < editors.length; i++) {
-            IEditorDescriptor editor = (IEditorDescriptor) editors[i];
-            if (!alreadyMapped.contains(editor)) {
-                createMenuItem(menu, editor, preferredEditor);
-                if (defaultEditor != null
-                        && editor.getId().equals(defaultEditor.getId())) {
-					defaultFound = true;
-				}
-                alreadyMapped.add(editor);
-            }
-        }
-
-        // Only add a separator if there is something to separate
-        if (editors.length > 0) {
-			new MenuItem(menu, SWT.SEPARATOR);
-		}
-
-        // Add default editor. Check it if it is saved as the preference.
-        if (!defaultFound && defaultEditor != null) {
-            createMenuItem(menu, defaultEditor, preferredEditor);
-        }
-
-        // Add system editor (should never be null)
-        IEditorDescriptor descriptor = registry
-                .findEditor(IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID);
-        createMenuItem(menu, descriptor, preferredEditor);
-
-        // Add system in-place editor (can be null)
-        descriptor = registry
-                .findEditor(IEditorRegistry.SYSTEM_INPLACE_EDITOR_ID);
-        if (descriptor != null) {
-            createMenuItem(menu, descriptor, preferredEditor);
-        }
-        createDefaultMenuItem(menu, file);
-    }
-	
-
-    /**
-     * Converts the IAdaptable file to IFile or null.
-     */
-    private IFile getFileResource() {
-        if (this.file instanceof IFile) {
-            return (IFile) this.file;
-        }
-        IResource resource = (IResource) this.file
-                .getAdapter(IResource.class);
-        if (resource instanceof IFile) {
-            return (IFile) resource;
-        }
-       
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Returns whether this menu is dynamic.
-     */
-    public boolean isDynamic() {
-        return true;
-    }
-
-    /**
-     * Opens the given editor on the selected file.
-     *
-     * @param editor the editor descriptor, or null for the system editor
-     */
-    private void openEditor(IEditorDescriptor editor) {
-        IFile file = getFileResource();
-        if (file == null) {
-            return;
-        }
-        try {
-            String editorId = editor == null ? IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID
-                    : editor.getId();
-            ((WorkbenchPage) page).openEditor(new FileEditorInput(file), editorId, true, MATCH_BOTH);
-            // only remember the default editor if the open succeeds
-            IDE.setDefaultEditor(file, editorId);
-        } catch (PartInitException e) {
-            DialogUtil.openError(page.getWorkbenchWindow().getShell(),
-                    IDEWorkbenchMessages.OpenWithMenu_dialogTitle,
-                    e.getMessage(), e);
-        }
-    }
-
-    /**
-     * Creates the menu item for clearing the current selection.
-     *
-     * @param menu the menu to add the item to
-     * @param file the file being edited
-     */
-    private void createDefaultMenuItem(Menu menu, final IFile file) {
-        final MenuItem menuItem = new MenuItem(menu, SWT.RADIO);
-        menuItem.setSelection(IDE.getDefaultEditor(file) == null);
-        menuItem.setText(IDEWorkbenchMessages.DefaultEditorDescription_name);
-
-        Listener listener = new Listener() {
-            public void handleEvent(Event event) {
-                switch (event.type) {
-                case SWT.Selection:
-                    if (menuItem.getSelection()) {
-                        IDE.setDefaultEditor(file, null);
-                        try {
-                        	IEditorDescriptor desc = IDE.getEditorDescriptor(file);
-                            page.openEditor(new FileEditorInput(file), desc.getId(), true, MATCH_BOTH);
-                        } catch (PartInitException e) {
-                            DialogUtil.openError(page.getWorkbenchWindow()
-                                    .getShell(), IDEWorkbenchMessages.OpenWithMenu_dialogTitle,
-                                    e.getMessage(), e);
-                        }
-                    }
-                    break;
-                }
-            }
-        };
-
-        menuItem.addListener(SWT.Selection, listener);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/QuickStartAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/QuickStartAction.java
deleted file mode 100644
index 99a3930..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/QuickStartAction.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.net.URL;
-import java.util.ArrayList;
-
-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.Action;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.internal.ProductProperties;
-import org.eclipse.ui.internal.ide.AboutInfo;
-import org.eclipse.ui.internal.ide.FeatureSelectionDialog;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.WelcomeEditorInput;
-
-/**
- * The quick start (Welcome...) action.
- * 
- * @deprecated the IDE now uses the new intro mechanism
- */
-public class QuickStartAction extends Action implements
-        ActionFactory.IWorkbenchAction {
-
-    private static final String EDITOR_ID = "org.eclipse.ui.internal.ide.dialogs.WelcomeEditor"; //$NON-NLS-1$
-
-    /**
-     * The workbench window; or <code>null</code> if this
-     * action has been <code>dispose</code>d.
-     */
-    private IWorkbenchWindow workbenchWindow;
-
-    /**
-     * Create an instance of this class.
-     * <p>
-     * This consructor added to support calling the action from the welcome
-     * page.
-     * </p>
-     */
-    public QuickStartAction() {
-        this(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
-    }
-
-    /**
-     * Creates an instance of this action, for use in the given window.
-     * @param window the window
-     */
-    public QuickStartAction(IWorkbenchWindow window) {
-        super(IDEWorkbenchMessages.QuickStart_text);
-        if (window == null) {
-            throw new IllegalArgumentException();
-        }
-        this.workbenchWindow = window;
-        setToolTipText(IDEWorkbenchMessages.QuickStart_toolTip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.QUICK_START_ACTION);
-        setActionDefinitionId("org.eclipse.ui.help.quickStartAction"); //$NON-NLS-1$
-    }
-
-    /**
-     * The user has invoked this action.  Prompts for a feature with a welcome page, 
-     * then opens the corresponding welcome page.
-     */
-    public void run() {
-        if (workbenchWindow == null) {
-            // action has been disposed
-            return;
-        }
-        try {
-            AboutInfo feature = promptForFeature();
-            if (feature != null) {
-                openWelcomePage(feature);
-            }
-        } catch (WorkbenchException e) {
-            ErrorDialog.openError(workbenchWindow.getShell(),
-                    IDEWorkbenchMessages.QuickStartAction_errorDialogTitle,
-                    IDEWorkbenchMessages.QuickStartAction_infoReadError,
-                    e.getStatus());
-        }
-    }
-
-    /**
-     * Prompts the user for a feature that has a welcome page.
-     * 
-     * @return the chosen feature, or <code>null</code> if none was chosen
-     */
-    private AboutInfo promptForFeature() throws WorkbenchException {
-        // Ask the user to select a feature
-        ArrayList welcomeFeatures = new ArrayList();
-
-        URL productUrl = null;
-        IProduct product = Platform.getProduct();
-        if (product != null) {
-            productUrl = ProductProperties.getWelcomePageUrl(product);
-            welcomeFeatures.add(new AboutInfo(product));
-        }
-
-        AboutInfo[] features = IDEWorkbenchPlugin.getDefault()
-                .getFeatureInfos();
-        for (int i = 0; i < features.length; i++) {
-            URL url = features[i].getWelcomePageURL();
-            if (url != null && !url.equals(productUrl)) {
-				welcomeFeatures.add(features[i]);
-			}
-        }
-
-        Shell shell = workbenchWindow.getShell();
-
-        if (welcomeFeatures.size() == 0) {
-            MessageDialog.openInformation(shell, IDEWorkbenchMessages.QuickStartMessageDialog_title,
-                    IDEWorkbenchMessages.QuickStartMessageDialog_message);
-            return null;
-        }
-
-        features = new AboutInfo[welcomeFeatures.size()];
-        welcomeFeatures.toArray(features);
-
-        FeatureSelectionDialog d = new FeatureSelectionDialog(shell, features,
-                product == null ? null : product.getId(), IDEWorkbenchMessages.WelcomePageSelectionDialog_title,
-                IDEWorkbenchMessages.WelcomePageSelectionDialog_message,
-                IIDEHelpContextIds.WELCOME_PAGE_SELECTION_DIALOG);
-        if (d.open() != Window.OK || d.getResult().length != 1) {
-			return null;
-		}
-        return (AboutInfo) d.getResult()[0];
-    }
-
-    /**
-     * Opens the welcome page for the given feature.
-     * 
-     * @param featureId the about info for the feature
-     * @return <code>true</code> if successful, <code>false</code> otherwise
-     * @throws WorkbenchException 
-     */
-    public boolean openWelcomePage(String featureId) throws WorkbenchException {
-        AboutInfo feature = findFeature(featureId);
-        if (feature == null || feature.getWelcomePageURL() == null) {
-            return false;
-        }
-        return openWelcomePage(feature);
-    }
-
-    /**
-     * Returns the about info for the feature with the given id, or <code>null</code>
-     * if there is no such feature.
-     * 
-     * @return the about info for the feature with the given id, or <code>null</code>
-     *   if there is no such feature.
-     */
-    private AboutInfo findFeature(String featureId) throws WorkbenchException {
-        AboutInfo[] features = IDEWorkbenchPlugin.getDefault()
-                .getFeatureInfos();
-        for (int i = 0; i < features.length; i++) {
-            AboutInfo info = features[i];
-            if (info.getFeatureId().equals(featureId)) {
-                return info;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Opens the welcome page for a feature.
-     * 
-     * @param feature the about info for the feature
-     * @return <code>true</code> if successful, <code>false</code> otherwise
-     */
-    private boolean openWelcomePage(AboutInfo feature) {
-        IWorkbenchPage page = null;
-
-        // See if the feature wants a specific perspective
-        String perspectiveId = feature.getWelcomePerspectiveId();
-
-        if (perspectiveId == null) {
-            // Just use the current perspective unless one is not open 
-            // in which case use the default
-            page = workbenchWindow.getActivePage();
-
-            if (page == null || page.getPerspective() == null) {
-                perspectiveId = PlatformUI.getWorkbench()
-                        .getPerspectiveRegistry().getDefaultPerspective();
-            }
-        }
-
-        if (perspectiveId != null) {
-            try {
-                page = PlatformUI.getWorkbench().showPerspective(perspectiveId,
-                        workbenchWindow);
-            } catch (WorkbenchException e) {
-                IDEWorkbenchPlugin
-						.log("Error opening perspective: " + perspectiveId, e.getStatus()); //$NON-NLS-1$
-                return false;
-            }
-        }
-
-        if (page == null) {
-        	return false;
-        }
-        
-        page.setEditorAreaVisible(true);
-
-        // create input
-        WelcomeEditorInput input = new WelcomeEditorInput(feature);
-
-        // see if we already have a welcome editorz
-        IEditorPart editor = page.findEditor(input);
-        if (editor != null) {
-            page.activate(editor);
-            return true;
-        }
-
-        try {
-            page.openEditor(input, EDITOR_ID);
-        } catch (PartInitException e) {
-            IDEWorkbenchPlugin
-                    .log("Error opening welcome editor for feature: " + feature.getFeatureId(), e); //$NON-NLS-1$
-            IStatus status = new Status(
-                    IStatus.ERROR,
-                    IDEWorkbenchPlugin.IDE_WORKBENCH,
-                    1,
-                    IDEWorkbenchMessages.QuickStartAction_openEditorException, e);
-            ErrorDialog
-                    .openError(
-                            workbenchWindow.getShell(),
-                            IDEWorkbenchMessages.Workbench_openEditorErrorDialogTitle,
-                            IDEWorkbenchMessages.Workbench_openEditorErrorDialogMessage,
-                            status);
-            return false;
-        }
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ActionFactory.IWorkbenchAction.
-     * @since 3.0
-     */
-    public void dispose() {
-        if (workbenchWindow == null) {
-            // action has already been disposed
-            return;
-        }
-        workbenchWindow = null;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/ReadOnlyStateChecker.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/ReadOnlyStateChecker.java
deleted file mode 100644
index 69a3c2a..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/ReadOnlyStateChecker.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.actions;
-
-import com.ibm.icu.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourceAttributes;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * The ReadOnlyStateChecker is a helper class that takes a set of resource
- * some of which may be read only and queries the user as to whether or
- * not they wish to continue the operation on it.
- */
-public class ReadOnlyStateChecker {
-    private Shell shell;
-
-    private String titleMessage;
-
-    private String mainMessage;
-
-    private boolean yesToAllSelected = false;
-
-    private boolean cancelSelected = false;
-
-    private boolean ignoreLinkedResources = false;
-    
-    private String READ_ONLY_EXCEPTION_MESSAGE = IDEWorkbenchMessages.ReadOnlyCheck_problems;
-
-    /**
-     * Create a new checker that parents the dialog off of parent using the supplied
-     * title and message.
-     * @param parent the shell used for dialogs
-     * @param title the title for dialogs
-     * @param message the message for a dialog - this will be prefaced with the name of the resource.
-     */
-    public ReadOnlyStateChecker(Shell parent, String title, String message) {
-        this.shell = parent;
-        this.titleMessage = title;
-        this.mainMessage = message;
-    }
-
-    /**
-     * Check an individual resource to see if it passed the read only query. If it is a file
-     * just add it, otherwise it is a container and the children need to be checked too.
-     * Return true if all items are selected and false if any are skipped.
-     */
-    private boolean checkAcceptedResource(IResource resourceToCheck,
-            List selectedChildren) throws CoreException {
-
-        if (resourceToCheck.getType() == IResource.FILE) {
-			selectedChildren.add(resourceToCheck);
-		} else if (getIgnoreLinkedResources() && resourceToCheck.isLinked()) {
-            selectedChildren.add(resourceToCheck);
-        }
-        else {
-        	IContainer container = (IContainer) resourceToCheck;
-        	// if the project is closed, there's no point in checking
-        	// it's children.  bug 99858
-			if (container.isAccessible()) {
-				// Now check below
-				int childCheck = checkReadOnlyResources(container.members(),
-						selectedChildren);
-				// Add in the resource only if nothing was left out
-				if (childCheck == IDialogConstants.YES_TO_ALL_ID) {
-					selectedChildren.add(resourceToCheck);
-				} else {
-					// Something was left out - return false
-					return false;
-				}
-			} else {
-				selectedChildren.add(resourceToCheck);
-			}
-        }
-        return true;
-
-    }
-
-    /**
-     * Check the supplied resources to see if they are read only. If so then
-	 * prompt the user to see if they can be deleted.Return those that were
-	 * accepted.
-	 * 
-     * @param itemsToCheck
-     * @return the resulting selected resources
-     */
-    public IResource[] checkReadOnlyResources(IResource[] itemsToCheck) {
-
-        List selections = new ArrayList();
-        int result = IDialogConstants.CANCEL_ID;
-        try {
-            result = checkReadOnlyResources(itemsToCheck, selections);
-        } catch (final CoreException exception) {
-            shell.getDisplay().syncExec(new Runnable() {
-                public void run() {
-                    ErrorDialog.openError(shell, READ_ONLY_EXCEPTION_MESSAGE,
-                            null, exception.getStatus());
-                }
-            });
-        }
-
-        if (result == IDialogConstants.CANCEL_ID) {
-			return new IResource[0];
-		}
-
-        //All were selected so return the original items
-        if (result == IDialogConstants.YES_TO_ALL_ID) {
-			return itemsToCheck;
-		}
-
-        IResource[] returnValue = new IResource[selections.size()];
-        selections.toArray(returnValue);
-        return returnValue;
-    }
-
-    /**
-     * Check the children of the container to see if they are read only.
-     * @return int
-     * one of
-     * 	YES_TO_ALL_ID - all elements were selected
-     * 	NO_ID - No was hit at some point
-     * 	CANCEL_ID - cancel was hit
-     * @param itemsToCheck IResource[]
-     * @param allSelected the List of currently selected resources to add to.
-     */
-    private int checkReadOnlyResources(IResource[] itemsToCheck,
-            List allSelected) throws CoreException {
-
-        //Shortcut. If the user has already selected yes to all then just return it
-        if (yesToAllSelected) {
-			return IDialogConstants.YES_TO_ALL_ID;
-		}
-
-        boolean noneSkipped = true;
-        List selectedChildren = new ArrayList();
-
-        for (int i = 0; i < itemsToCheck.length; i++) {
-            IResource resourceToCheck = itemsToCheck[i];
-            ResourceAttributes checkAttributes = resourceToCheck.getResourceAttributes();
-            if (!yesToAllSelected && shouldCheck(resourceToCheck)
-            		&& checkAttributes!=null
-            		&& checkAttributes.isReadOnly()) {
-                int action = queryYesToAllNoCancel(resourceToCheck);
-                if (action == IDialogConstants.YES_ID) {
-                    boolean childResult = checkAcceptedResource(
-                            resourceToCheck, selectedChildren);
-                    if (!childResult) {
-						noneSkipped = false;
-					}
-                }
-                if (action == IDialogConstants.NO_ID) {
-					noneSkipped = false;
-				}
-                if (action == IDialogConstants.CANCEL_ID) {
-                    cancelSelected = true;
-                    return IDialogConstants.CANCEL_ID;
-                }
-                if (action == IDialogConstants.YES_TO_ALL_ID) {
-                    yesToAllSelected = true;
-                    selectedChildren.add(resourceToCheck);
-                }
-            } else {
-                boolean childResult = checkAcceptedResource(resourceToCheck,
-                        selectedChildren);
-                if (cancelSelected) {
-					return IDialogConstants.CANCEL_ID;
-				}
-                if (!childResult) {
-					noneSkipped = false;
-				}
-            }
-
-        }
-
-        if (noneSkipped) {
-			return IDialogConstants.YES_TO_ALL_ID;
-		}
-       allSelected.addAll(selectedChildren);
-       return IDialogConstants.NO_ID;
-
-    }
-
-    /**
-	 * Returns whether the given resource should be checked for read-only state.
-	 * 
-	 * @param resourceToCheck the resource to check
-	 * @return <code>true</code> to check it, <code>false</code> to skip it
-	 */
-	private boolean shouldCheck(IResource resourceToCheck) {
-        if (ignoreLinkedResources) {
-        	if (resourceToCheck.isLinked()) {
-				return false;
-			}
-        }
-        return true;
-    }
-
-	/**
-     * Open a message dialog with Yes No, Yes To All and Cancel buttons. Return the
-     * code that indicates the selection.
-     * @return int 
-     *	one of
-     *		YES_TO_ALL_ID
-     *		YES_ID
-     *		NO_ID
-     *		CANCEL_ID
-     * 		
-     * @param resource - the resource being queried.
-     */
-    private int queryYesToAllNoCancel(IResource resource) {
-
-        final MessageDialog dialog = new MessageDialog(this.shell,
-                this.titleMessage, null, MessageFormat.format(this.mainMessage,
-                        new Object[] { resource.getName() }),
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL,
-                        IDialogConstants.YES_TO_ALL_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        shell.getDisplay().syncExec(new Runnable() {
-            public void run() {
-                dialog.open();
-            }
-        });
-        int result = dialog.getReturnCode();
-        if (result == 0) {
-			return IDialogConstants.YES_ID;
-		}
-        if (result == 1) {
-			return IDialogConstants.YES_TO_ALL_ID;
-		}
-        if (result == 2) {
-			return IDialogConstants.NO_ID;
-		}
-        return IDialogConstants.CANCEL_ID;
-    }
-    
-    /**
-     * Returns whether to ignore linked resources.
-     * 
-     * @return <code>true</code> to ignore linked resources, <code>false</code> to consider them
-     * @since 3.1
-     */
-    public boolean getIgnoreLinkedResources() {
-    	return ignoreLinkedResources;
-    }
-
-    /**
-     * Sets whether to ignore linked resources.
-     * The default is <code>false</code>.
-     * 
-     * @param ignore <code>true</code> to ignore linked resources, <code>false</code> to consider them
-     * @since 3.1
-     */
-    public void setIgnoreLinkedResources(boolean ignore) {
-    	ignoreLinkedResources = ignore;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/RefreshAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/RefreshAction.java
deleted file mode 100644
index 1ad106d..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/RefreshAction.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceRuleFactory;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.IDEResourceInfoUtils;
-
-/**
- * Standard action for refreshing the workspace from the local file system for
- * the selected resources and all of their descendents.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class RefreshAction extends WorkspaceAction {
-
-	/**
-	 * The id of this action.
-	 */
-	public static final String ID = PlatformUI.PLUGIN_ID + ".RefreshAction";//$NON-NLS-1$
-
-	/**
-	 * Creates a new action.
-	 * 
-	 * @param shell
-	 *            the shell for any dialogs
-	 */
-	public RefreshAction(Shell shell) {
-		super(shell, IDEWorkbenchMessages.RefreshAction_text);
-		setToolTipText(IDEWorkbenchMessages.RefreshAction_toolTip);
-		setId(ID);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.REFRESH_ACTION);
-	}
-
-	/**
-	 * Checks whether the given project's location has been deleted. If so,
-	 * prompts the user with whether to delete the project or not.
-	 */
-	void checkLocationDeleted(IProject project) throws CoreException {
-		if (!project.exists()) {
-			return;
-		}
-		IFileInfo location = IDEResourceInfoUtils.getFileInfo(project
-				.getLocationURI());
-		if (!location.exists()) {
-			String message = NLS.bind(
-					IDEWorkbenchMessages.RefreshAction_locationDeletedMessage,
-					project.getName(), location.toString());
-
-			final MessageDialog dialog = new MessageDialog(getShell(),
-					IDEWorkbenchMessages.RefreshAction_dialogTitle, // dialog
-																	// title
-					null, // use default window icon
-					message, MessageDialog.QUESTION, new String[] {
-							IDialogConstants.YES_LABEL,
-							IDialogConstants.NO_LABEL }, 0); // yes is the
-																// default
-
-			// Must prompt user in UI thread (we're in the operation thread
-			// here).
-			getShell().getDisplay().syncExec(new Runnable() {
-				public void run() {
-					dialog.open();
-				}
-			});
-
-			// Do the deletion back in the operation thread
-			if (dialog.getReturnCode() == 0) { // yes was chosen
-				project.delete(true, true, null);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on WorkspaceAction.
-	 */
-	protected String getOperationMessage() {
-		return IDEWorkbenchMessages.RefreshAction_progressMessage;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on WorkspaceAction.
-	 */
-	protected String getProblemsMessage() {
-		return IDEWorkbenchMessages.RefreshAction_problemMessage;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on WorkspaceAction.
-	 */
-	protected String getProblemsTitle() {
-		return IDEWorkbenchMessages.RefreshAction_problemTitle;
-	}
-
-	/**
-	 * Returns a list containing the workspace root if the selection would
-	 * otherwise be empty.
-	 */
-	protected List getSelectedResources() {
-		List resources = super.getSelectedResources();
-		if (resources.isEmpty()) {
-			resources = new ArrayList();
-			resources.add(ResourcesPlugin.getWorkspace().getRoot());
-		}
-		return resources;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on WorkspaceAction.
-	 */
-	protected void invokeOperation(IResource resource, IProgressMonitor monitor)
-			throws CoreException {
-		// Check if project's location has been deleted,
-		// as per 1G83UCE: ITPUI:WINNT - Refresh from local doesn't detect new
-		// or deleted projects
-		// and also for bug report #18283
-		if (resource.getType() == IResource.PROJECT) {
-			checkLocationDeleted((IProject) resource);
-		} else if (resource.getType() == IResource.ROOT) {
-			IProject[] projects = ((IWorkspaceRoot) resource).getProjects();
-			for (int i = 0; i < projects.length; i++) {
-				checkLocationDeleted(projects[i]);
-			}
-		}
-		resource.refreshLocal(IResource.DEPTH_INFINITE, monitor);
-	}
-
-	/**
-	 * The <code>RefreshAction</code> implementation of this
-	 * <code>SelectionListenerAction</code> method ensures that this action is
-	 * enabled if the selection is empty, but is disabled if any of the selected
-	 * elements are not resources.
-	 */
-	protected boolean updateSelection(IStructuredSelection s) {
-		return (super.updateSelection(s) || s.isEmpty())
-				&& getSelectedNonResources().size() == 0;
-	}
-
-	/**
-	 * Handle the key release.
-	 * 
-	 * @param event
-	 *            the event
-	 */
-	public void handleKeyReleased(KeyEvent event) {
-
-		if (event.keyCode == SWT.F5 && event.stateMask == 0) {
-			refreshAll();
-		}
-	}
-
-	/**
-	 * Refreshes the entire workspace.
-	 */
-	public void refreshAll() {
-		IStructuredSelection currentSelection = getStructuredSelection();
-		selectionChanged(StructuredSelection.EMPTY);
-		run();
-		selectionChanged(currentSelection);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction; overrides method on
-	 * WorkspaceAction.
-	 */
-	public void run() {
-		ISchedulingRule rule = null;
-		IResourceRuleFactory factory = ResourcesPlugin.getWorkspace()
-				.getRuleFactory();
-		Iterator resources = getSelectedResources().iterator();
-		while (resources.hasNext()) {
-			rule = MultiRule.combine(rule, factory
-					.refreshRule((IResource) resources.next()));
-		}
-		runInBackground(rule);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/RenameResourceAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/RenameResourceAction.java
deleted file mode 100644
index 771019b..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/RenameResourceAction.java
+++ /dev/null
@@ -1,667 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import com.ibm.icu.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-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.ResourceAttributes;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.core.resources.mapping.ResourceChangeValidator;
-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.SubProgressMonitor;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TreeEditor;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-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.Listener;
-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.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-
-/**
- * Standard action for renaming the selected resources.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class RenameResourceAction extends WorkspaceAction {
-
-    /*The tree editing widgets. If treeEditor is null then edit using the
-     dialog. We keep the editorText around so that we can close it if
-     a new selection is made. */
-    private TreeEditor treeEditor;
-
-    private Tree navigatorTree;
-
-    private Text textEditor;
-
-    private Composite textEditorParent;
-
-    private TextActionHandler textActionHandler;
-
-    //The resource being edited if this is being done inline
-    private IResource inlinedResource;
-
-    private boolean saving = false;
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID
-            + ".RenameResourceAction";//$NON-NLS-1$
-
-    /**
-     * The new path.
-     */
-    private IPath newPath;
-
-	private String[] modelProviderIds;
-
-    private static final String CHECK_RENAME_TITLE = IDEWorkbenchMessages.RenameResourceAction_checkTitle;
-
-    private static final String CHECK_RENAME_MESSAGE = IDEWorkbenchMessages.RenameResourceAction_readOnlyCheck;
-
-    private static String RESOURCE_EXISTS_TITLE = IDEWorkbenchMessages.RenameResourceAction_resourceExists;
-
-    private static String RESOURCE_EXISTS_MESSAGE = IDEWorkbenchMessages.RenameResourceAction_overwriteQuestion;
-
-    private static String RENAMING_MESSAGE = IDEWorkbenchMessages.RenameResourceAction_progressMessage;
-
-    /**
-     * Creates a new action. Using this constructor directly will rename using a
-     * dialog rather than the inline editor of a ResourceNavigator.
-     *
-     * @param shell the shell for any dialogs
-     */
-    public RenameResourceAction(Shell shell) {
-        super(shell, IDEWorkbenchMessages.RenameResourceAction_text);
-        setToolTipText(IDEWorkbenchMessages.RenameResourceAction_toolTip);
-        setId(ID);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.RENAME_RESOURCE_ACTION);
-    }
-
-    /**
-     * Creates a new action.
-     *
-     * @param shell the shell for any dialogs
-     * @param tree the tree
-     */
-    public RenameResourceAction(Shell shell, Tree tree) {
-        this(shell);
-        this.navigatorTree = tree;
-        this.treeEditor = new TreeEditor(tree);
-    }
-
-    /**
-     * Check if the user wishes to overwrite the supplied resource
-     * @returns true if there is no collision or delete was successful
-     * @param shell the shell to create the dialog in 
-     * @param destination - the resource to be overwritten
-     */
-    private boolean checkOverwrite(final Shell shell,
-            final IResource destination) {
-
-        final boolean[] result = new boolean[1];
-
-        //Run it inside of a runnable to make sure we get to parent off of the shell as we are not
-        //in the UI thread.
-
-        Runnable query = new Runnable() {
-            public void run() {
-                String pathName = destination.getFullPath().makeRelative()
-                        .toString();
-                result[0] = MessageDialog.openQuestion(shell,
-                        RESOURCE_EXISTS_TITLE, MessageFormat.format(
-                                RESOURCE_EXISTS_MESSAGE,
-                                new Object[] { pathName }));
-            }
-
-        };
-
-        shell.getDisplay().syncExec(query);
-        return result[0];
-    }
-
-    /**
-     * Check if the supplied resource is read only or null. If it is then ask the user if they want
-     * to continue. Return true if the resource is not read only or if the user has given
-     * permission.
-     * @return boolean
-     */
-    private boolean checkReadOnlyAndNull(IResource currentResource) {
-        //Do a quick read only and null check
-        if (currentResource == null) {
-			return false;
-		}
-
-		//Do a quick read only check
-        final ResourceAttributes attributes = currentResource.getResourceAttributes();
-        if (attributes != null && attributes.isReadOnly()) {
-			return MessageDialog.openQuestion(getShell(), CHECK_RENAME_TITLE,
-                    MessageFormat.format(CHECK_RENAME_MESSAGE,
-                            new Object[] { currentResource.getName() }));
-		}
-        
-        return true;
-    }
-
-    Composite createParent() {
-        Tree tree = getTree();
-        Composite result = new Composite(tree, SWT.NONE);
-        TreeItem[] selectedItems = tree.getSelection();
-        treeEditor.horizontalAlignment = SWT.LEFT;
-        treeEditor.grabHorizontal = true;
-        treeEditor.setEditor(result, selectedItems[0]);
-        return result;
-    }
-
-    /**
-     * On Mac the text widget already provides a border when it has focus, so there is no need to draw another one.
-     * The value of returned by this method is usd to control the inset we apply to the text field bound's in order to get space for drawing a border.
-     * A value of 1 means a one-pixel wide border around the text field. A negative value supresses the border.
-     * However, in M9 the system property "org.eclipse.swt.internal.carbon.noFocusRing" has been introduced
-     * as a temporary workaround for bug #28842. The existence of the property turns the native focus ring off
-     * if the widget is contained in a main window (not dialog).
-     * The check for the property should be removed after a final fix for #28842 has been provided.
-     */
-    private static int getCellEditorInset(Control c) {
-        if ("carbon".equals(SWT.getPlatform())) { // special case for MacOS X //$NON-NLS-1$
-            if (System
-                    .getProperty("org.eclipse.swt.internal.carbon.noFocusRing") == null || c.getShell().getParent() != null) { //$NON-NLS-1$
-				return -2; // native border
-			}
-        }
-        return 1; //  one pixel wide black border
-    }
-
-    /**
-     * Create the text editor widget.
-     * 
-     * @param resource the resource to rename
-     */
-    private void createTextEditor(final IResource resource) {
-        // Create text editor parent.  This draws a nice bounding rect.
-        textEditorParent = createParent();
-        textEditorParent.setVisible(false);
-        final int inset = getCellEditorInset(textEditorParent);
-        if (inset > 0) {
-			textEditorParent.addListener(SWT.Paint, new Listener() {
-                public void handleEvent(Event e) {
-                    Point textSize = textEditor.getSize();
-                    Point parentSize = textEditorParent.getSize();
-                    e.gc.drawRectangle(0, 0, Math.min(textSize.x + 4,
-                            parentSize.x - 1), parentSize.y - 1);
-                }
-            });
-		}
-        // Create inner text editor.
-        textEditor = new Text(textEditorParent, SWT.NONE);
-        textEditor.setFont(navigatorTree.getFont());
-        textEditorParent.setBackground(textEditor.getBackground());
-        textEditor.addListener(SWT.Modify, new Listener() {
-            public void handleEvent(Event e) {
-                Point textSize = textEditor.computeSize(SWT.DEFAULT,
-                        SWT.DEFAULT);
-                textSize.x += textSize.y; // Add extra space for new characters.
-                Point parentSize = textEditorParent.getSize();
-                textEditor.setBounds(2, inset, Math.min(textSize.x,
-                        parentSize.x - 4), parentSize.y - 2 * inset);
-                textEditorParent.redraw();
-            }
-        });
-        textEditor.addListener(SWT.Traverse, new Listener() {
-            public void handleEvent(Event event) {
-
-                //Workaround for Bug 20214 due to extra
-                //traverse events
-                switch (event.detail) {
-                case SWT.TRAVERSE_ESCAPE:
-                    //Do nothing in this case
-                    disposeTextWidget();
-                    event.doit = true;
-                    event.detail = SWT.TRAVERSE_NONE;
-                    break;
-                case SWT.TRAVERSE_RETURN:
-                    saveChangesAndDispose(resource);
-                    event.doit = true;
-                    event.detail = SWT.TRAVERSE_NONE;
-                    break;
-                }
-            }
-        });
-        textEditor.addFocusListener(new FocusAdapter() {
-            public void focusLost(FocusEvent fe) {
-                saveChangesAndDispose(resource);
-            }
-        });
-
-        if (textActionHandler != null) {
-			textActionHandler.addText(textEditor);
-		}
-    }
-
-    /**
-     * Close the text widget and reset the editorText field.
-     */
-    private void disposeTextWidget() {
-        if (textActionHandler != null) {
-			textActionHandler.removeText(textEditor);
-		}
-
-        if (textEditorParent != null) {
-            textEditorParent.dispose();
-            textEditorParent = null;
-            textEditor = null;
-            treeEditor.setEditor(null, null);
-        }
-    }
-
-    /**
-     * Returns the elements that the action is to be performed on.
-     * Return the resource cached by the action as we cannot rely
-     * on the selection being correct for inlined text.
-     *
-     * @return list of resource elements (element type: <code>IResource</code>)
-     */
-    protected List getActionResources() {
-        if (inlinedResource == null) {
-			return super.getActionResources();
-		}
-
-        List actionResources = new ArrayList();
-        actionResources.add(inlinedResource);
-        return actionResources;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getOperationMessage() {
-        return IDEWorkbenchMessages.RenameResourceAction_progress;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getProblemsMessage() {
-        return IDEWorkbenchMessages.RenameResourceAction_problemMessage;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getProblemsTitle() {
-        return IDEWorkbenchMessages.RenameResourceAction_problemTitle;
-    }
-
-    /**
-     * Get the Tree being edited.
-     * @returnTree
-     */
-    private Tree getTree() {
-        return this.navigatorTree;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected void invokeOperation(IResource resource, IProgressMonitor monitor)
-            throws CoreException {
-
-    	if (!validateMove(resource, newPath)) {
-    		return;
-    	}
-        monitor.beginTask(RENAMING_MESSAGE, 100);
-        IWorkspaceRoot workspaceRoot = resource.getWorkspace().getRoot();
-
-        IResource newResource = workspaceRoot.findMember(newPath);
-        if (newResource != null) {
-            if (checkOverwrite(getShell(), newResource)) {
-                if (resource.getType() == IResource.FILE
-                        && newResource.getType() == IResource.FILE) {
-                    IFile file = (IFile) resource;
-                    IFile newFile = (IFile) newResource;
-                    if (validateEdit(file, newFile, getShell())) {
-                        IProgressMonitor subMonitor = new SubProgressMonitor(
-                                monitor, 50);
-                        newFile.setContents(file.getContents(),
-                                IResource.KEEP_HISTORY, subMonitor);
-                        file.delete(IResource.KEEP_HISTORY, subMonitor);
-                    }
-                    monitor.worked(100);
-                    return;
-                } 
-                newResource.delete(IResource.KEEP_HISTORY,
-                        new SubProgressMonitor(monitor, 50));
-            } else {
-                monitor.worked(100);
-                return;
-            }
-        }
-        if (resource.getType() == IResource.PROJECT) {
-            IProject project = (IProject) resource;
-            IProjectDescription description = project.getDescription();
-            description.setName(newPath.segment(0));
-            project.move(description, IResource.FORCE | IResource.SHALLOW,
-                    monitor);
-        } else {
-			resource.move(newPath, IResource.KEEP_HISTORY | IResource.SHALLOW,
-                    new SubProgressMonitor(monitor, 50));
-		}
-    }
-
-	/**
-	 * Validates the operation against the model providers.
-	 *
-	 * @param resource the resource to move
-	 * @param path the new path
-	 * @return whether the operation should proceed
-	 * @since 3.2
-	 */
-    private boolean validateMove(IResource resource, IPath path) {
-    	IResourceChangeDescriptionFactory factory = ResourceChangeValidator.getValidator().createDeltaFactory();
-    	factory.move(resource, path);
-		return IDE.promptToConfirm(getShell(), IDEWorkbenchMessages.RenameResourceAction_confirm, NLS.bind(IDEWorkbenchMessages.RenameResourceAction_warning, resource.getName()), factory.getDelta(), modelProviderIds, true /* syncExec */);
-	}
-
-	/**
-     * Return the new name to be given to the target resource.
-     *
-     * @return java.lang.String
-     * @param resource the resource to query status on
-     */
-    protected String queryNewResourceName(final IResource resource) {
-        final IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-        final IPath prefix = resource.getFullPath().removeLastSegments(1);
-        IInputValidator validator = new IInputValidator() {
-            public String isValid(String string) {
-                if (resource.getName().equals(string)) {
-                    return IDEWorkbenchMessages.RenameResourceAction_nameMustBeDifferent;
-                }
-                IStatus status = workspace.validateName(string, resource
-                        .getType());
-                if (!status.isOK()) {
-                    return status.getMessage();
-                }
-                if (workspace.getRoot().exists(prefix.append(string))) {
-                    return IDEWorkbenchMessages.RenameResourceAction_nameExists;
-                }
-                return null;
-            }
-        };
-
-        InputDialog dialog = new InputDialog(getShell(), IDEWorkbenchMessages.RenameResourceAction_inputDialogTitle,
-                IDEWorkbenchMessages.RenameResourceAction_inputDialogMessage,
-                resource.getName(), validator);
-        dialog.setBlockOnOpen(true);
-        int result = dialog.open();
-        if (result == Window.OK)
-        	return dialog.getValue();
-        return null;
-    }
-
-    /**
-     * Return the new name to be given to the target resource or <code>null<code>
-     * if the query was canceled. Rename the currently selected resource using the table editor. 
-     * Continue the action when the user is done.
-     *
-     * @param resource the resource to rename
-     */
-    private void queryNewResourceNameInline(final IResource resource) {
-        // Make sure text editor is created only once. Simply reset text 
-        // editor when action is executed more than once. Fixes bug 22269.
-        if (textEditorParent == null) {
-            createTextEditor(resource);
-        }
-        textEditor.setText(resource.getName());
-
-        // Open text editor with initial size.
-        textEditorParent.setVisible(true);
-        Point textSize = textEditor.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        textSize.x += textSize.y; // Add extra space for new characters.
-        Point parentSize = textEditorParent.getSize();
-        int inset = getCellEditorInset(textEditorParent);
-        textEditor.setBounds(2, inset, Math.min(textSize.x, parentSize.x - 4),
-                parentSize.y - 2 * inset);
-        textEditorParent.redraw();
-        textEditor.selectAll();
-        textEditor.setFocus();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAction; overrides method on WorkspaceAction.
-     */
-    public void run() {
-
-        if (this.navigatorTree == null) {
-            IResource currentResource = getCurrentResource();
-            if (currentResource == null || !currentResource.exists()) {
-				return;
-			}
-            //Do a quick read only and null check
-            if (!checkReadOnlyAndNull(currentResource)) {
-				return;
-			}
-            String newName = queryNewResourceName(currentResource);
-            if (newName == null || newName.equals("")) { //$NON-NLS-1$
-				return;
-			}
-            newPath = currentResource.getFullPath().removeLastSegments(1)
-                    .append(newName);
-            super.run();
-        } else {
-			runWithInlineEditor();
-		}
-    }
-
-    /* 
-     * Run the receiver using an inline editor from the supplied navigator. The
-     * navigator will tell the action when the path is ready to run.
-     */
-    private void runWithInlineEditor() {
-        IResource currentResource = getCurrentResource();
-        if (!checkReadOnlyAndNull(currentResource)) {
-			return;
-		}
-
-        queryNewResourceNameInline(currentResource);
-
-    }
-    
-    /**
-     * Return the currently selected resource. Only return
-     * an IResouce if there is one and only one resource selected.
-     * @return IResource or <code>null</code> if there is zero
-     * or more than one resources selected.
-     */
-    private IResource getCurrentResource(){
-    	List resources = getSelectedResources();
-    	if(resources.size() == 1) {
-			return (IResource) resources.get(0);
-		}
-    	return null;
-    	
-    }
-
-    /**
-     * @param path the path
-     * @param resource the resource
-     */
-    protected void runWithNewPath(IPath path, IResource resource) {
-        this.newPath = path;
-        super.run();
-    }
-
-    /**
-     * Save the changes and dispose of the text widget.
-     * @param resource - the resource to move.
-     */
-    private void saveChangesAndDispose(IResource resource) {
-        if (saving == true) {
-			return;
-		}
-
-        saving = true;
-        // Cache the resource to avoid selection loss since a selection of
-        // another item can trigger this method
-        inlinedResource = resource;
-        final String newName = textEditor.getText();
-        // Run this in an async to make sure that the operation that triggered
-        // this action is completed.  Otherwise this leads to problems when the
-        // icon of the item being renamed is clicked (i.e., which causes the rename
-        // text widget to lose focus and trigger this method).
-        Runnable query = new Runnable() {
-            public void run() {
-                try {
-                    if (!newName.equals(inlinedResource.getName())) {
-                        IWorkspace workspace = IDEWorkbenchPlugin
-                                .getPluginWorkspace();
-                        IStatus status = workspace.validateName(newName,
-                                inlinedResource.getType());
-                        if (!status.isOK()) {
-                            displayError(status.getMessage());
-                        } else {
-                            IPath newPath = inlinedResource.getFullPath()
-                                    .removeLastSegments(1).append(newName);
-                            runWithNewPath(newPath, inlinedResource);
-                        }
-                    }
-                    inlinedResource = null;
-                    //Dispose the text widget regardless
-                    disposeTextWidget();
-                    // Ensure the Navigator tree has focus, which it may not if the
-                    // text widget previously had focus.
-                    if (navigatorTree != null && !navigatorTree.isDisposed()) {
-                        navigatorTree.setFocus();
-                    }
-                } finally {
-                    saving = false;
-                }
-            }
-        };
-        getTree().getShell().getDisplay().asyncExec(query);
-    }
-
-    /**
-     * The <code>RenameResourceAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method ensures that this action is
-     * disabled if any of the selections are not resources or resources that are
-     * not local.
-     */
-    protected boolean updateSelection(IStructuredSelection selection) {
-        disposeTextWidget();
-
-        if (selection.size() > 1) {
-			return false;
-		}
-        if (!super.updateSelection(selection)) {
-			return false;
-		}
-
-        IResource currentResource = getCurrentResource();
-        if (currentResource == null || !currentResource.exists()) {
-			return false;
-		}
-
-        return true;
-    }
-
-    /**
-     * Set the text action handler.
-     * 
-     * @param actionHandler the action handler
-     */
-    public void setTextActionHandler(TextActionHandler actionHandler) {
-        textActionHandler = actionHandler;
-    }
-
-    /**
-     * Validates the destination file if it is read-only and additionally 
-     * the source file if both are read-only.
-     * Returns true if both files could be made writeable.
-     * 
-     * @param source source file
-     * @param destination destination file
-     * @param shell ui context for the validation
-     * @return boolean <code>true</code> both files could be made writeable.
-     * 	<code>false</code> either one or both files were not made writeable  
-     */
-    boolean validateEdit(IFile source, IFile destination, Shell shell) {
-        if (destination.isReadOnly()) {
-            IWorkspace workspace = ResourcesPlugin.getWorkspace();
-            IStatus status;
-            if (source.isReadOnly()) {
-				status = workspace.validateEdit(new IFile[] { source,
-                        destination }, shell);
-			} else {
-				status = workspace.validateEdit(new IFile[] { destination },
-                        shell);
-			}
-            return status.isOK();
-        }
-        return true;
-    }
-    
-    /**
-     * Returns the model provider ids that are known to the client
-     * that instantiated this operation.
-     * 
-     * @return the model provider ids that are known to the client
-     * that instantiated this operation.
-     * @since 3.2
-     */
-	public String[] getModelProviderIds() {
-		return modelProviderIds;
-	}
-
-	/**
-     * Sets the model provider ids that are known to the client
-     * that instantiated this operation. Any potential side effects
-     * reported by these models during validation will be ignored.
-     * 
-	 * @param modelProviderIds the model providers known to the client
-	 * who is using this operation.
-	 * @since 3.2
-	 */
-	public void setModelProviderIds(String[] modelProviderIds) {
-		this.modelProviderIds = modelProviderIds;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/ScrubLocalAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/ScrubLocalAction.java
deleted file mode 100644
index dbd3e76..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/ScrubLocalAction.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.actions;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-
-/**
- * Standard action for scrubbing the local content in the local file system of
- * the selected resources and all of their descendents.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @deprecated This class is obsolete; there is no support in the workspace
- * for scrubbing local content.
- */
-public class ScrubLocalAction extends WorkspaceAction {
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = "org.eclipse.ui.ScrubLocalAction";//$NON-NLS-1$
-
-    /**
-     * Creates a new action.
-     *
-     * @param shell the shell for any dialogs
-     */
-    public ScrubLocalAction(Shell shell) {
-        super(shell, IDEWorkbenchMessages.ScrubLocalAction_text);
-        setToolTipText(IDEWorkbenchMessages.ScrubLocalAction_toolTip);
-        setId(ID);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.SCRUB_LOCAL_ACTION);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getOperationMessage() {
-        return IDEWorkbenchMessages.ScrubLocalAction_progress;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getProblemsMessage() {
-        return IDEWorkbenchMessages.ScrubLocalAction_problemsMessage;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected String getProblemsTitle() {
-        return IDEWorkbenchMessages.ScrubLocalAction_problemsTitle;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkspaceAction.
-     */
-    protected void invokeOperation(IResource resource, IProgressMonitor monitor)
-            throws CoreException {
-        resource.setLocal(false, IResource.DEPTH_INFINITE, monitor);
-    }
-
-    /**
-     * The <code>ScrubLocalAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method ensures that this action is
-     * disabled if any of the selections are not resources.
-     */
-    protected boolean updateSelection(IStructuredSelection s) {
-        return super.updateSelection(s)
-                && getSelectedNonResources().size() == 0;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/SelectionListenerAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/SelectionListenerAction.java
deleted file mode 100644
index cc2d69f..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/SelectionListenerAction.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.actions;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.resources.mapping.ResourceMappingContext;
-import org.eclipse.core.resources.mapping.ResourceTraversal;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * The abstract superclass for resource-based actions that listen to selection
- * change events. This implementation tracks the current selection (see
- * <code>getStructuredSelection</code>) and provides a convenient place to
- * monitor selection changes that could affect the availability of the action.
- * <p>
- * Subclasses must implement the following <code>IAction</code> method:
- * <ul>
- * <li><code>run</code> - to do the action's work</li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may extend the <code>updateSelection</code> method to update the
- * action determine its availability based on the current selection.
- * </p>
- * <p>
- * The object instantiating the subclass is responsible for registering the
- * instance with a selection provider. Alternatively, the object can notify the
- * subclass instance directly of a selection change using the methods:
- * <ul>
- * <li><code>selectionChanged(IStructuredSelection)</code> - passing the
- * selection</li>
- * <li><code>selectionChanged(ISelectionChangedEvent)</code> - passing the
- * selection change event</li>
- * </ul>
- * </p>
- */
-public abstract class SelectionListenerAction extends
-		BaseSelectionListenerAction {
-	/**
-	 * Empty list that is immutable.
-	 */
-	private static final List EMPTY_LIST = Arrays.asList(new Object[0]);
-
-	/**
-	 * Indicates whether the selection has changes since <code>resources</code>
-	 * and <code>nonResources</code> were computed.
-	 */
-	private boolean selectionDirty = true;
-
-	/**
-	 * The list of resource elements in the current selection (element type:
-	 * <code>IResource</code>); meaningful only when
-	 * <code>selectionDirty == false</code>.
-	 */
-	private List resources;
-
-	/**
-	 * The list of non-resource elements in the current selection (element type:
-	 * <code>Object</code>); meaningful only when
-	 * <code>selectionDirty == false</code>.
-	 */
-	private List nonResources;
-
-	/**
-	 * Creates a new action with the given text.
-	 * 
-	 * @param text
-	 *            the string used as the text for the action, or
-	 *            <code>null</code> if there is no text
-	 */
-	protected SelectionListenerAction(String text) {
-		super(text);
-	}
-
-	/**
-	 * The <code>SelectionListenerAction</code> implementation of this
-	 * <code>BaseSelectionListenerAction</code> method clears the cached
-	 * resources and non-resources.
-	 */
-	protected void clearCache() {
-		selectionDirty = true;
-		// clear out the lists in case computeResources does not get called
-		// immediately
-		resources = null;
-		nonResources = null;
-	}
-
-	/**
-	 * Extracts <code>IResource</code>s from the current selection and adds
-	 * them to the resources list, and the rest into the non-resources list.
-	 */
-	private final void computeResources() {
-		resources = null;
-		nonResources = null;
-
-		for (Iterator e = getStructuredSelection().iterator(); e.hasNext();) {
-			Object next = e.next();
-			if (next instanceof IResource) {
-				if (resources == null) {
-					// assume selection contains mostly resources most times
-					resources = new ArrayList(getStructuredSelection().size());
-				}
-				resources.add(next);
-				continue;
-			} else if (next instanceof IAdaptable) {
-				Object resource = ((IAdaptable) next)
-						.getAdapter(IResource.class);
-				if (resource != null) {
-					if (resources == null) {
-						// assume selection contains mostly resources most times
-						resources = new ArrayList(getStructuredSelection()
-								.size());
-					}
-					resources.add(resource);
-					continue;
-				}
-			} else {
-
-				boolean resourcesFoundForThisSelection = false;
-
-				IAdapterManager adapterManager = Platform.getAdapterManager();
-				ResourceMapping mapping = (ResourceMapping) adapterManager
-						.getAdapter(next, ResourceMapping.class);
-
-				if (mapping != null) {
-
-					ResourceTraversal[] traversals = null;
-					try {
-						traversals = mapping.getTraversals(
-								ResourceMappingContext.LOCAL_CONTEXT,
-								new NullProgressMonitor());
-					} catch (CoreException exception) {
-						IDEWorkbenchPlugin.log(exception.getLocalizedMessage(),
-								exception.getStatus());
-					}
-
-					if (traversals != null) {
-
-						for (int i = 0; i < traversals.length; i++) {
-
-							IResource[] traversalResources = traversals[i]
-									.getResources();
-
-							if (traversalResources != null) {
-
-								resourcesFoundForThisSelection = true;
-
-								if (resources == null) {
-									resources = new ArrayList(
-											getStructuredSelection().size());
-								}
-
-								for (int j = 0; j < traversalResources.length; j++) {
-									resources.add(traversalResources[j]);
-								}// for
-
-							}// if
-
-						}// for
-
-					}// if
-
-				}// if
-
-				if (resourcesFoundForThisSelection) {
-					continue;
-				}
-			}
-
-			if (nonResources == null) {
-				// assume selection contains mostly resources most times
-				nonResources = new ArrayList(1);
-			}
-			nonResources.add(next);
-		}
-	}
-
-	/**
-	 * Returns the elements in the current selection that are not
-	 * <code>IResource</code>s.
-	 * 
-	 * @return list of elements (element type: <code>Object</code>)
-	 */
-	protected List getSelectedNonResources() {
-		// recompute if selection has changed.
-		if (selectionDirty) {
-			computeResources();
-			selectionDirty = false;
-		}
-
-		if (nonResources == null) {
-			return EMPTY_LIST;
-		}
-		
-		return nonResources;
-	}
-
-	/**
-	 * Returns the elements in the current selection that are
-	 * <code>IResource</code>s.
-	 * 
-	 * @return list of resource elements (element type: <code>IResource</code>)
-	 */
-	protected List getSelectedResources() {
-		// recompute if selection has changed.
-		if (selectionDirty) {
-			computeResources();
-			selectionDirty = false;
-		}
-
-		if (resources == null) {
-			return EMPTY_LIST;
-		}
-		return resources;
-	}
-
-	/**
-	 * Returns whether the type of the given resource is among those in the
-	 * given resource type mask.
-	 * 
-	 * @param resource
-	 *            the resource
-	 * @param resourceMask
-	 *            a bitwise OR of resource types: <code>IResource</code>.{<code>FILE</code>,
-	 *            <code>FOLDER</code>, <code>PROJECT</code>,
-	 *            <code>ROOT</code>}
-	 * @return <code>true</code> if the resource type matches, and
-	 *         <code>false</code> otherwise
-	 * @see IResource
-	 */
-	protected boolean resourceIsType(IResource resource, int resourceMask) {
-		return (resource.getType() & resourceMask) != 0;
-	}
-
-	/**
-	 * Returns whether the current selection consists entirely of resources
-	 * whose types are among those in the given resource type mask.
-	 * 
-	 * @param resourceMask
-	 *            a bitwise OR of resource types: <code>IResource</code>.{<code>FILE</code>,
-	 *            <code>FOLDER</code>, <code>PROJECT</code>,
-	 *            <code>ROOT</code>}
-	 * @return <code>true</code> if all resources in the current selection are
-	 *         of the specified types or if the current selection is empty, and
-	 *         <code>false</code> if some elements are resources of a
-	 *         different type or not resources
-	 * @see IResource
-	 */
-	protected boolean selectionIsOfType(int resourceMask) {
-		if (getSelectedNonResources().size() > 0) {
-			return false;
-		}
-
-		for (Iterator e = getSelectedResources().iterator(); e.hasNext();) {
-			IResource next = (IResource) e.next();
-			if (!resourceIsType(next, resourceMask)) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/TextActionHandler.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/TextActionHandler.java
deleted file mode 100644
index 847f4a3..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/TextActionHandler.java
+++ /dev/null
@@ -1,556 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.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.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-
-/**
- * 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 {
-    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 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(IDEWorkbenchMessages.Delete);
-            setId("TextDeleteActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-					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(IDEWorkbenchMessages.Cut);
-            setId("TextCutActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-					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(IDEWorkbenchMessages.Copy);
-            setId("TextCopyActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-					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(IDEWorkbenchMessages.Paste);
-            setId("TextPasteActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-					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(IDEWorkbenchMessages.TextAction_selectAll);
-            setId("TextSelectAllActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-					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 actionBar the action bar to register global
-     *    action handlers for Cut, Copy, Paste, Delete, 
-     * 	  and Select All
-     */
-    public TextActionHandler(IActionBars actionBar) {
-        super();
-        actionBar.setGlobalActionHandler(ActionFactory.CUT.getId(),
-                textCutAction);
-        actionBar.setGlobalActionHandler(ActionFactory.COPY.getId(),
-                textCopyAction);
-        actionBar.setGlobalActionHandler(ActionFactory.PASTE.getId(),
-                textPasteAction);
-        actionBar.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(),
-                textSelectAllAction);
-        actionBar.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.ide/extensions/org/eclipse/ui/actions/WorkspaceAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/WorkspaceAction.java
deleted file mode 100644
index 2a506f2..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/WorkspaceAction.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-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.MultiStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.StatusUtil;
-import org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog;
-
-/**
- * The abstract superclass for actions which invoke commands 
- * implemented in org.eclipse.core.* on a set of selected resources.
- * 
- * It iterates over all selected resources; errors are collected and
- * displayed to the user via a problems dialog at the end of the operation.
- * User requests to cancel the operation are passed along to the core.
- * <p>
- * Subclasses must implement the following methods:
- * <ul>
- *   <li><code>invokeOperation</code> - to perform the operation on one of the 
- *      selected resources</li>
- *   <li><code>getOperationMessage</code> - to furnish a title for the progress
- *      dialog</li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may override the following methods:
- * <ul>
- *   <li><code>shouldPerformResourcePruning</code> - reimplement to turn off</li>
- *   <li><code>updateSelection</code> - extend to refine enablement criteria</li>
- *   <li><code>getProblemsTitle</code> - reimplement to furnish a title for the
- *      problems dialog</li>
- *   <li><code>getProblemsMessage</code> - reimplement to furnish a message for 
- *      the problems dialog</li>
- *   <li><code>run</code> - extend to </li>
- * </ul>
- * </p>
- */
-public abstract class WorkspaceAction extends SelectionListenerAction {
-    /**
-     * The shell in which to show the progress and problems dialog.
-     */
-    private final Shell shell;
-
-    /**
-     * Creates a new action with the given text.
-     *
-     * @param shell the shell (for the modal progress dialog and error messages)
-     * @param text the string used as the text for the action, 
-     *   or <code>null</code> if there is no text
-     */
-    protected WorkspaceAction(Shell shell, String text) {
-        super(text);
-        if (shell == null) {
-            throw new IllegalArgumentException();
-        }
-        this.shell = shell;
-    }
-
-    /**
-     * Opens an error dialog to display the given message.
-     * <p>
-     * Note that this method must be called from UI thread.
-     * </p>
-     *
-     * @param message the message
-     */
-    void displayError(String message) {
-        if (message == null) {
-            message = IDEWorkbenchMessages.WorkbenchAction_internalError;
-        }
-        MessageDialog.openError(shell, getProblemsTitle(), message);
-    }
-
-    /**
-     * Runs <code>invokeOperation</code> on each of the selected resources, reporting
-     * progress and fielding cancel requests from the given progress monitor.
-     * <p>
-     * Note that if an action is running in the background, the same action instance
-     * can be executed multiple times concurrently.  This method must not access
-     * or modify any mutable state on action class.
-     *
-     * @param monitor a progress monitor
-     * @return The result of the execution
-     */
-    final IStatus execute(List resources, IProgressMonitor monitor) {
-    	MultiStatus errors = null;
-        //1FTIMQN: ITPCORE:WIN - clients required to do too much iteration work
-        if (shouldPerformResourcePruning()) {
-            resources = pruneResources(resources);
-        }
-        // 1FV0B3Y: ITPUI:ALL - sub progress monitors granularity issues
-        monitor.beginTask("", resources.size() * 1000); //$NON-NLS-1$
-        // Fix for bug 31768 - Don't provide a task name in beginTask
-        // as it will be appended to each subTask message. Need to
-        // call setTaskName as its the only was to assure the task name is
-        // set in the monitor (see bug 31824)
-        monitor.setTaskName(getOperationMessage());
-        Iterator resourcesEnum = resources.iterator();
-        try {
-            while (resourcesEnum.hasNext()) {
-                IResource resource = (IResource) resourcesEnum.next();
-                try {
-                    // 1FV0B3Y: ITPUI:ALL - sub progress monitors granularity issues
-                    invokeOperation(resource, new SubProgressMonitor(monitor,
-                            1000));
-                } catch (CoreException e) {
-                    errors = recordError(errors, e);
-                }
-                if (monitor.isCanceled()) {
-					throw new OperationCanceledException();
-				}
-            }
-            return errors == null ? Status.OK_STATUS : errors;
-        } finally {
-            monitor.done();
-        }
-    }
-
-    /**
-     * Returns the string to display for this action's operation.
-     * <p>
-     * Note that this hook method is invoked in a non-UI thread.
-     * </p>
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @return the message
-     * 
-     * @since 3.1
-     */
-    protected abstract String getOperationMessage();
-
-    /**
-     * Returns the string to display for this action's problems dialog.
-     * <p>
-     * The <code>WorkspaceAction</code> implementation of this method returns a
-     * vague message (localized counterpart of something like "The following 
-     * problems occurred."). Subclasses may reimplement to provide something more
-     * suited to the particular action.
-     * </p>
-     *
-     * @return the problems message
-     * 
-     * @since 3.1
-     */
-    protected String getProblemsMessage() {
-        return IDEWorkbenchMessages.WorkbenchAction_problemsMessage;
-    }
-
-    /**
-     * Returns the title for this action's problems dialog.
-     * <p>
-     * The <code>WorkspaceAction</code> implementation of this method returns a
-     * generic title (localized counterpart of "Problems"). Subclasses may 
-     * reimplement to provide something more suited to the particular action.
-     * </p>
-     *
-     * @return the problems dialog title
-     * 
-     * @since 3.1
-     */
-    protected String getProblemsTitle() {
-        return IDEWorkbenchMessages.WorkspaceAction_problemsTitle;
-    }
-
-    /**
-     * Returns the shell for this action. This shell is used for the modal progress
-     * and error dialogs.
-     *
-     * @return the shell
-     */
-    Shell getShell() {
-        return shell;
-    }
-
-    /**
-     * Performs this action's operation on each of the selected resources, reporting
-     * progress to, and fielding cancel requests from, the given progress monitor.
-     * <p>
-     * Note that this method is invoked in a non-UI thread.
-     * </p>
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @param resource one of the selected resources
-     * @param monitor a progress monitor
-     * @exception CoreException if the operation fails
-     * 
-     * @since 3.1
-     */
-    protected abstract void invokeOperation(IResource resource, IProgressMonitor monitor)
-            throws CoreException;
-
-    /**
-     * Returns whether the given resource is a descendent of any of the resources
-     * in the given list.
-     *
-     * @param resources the list of resources (element type: <code>IResource</code>)
-     * @param child the resource to check
-     * @return <code>true</code> if <code>child</code> is a descendent of any of the
-     *   elements of <code>resources</code>
-     */
-    boolean isDescendent(List resources, IResource child) {
-        IResource parent = child.getParent();
-        return parent != null
-                && (resources.contains(parent) || isDescendent(resources,
-                        parent));
-    }
-
-    /**
-     * Performs pruning on the given list of resources, as described in 
-     * <code>shouldPerformResourcePruning</code>.
-     *
-     * @param resourceCollection the list of resources (element type: 
-     *    <code>IResource</code>)
-     * @return the list of resources (element type: <code>IResource</code>)
-     *		after pruning. 
-     * @see #shouldPerformResourcePruning
-     */
-    List pruneResources(List resourceCollection) {
-        List prunedList = new ArrayList(resourceCollection);
-        Iterator elementsEnum = prunedList.iterator();
-        while (elementsEnum.hasNext()) {
-            IResource currentResource = (IResource) elementsEnum.next();
-            if (isDescendent(prunedList, currentResource)) {
-				elementsEnum.remove(); //Removes currentResource
-			}
-        }
-        return prunedList;
-    }
-
-    /**
-     * Records the core exception to be displayed to the user
-     * once the action is finished.
-     *
-     * @param error a <code>CoreException</code>
-     */
-    MultiStatus recordError(MultiStatus errors, CoreException error) {
-        if (errors == null) {
-			errors = new MultiStatus(IDEWorkbenchPlugin.IDE_WORKBENCH,
-                    IStatus.ERROR, getProblemsMessage(), null);
-		}
-        errors.merge(error.getStatus());
-        return errors;
-    }
-
-    /**
-     * The <code>CoreWrapperAction</code> implementation of this <code>IAction</code>
-     * method uses a <code>ProgressMonitorDialog</code> to run the operation. The
-     * operation calls <code>execute</code> (which, in turn, calls 
-     * <code>invokeOperation</code>). Afterwards, any <code>CoreException</code>s
-     * encountered while running the operation are reported to the user via a
-     * problems dialog.
-     * <p>
-     * Subclasses may extend this method.
-     * </p>
-     */
-    public void run() {
-    	final IStatus[] errorStatus = new IStatus[1];
-        try {
-            WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-                public void execute(IProgressMonitor monitor) {
-                    errorStatus[0] = WorkspaceAction.this.execute(getActionResources(), monitor);
-                }
-            };
-            new ProgressMonitorJobsDialog(shell).run(true, true, op);
-        } catch (InterruptedException e) {
-            return;
-        } catch (InvocationTargetException e) {
-            // we catch CoreException in execute(), but unexpected runtime exceptions or errors may still occur
-            String msg = NLS.bind(IDEWorkbenchMessages.WorkspaceAction_logTitle, getClass().getName(), e.getTargetException());
-            IDEWorkbenchPlugin.log(msg, StatusUtil.newStatus(IStatus.ERROR,
-                    msg, e.getTargetException()));
-            displayError(e.getTargetException().getMessage());
-        }
-        // If errors occurred, open an Error dialog & build a multi status error for it
-        if (errorStatus[0] != null && !errorStatus[0].isOK()) {
-            ErrorDialog.openError(shell, getProblemsTitle(), null, // no special message
-                    errorStatus[0]);
-        }
-    }
-
-    /**
-     * Returns whether this action should attempt to optimize the resources being
-     * operated on. This kind of pruning makes sense when the operation has depth
-     * infinity semantics (when the operation is applied explicitly to a resource
-     * then it is also applied implicitly to all the resource's descendents).
-     * <p>
-     * The <code>WorkspaceAction</code> implementation of this method returns
-     * <code>true</code>. Subclasses should reimplement to return <code>false</code>
-     * if pruning is not required.
-     * </p>
-     *
-     * @return <code>true</code> if pruning should be performed, 
-     *   and <code>false</code> if pruning is not desired
-     *   
-     * @since 3.1
-     */
-    protected boolean shouldPerformResourcePruning() {
-        return true;
-    }
-
-    /**
-     * The <code>WorkspaceAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method ensures that this action is
-     * disabled if any of the selected resources are inaccessible. Subclasses may
-     * extend to react to selection changes; however, if the super method returns
-     * <code>false</code>, the overriding method should also return <code>false</code>.
-     */
-    protected boolean updateSelection(IStructuredSelection selection) {
-        if (!super.updateSelection(selection) || selection.isEmpty()) {
-            return false;
-        }
-        for (Iterator i = getSelectedResources().iterator(); i.hasNext();) {
-            IResource r = (IResource) i.next();
-            if (!r.isAccessible()) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Returns the elements that the action is to be performed on.
-     * By default return the selected resources.
-     * <p>
-     * Subclasses may override this method.
-     *
-     * @return list of resource elements (element type: <code>IResource</code>)
-     */
-    protected List getActionResources() {
-        return getSelectedResources();
-    }
-
-    /**
-     * Run the action in the background rather than with the
-     * progress dialog.
-     * @param rule The rule to apply to the background job or
-     * <code>null</code> if there isn't one.
-     */
-    public void runInBackground(ISchedulingRule rule) {
-    	runInBackground(rule, (Object []) null);
-    }
- 
-    /**
-     * Run the action in the background rather than with the
-     * progress dialog.
-     * @param rule The rule to apply to the background job or
-     * <code>null</code> if there isn't one.
-     * @param jobFamily a single family that the job should 
-     * belong to or <code>null</code> if none.
-     * 
-     * @since 3.1
-     */
-    public void runInBackground(ISchedulingRule rule, Object jobFamily) {
-    	if (jobFamily == null) {
-			runInBackground(rule, (Object []) null);
-		} else {
-			runInBackground(rule, new Object[] {jobFamily});
-		}
-    }
-    
-    /**
-     * Run the action in the background rather than with the
-     * progress dialog.
-     * @param rule The rule to apply to the background job or
-     * <code>null</code> if there isn't one.
-     * @param jobFamilies the families the job should belong 
-     * to or <code>null</code> if none.
-     * 
-     * @since 3.1
-     */
-    public void runInBackground(ISchedulingRule rule, final Object [] jobFamilies) {
-    	//obtain a copy of the selected resources before the job is forked
-    	final List resources = new ArrayList(getActionResources());
-        Job job = new WorkspaceJob(removeMnemonics(getText())) {
-        	
-        	/* (non-Javadoc)
-			 * @see org.eclipse.core.runtime.jobs.Job#belongsTo(java.lang.Object)
-			 */
-			public boolean belongsTo(Object family) {
-				if (jobFamilies == null || family == null) {
-					return false;
-				}
-				for (int i = 0; i < jobFamilies.length; i++) {
-					if (family.equals(jobFamilies[i])) {
-						return true;
-					}
-				}
-				return false;
-			}
-			
-            /* (non-Javadoc)
-             * @see org.eclipse.core.resources.WorkspaceJob#runInWorkspace(org.eclipse.core.runtime.IProgressMonitor)
-             */
-            public IStatus runInWorkspace(IProgressMonitor monitor) {
-                return WorkspaceAction.this.execute(resources, monitor);
-            }
-        };
-        if (rule != null) {
-			job.setRule(rule);
-		}
-        job.setUser(true);
-        job.schedule();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/WorkspaceModifyDelegatingOperation.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/WorkspaceModifyDelegatingOperation.java
deleted file mode 100644
index d15ff41..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/WorkspaceModifyDelegatingOperation.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.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-
-/**
- * An operation which delegates its work to a runnable that modifies the
- * workspace.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class WorkspaceModifyDelegatingOperation extends
-        WorkspaceModifyOperation {
-
-    /**
-     * The runnable to delegate work to at execution time.
-     */
-    private IRunnableWithProgress content;
-
-    /**
-     * Creates a new operation which will delegate its work to the given
-     * runnable using the provided scheduling rule.
-     * 
-     * @param content
-     *            the runnable to delegate to when this operation is executed
-     * @param rule
-     *            The ISchedulingRule to use or <code>null</code>.
-     */
-    public WorkspaceModifyDelegatingOperation(IRunnableWithProgress content,
-            ISchedulingRule rule) {
-        super(rule);
-        this.content = content;
-    }
-
-    /**
-     * Creates a new operation which will delegate its work to the given
-     * runnable. Schedule using the supplied s
-     * 
-     * @param content
-     *            the runnable to delegate to when this operation is executed
-     */
-    public WorkspaceModifyDelegatingOperation(IRunnableWithProgress content) {
-        super();
-        this.content = content;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on WorkbenchModifyOperation.
-     */
-    protected void execute(IProgressMonitor monitor) throws CoreException,
-            InterruptedException {
-        try {
-            content.run(monitor);
-        } catch (InvocationTargetException e) {
-            if (e.getTargetException() instanceof CoreException) {
-				throw (CoreException) e.getTargetException();
-			}
-            if (e.getTargetException() instanceof RuntimeException) {
-				throw (RuntimeException) e.getTargetException();
-			}
-            if (e.getTargetException() instanceof Error) {
-				throw (Error) e.getTargetException();
-			}
-            e.getTargetException().printStackTrace();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/WorkspaceModifyOperation.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/WorkspaceModifyOperation.java
deleted file mode 100644
index de079b1..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/WorkspaceModifyOperation.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.IThreadListener;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * An operation which potentially makes changes to the workspace. All resource 
- * modification should be performed using this operation. The primary 
- * consequence of using this operation is that events which typically occur as a
- * result of workspace changes (such as the firing of resource deltas, 
- * performance of autobuilds, etc.) are deferred until the outermost operation
- * has successfully completed.
- * <p>
- * If a scheduling rule is provided, the operation will obtain that scheduling
- * rule for the duration of its <code>execute</code> method.  If no scheduling
- * rule is provided, the operation will obtain a scheduling rule that locks
- * the entire workspace for the duration of the operation.
- * </p>
- * <p>
- * Subclasses must implement <code>execute</code> to do the work of the
- * operation.
- * </p>
- * @see ISchedulingRule
- * @see org.eclipse.core.resources.IWorkspace#run(IWorkspaceRunnable, IProgressMonitor)
- *  */
-public abstract class WorkspaceModifyOperation implements IRunnableWithProgress, IThreadListener {
-    private ISchedulingRule rule;
-
-    /**
-     * Creates a new operation.
-     */
-    protected WorkspaceModifyOperation() {
-        this(IDEWorkbenchPlugin.getPluginWorkspace().getRoot());
-    }
-
-    /**
-     * Creates a new operation that will run using the provided
-     * scheduling rule.
-     * @param rule  The ISchedulingRule to use or <code>null</code>.
-     * @since 3.0
-     */
-    protected WorkspaceModifyOperation(ISchedulingRule rule) {
-        this.rule = rule;
-    }
-
-    /**
-     * Performs the steps that are to be treated as a single logical workspace
-     * change.
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @param monitor the progress monitor to use to display progress and field
-     *   user requests to cancel
-     * @exception CoreException if the operation fails due to a CoreException
-     * @exception InvocationTargetException if the operation fails due to an exception other than CoreException
-     * @exception InterruptedException if the operation detects a request to cancel, 
-     *  using <code>IProgressMonitor.isCanceled()</code>, it should exit by throwing 
-     *  <code>InterruptedException</code>.  It is also possible to throw 
-     *  <code>OperationCanceledException</code>, which gets mapped to <code>InterruptedException</code>
-     *  by the <code>run</code> method.
-     */
-    protected abstract void execute(IProgressMonitor monitor)
-            throws CoreException, InvocationTargetException,
-            InterruptedException;
-
-    /**
-     * The <code>WorkspaceModifyOperation</code> implementation of this 
-     * <code>IRunnableWithProgress</code> method initiates a batch of changes by 
-     * invoking the <code>execute</code> method as a workspace runnable 
-     * (<code>IWorkspaceRunnable</code>).
-     */
-    public synchronized final void run(IProgressMonitor monitor)
-            throws InvocationTargetException, InterruptedException {
-        final InvocationTargetException[] iteHolder = new InvocationTargetException[1];
-        try {
-            IWorkspaceRunnable workspaceRunnable = new IWorkspaceRunnable() {
-                public void run(IProgressMonitor pm) throws CoreException {
-                    try {
-                        execute(pm);
-                    } catch (InvocationTargetException e) {
-                        // Pass it outside the workspace runnable
-                        iteHolder[0] = e;
-                    } catch (InterruptedException e) {
-                        // Re-throw as OperationCanceledException, which will be
-                        // caught and re-thrown as InterruptedException below.
-                        throw new OperationCanceledException(e.getMessage());
-                    }
-                    // CoreException and OperationCanceledException are propagated
-                }
-            };
-            IDEWorkbenchPlugin.getPluginWorkspace().run(workspaceRunnable,
-                    rule, IResource.NONE, monitor);
-        } catch (CoreException e) {
-            throw new InvocationTargetException(e);
-        } catch (OperationCanceledException e) {
-            throw new InterruptedException(e.getMessage());
-        }
-        // Re-throw the InvocationTargetException, if any occurred
-        if (iteHolder[0] != null) {
-            throw iteHolder[0];
-        }
-    }
-	/* (non-Javadoc)
-	 * @see IThreadListener#threadChange(Thread);
-	 * @since 3.2
-	 */
-	public void threadChange(Thread thread) {
-		//we must make sure we aren't transferring control away from a thread that
-		//already owns a scheduling rule because this is deadlock prone (bug 105491)
-		if (rule == null) {
-			return;
-		}
-		Job currentJob = Platform.getJobManager().currentJob();
-		if (currentJob == null) {
-			return;
-		}
-		ISchedulingRule currentRule = currentJob.getRule();
-		if (currentRule == null) {
-			return;
-		}
-		throw new IllegalStateException("Cannot fork a thread from a thread owning a rule"); //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerGenerator.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerGenerator.java
deleted file mode 100644
index 31a304c..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerGenerator.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-import org.eclipse.core.resources.IContainer;
-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.IWorkspaceRunnable;
-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.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * For creating folder resources that currently do not exist, 
- * along a given workspace path.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Example usage:
- * <pre>
- * ContainerGenerator gen = new ContainerGenerator(new Path("/A/B"));
- * IContainer res = null;
- * try {
- *   res = gen.getContainer(monitor); // creates project A and folder B if required
- * } catch (CoreException e) {
- *   // handle failure
- * } catch (OperationCanceledException e) {
- *   // handle cancelation
- * }
- * </pre>
- * </p>
- */
-public class ContainerGenerator {
-    private IPath containerFullPath;
-
-    private IContainer container;
-
-    /**
-     * Creates a generator for the container resource (folder or project) at the
-     * given workspace path. Assumes the path has already been validated.
-     * <p>
-     * Call <code>getContainer</code> to create any missing resources along the
-     * path.
-     * </p>
-     *
-     * @param containerPath the workspace path of the container
-     */
-    public ContainerGenerator(IPath containerPath) {
-        super();
-        this.containerFullPath = containerPath;
-    }
-
-    /**
-     * Creates a folder resource for the given folder handle.
-     *
-     * @param folderHandle the handle to create a folder resource
-     * @param monitor the progress monitor to show visual progress
-     * @return the folder handle (<code>folderHandle</code>)
-     * @exception CoreException if the operation fails
-     * @exception OperationCanceledException if the operation is canceled
-     */
-    private IFolder createFolder(IFolder folderHandle, IProgressMonitor monitor)
-            throws CoreException {
-        folderHandle.create(false, true, monitor);
-
-        if (monitor.isCanceled()) {
-			throw new OperationCanceledException();
-		}
-
-        return folderHandle;
-    }
-
-    /**
-     * Creates a folder resource handle for the folder with the given name.
-     * This method does not create the folder resource; this is the responsibility
-     * of <code>createFolder</code>.
-     *
-     * @param container the resource container
-     * @param folderName the name of the folder
-     * @return the new folder resource handle
-     */
-    private IFolder createFolderHandle(IContainer container, String folderName) {
-        return container.getFolder(new Path(folderName));
-    }
-
-    /**
-     * Creates a project resource for the given project handle.
-     *
-     * @param projectHandle the handle to create a project resource
-     * @param monitor the progress monitor to show visual progress
-     * @return the project handle (<code>projectHandle</code>)
-     * @exception CoreException if the operation fails
-     * @exception OperationCanceledException if the operation is canceled
-     */
-    private IProject createProject(IProject projectHandle,
-            IProgressMonitor monitor) throws CoreException {
-        try {
-            monitor.beginTask("", 2000);//$NON-NLS-1$
-
-            projectHandle.create(new SubProgressMonitor(monitor, 1000));
-            if (monitor.isCanceled()) {
-				throw new OperationCanceledException();
-			}
-
-            projectHandle.open(new SubProgressMonitor(monitor, 1000));
-            if (monitor.isCanceled()) {
-				throw new OperationCanceledException();
-			}
-        } finally {
-            monitor.done();
-        }
-
-        return projectHandle;
-    }
-
-    /**
-     * Creates a project resource handle for the project with the given name.
-     * This method does not create the project resource; this is the responsibility
-     * of <code>createProject</code>.
-     *
-     * @param root the workspace root resource
-     * @param projectName the name of the project
-     * @return the new project resource handle
-     */
-    private IProject createProjectHandle(IWorkspaceRoot root, String projectName) {
-        return root.getProject(projectName);
-    }
-
-    /**
-     * Ensures that this generator's container resource exists. Creates any missing
-     * resource containers along the path; does nothing if the container resource
-     * already exists.
-     * <p>
-     * Note: This method should be called within a workspace modify operation since
-     * it may create resources.
-     * </p>
-     *
-     * @param monitor a progress monitor
-     * @return the container resource
-     * @exception CoreException if the operation fails
-     * @exception OperationCanceledException if the operation is canceled
-     */
-    public IContainer generateContainer(IProgressMonitor monitor)
-            throws CoreException {
-        IDEWorkbenchPlugin.getPluginWorkspace().run(new IWorkspaceRunnable() {
-            public void run(IProgressMonitor monitor) throws CoreException {
-                monitor
-                        .beginTask(
-                                IDEWorkbenchMessages.ContainerGenerator_progressMessage, 1000 * containerFullPath.segmentCount());
-                if (container != null) {
-					return;
-				}
-
-                // Does the container exist already?
-                IWorkspaceRoot root = getWorkspaceRoot();
-                container = (IContainer) root.findMember(containerFullPath);
-                if (container != null) {
-					return;
-				}
-
-                // Create the container for the given path
-                container = root;
-                for (int i = 0; i < containerFullPath.segmentCount(); i++) {
-                    String currentSegment = containerFullPath.segment(i);
-                    IResource resource = container.findMember(currentSegment);
-                    if (resource != null) {
-                    	if (resource.getType() == IResource.FILE) {
-                    		String msg = NLS.bind(IDEWorkbenchMessages.ContainerGenerator_pathOccupied, resource.getFullPath().makeRelative());
-                    		throw new CoreException(new Status(IStatus.ERROR, IDEWorkbenchPlugin.IDE_WORKBENCH, 1, msg, null));
-                    	}
-                        container = (IContainer) resource;
-                        monitor.worked(1000);
-                    } else {
-                        if (i == 0) {
-                            IProject projectHandle = createProjectHandle(root,
-                                    currentSegment);
-                            container = createProject(projectHandle,
-                                    new SubProgressMonitor(monitor, 1000));
-                        } else {
-                            IFolder folderHandle = createFolderHandle(
-                                    container, currentSegment);
-                            container = createFolder(folderHandle,
-                                    new SubProgressMonitor(monitor, 1000));
-                        }
-                    }
-                }
-            }
-        }, null, IResource.NONE, monitor);
-        return container;
-    }
-
-    /**
-     * Returns the workspace root resource handle.
-     *
-     * @return the workspace root resource handle
-     */
-    private IWorkspaceRoot getWorkspaceRoot() {
-        return IDEWorkbenchPlugin.getPluginWorkspace().getRoot();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerSelectionDialog.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerSelectionDialog.java
deleted file mode 100644
index cf967eb..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerSelectionDialog.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 
- *   Sebastian Davids <sdavids@gmx.de> - Fix for bug 19346 - Dialog
- *     font should be activated and used by other components.
- *******************************************************************************/
-
-package org.eclipse.ui.dialogs;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.resource.JFaceColors;
-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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.misc.ContainerSelectionGroup;
-
-/**
- * A standard selection dialog which solicits a container resource from the user.
- * The <code>getResult</code> method returns the selected container resource.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * ContainerSelectionDialog dialog =
- *    new ContainerSelectionDialog(getShell(), initialSelection, allowNewContainerName(), msg);
- *	dialog.open();
- *	Object[] result = dialog.getResult();
- * </pre> 	
- * </p>
- */
-public class ContainerSelectionDialog extends SelectionDialog {
-    // the widget group;
-    ContainerSelectionGroup group;
-
-    // the root resource to populate the viewer with
-    private IContainer initialSelection;
-
-    // allow the user to type in a new container name
-    private boolean allowNewContainerName = true;
-
-    // the validation message
-    Label statusMessage;
-
-    //for validating the selection
-    ISelectionValidator validator;
-
-    // show closed projects by default
-    private boolean showClosedProjects = true;
-
-    /**
-     * Creates a resource container selection dialog rooted at the given resource.
-     * All selections are considered valid. 
-     *
-     * @param parentShell the parent shell
-     * @param initialRoot the initial selection in the tree
-     * @param allowNewContainerName <code>true</code> to enable the user to type in
-     *  a new container name, and <code>false</code> to restrict the user to just
-     *  selecting from existing ones
-     * @param message the message to be displayed at the top of this dialog, or
-     *    <code>null</code> to display a default message
-     */
-    public ContainerSelectionDialog(Shell parentShell, IContainer initialRoot,
-            boolean allowNewContainerName, String message) {
-        super(parentShell);
-        setTitle(IDEWorkbenchMessages.ContainerSelectionDialog_title);
-        this.initialSelection = initialRoot;
-        this.allowNewContainerName = allowNewContainerName;
-        if (message != null) {
-			setMessage(message);
-		} else {
-			setMessage(IDEWorkbenchMessages.ContainerSelectionDialog_message);
-		}
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-    }
-
-    /* (non-Javadoc)
-     * Method declared in Window.
-     */
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        PlatformUI.getWorkbench().getHelpSystem()
-                .setHelp(shell, IIDEHelpContextIds.CONTAINER_SELECTION_DIALOG);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected Control createDialogArea(Composite parent) {
-        // create composite 
-        Composite area = (Composite) super.createDialogArea(parent);
-
-        Listener listener = new Listener() {
-            public void handleEvent(Event event) {
-                if (statusMessage != null && validator != null) {
-                    String errorMsg = validator.isValid(group
-                            .getContainerFullPath());
-                    if (errorMsg == null || errorMsg.equals("")) { //$NON-NLS-1$
-                        statusMessage.setText(""); //$NON-NLS-1$
-                        getOkButton().setEnabled(true);
-                    } else {
-                        statusMessage.setForeground(JFaceColors
-                                .getErrorText(statusMessage.getDisplay()));
-                        statusMessage.setText(errorMsg);
-                        getOkButton().setEnabled(false);
-                    }
-                }
-            }
-        };
-
-        // container selection group
-        group = new ContainerSelectionGroup(area, listener,
-                allowNewContainerName, getMessage(), showClosedProjects);
-        if (initialSelection != null) {
-            group.setSelectedContainer(initialSelection);
-        }
-
-        statusMessage = new Label(parent, SWT.NONE);
-        statusMessage.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        statusMessage.setFont(parent.getFont());
-
-        return dialogArea;
-    }
-
-    /**
-     * The <code>ContainerSelectionDialog</code> implementation of this 
-     * <code>Dialog</code> method builds a list of the selected resource containers
-     * for later retrieval by the client and closes this dialog.
-     */
-    protected void okPressed() {
-
-        List chosenContainerPathList = new ArrayList();
-        IPath returnValue = group.getContainerFullPath();
-        if (returnValue != null) {
-			chosenContainerPathList.add(returnValue);
-		}
-        setResult(chosenContainerPathList);
-        super.okPressed();
-    }
-
-    /**
-     * Sets the validator to use.  
-     * 
-     * @param validator A selection validator
-     */
-    public void setValidator(ISelectionValidator validator) {
-        this.validator = validator;
-    }
-
-    /**
-     * Set whether or not closed projects should be shown
-     * in the selection dialog.
-     * 
-     * @param show Whether or not to show closed projects.
-     */
-    public void showClosedProjects(boolean show) {
-        this.showClosedProjects = show;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/FileSelectionDialog.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/FileSelectionDialog.java
deleted file mode 100644
index c965592..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/FileSelectionDialog.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 
- *   Sebastian Davids <sdavids@gmx.de> - Fix for bug 19346 - Dialog
- *      font should be activated and used by other components.
- *******************************************************************************/
-
-package org.eclipse.ui.dialogs;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.SWT;
-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.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.misc.CheckboxTreeAndListGroup;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.model.WorkbenchViewerComparator;
-
-/**
- * A standard file selection dialog which solicits a list of files from the user.
- * The <code>getResult</code> method returns the selected files.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- *	FileSelectionDialog dialog = 
- *		new FileSelectionDialog(getShell(), rootElement, msg);
- *	dialog.setInitialSelections(selectedResources);
- *	dialog.open();
- *	return dialog.getResult();
- * </pre>
- * </p>
- * @deprecated Use org.eclipse.swt.widgets.FileDialog,
- */
-public class FileSelectionDialog extends SelectionDialog {
-    // the root file representative to populate the viewer with
-    private FileSystemElement root;
-
-    // the visual selection widget group
-    CheckboxTreeAndListGroup selectionGroup;
-
-    // expand all items in the tree view on dialog open
-    private boolean expandAllOnOpen = false;
-
-    // sizing constants
-    private static final int SIZING_SELECTION_WIDGET_WIDTH = 500;
-
-    private static final int SIZING_SELECTION_WIDGET_HEIGHT = 250;
-
-    /**
-     * Creates a file selection dialog rooted at the given file system element.
-     *
-     * @param parentShell the parent shell
-     * @param fileSystemElement the root element to populate this dialog with
-     * @param message the message to be displayed at the top of this dialog, or
-     *    <code>null</code> to display a default message
-     */
-    public FileSelectionDialog(Shell parentShell,
-            FileSystemElement fileSystemElement, String message) {
-        super(parentShell);
-        setTitle(IDEWorkbenchMessages.FileSelectionDialog_title);
-        root = fileSystemElement;
-        if (message != null) {
-			setMessage(message);
-		} else {
-			setMessage(IDEWorkbenchMessages.FileSelectionDialog_message);
-		}
-    }
-
-    /**
-     * Add the selection and deselection buttons to the dialog.
-     * @param composite org.eclipse.swt.widgets.Composite
-     */
-    private void addSelectionButtons(Composite composite) {
-
-        Composite buttonComposite = new Composite(composite, SWT.RIGHT);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        buttonComposite.setLayout(layout);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END);
-        composite.setData(data);
-
-        Button selectButton = new Button(buttonComposite, SWT.PUSH);
-        selectButton.setText(SELECT_ALL_TITLE);
-        SelectionListener listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                selectionGroup.setAllSelections(true);
-            }
-        };
-        selectButton.addSelectionListener(listener);
-
-        Button deselectButton = new Button(buttonComposite, SWT.PUSH);
-        deselectButton.setText(DESELECT_ALL_TITLE);
-        listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                selectionGroup.setAllSelections(false);
-
-            }
-        };
-        deselectButton.addSelectionListener(listener);
-
-    }
-
-    /**
-     * Visually checks the previously-specified elements in the container (left)
-     * portion of this dialog's file selection viewer.
-     */
-    private void checkInitialSelections() {
-        Iterator itemsToCheck = getInitialElementSelections().iterator();
-
-        while (itemsToCheck.hasNext()) {
-            FileSystemElement currentElement = (FileSystemElement) itemsToCheck
-                    .next();
-
-            if (currentElement.isDirectory()) {
-				selectionGroup.initialCheckTreeItem(currentElement);
-			} else {
-				selectionGroup.initialCheckListItem(currentElement);
-			}
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared in Window.
-     */
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(shell,
-				IIDEHelpContextIds.FILE_SELECTION_DIALOG);
-    }
-
-    public void create() {
-        super.create();
-        initializeDialog();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected Control createDialogArea(Composite parent) {
-        // page group
-        Composite composite = (Composite) super.createDialogArea(parent);
-
-        createMessageArea(composite);
-
-        // Create a fake parent of the root to be the dialog input element.
-        // Use an empty label so that display of the element's full name
-        // doesn't include a confusing label
-        FileSystemElement input = new FileSystemElement("", null, true);//$NON-NLS-1$
-        input.addChild(root);
-        root.setParent(input);
-
-        selectionGroup = new CheckboxTreeAndListGroup(composite, input,
-                getFolderProvider(), new WorkbenchLabelProvider(),
-                getFileProvider(), new WorkbenchLabelProvider(), SWT.NONE,
-                SIZING_SELECTION_WIDGET_WIDTH, // since this page has no other significantly-sized
-                SIZING_SELECTION_WIDGET_HEIGHT); // widgets we need to hardcode the combined widget's
-        // size, otherwise it will open too small
-
-        ICheckStateListener listener = new ICheckStateListener() {
-            public void checkStateChanged(CheckStateChangedEvent event) {
-                getOkButton().setEnabled(
-                        selectionGroup.getCheckedElementCount() > 0);
-            }
-        };
-
-        WorkbenchViewerComparator comparator = new WorkbenchViewerComparator();
-        selectionGroup.setTreeComparator(comparator);
-        selectionGroup.setListComparator(comparator);
-        selectionGroup.addCheckStateListener(listener);
-
-        addSelectionButtons(composite);
-
-        return composite;
-    }
-
-    /**
-     * Returns whether the tree view of the file system element
-     * will be fully expanded when the dialog is opened.
-     *
-     * @return true to expand all on dialog open, false otherwise.
-     */
-    public boolean getExpandAllOnOpen() {
-        return expandAllOnOpen;
-    }
-
-    /**
-     * Returns a content provider for <code>FileSystemElement</code>s that returns 
-     * only files as children.
-     */
-    private ITreeContentProvider getFileProvider() {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object o) {
-                if (o instanceof FileSystemElement) {
-                    return ((FileSystemElement) o).getFiles().getChildren(o);
-                }
-                return new Object[0];
-            }
-        };
-    }
-
-    /**
-     * Returns a content provider for <code>FileSystemElement</code>s that returns 
-     * only folders as children.
-     */
-    private ITreeContentProvider getFolderProvider() {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object o) {
-                if (o instanceof FileSystemElement) {
-                    return ((FileSystemElement) o).getFolders().getChildren(o);
-                }
-                return new Object[0];
-            }
-        };
-    }
-
-    /**
-     * Initializes this dialog's controls.
-     */
-    private void initializeDialog() {
-        // initialize page	
-        if (getInitialElementSelections().isEmpty()) {
-			getOkButton().setEnabled(false);
-		} else {
-			checkInitialSelections();
-		}
-        selectionGroup.aboutToOpen();
-        if (expandAllOnOpen) {
-			selectionGroup.expandAll();
-		}
-    }
-
-    /**
-     * The <code>FileSelectionDialog</code> implementation of this
-     * <code>Dialog</code> method builds a list of the selected files for later 
-     * retrieval by the client and closes this dialog.
-     */
-    protected void okPressed() {
-        Iterator resultEnum = selectionGroup.getAllCheckedListItems();
-        ArrayList list = new ArrayList();
-        while (resultEnum.hasNext()) {
-			list.add(resultEnum.next());
-		}
-        setResult(list);
-        super.okPressed();
-    }
-
-    /**
-     * Set whether the tree view of the file system element
-     * will be fully expanded when the dialog is opened.
-     *
-     * @param expandAll true to expand all on dialog open, false otherwise.
-     */
-    public void setExpandAllOnOpen(boolean expandAll) {
-        expandAllOnOpen = expandAll;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/FilteredResourcesSelectionDialog.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/FilteredResourcesSelectionDialog.java
deleted file mode 100644
index 0c59bb0..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/FilteredResourcesSelectionDialog.java
+++ /dev/null
@@ -1,838 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceProxy;
-import org.eclipse.core.resources.IResourceProxyVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ResourceWorkingSetFilter;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.actions.WorkingSetFilterActionGroup;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.model.ResourceFactory;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-import com.ibm.icu.text.Collator;
-
-/**
- * Shows a list of resources to the user with a text entry field for a string
- * pattern used to filter the list of resources.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- */
-public class FilteredResourcesSelectionDialog extends
-		FilteredItemsSelectionDialog {
-
-	private static final String DIALOG_SETTINGS = "org.eclipse.ui.dialogs.ResourceSearchDialog"; //$NON-NLS-1$
-
-	private static final String WORKINGS_SET_SETTINGS = "WorkingSet"; //$NON-NLS-1$
-
-	private static final String SHOW_DERIVED = "ShowDerived"; //$NON-NLS-1$
-
-	private ShowDerivedResourcesAction showDerivedResourcesAction;
-
-	private ResourceSearchItemLabelProvider resourceSearchItemLabelProvider;
-
-	private DecoratingLabelProvider detailsLabelProvider;
-
-	private WorkingSetFilterActionGroup workingSetFilterActionGroup;
-
-	private CustomWorkingSetFilter workingSetFilter = new CustomWorkingSetFilter();
-
-	private String title;
-
-	private IContainer container;
-
-	private int typeMask;
-
-	/**
-	 * Creates a new instance of the class
-	 * 
-	 * @param shell
-	 *            the parent shell
-	 * @param multi
-	 *            the multi selection flag
-	 * @param container
-	 *            the container
-	 * @param typesMask
-	 *            the types mask
-	 */
-	public FilteredResourcesSelectionDialog(Shell shell, boolean multi,
-			IContainer container, int typesMask) {
-		super(shell, multi);
-
-		setTitle(IDEWorkbenchMessages.OpenResourceDialog_title);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(shell,
-				IIDEHelpContextIds.OPEN_RESOURCE_DIALOG);
-
-		this.container = container;
-		this.typeMask = typesMask;
-
-		resourceSearchItemLabelProvider = new ResourceSearchItemLabelProvider();
-
-		detailsLabelProvider = new DecoratingLabelProvider(
-				new CustomWorkbenchLabelProvider(), PlatformUI.getWorkbench()
-						.getDecoratorManager().getLabelDecorator());
-
-		setListLabelProvider(resourceSearchItemLabelProvider);
-		setDetailsLabelProvider(detailsLabelProvider);
-	}
-
-	public void setTitle(String title) {
-		super.setTitle(title);
-		this.title = title;
-	}
-
-	private void setTitleLabel(String text) {
-		if (text == null || text.length() == 0) {
-			getShell().setText(title);
-		} else {
-			getShell().setText(title + " - " + text); //$NON-NLS-1$
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.AbstractSearchDialog#getDialogSettings()
-	 */
-	protected IDialogSettings getDialogSettings() {
-		IDialogSettings settings = IDEWorkbenchPlugin.getDefault()
-				.getDialogSettings().getSection(DIALOG_SETTINGS);
-
-		if (settings == null) {
-			settings = IDEWorkbenchPlugin.getDefault().getDialogSettings()
-					.addNewSection(DIALOG_SETTINGS);
-		}
-
-		return settings;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.AbstractSearchDialog#storeDialog(org.eclipse.jface.dialogs.IDialogSettings)
-	 */
-	protected void storeDialog(IDialogSettings settings) {
-		super.storeDialog(settings);
-
-		settings.put(SHOW_DERIVED, showDerivedResourcesAction.isChecked());
-
-		XMLMemento memento = XMLMemento.createWriteRoot("workingSet"); //$NON-NLS-1$
-		workingSetFilterActionGroup.saveState(memento);
-		workingSetFilterActionGroup.dispose();
-		StringWriter writer = new StringWriter();
-		try {
-			memento.save(writer);
-			settings.put(WORKINGS_SET_SETTINGS, writer.getBuffer().toString());
-		} catch (IOException e) {
-			IDEWorkbenchPlugin.log("Problem while storing dialog settings", e); //$NON-NLS-1$
-			// don't do anything. Simply don't store the settings
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.AbstractSearchDialog#restoreDialog(org.eclipse.jface.dialogs.IDialogSettings)
-	 */
-	protected void restoreDialog(IDialogSettings settings) {
-		super.restoreDialog(settings);
-
-		boolean showDerived = settings.getBoolean(SHOW_DERIVED);
-		showDerivedResourcesAction.setChecked(showDerived);
-		setSearchDerived(showDerived);
-
-		String setting = settings.get(WORKINGS_SET_SETTINGS);
-		if (setting != null) {
-			try {
-				IMemento memento = XMLMemento.createReadRoot(new StringReader(
-						setting));
-				workingSetFilterActionGroup.restoreState(memento);
-			} catch (WorkbenchException e) {
-				IDEWorkbenchPlugin.log(
-						"Problem while restoring dialog settings", e); //$NON-NLS-1$
-				// don't do anything. Simply don't restore the settings
-			}
-		}
-
-		IWorkingSet ws = workingSetFilterActionGroup.getWorkingSet();
-
-		setTitleLabel(ws != null ? ws.getLabel() : null);
-		workingSetFilter.setWorkingSet(ws);
-		addListFilter(workingSetFilter);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.AbstractSearchDialog#fillViewMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	protected void fillViewMenu(IMenuManager menuManager) {
-		super.fillViewMenu(menuManager);
-
-		showDerivedResourcesAction = new ShowDerivedResourcesAction();
-		menuManager.add(showDerivedResourcesAction);
-
-		workingSetFilterActionGroup = new WorkingSetFilterActionGroup(
-				getShell(), new IPropertyChangeListener() {
-					public void propertyChange(PropertyChangeEvent event) {
-						String property = event.getProperty();
-
-						if (WorkingSetFilterActionGroup.CHANGE_WORKING_SET
-								.equals(property)) {
-							Object newValue = event.getNewValue();
-
-							if (newValue instanceof IWorkingSet) {
-								workingSetFilter
-										.setWorkingSet((IWorkingSet) newValue);
-								setTitleLabel(((IWorkingSet) newValue)
-										.getLabel());
-							} else if (newValue == null) {
-								workingSetFilter.setWorkingSet(null);
-								setTitleLabel(null);
-							}
-
-							scheduleRefresh();
-						}
-					}
-				});
-
-		menuManager.add(new Separator());
-		workingSetFilterActionGroup.fillContextMenu(menuManager);
-	}
-
-	/**
-	 * Sets the derived flag on the SimpleSearchEngine instance
-	 */
-	private class ShowDerivedResourcesAction extends Action {
-
-		/**
-		 * Creates a new instance of the action.
-		 * 
-		 * @param searchEngine
-		 *            the search engine
-		 */
-		public ShowDerivedResourcesAction() {
-			super(
-					IDEWorkbenchMessages.ResourceSearchDialog_showDerivedResourcesAction,
-					IAction.AS_CHECK_BOX);
-		}
-
-		public void run() {
-			setSearchDerived(isChecked());
-		}
-	}
-
-	private void setSearchDerived(boolean isDerived) {
-
-		setFilter(createFilter(getPattern().trim(), this.container, isDerived,
-				this.typeMask));
-	}
-
-	/**
-	 * A label provider for ResourceDecorator objects. It creates labels with a
-	 * resource full path for duplicates. It uses the Platform UI label
-	 * decorator for providing extra resource info.
-	 * 
-	 * @since 3.3
-	 */
-	private class ResourceSearchItemLabelProvider extends LabelProvider
-			implements ILabelProviderListener {
-
-		// Need to keep our own list of listeners
-		private ListenerList listeners = new ListenerList();
-
-		// Keeps relations between Resource and ResorceDecorator objects.
-		// It is used when the provider want to forward label changed
-		// notification from inner providers.
-		private HashMap map = new HashMap();
-
-		WorkbenchLabelProvider provider = new WorkbenchLabelProvider();
-
-		ILabelDecorator decorator = PlatformUI.getWorkbench()
-				.getDecoratorManager().getLabelDecorator();
-
-		/**
-		 * Creates a new instance of the class
-		 */
-		public ResourceSearchItemLabelProvider() {
-			super();
-			provider.addListener(this);
-			decorator.addListener(this);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
-		 */
-		public Image getImage(Object element) {
-			if (!(element instanceof ResourceSearchItem)) {
-				return super.getImage(element);
-			}
-
-			IResource res = ((ResourceSearchItem) element).getResource();
-			map.put(res, element);
-
-			Image img = provider.getImage(res);
-
-			return decorator.decorateImage(img, res);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-		 */
-		public String getText(Object element) {
-			if (!(element instanceof ResourceSearchItem)) {
-				return super.getText(element);
-			}
-
-			IResource res = ((ResourceSearchItem) element).getResource();
-
-			map.put(res, element);
-
-			String str = res.getName();
-
-			// extra info for duplicates
-			if ((((ResourceSearchItem) element)).isDuplicate())
-				str = str
-						+ " - " + res.getParent().getFullPath().makeRelative().toString(); //$NON-NLS-1$
-
-			return decorator.decorateText(str, res);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.LabelProvider#dispose()
-		 */
-		public void dispose() {
-			provider.removeListener(this);
-			provider.dispose();
-
-			decorator.removeListener(this);
-			decorator.dispose();
-
-			super.dispose();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-		 */
-		public void addListener(ILabelProviderListener listener) {
-			listeners.add(listener);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.LabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-		 */
-		public void removeListener(ILabelProviderListener listener) {
-			listeners.remove(listener);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ILabelProviderListener#labelProviderChanged(org.eclipse.jface.viewers.LabelProviderChangedEvent)
-		 */
-		public void labelProviderChanged(LabelProviderChangedEvent event) {
-			Object[] elements = event.getElements();
-
-			ArrayList items = null;
-
-			if (elements != null) {
-				items = new ArrayList();
-				for (int i = 0; i < elements.length; i++) {
-					if (map.containsKey(elements[i])) {
-						items.add(map.get(elements[i]));
-					}
-				}
-			}
-
-			LabelProviderChangedEvent newEvent = new LabelProviderChangedEvent(
-					this, items != null ? items.toArray() : null);
-
-			Object[] l = listeners.getListeners();
-			for (int i = 0; i < listeners.size(); i++) {
-				((ILabelProviderListener) l[i]).labelProviderChanged(newEvent);
-			}
-		}
-
-		/**
-		 * Clears relations map
-		 */
-		public void reset() {
-			map.clear();
-		}
-	}
-
-	/**
-	 * A label provider for IResource objects. It creates labels with a resource
-	 * full path.
-	 * 
-	 * @since 3.3
-	 */
-	private class CustomWorkbenchLabelProvider extends WorkbenchLabelProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.model.WorkbenchLabelProvider#decorateText(java.lang.String,
-		 *      java.lang.Object)
-		 */
-		protected String decorateText(String input, Object element) {
-			IResource resource = ((IResource) element);
-
-			if (resource.getType() == IResource.ROOT) {
-				// Get readable name for workspace root ("Workspace"), without
-				// duplicating language-specific string here.
-				return null;
-			}
-
-			return resource.getFullPath().makeRelative().toString();
-		}
-	}
-
-	private class CustomWorkingSetFilter extends ViewerFilter {
-		private ResourceWorkingSetFilter workingSetFilter = new ResourceWorkingSetFilter();
-
-		/**
-		 * Returns the active working set the filter is working with.
-		 * 
-		 * @return the active working set
-		 */
-		public IWorkingSet getWorkingSet() {
-			return workingSetFilter.getWorkingSet();
-		}
-
-		/**
-		 * Sets the active working set.
-		 * 
-		 * @param workingSet
-		 *            the working set the filter should work with
-		 */
-		public void setWorkingSet(IWorkingSet workingSet) {
-			workingSetFilter.setWorkingSet(workingSet);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public boolean select(Viewer viewer, Object parentElement,
-				Object element) {
-			if (element instanceof SearchListSeparator) {
-				return true;
-			} else if (element instanceof ResourceSearchItem) {
-				return workingSetFilter.select(viewer, parentElement,
-						((ResourceSearchItem) element).getResource());
-			}
-
-			return false;
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.AbstractSearchDialog#refresh()
-	 */
-	public void refresh() {
-		resourceSearchItemLabelProvider.reset();
-		super.refresh();
-	}
-
-	/**
-	 * Use this method to further filter resources. As resources are gathered,
-	 * if a resource matches the current pattern string, this method will be
-	 * called. If this method answers false, the resource will not be included
-	 * in the list of matches and the resource's children will NOT be considered
-	 * for matching.
-	 */
-	protected boolean validateSearchedResource(IResource resource) {
-		return true;
-	}
-
-	private SearchFilter createFilter(String text, IContainer container,
-			boolean showDerived, int typeMask) {
-		return new ResourceFilter(text, container, showDerived, typeMask);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getItemDetails(java.lang.Object)
-	 */
-	protected Object getItemDetails(Object item) {
-		return ((ResourceSearchItem) item).getResource().getParent();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#validateItem(java.lang.Object)
-	 */
-	protected IStatus validateItem(Object item) {
-		return new Status(IStatus.OK, WorkbenchPlugin.PI_WORKBENCH, 0, "", null); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createFilter(java.lang.String)
-	 */
-	protected SearchFilter createFilter(String text) {
-		return createFilter(text, container, false, typeMask);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createFromElement(org.eclipse.ui.IMemento)
-	 */
-	protected Object createFromElement(IMemento element) {
-		IResource resource = null;
-		ResourceFactory resourceFactory = new ResourceFactory();
-		resource = (IResource) resourceFactory.createElement(element);
-		return new ResourceSearchItem(resource, true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getDetails(java.lang.Object)
-	 */
-	protected Object getDetails(Object item) {
-		return ((ResourceSearchItem) item).getResource().getParent();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getElementsComparator()
-	 */
-	protected Comparator getElementsComparator() {
-		return new Comparator() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see java.util.Comparator#compare(java.lang.Object,
-			 *      java.lang.Object)
-			 */
-			public int compare(Object o1, Object o2) {
-				Collator collator = Collator.getInstance();
-				ResourceSearchItem resourceDecorator1 = ((ResourceSearchItem) o1);
-				ResourceSearchItem resourceDecorator2 = ((ResourceSearchItem) o2);
-				IResource resource1 = resourceDecorator1.getResource();
-				IResource resource2 = resourceDecorator2.getResource();
-				String s1 = resource1.getName();
-				String s2 = resource2.getName();
-				int comparability = collator.compare(s1, s2);
-				if (comparability == 0) {
-					resourceDecorator1.markAsDuplicate();
-					resourceDecorator2.markAsDuplicate();
-					s1 = resource1.getFullPath().toString();
-					s2 = resource2.getFullPath().toString();
-					comparability = collator.compare(s1, s2);
-				}
-
-				return comparability;
-			}
-		};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getObjectToReturn(java.lang.Object)
-	 */
-	protected Object getObjectToReturn(Object item) {
-		ResourceSearchItem resourceSearchItem = (ResourceSearchItem) item;
-		accessedHistory(resourceSearchItem);
-		return resourceSearchItem.getResource();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#searchElements(org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ContentProvider)
-	 */
-	protected void searchElements(ContentProvider contentProvider)
-			throws CoreException {
-
-		contentProvider.beginTask("", container.members().length); //$NON-NLS-1$
-
-		container.accept(new ResourceProxyVisitor(contentProvider),
-				IResource.NONE);
-
-		contentProvider.endTask();
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#setAttributes(java.lang.Object,
-	 *      org.eclipse.ui.IMemento)
-	 */
-	protected void setAttributes(Object object, IMemento element) {
-		IResource resource = ((ResourceSearchItem) object).getResource();
-		ResourceFactory resourceFactory = new ResourceFactory(resource);
-		resourceFactory.saveState(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#validateElement(java.lang.Object)
-	 */
-	protected IStatus validateElement(Object item) {
-		return new Status(IStatus.OK, WorkbenchPlugin.PI_WORKBENCH, 0, "", null); //$NON-NLS-1$
-	}
-
-	/**
-	 * ResourceProxyVisitor to visit resource tree and get matched resources.
-	 * During visit resources they update progress monitor and add matched
-	 * resources to model.
-	 * 
-	 * @since 3.3
-	 */
-	private class ResourceProxyVisitor implements IResourceProxyVisitor {
-
-		private ContentProvider contentProvider;
-
-		private List projects;
-
-		/**
-		 * @param contentProvider
-		 * @throws CoreException
-		 */
-		public ResourceProxyVisitor(ContentProvider contentProvider)
-				throws CoreException {
-			super();
-			this.contentProvider = contentProvider;
-			this.projects = new ArrayList(Arrays.asList(container.members()));
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.resources.IResourceProxyVisitor#visit(org.eclipse.core.resources.IResourceProxy)
-		 */
-		public boolean visit(IResourceProxy proxy) {
-
-			if (contentProvider.isDeactivated())
-				return false;
-
-			IResource res = proxy.requestResource();
-			ResourceSearchItem searchItem = new ResourceSearchItem(res);
-
-			if (this.projects.remove((res.getProject()))
-					|| this.projects.remove((res))) {
-				contentProvider.worked(1);
-			}
-
-			contentProvider.addSearchItem(searchItem);
-
-			if (res.getType() == IResource.FILE) {
-				return false;
-			}
-
-			return true;
-		}
-
-	}
-
-	/**
-	 * Filters resources using pattern and showDerived flag. It override
-	 * SearchFilter.
-	 * 
-	 * @since 3.3
-	 * 
-	 */
-	private static class ResourceFilter extends SearchFilter {
-
-		private boolean showDerived = false;
-
-		private IContainer container;
-
-		private int typeMask;
-
-		/**
-		 * @param text
-		 * @param container
-		 * @param showDerived
-		 *            flag which determine showing derived elements
-		 * @param typeMask
-		 */
-		public ResourceFilter(String text, IContainer container,
-				boolean showDerived, int typeMask) {
-			super(text);
-			this.container = container;
-			this.showDerived = showDerived;
-			this.typeMask = typeMask;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.dialogs.AbstractSearcher.SearchFilter#isConsistentElement(java.lang.Object)
-		 */
-		public boolean isConsistentElement(Object searchitem) {
-			ResourceSearchItem resourceSearchItem = (ResourceSearchItem) searchitem;
-			IResource resource = resourceSearchItem.getResource();
-			if (this.container.findMember(resource.getFullPath()) != null)
-				return true;
-			return false;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.dialogs.AbstractSearcher.SearchFilter#matchesElement(java.lang.Object)
-		 */
-		public boolean matchesElement(Object element) {
-			ResourceSearchItem searchItem = (ResourceSearchItem) element;
-			IResource resource = searchItem.getResource();
-			if ((!this.showDerived && resource.isDerived())
-					|| ((this.typeMask & resource.getType()) == 0))
-				return false;
-			return matchesName(resource.getName());
-		}
-
-		/**
-		 * Set showDerived flag
-		 * 
-		 * @param showDerived
-		 */
-		public void setDerived(boolean showDerived) {
-			this.showDerived = showDerived;
-		}
-
-		/**
-		 * @return true if show derived flag is true false in other way
-		 */
-		public boolean isShowDerived() {
-			return showDerived;
-		}
-
-		public boolean isSubFilter(SearchFilter filter) {
-			if (!super.isSubFilter(filter))
-				return false;
-			if (filter instanceof ResourceFilter)
-				if (this.showDerived == ((ResourceFilter) filter)
-						.isShowDerived())
-					return true;
-			return false;
-		}
-
-	}
-
-	/**
-	 * @since 3.3
-	 */
-	private class ResourceSearchItem extends AbstractSearchItem {
-
-		private IResource resource;
-
-		/**
-		 * 
-		 */
-		public ResourceSearchItem(IResource resource) {
-			this.resource = resource;
-		}
-
-		/**
-		 * 
-		 */
-		public ResourceSearchItem(IResource resource, boolean isHistory) {
-			this.resource = resource;
-			if (isHistory)
-				this.markAsHistory();
-		}
-
-		/**
-		 * Get decorated resource
-		 * 
-		 * @return decorated resource
-		 */
-		public IResource getResource() {
-			return this.resource;
-		}
-
-		public boolean equals(Object obj) {
-			if (obj instanceof ResourceSearchItem) {
-				ResourceSearchItem resourceSearchItem = (ResourceSearchItem) obj;
-				return getResource().equals(resourceSearchItem.getResource());
-			}
-			return super.equals(obj);
-		}
-
-		public int hashCode() {
-			return getResource().hashCode();
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/MarkerResolutionSelectionDialog.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/MarkerResolutionSelectionDialog.java
deleted file mode 100644
index 5382aa9..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/MarkerResolutionSelectionDialog.java
+++ /dev/null
@@ -1,156 +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 
- *   Sebastian Davids <sdavids@gmx.de> - Fix for bug 19346 - Dialog font should be activated and used by other components.
- *******************************************************************************/
-
-package org.eclipse.ui.dialogs;
-
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-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.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.SimpleListContentProvider;
-
-/**
- * Dialog to allow the user to select from a list of marker
- * resolutions.
- * <p>
- * This dialog may be instantiated, it is not intented to 
- * be subclassed.
- * </p>
- * 
- * @since 2.0
- */
-public class MarkerResolutionSelectionDialog extends SelectionDialog {
-    /**
-     * List width in characters.
-     */
-    private final static int LIST_WIDTH = 60;
-
-    /**
-     * List height in characters.
-     */
-    private final static int LIST_HEIGHT = 10;
-
-    /**
-     * The marker resolutions.
-     */
-    private IMarkerResolution[] resolutions;
-
-    /**
-     * List to display the resolutions.
-     */
-    private ListViewer listViewer;
-
-    /**
-     * Creates an instance of this dialog to display
-     * the given resolutions.
-     * <p>
-     * There must be at least one resolution.
-     * </p>
-     * 
-     * @param shell the parent shell
-     * @param markerResolutions the resolutions to display
-     */
-    public MarkerResolutionSelectionDialog(Shell shell,
-            IMarkerResolution[] markerResolutions) {
-        super(shell);
-        if (markerResolutions == null || markerResolutions.length == 0) {
-            throw new IllegalArgumentException();
-        }
-        resolutions = markerResolutions;
-        setTitle(IDEWorkbenchMessages.MarkerResolutionSelectionDialog_title);
-        setMessage(IDEWorkbenchMessages.MarkerResolutionSelectionDialog_messageLabel);
-        setInitialSelections(new Object[] { markerResolutions[0] });
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Window.
-     */
-    protected void configureShell(Shell newShell) {
-        super.configureShell(newShell);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell,
-                IIDEHelpContextIds.MARKER_RESOLUTION_SELECTION_DIALOG);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected Control createDialogArea(Composite parent) {
-        Composite composite = (Composite) super.createDialogArea(parent);
-
-        // Create label
-        createMessageArea(composite);
-        // Create list viewer	
-        listViewer = new ListViewer(composite, SWT.SINGLE | SWT.H_SCROLL
-                | SWT.V_SCROLL | SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        data.heightHint = convertHeightInCharsToPixels(LIST_HEIGHT);
-        data.widthHint = convertWidthInCharsToPixels(LIST_WIDTH);
-        listViewer.getList().setLayoutData(data);
-        listViewer.getList().setFont(parent.getFont());
-        // Set the label provider		
-        listViewer.setLabelProvider(new LabelProvider() {
-            public String getText(Object element) {
-                // Return the resolution's label.
-                return element == null ? "" : ((IMarkerResolution) element).getLabel(); //$NON-NLS-1$
-            }
-        });
-
-        // Set the content provider
-        SimpleListContentProvider cp = new SimpleListContentProvider();
-        cp.setElements(resolutions);
-        listViewer.setContentProvider(cp);
-        listViewer.setInput(new Object()); // it is ignored but must be non-null
-
-        // Set the initial selection
-        listViewer.setSelection(new StructuredSelection(
-                getInitialElementSelections()), true);
-
-        // Add a selection change listener
-        listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-            public void selectionChanged(SelectionChangedEvent event) {
-                // Update OK button enablement
-                getOkButton().setEnabled(!event.getSelection().isEmpty());
-            }
-        });
-
-        // Add double-click listener
-        listViewer.addDoubleClickListener(new IDoubleClickListener() {
-            public void doubleClick(DoubleClickEvent event) {
-                okPressed();
-            }
-        });
-        return composite;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected void okPressed() {
-        IStructuredSelection selection = (IStructuredSelection) listViewer
-                .getSelection();
-        setResult(selection.toList());
-        super.okPressed();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/NewFolderDialog.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/NewFolderDialog.java
deleted file mode 100644
index 826bc64..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/NewFolderDialog.java
+++ /dev/null
@@ -1,470 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.ui.dialogs;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectNatureDescriptor;
-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.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.fieldassist.FieldAssistColors;
-import org.eclipse.osgi.util.NLS;
-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.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.CreateLinkedResourceGroup;
-import org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog;
-
-/**
- * The NewFolderDialog is used to create a new folder.
- * The folder can optionally be linked to a file system folder.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class NewFolderDialog extends SelectionStatusDialog {
-    // widgets
-    private Text folderNameField;
-
-    private Button advancedButton;
-
-    private CreateLinkedResourceGroup linkedResourceGroup;
-
-    private IContainer container;
-
-    private boolean firstLinkCheck = true;
-
-    /**
-     * Parent composite of the advanced widget group for creating 
-     * linked resources.
-     */
-    private Composite linkedResourceParent;
-
-    /**
-     * Linked resources widget group. Null if advanced section is not visible.
-     */
-    private Composite linkedResourceComposite;
-
-    /**
-     * Height of the dialog without the "advanced" linked resource group. 
-     * Set when the advanced group is first made visible. 
-     */
-    private int basicShellHeight = -1;
-
-    /**
-     * Creates a NewFolderDialog
-     * 
-     * @param parentShell parent of the new dialog
-     * @param container parent of the new folder
-     */
-    public NewFolderDialog(Shell parentShell, IContainer container) {
-        super(parentShell);
-        this.container = container;
-        setTitle(IDEWorkbenchMessages.NewFolderDialog_title);
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-        setStatusLineAboveButtons(true);
-    }
-
-    /**
-     * Creates the folder using the name and link target entered
-     * by the user.
-     * Sets the dialog result to the created folder.  
-     */
-    protected void computeResult() {
-        //Do nothing here as we 
-    	//need to know the result
-    }
-
-    /* (non-Javadoc)
-     * Method declared in Window.
-     */
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(shell,
-				IIDEHelpContextIds.NEW_FOLDER_DIALOG);
-    }
-
-    /**
-     * @see org.eclipse.jface.window.Window#create()
-     */
-    public void create() {
-        super.create();
-        // initially disable the ok button since we don't preset the
-        // folder name field
-        getButton(IDialogConstants.OK_ID).setEnabled(false);
-    }
-
-    /**
-     * Creates the widget for advanced options.
-     *  
-     * @param parent the parent composite
-     */
-    protected void createAdvancedControls(Composite parent) {
-        Preferences preferences = ResourcesPlugin.getPlugin()
-                .getPluginPreferences();
-
-        if (preferences.getBoolean(ResourcesPlugin.PREF_DISABLE_LINKING) == false
-                && isValidContainer()) {
-            linkedResourceParent = new Composite(parent, SWT.NONE);
-            linkedResourceParent.setFont(parent.getFont());
-            linkedResourceParent.setLayoutData(new GridData(
-                    GridData.FILL_HORIZONTAL));
-            GridLayout layout = new GridLayout();
-            layout.marginHeight = 0;
-            layout.marginWidth = 0;
-            linkedResourceParent.setLayout(layout);
-
-            advancedButton = new Button(linkedResourceParent, SWT.PUSH);
-            advancedButton.setFont(linkedResourceParent.getFont());
-            advancedButton.setText(IDEWorkbenchMessages.showAdvanced);
-            setButtonLayoutData(advancedButton);
-            GridData data = (GridData) advancedButton.getLayoutData();
-            data.horizontalAlignment = GridData.BEGINNING;
-            advancedButton.setLayoutData(data);
-            advancedButton.addSelectionListener(new SelectionAdapter() {
-                public void widgetSelected(SelectionEvent e) {
-                    handleAdvancedButtonSelect();
-                }
-            });
-        }
-        linkedResourceGroup = new CreateLinkedResourceGroup(IResource.FOLDER,
-                new Listener() {
-                    public void handleEvent(Event e) {
-                        validateLinkedResource();
-                        firstLinkCheck = false;
-                    }
-                },
-                new CreateLinkedResourceGroup.IStringValue(){
-					public void setValue(String string) {
-						folderNameField.setText(string);
-					}
-					public String getValue() {
-						return folderNameField.getText();
-					}
-                });
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected Control createDialogArea(Composite parent) {
-        Composite composite = (Composite) super.createDialogArea(parent);
-        composite.setLayout(new GridLayout());
-        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-        createFolderNameGroup(composite);
-        createAdvancedControls(composite);
-        return composite;
-    }
-
-    /**
-     * Creates the folder name specification controls.
-     *
-     * @param parent the parent composite
-     */
-    private void createFolderNameGroup(Composite parent) {
-        Font font = parent.getFont();
-        // project specification group
-        Composite folderGroup = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        folderGroup.setLayout(layout);
-        folderGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-        // new folder label
-        Label folderLabel = new Label(folderGroup, SWT.NONE);
-        folderLabel.setFont(font);
-        folderLabel.setText(IDEWorkbenchMessages.NewFolderDialog_nameLabel);
-
-        // new folder name entry field
-        folderNameField = new Text(folderGroup, SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_HORIZONTAL);
-        data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-        folderNameField.setLayoutData(data);
-        folderNameField.setFont(font);
-        folderNameField.addListener(SWT.Modify, new Listener() {
-            public void handleEvent(Event event) {
-                validateLinkedResource();
-            }
-        });
-        folderNameField.setBackground(
-        		FieldAssistColors.getRequiredFieldBackgroundColor(folderNameField));
-    }
-
-    /**
-     * Creates a folder resource handle for the folder with the given name.
-     * The folder handle is created relative to the container specified during 
-     * object creation. 
-     *
-     * @param folderName the name of the folder resource to create a handle for
-     * @return the new folder resource handle
-     */
-    private IFolder createFolderHandle(String folderName) {
-        IWorkspaceRoot workspaceRoot = container.getWorkspace().getRoot();
-        IPath folderPath = container.getFullPath().append(folderName);
-        IFolder folderHandle = workspaceRoot.getFolder(folderPath);
-
-        return folderHandle;
-    }
-
-    /**
-     * Creates a new folder with the given name and optionally linking to
-     * the specified link target.
-     * 
-     * @param folderName name of the new folder
-     * @param linkTargetName name of the link target folder. may be null.
-     * @return IFolder the new folder
-     */
-    private IFolder createNewFolder(String folderName,
-            final String linkTargetName) {
-        final IFolder folderHandle = createFolderHandle(folderName);
-
-        WorkspaceModifyOperation operation = new WorkspaceModifyOperation() {
-            public void execute(IProgressMonitor monitor) throws CoreException {
-                try {
-                    monitor.beginTask(IDEWorkbenchMessages.NewFolderDialog_progress, 2000);
-                    if (monitor.isCanceled()) {
-						throw new OperationCanceledException();
-					}
-                    if (linkTargetName == null) {
-						folderHandle.create(false, true, monitor);
-					} else {
-						folderHandle.createLink(new Path(linkTargetName),
-                                IResource.ALLOW_MISSING_LOCAL, monitor);
-					}
-                    if (monitor.isCanceled()) {
-						throw new OperationCanceledException();
-					}
-                } finally {
-                    monitor.done();
-                }
-            }
-        };
-
-        try {
-            new ProgressMonitorJobsDialog(getShell())
-                    .run(true, true, operation);
-        } catch (InterruptedException exception) {
-            return null;
-        } catch (InvocationTargetException exception) {
-            if (exception.getTargetException() instanceof CoreException) {
-                ErrorDialog.openError(getShell(), IDEWorkbenchMessages.NewFolderDialog_errorTitle,
-                        null, // no special message
-                        ((CoreException) exception.getTargetException())
-                                .getStatus());
-            } else {
-                // CoreExceptions are handled above, but unexpected runtime exceptions and errors may still occur.
-                IDEWorkbenchPlugin.log(getClass(),
-                        "createNewFolder", exception.getTargetException()); //$NON-NLS-1$
-                MessageDialog.openError(getShell(), IDEWorkbenchMessages.NewFolderDialog_errorTitle,
-                        NLS.bind(IDEWorkbenchMessages.NewFolderDialog_internalError, exception.getTargetException().getMessage()));
-            }
-            return null;
-        }
-        return folderHandle;
-    }
-
-    /**
-     * Shows/hides the advanced option widgets. 
-     */
-    protected void handleAdvancedButtonSelect() {
-        Shell shell = getShell();
-        Point shellSize = shell.getSize();
-        Composite composite = (Composite) getDialogArea();
-
-        if (linkedResourceComposite != null) {
-            linkedResourceComposite.dispose();
-            linkedResourceComposite = null;
-            composite.layout();
-            shell.setSize(shellSize.x, basicShellHeight);
-            advancedButton.setText(IDEWorkbenchMessages.showAdvanced);
-        } else {
-            if (basicShellHeight == -1) {
-                basicShellHeight = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                        true).y;
-            }
-            linkedResourceComposite = linkedResourceGroup
-                    .createContents(linkedResourceParent);
-            shellSize = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-            shell.setSize(shellSize);
-            composite.layout();
-            advancedButton.setText(IDEWorkbenchMessages.hideAdvanced);
-        }
-    }
-
-    /**
-     * Returns whether the container specified in the constructor is
-     * a valid parent for creating linked resources.
-     * 
-     * @return boolean <code>true</code> if the container specified in 
-     * 	the constructor is a valid parent for creating linked resources.
-     * 	<code>false</code> if no linked resources may be created with the
-     * 	specified container as a parent. 
-     */
-    private boolean isValidContainer() {
-        if (container.getType() != IResource.PROJECT && container.getType() != IResource.FOLDER) {
-			return false;
-		}
-
-        try {
-            IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-            IProject project = container.getProject();
-            String[] natureIds = project.getDescription().getNatureIds();
-
-            for (int i = 0; i < natureIds.length; i++) {
-                IProjectNatureDescriptor descriptor = workspace
-                        .getNatureDescriptor(natureIds[i]);
-                if (descriptor != null
-                        && descriptor.isLinkingAllowed() == false) {
-					return false;
-				}
-            }
-        } catch (CoreException exception) {
-            // project does not exist or is closed
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Update the dialog's status line to reflect the given status. It is safe to call
-     * this method before the dialog has been opened.
-     */
-    protected void updateStatus(IStatus status) {
-        if (firstLinkCheck && status != null) {
-            // don't show the first validation result as an error.
-            // fixes bug 29659
-            Status newStatus = new Status(IStatus.OK, status.getPlugin(),
-                    status.getCode(), status.getMessage(), status
-                            .getException());
-            super.updateStatus(newStatus);
-        } else {
-            super.updateStatus(status);
-        }
-    }
-
-    /**
-     * 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 severity
-     * @param message
-     */
-    private void updateStatus(int severity, String message) {
-        updateStatus(new Status(severity, IDEWorkbenchPlugin.IDE_WORKBENCH, severity, message, null));
-    }
-
-    /**
-     * Checks whether the folder name and link location are valid.
-     * Disable the OK button if the folder name and link location are valid.
-     * a message that indicates the problem otherwise.
-     */
-    private void validateLinkedResource() {
-        boolean valid = validateFolderName();
-
-        if (valid) {
-            IFolder linkHandle = createFolderHandle(folderNameField.getText());
-            IStatus status = linkedResourceGroup
-                    .validateLinkLocation(linkHandle);
-
-            if (status.getSeverity() != IStatus.ERROR) {
-				getOkButton().setEnabled(true);
-			} else {
-				getOkButton().setEnabled(false);
-			}
-
-            if (status.isOK() == false) {
-				updateStatus(status);
-			}
-        } else {
-			getOkButton().setEnabled(false);
-		}
-    }
-
-    /**
-     * Checks if the folder name is valid.
-     *
-     * @return null if the new folder name is valid.
-     * 	a message that indicates the problem otherwise.
-     */
-    private boolean validateFolderName() {
-        String name = folderNameField.getText();
-        IWorkspace workspace = container.getWorkspace();
-        IStatus nameStatus = workspace.validateName(name, IResource.FOLDER);
-
-        if ("".equals(name)) { //$NON-NLS-1$
-            updateStatus(IStatus.ERROR, IDEWorkbenchMessages.NewFolderDialog_folderNameEmpty);
-            return false;
-        }
-        if (nameStatus.isOK() == false) {
-            updateStatus(nameStatus);
-            return false;
-        }
-        IPath path = new Path(name);
-        if (container.getFolder(path).exists()
-                || container.getFile(path).exists()) {
-            updateStatus(IStatus.ERROR, NLS.bind(IDEWorkbenchMessages.NewFolderDialog_alreadyExists, name));
-            return false;
-        }
-        updateStatus(IStatus.OK, ""); //$NON-NLS-1$
-        return true;
-    }
-    
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.dialogs.SelectionStatusDialog#okPressed()
-	 */
-	protected void okPressed() {
-		String linkTarget = linkedResourceGroup.getLinkTarget();
-        IFolder folder = createNewFolder(folderNameField.getText(), linkTarget);
-        if (folder == null) {
-			return;
-		}
-
-        setSelectionResult(new IFolder[] { folder });
-        
-		super.okPressed();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ProjectLocationMoveDialog.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ProjectLocationMoveDialog.java
deleted file mode 100644
index 0ed9585..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ProjectLocationMoveDialog.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 
- *    Sebastian Davids <sdavids@gmx.de> - Fix for bug 19346 - Dialog
- *        font should be activated and used by other components.
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.ProjectContentsLocationArea;
-import org.eclipse.ui.internal.ide.dialogs.ProjectContentsLocationArea.IErrorMessageReporter;
-
-/**
- * The ProjectLocationMoveDialog is the dialog used to select the location of a
- * project for moving.
- */
-public class ProjectLocationMoveDialog extends SelectionDialog {
-	private IProject project;
-
-	private Label statusMessageLabel;
-
-	private static String PROJECT_LOCATION_SELECTION_TITLE = IDEWorkbenchMessages.ProjectLocationSelectionDialog_selectionTitle;
-
-
-	private ProjectContentsLocationArea locationArea;
-
-	/**
-	 * Create a ProjectLocationMoveDialog on the supplied project parented by
-	 * the parentShell.
-	 * 
-	 * @param parentShell
-	 * @param existingProject
-	 */
-	public ProjectLocationMoveDialog(Shell parentShell, IProject existingProject) {
-		super(parentShell);
-		setTitle(PROJECT_LOCATION_SELECTION_TITLE);
-		this.project = existingProject;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.dialogs.SelectionDialog#setMessage(java.lang.String)
-	 */
-	public void setMessage(String message) {
-		super.setMessage(message);
-		if (statusMessageLabel != null) {
-			if (message == null) {
-				statusMessageLabel.setText("");//$NON-NLS-1$
-				statusMessageLabel.setToolTipText("");//$NON-NLS-1$
-				getOkButton().setEnabled(true);
-			} else {
-				statusMessageLabel.setForeground(JFaceColors
-						.getErrorText(statusMessageLabel.getDisplay()));
-				statusMessageLabel.setText(message);
-				statusMessageLabel.setToolTipText(message);
-				getOkButton().setEnabled(false);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in Window.
-	 */
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(shell,
-				IIDEHelpContextIds.PROJECT_LOCATION_SELECTION_DIALOG);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected Control createContents(Composite parent) {
-		Control content = super.createContents(parent);
-		getOkButton().setEnabled(false);
-		return content;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		// page group
-		Composite composite = (Composite) super.createDialogArea(parent);
-
-		composite.setLayout(new GridLayout());
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		locationArea = new ProjectContentsLocationArea(getErrorReporter(), composite,
-				this.project);
-
-		// Scale the button based on the rest of the dialog
-		setButtonLayoutData(locationArea.getBrowseButton());
-
-		// Add in a label for status messages if required
-		statusMessageLabel = new Label(composite, SWT.WRAP);
-		statusMessageLabel.setLayoutData(new GridData(GridData.FILL_BOTH));
-		statusMessageLabel.setFont(parent.getFont());
-		// Make it two lines.
-		statusMessageLabel.setText(" \n "); //$NON-NLS-1$
-
-		applyDialogFont(composite);
-		return composite;
-	}
-
-
-	/**
-	 * Get an error reporter for the receiver.
-	 * @return IErrorMessageReporter
-	 */
-	private IErrorMessageReporter getErrorReporter() {
-		return new IErrorMessageReporter(){
-			/* (non-Javadoc)
-			 * @see org.eclipse.ui.internal.ide.dialogs.ProjectContentsLocationArea.IErrorMessageReporter#reportError(java.lang.String)
-			 */
-			public void reportError(String errorMessage) {
-				setMessage(errorMessage);
-				
-			}
-		};
-	}
-
-	/**
-	 * Get the project being manipulated.
-	 */
-	private IProject getProject() {
-		return this.project;
-	}
-
-	/**
-	 * The <code>ProjectLocationMoveDialog</code> implementation of this
-	 * <code>Dialog</code> method builds a two element list - the first
-	 * element is the project name and the second one is the location.
-	 */
-	protected void okPressed() {
-
-		ArrayList list = new ArrayList();
-		list.add(getProject().getName());
-		list.add(locationArea.getProjectLocation());
-		setResult(list);
-		super.okPressed();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ProjectLocationSelectionDialog.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ProjectLocationSelectionDialog.java
deleted file mode 100644
index 17af713..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ProjectLocationSelectionDialog.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.ui.dialogs;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-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.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.ProjectContentsLocationArea;
-import org.eclipse.ui.internal.ide.dialogs.ProjectContentsLocationArea.IErrorMessageReporter;
-
-/**
- * The ProjectLocationSelectionDialog is the dialog used to select the name and
- * location of a project for copying.
- */
-public class ProjectLocationSelectionDialog extends SelectionStatusDialog {
-	// widgets
-	private Text projectNameField;
-
-	private IProject project;
-
-	private ProjectContentsLocationArea locationArea;
-
-	private static String PROJECT_NAME_LABEL = IDEWorkbenchMessages.ProjectLocationSelectionDialog_nameLabel;
-
-	private static String PROJECT_LOCATION_SELECTION_TITLE = IDEWorkbenchMessages.ProjectLocationSelectionDialog_selectionTitle;
-
-	// constants
-	private static final int SIZING_TEXT_FIELD_WIDTH = 250;
-
-	private boolean firstLocationCheck;
-
-	/**
-	 * Create a ProjectLocationSelectionDialog on the supplied project parented
-	 * by the parentShell.
-	 * 
-	 * @param parentShell
-	 * @param existingProject
-	 */
-	public ProjectLocationSelectionDialog(Shell parentShell,
-			IProject existingProject) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		setTitle(PROJECT_LOCATION_SELECTION_TITLE);
-		setStatusLineAboveButtons(true);
-		this.project = existingProject;
-	}
-
-	/**
-	 * Check the message. If it is null then continue otherwise inform the user
-	 * via the status value and disable the OK.
-	 * 
-	 * @param errorMsg
-	 *            the error message to show if it is not <code>null</code>
-	 */
-	private void applyValidationResult(String errorMsg) {
-		int code;
-		boolean allowFinish = false;
-
-		if (errorMsg == null) {
-			code = IStatus.OK;
-			errorMsg = ""; //$NON-NLS-1$
-			allowFinish = true;
-		} else if (firstLocationCheck) {
-			code = IStatus.OK;
-		} else {
-			code = IStatus.ERROR;
-		}
-
-		updateStatus(new Status(code, IDEWorkbenchPlugin.IDE_WORKBENCH, code,
-				errorMsg, null));
-		getOkButton().setEnabled(allowFinish);
-	}
-
-	/**
-	 * Check whether the entries are valid. If so return null. Otherwise return
-	 * a string that indicates the problem.
-	 */
-	private String checkValid() {
-		String valid = checkValidName();
-		if (valid != null) {
-			return valid;
-		}
-		return locationArea.checkValidLocation();
-	}
-
-	/**
-	 * Check if the entries in the widget are valid. If they are return null
-	 * otherwise return a string that indicates the problem.
-	 */
-	private String checkValidName() {
-
-		String name = this.projectNameField.getText();
-		IWorkspace workspace = getProject().getWorkspace();
-		IStatus nameStatus = workspace.validateName(name, IResource.PROJECT);
-		if (!nameStatus.isOK()) {
-			return nameStatus.getMessage();
-		}
-		IProject newProject = workspace.getRoot().getProject(name);
-		if (newProject.exists()) {
-			return NLS.bind(
-					IDEWorkbenchMessages.CopyProjectAction_alreadyExists, name);
-		}
-
-		return null;
-	}
-
-	/**
-	 * The <code>ProjectLocationSelectionDialog</code> implementation of this
-	 * <code>SelectionStatusDialog</code> method builds a two element list -
-	 * the first element is the project name and the second one is the location.
-	 */
-	protected void computeResult() {
-
-		ArrayList list = new ArrayList();
-		list.add(this.projectNameField.getText());
-		list.add(locationArea.getProjectLocation());
-		setResult(list);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in Window.
-	 */
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(shell,
-				IIDEHelpContextIds.PROJECT_LOCATION_SELECTION_DIALOG);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		// page group
-		Composite composite = (Composite) super.createDialogArea(parent);
-
-		composite.setLayout(new GridLayout());
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		createProjectNameGroup(composite);
-		locationArea = new ProjectContentsLocationArea(getErrorReporter(),
-				composite, project);
-		locationArea.updateProjectName(projectNameField.getText());
-		return composite;
-	}
-
-	/**
-	 * Create the listener that is used to validate the entries for the receiver
-	 */
-	private void createNameListener() {
-
-		Listener listener = new Listener() {
-			public void handleEvent(Event event) {
-				setLocationForSelection();
-				applyValidationResult(checkValid());
-			}
-		};
-
-		this.projectNameField.addListener(SWT.Modify, listener);
-	}
-
-	/**
-	 * Creates the project name specification controls.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 */
-	private void createProjectNameGroup(Composite parent) {
-		Font font = parent.getFont();
-		// project specification group
-		Composite projectGroup = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		projectGroup.setLayout(layout);
-		projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		// new project label
-		Label projectLabel = new Label(projectGroup, SWT.NONE);
-		projectLabel.setFont(font);
-		projectLabel.setText(PROJECT_NAME_LABEL);
-
-		// new project name entry field
-		projectNameField = new Text(projectGroup, SWT.BORDER);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-		projectNameField.setLayoutData(data);
-		projectNameField.setFont(font);
-
-		// Set the initial value first before listener
-		// to avoid handling an event during the creation.
-		projectNameField.setText(getCopyNameFor(getProject().getName()));
-		projectNameField.selectAll();
-
-		createNameListener();
-
-	}
-
-	/**
-	 * Generates a new name for the project that does not have any collisions.
-	 */
-	private String getCopyNameFor(String projectName) {
-
-		IWorkspace workspace = getProject().getWorkspace();
-		if (!workspace.getRoot().getProject(projectName).exists()) {
-			return projectName;
-		}
-
-		int counter = 1;
-		while (true) {
-			String nameSegment;
-			if (counter > 1) {
-				nameSegment = NLS.bind(
-						IDEWorkbenchMessages.CopyProjectAction_copyNameTwoArgs,
-						new Integer(counter), projectName);
-			} else {
-				nameSegment = NLS.bind(
-						IDEWorkbenchMessages.CopyProjectAction_copyNameOneArg,
-						projectName);
-			}
-
-			if (!workspace.getRoot().getProject(nameSegment).exists()) {
-				return nameSegment;
-			}
-
-			counter++;
-		}
-
-	}
-
-	/**
-	 * Get the project being manipulated.
-	 */
-	private IProject getProject() {
-		return this.project;
-	}
-
-	/**
-	 * Set the location to the default location if we are set to useDefaults.
-	 */
-	private void setLocationForSelection() {
-		locationArea.updateProjectName(projectNameField.getText());
-	}
-
-	/**
-	 * Get an error reporter for the receiver.
-	 * 
-	 * @return IErrorMessageReporter
-	 */
-	private IErrorMessageReporter getErrorReporter() {
-		return new IErrorMessageReporter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.ui.internal.ide.dialogs.ProjectContentsLocationArea.IErrorMessageReporter#reportError(java.lang.String)
-			 */
-			public void reportError(String errorMessage) {
-				setMessage(errorMessage);
-
-			}
-		};
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ResourceListSelectionDialog.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ResourceListSelectionDialog.java
deleted file mode 100644
index 86757f5..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ResourceListSelectionDialog.java
+++ /dev/null
@@ -1,981 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.ui.dialogs;
-
-import com.ibm.icu.text.Collator; 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceProxy;
-import org.eclipse.core.resources.IResourceProxyVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.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.Display;
-import org.eclipse.swt.widgets.Label;
-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.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.StringMatcher;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Shows a list of resources to the user with a text entry field
- * for a string pattern used to filter the list of resources.
- * <p>
- * 
- * @since 2.1
- */
-public class ResourceListSelectionDialog extends SelectionDialog {
-	
-	private static final String DIALOG_SETTINGS_SECTION = "ResourceListSelectionDialogSettings"; //$NON-NLS-1$
-    
-    Text pattern;
-
-    Table resourceNames;
-
-    Table folderNames;
-
-    String patternString;
-
-    IContainer container;
-
-    int typeMask;
-
-    private static Collator collator = Collator.getInstance();
-
-    boolean gatherResourcesDynamically = true;
-
-    StringMatcher stringMatcher;
-
-    UpdateFilterThread updateFilterThread;
-
-    UpdateGatherThread updateGatherThread;
-
-    ResourceDescriptor[] descriptors;
-
-    int descriptorsSize;
-
-    WorkbenchLabelProvider labelProvider = new WorkbenchLabelProvider();
-    
-    boolean okEnabled = false;
-
-    private boolean showDerived = false;
-
-    private Button showDerivedButton;
-
-    private boolean allowUserToToggleDerived;
-    
-    static class ResourceDescriptor implements Comparable {
-        String label;
-
-        ArrayList resources = new ArrayList();
-
-        boolean resourcesSorted = true;
-
-        public int compareTo(Object o) {
-            return collator.compare(label, ((ResourceDescriptor) o).label);
-        }
-    }
-
-    class UpdateFilterThread extends Thread {
-        boolean stop = false;
-
-        int firstMatch = 0;
-
-        int lastMatch = descriptorsSize - 1;
-
-        public void run() {
-            Display display = resourceNames.getDisplay();
-            final int itemIndex[] = { 0 };
-            final int itemCount[] = { 0 };
-            //Keep track of if the widget got disposed 
-            //so that we can abort if required
-            final boolean[] disposed = { false };
-            display.syncExec(new Runnable() {
-                public void run() {
-                    //Be sure the widget still exists
-                    if (resourceNames.isDisposed()) {
-                        disposed[0] = true;
-                        return;
-                    }
-                    itemCount[0] = resourceNames.getItemCount();
-                }
-            });
-
-            if (disposed[0]) {
-				return;
-			}
-
-            int last;
-            if ((patternString.indexOf('?') == -1)
-                    && (patternString.endsWith("*")) && //$NON-NLS-1$
-                    (patternString.indexOf('*') == patternString.length() - 1)) {
-                // Use a binary search to get first and last match when the pattern
-                // string ends with "*" and has no other embedded special characters.  
-                // For this case, we can be smarter about getting the first and last 
-                // match since the items are in sorted order.
-                firstMatch = getFirstMatch();
-                if (firstMatch == -1) {
-                    firstMatch = 0;
-                    lastMatch = -1;
-                } else {
-                    lastMatch = getLastMatch();
-                }
-                last = lastMatch;
-                for (int i = firstMatch; i <= lastMatch; i++) {
-                    if (i % 50 == 0) {
-                        try {
-                            Thread.sleep(10);
-                        } catch (InterruptedException e) {
-                            // ignore
-                        }
-                    }
-                    if (stop || resourceNames.isDisposed()) {
-                        disposed[0] = true;
-                        return;
-                    }
-                    final int index = i;
-                    display.syncExec(new Runnable() {
-                        public void run() {
-                            if (stop || resourceNames.isDisposed()) {
-								return;
-							}
-                            updateItem(index, itemIndex[0], itemCount[0]);
-                            itemIndex[0]++;
-                        }
-                    });
-                }
-            } else {
-                last = lastMatch;
-                boolean setFirstMatch = true;
-                for (int i = firstMatch; i <= lastMatch; i++) {
-                    if (i % 50 == 0) {
-                        try {
-                            Thread.sleep(10);
-                        } catch (InterruptedException e) {
-                            // ignore
-                        }
-                    }
-                    if (stop || resourceNames.isDisposed()) {
-                        disposed[0] = true;
-                        return;
-                    }
-                    final int index = i;
-                    if (match(descriptors[index].label)) {
-                        if (setFirstMatch) {
-                            setFirstMatch = false;
-                            firstMatch = index;
-                        }
-                        last = index;
-                        display.syncExec(new Runnable() {
-                            public void run() {
-                                if (stop || resourceNames.isDisposed()) {
-									return;
-								}
-                                updateItem(index, itemIndex[0], itemCount[0]);
-                                itemIndex[0]++;
-                            }
-                        });
-                    }
-                }
-            }
-
-            if (disposed[0]) {
-				return;
-			}
-
-            lastMatch = last;
-            display.syncExec(new Runnable() {
-                public void run() {
-                    if (resourceNames.isDisposed()) {
-						return;
-					}
-                    itemCount[0] = resourceNames.getItemCount();
-                    if (itemIndex[0] < itemCount[0]) {
-                        resourceNames.setRedraw(false);
-                        resourceNames.remove(itemIndex[0], itemCount[0] - 1);
-                        resourceNames.setRedraw(true);
-                    }
-                    // If no resources, remove remaining folder entries
-                    if (resourceNames.getItemCount() == 0) {
-                        folderNames.removeAll();
-                        updateOKState(false);
-                    }
-                }
-            });
-        }
-    }
-
-    class UpdateGatherThread extends Thread {
-        boolean stop = false;
-
-        int lastMatch = -1;
-
-        int firstMatch = 0;
-
-        boolean refilter = false;
-
-        public void run() {
-            Display display = resourceNames.getDisplay();
-            final int itemIndex[] = { 0 };
-            final int itemCount[] = { 0 };
-            //Keep track of if the widget got disposed 
-            //so that we can abort if required
-            final boolean[] disposed = { false };
-            display.syncExec(new Runnable() {
-                public void run() {
-                    //Be sure the widget still exists
-                    if (resourceNames.isDisposed()) {
-                        disposed[0] = true;
-                        return;
-                    }
-                    itemCount[0] = resourceNames.getItemCount();
-                }
-            });
-
-            if (disposed[0]) {
-                return;
-            }
-
-            if (!refilter) {
-                for (int i = 0; i <= lastMatch; i++) {
-                    if (i % 50 == 0) {
-                        try {
-                            Thread.sleep(10);
-                        } catch (InterruptedException e) {
-                            // ignore
-                        }
-                    }
-                    if (stop || resourceNames.isDisposed()) {
-                        disposed[0] = true;
-                        return;
-                    }
-                    final int index = i;
-                    display.syncExec(new Runnable() {
-                        public void run() {
-                            if (stop || resourceNames.isDisposed()) {
-								return;
-							}
-                            updateItem(index, itemIndex[0], itemCount[0]);
-                            itemIndex[0]++;
-                        }
-                    });
-                }
-            } else {
-                // we're filtering the previous list
-                for (int i = firstMatch; i <= lastMatch; i++) {
-                    if (i % 50 == 0) {
-                        try {
-                            Thread.sleep(10);
-                        } catch (InterruptedException e) {
-                            // ignore
-                        }
-                    }
-                    if (stop || resourceNames.isDisposed()) {
-                        disposed[0] = true;
-                        return;
-                    }
-                    final int index = i;
-                    if (match(descriptors[index].label)) {
-                        display.syncExec(new Runnable() {
-                            public void run() {
-                                if (stop || resourceNames.isDisposed()) {
-									return;
-								}
-                                updateItem(index, itemIndex[0], itemCount[0]);
-                                itemIndex[0]++;
-                            }
-                        });
-                    }
-                }
-            }
-
-            if (disposed[0]) {
-                return;
-            }
-
-            display.syncExec(new Runnable() {
-                public void run() {
-                    if (resourceNames.isDisposed()) {
-                        return;
-                    }
-                    itemCount[0] = resourceNames.getItemCount();
-                    if (itemIndex[0] < itemCount[0]) {
-                        resourceNames.setRedraw(false);
-                        resourceNames.remove(itemIndex[0], itemCount[0] - 1);
-                        resourceNames.setRedraw(true);
-                    }
-                    // If no resources, remove remaining folder entries
-                    if (resourceNames.getItemCount() == 0) {
-                        folderNames.removeAll();
-                        updateOKState(false);
-                    }
-                }
-            });
-        }
-    }
-
-    /**
-     * Creates a new instance of the class.
-     * 
-     * @param parentShell shell to parent the dialog on
-     * @param resources resources to display in the dialog
-     */
-    public ResourceListSelectionDialog(Shell parentShell, IResource[] resources) {
-        super(parentShell);
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-        gatherResourcesDynamically = false;
-        initDescriptors(resources);
-    }
-
-    /**
-     * Creates a new instance of the class.  When this constructor is used to
-     * create the dialog, resources will be gathered dynamically as the pattern
-     * string is specified.  Only resources of the given types that match the 
-     * pattern string will be listed.  To further filter the matching resources,
-     * @see #select(IResource)
-     * 
-     * @param parentShell shell to parent the dialog on
-     * @param container container to get resources from
-     * @param typeMask mask containing IResource types to be considered
-     */
-    public ResourceListSelectionDialog(Shell parentShell, IContainer container,
-            int typeMask) {
-        super(parentShell);
-        this.container = container;
-        this.typeMask = typeMask;
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-    }
-
-    /**
-     * Adjust the pattern string for matching.
-     */
-    protected String adjustPattern() {
-        String text = pattern.getText().trim();
-        if (text.endsWith("<")) { //$NON-NLS-1$
-            // the < character indicates an exact match search
-            return text.substring(0, text.length() - 1);
-        }
-        if (!text.equals("") && !text.endsWith("*")) { //$NON-NLS-1$ //$NON-NLS-2$
-        	return text + "*"; //$NON-NLS-1$
-        }
-        return text;
-    }
-
-    /**
-     * @see org.eclipse.jface.dialogs.Dialog#cancelPressed()
-     */
-    protected void cancelPressed() {
-        setResult(null);
-        super.cancelPressed();
-    }
-
-    /**
-     * @see org.eclipse.jface.window.Window#close()
-     */
-    public boolean close() {
-        boolean result = super.close();
-        labelProvider.dispose();
-        return result;
-    }
-
-    /**
-     * @see org.eclipse.jface.window.Window#create()
-     */
-    public void create() {
-        super.create();
-        pattern.setFocus();
-        getButton(IDialogConstants.OK_ID).setEnabled(okEnabled);
-    }
-
-    /**
-     * Creates the contents of this dialog, initializes the
-     * listener and the update thread.
-     * 
-     * @param parent parent to create the dialog widgets in
-     */
-    protected Control createDialogArea(Composite parent) {
-
-        Composite dialogArea = (Composite) super.createDialogArea(parent);
-        Label l = new Label(dialogArea, SWT.NONE);
-        l.setText(IDEWorkbenchMessages.ResourceSelectionDialog_label);
-        GridData data = new GridData(GridData.FILL_HORIZONTAL);
-        l.setLayoutData(data);
-
-        pattern = new Text(dialogArea, SWT.SINGLE | SWT.BORDER);
-        pattern.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        l = new Label(dialogArea, SWT.NONE);
-        l.setText(IDEWorkbenchMessages.ResourceSelectionDialog_matching);
-        data = new GridData(GridData.FILL_HORIZONTAL);
-        l.setLayoutData(data);
-        resourceNames = new Table(dialogArea, SWT.SINGLE | SWT.BORDER
-                | SWT.V_SCROLL);
-        data = new GridData(GridData.FILL_BOTH);
-        data.heightHint = 12 * resourceNames.getItemHeight();
-        resourceNames.setLayoutData(data);
-
-        l = new Label(dialogArea, SWT.NONE);
-        l.setText(IDEWorkbenchMessages.ResourceSelectionDialog_folders);
-        data = new GridData(GridData.FILL_HORIZONTAL);
-        l.setLayoutData(data);
-
-        folderNames = new Table(dialogArea, SWT.SINGLE | SWT.BORDER
-                | SWT.V_SCROLL | SWT.H_SCROLL);
-        data = new GridData(GridData.FILL_BOTH);
-        data.widthHint = 300;
-        data.heightHint = 4 * folderNames.getItemHeight();
-        folderNames.setLayoutData(data);
-
-        if (gatherResourcesDynamically) {
-            updateGatherThread = new UpdateGatherThread();
-        } else {
-            updateFilterThread = new UpdateFilterThread();
-        }
-
-        pattern.addKeyListener(new KeyAdapter() {
-            public void keyReleased(KeyEvent e) {
-                if (e.keyCode == SWT.ARROW_DOWN) {
-					resourceNames.setFocus();
-				}
-            }
-        });
-
-        pattern.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                refresh(false);
-            }
-        });
-
-        resourceNames.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                updateFolders((ResourceDescriptor) e.item.getData());
-            }
-
-            public void widgetDefaultSelected(SelectionEvent e) {
-                okPressed();
-            }
-        });
-
-        folderNames.addSelectionListener(new SelectionAdapter() {
-            public void widgetDefaultSelected(SelectionEvent e) {
-                okPressed();
-            }
-        });
-
-        if (getAllowUserToToggleDerived()) {
-            showDerivedButton = new Button(dialogArea, SWT.CHECK);
-            showDerivedButton.setText(IDEWorkbenchMessages.ResourceSelectionDialog_showDerived);
-            showDerivedButton.addSelectionListener(new SelectionAdapter() {
-                public void widgetSelected(SelectionEvent e) {
-                    setShowDerived(showDerivedButton.getSelection());
-                    refresh(true);
-                }
-            });
-            showDerivedButton.setSelection(getShowDerived());
-        }
-            
-        applyDialogFont(dialogArea);
-        return dialogArea;
-    }
-
-    /**
-     * Returns whether to include a "Show derived resources" checkbox in the dialog.
-     * The default is <code>false</code>.
-     * 
-     * @return <code>true</code> to include the checkbox, <code>false</code> to omit
-     * @since 3.1
-     */
-    public boolean getAllowUserToToggleDerived() {
-        return allowUserToToggleDerived;
-    }
-
-    /**
-     * Sets whether to include a "Show derived resources" checkbox in the dialog.
-     * 
-     * @param allow <code>true</code> to include the checkbox, <code>false</code> to omit
-     * @since 3.1
-     */
-    public void setAllowUserToToggleDerived(boolean allow) {
-        allowUserToToggleDerived = allow;
-    }
-    
-    /**
-     */
-    private void filterResources(boolean force) {
-        String oldPattern = force ? null : patternString;
-        patternString = adjustPattern();
-        if (!force && patternString.equals(oldPattern)) {
-			return;
-		}
-
-        updateFilterThread.stop = true;
-        stringMatcher = new StringMatcher(patternString, true, false);
-        UpdateFilterThread oldThread = updateFilterThread;
-        updateFilterThread = new UpdateFilterThread();
-        if (patternString.equals("")) { //$NON-NLS-1$
-            updateFilterThread.firstMatch = 0;
-            updateFilterThread.lastMatch = -1;
-            updateFilterThread.start();
-            return;
-        }
-
-        if (oldPattern != null && (oldPattern.length() != 0)
-                && oldPattern.endsWith("*") && patternString.endsWith("*")) { //$NON-NLS-1$ //$NON-NLS-2$
-            int matchLength = oldPattern.length() - 1;
-            if (patternString.regionMatches(0, oldPattern, 0, matchLength)) {
-                // filter the previous list of items, this is done when the 
-                // new pattern is a derivative of the old pattern
-                updateFilterThread.firstMatch = oldThread.firstMatch;
-                updateFilterThread.lastMatch = oldThread.lastMatch;
-                updateFilterThread.start();
-                return;
-            }
-        }
-
-        // filter the entire list
-        updateFilterThread.firstMatch = 0;
-        updateFilterThread.lastMatch = descriptorsSize - 1;
-        updateFilterThread.start();
-    }
-
-    /**
-     * Use a binary search to get the first match for the patternString.
-     * This method assumes the patternString does not contain any '?' 
-     * characters and that it contains only one '*' character at the end
-     * of the string.
-     */
-    private int getFirstMatch() {
-        int high = descriptorsSize;
-        int low = -1;
-        boolean match = false;
-        ResourceDescriptor desc = new ResourceDescriptor();
-        desc.label = patternString.substring(0, patternString.length() - 1);
-        while (high - low > 1) {
-            int index = (high + low) / 2;
-            String label = descriptors[index].label;
-            if (match(label)) {
-                high = index;
-                match = true;
-            } else {
-                int compare = descriptors[index].compareTo(desc);
-                if (compare == -1) {
-                    low = index;
-                } else {
-                    high = index;
-                }
-            }
-        }
-        if (match) {
-			return high;
-		}
-        return -1;
-    }
-
-    /**
-     */
-    private void gatherResources(boolean force) {
-        String oldPattern = force ? null : patternString;
-        patternString = adjustPattern();
-        if (!force && patternString.equals(oldPattern)) {
-			return;
-		}
-
-        updateGatherThread.stop = true;
-        updateGatherThread = new UpdateGatherThread();
-
-        if (patternString.equals("")) { //$NON-NLS-1$
-            updateGatherThread.start();
-            return;
-        }
-        stringMatcher = new StringMatcher(patternString, true, false);
-
-        if (oldPattern != null && (oldPattern.length() != 0)
-                && oldPattern.endsWith("*") && patternString.endsWith("*")) { //$NON-NLS-1$ //$NON-NLS-2$
-            // see if the new pattern is a derivative of the old pattern
-            int matchLength = oldPattern.length() - 1;
-            if (patternString.regionMatches(0, oldPattern, 0, matchLength)) {
-                updateGatherThread.refilter = true;
-                updateGatherThread.firstMatch = 0;
-                updateGatherThread.lastMatch = descriptorsSize - 1;
-                updateGatherThread.start();
-                return;
-            }
-        }
-
-        final ArrayList resources = new ArrayList();
-        BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-            public void run() {
-                getMatchingResources(resources);
-                IResource resourcesArray[] = new IResource[resources.size()];
-                resources.toArray(resourcesArray);
-                initDescriptors(resourcesArray);
-            }
-        });
-
-        updateGatherThread.firstMatch = 0;
-        updateGatherThread.lastMatch = descriptorsSize - 1;
-        updateGatherThread.start();
-    }
-
-    /**
-     * Return an image for a resource descriptor.
-     * 
-     * @param desc resource descriptor to return image for
-     * @return an image for a resource descriptor.
-     */
-    private Image getImage(ResourceDescriptor desc) {
-        IResource r = (IResource) desc.resources.get(0);
-        return labelProvider.getImage(r);
-    }
-
-    /**
-     * Use a binary search to get the last match for the patternString.
-     * This method assumes the patternString does not contain any '?' 
-     * characters and that it contains only one '*' character at the end
-     * of the string.
-     */
-    private int getLastMatch() {
-        int high = descriptorsSize;
-        int low = -1;
-        boolean match = false;
-        ResourceDescriptor desc = new ResourceDescriptor();
-        desc.label = patternString.substring(0, patternString.length() - 1);
-        while (high - low > 1) {
-            int index = (high + low) / 2;
-            String label = descriptors[index].label;
-            if (match(label)) {
-                low = index;
-                match = true;
-            } else {
-                int compare = descriptors[index].compareTo(desc);
-                if (compare == -1) {
-                    low = index;
-                } else {
-                    high = index;
-                }
-            }
-        }
-        if (match) {
-			return low;
-		}
-        return -1;
-    }
-
-    /**
-     * Gather the resources of the specified type that match the current
-     * pattern string.  Gather the resources using the proxy visitor since
-     * this is quicker than getting the entire resource.
-     * 
-     * @param resources resources that match
-     */
-    private void getMatchingResources(final ArrayList resources) {
-        try {
-            container.accept(new IResourceProxyVisitor() {
-                public boolean visit(IResourceProxy proxy) {
-                    // optionally exclude derived resources (bugs 38085 and 81333)
-                    if (!getShowDerived() && proxy.isDerived()) {
-                        return false;
-                    }
-                    int type = proxy.getType();
-                    if ((typeMask & type) != 0) {
-                        if (match(proxy.getName())) {
-                            IResource res = proxy.requestResource();
-                            if (select(res)) {
-                                resources.add(res);
-                                return true;
-                            }
-                            return false;
-                        }
-                    }
-                    if (type == IResource.FILE) {
-						return false;
-					}
-                    return true;
-                }
-            }, IResource.NONE);
-        } catch (CoreException e) {
-            // ignore
-        }
-    }
-
-    private Image getParentImage(IResource resource) {
-        IResource parent = resource.getParent();
-        return labelProvider.getImage(parent);
-    }
-
-    private String getParentLabel(IResource resource) {
-        IResource parent = resource.getParent();
-        String text;
-        if (parent.getType() == IResource.ROOT) {
-            // Get readable name for workspace root ("Workspace"), without duplicating language-specific string here.
-            text = labelProvider.getText(parent);
-        } else {
-            text = parent.getFullPath().makeRelative().toString();
-        }
-        if(text == null) {
-			return ""; //$NON-NLS-1$
-		}
-        return text;
-    }
-
-    /**
-     * Returns whether derived resources should be shown in the list.
-     * The default is <code>false</code>.
-     * 
-     * @return <code>true</code> to show derived resources, <code>false</code> to hide them
-     * @since 3.1
-     */
-    protected boolean getShowDerived() {
-       return showDerived ; 
-    }
-
-    /**
-     * Sets whether derived resources should be shown in the list.
-     * 
-     * @param show <code>true</code> to show derived resources, <code>false</code> to hide them
-     * @since 3.1
-     */
-    protected void setShowDerived(boolean show) {
-        showDerived  = show;
-    }
-
-    /**
-     * Creates a ResourceDescriptor for each IResource,
-     * sorts them and removes the duplicated ones.
-     * 
-     * @param resources resources to create resource descriptors for
-     */
-    private void initDescriptors(final IResource resources[]) {
-        BusyIndicator.showWhile(null, new Runnable() {
-            public void run() {
-                descriptors = new ResourceDescriptor[resources.length];
-                for (int i = 0; i < resources.length; i++) {
-                    IResource r = resources[i];
-                    ResourceDescriptor d = new ResourceDescriptor();
-                    //TDB: Should use the label provider and compare performance.
-                    d.label = r.getName();
-                    d.resources.add(r);
-                    descriptors[i] = d;
-                }
-                Arrays.sort(descriptors);
-                descriptorsSize = descriptors.length;
-
-                //Merge the resource descriptor with the same label and type.
-                int index = 0;
-                if (descriptorsSize < 2) {
-					return;
-				}
-                ResourceDescriptor current = descriptors[index];
-                IResource currentResource = (IResource) current.resources
-                        .get(0);
-                for (int i = 1; i < descriptorsSize; i++) {
-                    ResourceDescriptor next = descriptors[i];
-                    IResource nextResource = (IResource) next.resources.get(0);
-                    if (nextResource.getType() == currentResource.getType()
-                            && next.label.equals(current.label)) {
-                        current.resources.add(nextResource);
-                        // If we are merging resources with the same name, into a single descriptor,
-                        // then we must mark the descriptor unsorted so that we will sort the folder
-                        // names.  
-                        // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=76496
-                        current.resourcesSorted = false;
-                    } else {
-                        if (current.resources.size() > 1) {
-                            current.resourcesSorted = false;
-                        }
-                        descriptors[index + 1] = descriptors[i];
-                        index++;
-                        current = descriptors[index];
-                        currentResource = (IResource) current.resources.get(0);
-                    }
-                }
-                descriptorsSize = index + 1;
-            }
-        });
-    }
-
-    /**
-     * Returns true if the label matches the chosen pattern.
-     * 
-     * @param label label to match with the current pattern
-     * @return true if the label matches the chosen pattern. 
-     * 	false otherwise.
-     */
-    private boolean match(String label) {
-        if ((patternString == null)
-                || (patternString.equals("")) || (patternString.equals("*"))) { //$NON-NLS-1$ //$NON-NLS-2$
-			return true;
-		}
-        return stringMatcher.match(label);
-    }
-
-    /**
-     * The user has selected a resource and the dialog is closing.
-     * Set the selected resource as the dialog result.
-     */
-    protected void okPressed() {
-        TableItem items[] = folderNames.getSelection();
-        if (items.length == 1) {
-            ArrayList result = new ArrayList();
-            result.add(items[0].getData());
-            setResult(result);
-        }
-        super.okPressed();
-    }
-
-    /**
-     * Use this method to further filter resources.  As resources are gathered,
-     * if a resource matches the current pattern string, this method will be called.
-     * If this method answers false, the resource will not be included in the list
-     * of matches and the resource's children will NOT be considered for matching.
-     */
-    protected boolean select(IResource resource) {
-        return true;
-    }
-
-    /**
-     * Refreshes the filtered list of resources.
-     * Called when the text in the pattern text entry has changed.
-     * 
-     * @param force if <code>true</code> a refresh is forced, if <code>false</code> a refresh only
-     *   occurs if the pattern has changed
-     * 
-     * @since 3.1
-     */
-    protected void refresh(boolean force) {
-        if (gatherResourcesDynamically) {
-            gatherResources(force);
-        } else {
-            filterResources(force);
-        }
-    }
-
-    /**
-     * A new resource has been selected. Change the contents
-     * of the folder names list.
-     * 
-     * @desc resource descriptor of the selected resource
-     */
-    private void updateFolders(final ResourceDescriptor desc) {
-        BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-            public void run() {
-                if (!desc.resourcesSorted) {
-                    // sort the folder names
-                    Collections.sort(desc.resources, new Comparator() {
-                        public int compare(Object o1, Object o2) {
-                            String s1 = getParentLabel((IResource) o1);
-                            String s2 = getParentLabel((IResource) o2);
-                            return collator.compare(s1, s2);
-                        }
-                    });
-                    desc.resourcesSorted = true;
-                }
-                folderNames.removeAll();
-                for (int i = 0; i < desc.resources.size(); i++) {
-                    TableItem newItem = new TableItem(folderNames, SWT.NONE);
-                    IResource r = (IResource) desc.resources.get(i);
-                    newItem.setText(getParentLabel(r));
-                    newItem.setImage(getParentImage(r));
-                    newItem.setData(r);
-                }
-                folderNames.setSelection(0);
-            }
-        });
-    }
-
-    /**
-     * Update the specified item with the new info from the resource 
-     * descriptor.
-     * Create a new table item if there is no item. 
-     * 
-     * @param index index of the resource descriptor
-     * @param itemPos position of the existing item to update
-     * @param itemCount number of items in the resources table widget
-     */
-    private void updateItem(int index, int itemPos, int itemCount) {
-        ResourceDescriptor desc = descriptors[index];
-        TableItem item;
-        if (itemPos < itemCount) {
-            item = resourceNames.getItem(itemPos);
-            if (item.getData() != desc) {
-                item.setText(desc.label);
-                item.setData(desc);
-                item.setImage(getImage(desc));
-                if (itemPos == 0) {
-                    resourceNames.setSelection(0);
-                    updateFolders(desc);
-                }
-            }
-        } else {
-            item = new TableItem(resourceNames, SWT.NONE);
-            item.setText(desc.label);
-            item.setData(desc);
-            item.setImage(getImage(desc));
-            if (itemPos == 0) {
-                resourceNames.setSelection(0);
-                updateFolders(desc);
-            }
-        }
-        updateOKState(true);
-    }
-    
-    /**
-     * Update the enabled state of the OK button.  To be called when
-     * the resource list is updated.
-     * @param state the new enabled state of the button
-     */
-    protected void updateOKState(boolean state) {
-    	Button okButton = getButton(IDialogConstants.OK_ID);
-    	if(okButton != null && !okButton.isDisposed() && state != okEnabled) {
-    		okButton.setEnabled(state);
-    		okEnabled = state;
-    	}
-    }
-    
-	
-	/* (non-Javadoc)
-     * @see org.eclipse.jface.window.Dialog#getDialogBoundsSettings()
-     * 
-     * @since 3.2
-     */
-	protected IDialogSettings getDialogBoundsSettings() {
-        IDialogSettings settings = IDEWorkbenchPlugin.getDefault().getDialogSettings();
-        IDialogSettings section = settings.getSection(DIALOG_SETTINGS_SECTION);
-        if (section == null) {
-            section = settings.addNewSection(DIALOG_SETTINGS_SECTION);
-        } 
-        return section;
-	}
-}
-    
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ResourceSelectionDialog.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ResourceSelectionDialog.java
deleted file mode 100644
index 8ed579e..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ResourceSelectionDialog.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-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.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.misc.CheckboxTreeAndListGroup;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * A standard resource selection dialog which solicits a list of resources from
- * the user. The <code>getResult</code> method returns the selected resources.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * 	ResourceSelectionDialog dialog =
- *		new ResourceSelectionDialog(getShell(), rootResource, msg);
- *	dialog.setInitialSelections(selectedResources);
- *	dialog.open();
- *	return dialog.getResult();
- * </pre>
- * </p>
- */
-public class ResourceSelectionDialog extends SelectionDialog {
-    // the root element to populate the viewer with
-    private IAdaptable root;
-
-    // the visual selection widget group
-    private CheckboxTreeAndListGroup selectionGroup;
-
-    // constants
-    private final static int SIZING_SELECTION_WIDGET_WIDTH = 400;
-
-    private final static int SIZING_SELECTION_WIDGET_HEIGHT = 300;
-
-    /**
-     * Creates a resource selection dialog rooted at the given element.
-     *
-     * @param parentShell the parent shell
-     * @param rootElement the root element to populate this dialog with
-     * @param message the message to be displayed at the top of this dialog, or
-     *    <code>null</code> to display a default message
-     */
-    public ResourceSelectionDialog(Shell parentShell, IAdaptable rootElement,
-            String message) {
-        super(parentShell);
-        setTitle(IDEWorkbenchMessages.ResourceSelectionDialog_title);
-        root = rootElement;
-        if (message != null) {
-			setMessage(message);
-		} else {
-			setMessage(IDEWorkbenchMessages.ResourceSelectionDialog_message);
-		}
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-    }
-
-    /**
-     * Visually checks the previously-specified elements in the container (left)
-     * portion of this dialog's resource selection viewer.
-     */
-    private void checkInitialSelections() {
-        Iterator itemsToCheck = getInitialElementSelections().iterator();
-
-        while (itemsToCheck.hasNext()) {
-            IResource currentElement = (IResource) itemsToCheck.next();
-
-            if (currentElement.getType() == IResource.FILE) {
-				selectionGroup.initialCheckListItem(currentElement);
-			} else {
-				selectionGroup.initialCheckTreeItem(currentElement);
-			}
-        }
-    }
-
-
-    /**
-     * @param event the event
-     */
-    public void checkStateChanged(CheckStateChangedEvent event) {
-        getOkButton().setEnabled(selectionGroup.getCheckedElementCount() > 0);
-    }
-
-    /* (non-Javadoc)
-     * Method declared in Window.
-     */
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(shell,
-				IIDEHelpContextIds.RESOURCE_SELECTION_DIALOG);
-    }
-
-    public void create() {
-        super.create();
-        initializeDialog();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected Control createDialogArea(Composite parent) {
-        // page group
-        Composite composite = (Composite) super.createDialogArea(parent);
-
-        //create the input element, which has the root resource
-        //as its only child
-        ArrayList input = new ArrayList();
-        input.add(root);
-
-        createMessageArea(composite);
-        selectionGroup = new CheckboxTreeAndListGroup(composite, input,
-                getResourceProvider(IResource.FOLDER | IResource.PROJECT
-                        | IResource.ROOT), WorkbenchLabelProvider
-                        .getDecoratingWorkbenchLabelProvider(),
-                getResourceProvider(IResource.FILE), WorkbenchLabelProvider
-                        .getDecoratingWorkbenchLabelProvider(), SWT.NONE,
-                // since this page has no other significantly-sized
-                // widgets we need to hardcode the combined widget's
-                // size, otherwise it will open too small
-                SIZING_SELECTION_WIDGET_WIDTH, SIZING_SELECTION_WIDGET_HEIGHT);
-
-        composite.addControlListener(new ControlListener() {
-            public void controlMoved(ControlEvent e) {
-            }
-
-            public void controlResized(ControlEvent e) {
-                //Also try and reset the size of the columns as appropriate
-                TableColumn[] columns = selectionGroup.getListTable()
-                        .getColumns();
-                for (int i = 0; i < columns.length; i++) {
-                    columns[i].pack();
-                }
-            }
-        });
-
-        return composite;
-    }
-
-    /**
-     * Returns a content provider for <code>IResource</code>s that returns 
-     * only children of the given resource type.
-     */
-    private ITreeContentProvider getResourceProvider(final int resourceType) {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object o) {
-                if (o instanceof IContainer) {
-                    IResource[] members = null;
-                    try {
-                        members = ((IContainer) o).members();
-                    } catch (CoreException e) {
-                        //just return an empty set of children
-                        return new Object[0];
-                    }
-
-                    //filter out the desired resource types
-                    ArrayList results = new ArrayList();
-                    for (int i = 0; i < members.length; i++) {
-                        //And the test bits with the resource types to see if they are what we want
-                        if ((members[i].getType() & resourceType) > 0) {
-                            results.add(members[i]);
-                        }
-                    }
-                    return results.toArray();
-                }
-                //input element case
-                if (o instanceof ArrayList) {
-                    return ((ArrayList) o).toArray();
-                } 
-                return new Object[0];
-            }
-        };
-    }
-
-    /**
-     * Initializes this dialog's controls.
-     */
-    private void initializeDialog() {
-        selectionGroup.addCheckStateListener(new ICheckStateListener() {
-            public void checkStateChanged(CheckStateChangedEvent event) {
-                getOkButton().setEnabled(
-                        selectionGroup.getCheckedElementCount() > 0);
-            }
-        });
-
-        if (getInitialElementSelections().isEmpty()) {
-			getOkButton().setEnabled(false);
-		} else {
-			checkInitialSelections();
-		}
-    }
-
-    /**
-     * The <code>ResourceSelectionDialog</code> implementation of this 
-     * <code>Dialog</code> method builds a list of the selected resources for later 
-     * retrieval by the client and closes this dialog.
-     */
-    protected void okPressed() {
-        Iterator resultEnum = selectionGroup.getAllCheckedListItems();
-        ArrayList list = new ArrayList();
-        while (resultEnum.hasNext()) {
-			list.add(resultEnum.next());
-		}
-        setResult(list);
-        super.okPressed();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/SaveAsDialog.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/SaveAsDialog.java
deleted file mode 100644
index 27a1f45..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/SaveAsDialog.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM Corporation - initial API and implementation 
- *    Bob Foster <bob@objfac.com>
- *     - Fix for bug 23025 - SaveAsDialog should not assume what is being saved is an IFile
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-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.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-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.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup;
-
-/**
- * A standard "Save As" dialog which solicits a path from the user. The
- * <code>getResult</code> method returns the path. Note that the folder
- * at the specified path might not exist and might need to be created.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- *
- * @see org.eclipse.ui.dialogs.ContainerGenerator
- */
-public class SaveAsDialog extends TitleAreaDialog {
-	
-	private static final String DIALOG_SETTINGS_SECTION = "SaveAsDialogSettings"; //$NON-NLS-1$
-	
-	private IFile originalFile = null;
-
-    private String originalName = null;
-
-    private IPath result;
-
-    // widgets
-    private ResourceAndContainerGroup resourceGroup;
-
-    private Button okButton;
-
-    /**
-     * Image for title area
-     */
-    private Image dlgTitleImage = null;
-
-    /**
-     * Creates a new Save As dialog for no specific file.
-     *
-     * @param parentShell the parent shell
-     */
-    public SaveAsDialog(Shell parentShell) {
-        super(parentShell);
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-    }
-
-    /* (non-Javadoc)
-     * Method declared in Window.
-     */
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        shell.setText(IDEWorkbenchMessages.SaveAsDialog_text);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(shell,
-				IIDEHelpContextIds.SAVE_AS_DIALOG);
-    }
-
-    /* (non-Javadoc)
-     * Method declared in Window.
-     */
-    protected Control createContents(Composite parent) {
-
-        Control contents = super.createContents(parent);
-
-        initializeControls();
-        validatePage();
-        resourceGroup.setFocus();
-        setTitle(IDEWorkbenchMessages.SaveAsDialog_title);
-        dlgTitleImage = IDEInternalWorkbenchImages.getImageDescriptor(
-                IDEInternalWorkbenchImages.IMG_DLGBAN_SAVEAS_DLG).createImage();
-        setTitleImage(dlgTitleImage);
-        setMessage(IDEWorkbenchMessages.SaveAsDialog_message);
-
-        return contents;
-    }
-
-    /** 
-     * The <code>SaveAsDialog</code> implementation of this <code>Window</code>
-     * method disposes of the banner image when the dialog is closed.
-     */
-    public boolean close() {
-        if (dlgTitleImage != null) {
-			dlgTitleImage.dispose();
-		}
-        return super.close();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected void createButtonsForButtonBar(Composite parent) {
-        okButton = createButton(parent, IDialogConstants.OK_ID,
-                IDialogConstants.OK_LABEL, true);
-        createButton(parent, IDialogConstants.CANCEL_ID,
-                IDialogConstants.CANCEL_LABEL, false);
-    }
-
-    /* (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);
-        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));
-        composite.setFont(parentComposite.getFont());
-
-        Listener listener = new Listener() {
-            public void handleEvent(Event event) {
-                setDialogComplete(validatePage());
-            }
-        };
-
-        resourceGroup = new ResourceAndContainerGroup(
-                composite,
-                listener,
-                IDEWorkbenchMessages.SaveAsDialog_fileLabel, IDEWorkbenchMessages.SaveAsDialog_file);
-        resourceGroup.setAllowExistingResources(true);
-
-        return parentComposite;
-    }
-
-    /**
-     * Returns the full path entered by the user.
-     * <p>
-     * Note that the file and container might not exist and would need to be created.
-     * See the <code>IFile.create</code> method and the 
-     * <code>ContainerGenerator</code> class.
-     * </p>
-     *
-     * @return the path, or <code>null</code> if Cancel was pressed
-     */
-    public IPath getResult() {
-        return result;
-    }
-
-    /**
-     * Initializes the controls of this dialog.
-     */
-    private void initializeControls() {
-        if (originalFile != null) {
-            resourceGroup.setContainerFullPath(originalFile.getParent()
-                    .getFullPath());
-            resourceGroup.setResource(originalFile.getName());
-        } else if (originalName != null) {
-			resourceGroup.setResource(originalName);
-		}
-        setDialogComplete(validatePage());
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected void okPressed() {
-        // Get new path.
-        IPath path = resourceGroup.getContainerFullPath().append(
-                resourceGroup.getResource());
-
-        //If the user does not supply a file extension and if the save 
-        //as dialog was provided a default file name append the extension 
-        //of the default filename to the new name
-        if (path.getFileExtension() == null) {
-            if (originalFile != null && originalFile.getFileExtension() != null) {
-				path = path.addFileExtension(originalFile.getFileExtension());
-			} else if (originalName != null) {
-                int pos = originalName.lastIndexOf('.');
-                if (++pos > 0 && pos < originalName.length()) {
-					path = path.addFileExtension(originalName.substring(pos));
-				}
-            }
-        }
-
-        // If the path already exists then confirm overwrite.
-        IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-        if (file.exists()) {
-            String[] buttons = new String[] { IDialogConstants.YES_LABEL,
-                    IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL };
-            String question = NLS.bind(IDEWorkbenchMessages.SaveAsDialog_overwriteQuestion, path.toOSString());
-            MessageDialog d = new MessageDialog(getShell(),
-                    IDEWorkbenchMessages.Question,
-                    null, question, MessageDialog.QUESTION, buttons, 0);
-            int overwrite = d.open();
-            switch (overwrite) {
-            case 0: // Yes
-                break;
-            case 1: // No
-                return;
-            case 2: // Cancel
-            default:
-                cancelPressed();
-                return;
-            }
-        }
-
-        // Store path and close.
-        result = path;
-        close();
-    }
-
-    /**
-     * Sets the completion state of this dialog and adjusts the enable state of
-     * the Ok button accordingly.
-     *
-     * @param value <code>true</code> if this dialog is compelete, and
-     *  <code>false</code> otherwise
-     */
-    protected void setDialogComplete(boolean value) {
-        okButton.setEnabled(value);
-    }
-
-    /**
-     * Sets the original file to use.
-     *
-     * @param originalFile the original file
-     */
-    public void setOriginalFile(IFile originalFile) {
-        this.originalFile = originalFile;
-    }
-
-    /**
-     * Set the original file name to use.
-     * Used instead of <code>setOriginalFile</code>
-     * when the original resource is not an IFile.
-     * Must be called before <code>create</code>.
-     * @param originalName default file name
-     */
-    public void setOriginalName(String originalName) {
-        this.originalName = originalName;
-    }
-
-    /**
-     * Returns whether this page's visual components all contain valid values.
-     *
-     * @return <code>true</code> if valid, and <code>false</code> otherwise
-     */
-    private boolean validatePage() {
-        if (!resourceGroup.areAllValuesValid()) {
-            if (!resourceGroup.getResource().equals("")) { //$NON-NLS-1$
-				setErrorMessage(resourceGroup.getProblemMessage());
-			} else {
-            	setErrorMessage(null);
-            }
-            return false;
-        }
-        
-        String resourceName = resourceGroup.getResource();
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        IStatus result = workspace.validateName(resourceName, IResource.FILE);
-        if (!result.isOK()){
-        	setErrorMessage(result.getMessage());
-        	return false;
-        }
-        
-        setErrorMessage(null);
-        return true;
-    }
-    
-	/* (non-Javadoc)
-     * @see org.eclipse.jface.window.Dialog#getDialogBoundsSettings()
-     * 
-     * @since 3.2
-     */
-	protected IDialogSettings getDialogBoundsSettings() {
-        IDialogSettings settings = IDEWorkbenchPlugin.getDefault().getDialogSettings();
-        IDialogSettings section = settings.getSection(DIALOG_SETTINGS_SECTION);
-        if (section == null) {
-            section = settings.addNewSection(DIALOG_SETTINGS_SECTION);
-        } 
-        return section;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardDataTransferPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardDataTransferPage.java
deleted file mode 100644
index d98977f..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardDataTransferPage.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * The common superclass for wizard import and export pages.
- * <p>
- * This class is not intended to be subclassed outside of the workbench.
- * </p>
- */
-public abstract class WizardDataTransferPage extends WizardPage implements
-        Listener, IOverwriteQuery {
-
-    // constants
-    protected static final int SIZING_TEXT_FIELD_WIDTH = 250;
-
-    protected static final int COMBO_HISTORY_LENGTH = 5;
-
-    /**
-     * Creates a new wizard page.
-     *
-     * @param pageName the name of the page
-     */
-    protected WizardDataTransferPage(String pageName) {
-        super(pageName);
-    }
-
-    /**
-     * Adds an entry to a history, while taking care of duplicate history items
-     * and excessively long histories.  The assumption is made that all histories
-     * should be of length <code>WizardDataTransferPage.COMBO_HISTORY_LENGTH</code>.
-     *
-     * @param history the current history
-     * @param newEntry the entry to add to the history
-     */
-    protected String[] addToHistory(String[] history, String newEntry) {
-        java.util.ArrayList l = new java.util.ArrayList(Arrays.asList(history));
-        addToHistory(l, newEntry);
-        String[] r = new String[l.size()];
-        l.toArray(r);
-        return r;
-    }
-
-    /**
-     * Adds an entry to a history, while taking care of duplicate history items
-     * and excessively long histories.  The assumption is made that all histories
-     * should be of length <code>WizardDataTransferPage.COMBO_HISTORY_LENGTH</code>.
-     *
-     * @param history the current history
-     * @param newEntry the entry to add to the history
-     */
-    protected void addToHistory(List history, String newEntry) {
-        history.remove(newEntry);
-        history.add(0, newEntry);
-
-        // since only one new item was added, we can be over the limit
-        // by at most one item
-        if (history.size() > COMBO_HISTORY_LENGTH) {
-			history.remove(COMBO_HISTORY_LENGTH);
-		}
-    }
-
-    /**
-     * Return whether the user is allowed to enter a new container name or just
-     * choose from existing ones.
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @return <code>true</code> if new ones are okay, and <code>false</code>
-     *  if only existing ones are allowed
-     */
-    protected abstract boolean allowNewContainerName();
-
-    /**
-     * Creates a new label with a bold font.
-     *
-     * @param parent the parent control
-     * @param text the label text
-     * @return the new label control
-     */
-    protected Label createBoldLabel(Composite parent, String text) {
-        Label label = new Label(parent, SWT.NONE);
-        label.setFont(JFaceResources.getBannerFont());
-        label.setText(text);
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        label.setLayoutData(data);
-        return label;
-    }
-
-    /**
-     * Creates the import/export options group controls.
-     * <p>
-     * The <code>WizardDataTransferPage</code> implementation of this method does
-     * nothing. Subclasses wishing to define such components should reimplement
-     * this hook method.
-     * </p>
-     *
-     * @param optionsGroup the parent control
-     */
-    protected void createOptionsGroupButtons(Group optionsGroup) {
-    }
-
-    /**
-     * Creates a new label with a bold font.
-     *
-     * @param parent the parent control
-     * @param text the label text
-     * @return the new label control
-     */
-    protected Label createPlainLabel(Composite parent, String text) {
-        Label label = new Label(parent, SWT.NONE);
-        label.setText(text);
-        label.setFont(parent.getFont());
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        label.setLayoutData(data);
-        return label;
-    }
-
-    /**
-     * Creates a horizontal spacer line that fills the width of its container.
-     *
-     * @param parent the parent control
-     */
-    protected void createSpacer(Composite parent) {
-        Label spacer = new Label(parent, SWT.NONE);
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        data.verticalAlignment = GridData.BEGINNING;
-        spacer.setLayoutData(data);
-    }
-
-    /**
-     * Returns whether this page is complete. This determination is made based upon
-     * the current contents of this page's controls.  Subclasses wishing to include
-     * their controls in this determination should override the hook methods 
-     * <code>validateSourceGroup</code> and/or <code>validateOptionsGroup</code>.
-     *
-     * @return <code>true</code> if this page is complete, and <code>false</code> if
-     *   incomplete
-     * @see #validateSourceGroup
-     * @see #validateOptionsGroup
-     */
-    protected boolean determinePageCompletion() {
-        boolean complete = validateSourceGroup() && validateDestinationGroup()
-                && validateOptionsGroup();
-
-        // Avoid draw flicker by not clearing the error
-        // message unless all is valid.
-        if (complete) {
-			setErrorMessage(null);
-		}
-
-        return complete;
-    }
-
-    /**
-     * Get a path from the supplied text widget.
-     * @return org.eclipse.core.runtime.IPath
-     */
-    protected IPath getPathFromText(Text textField) {
-        String text = textField.getText();
-        //Do not make an empty path absolute so as not to confuse with the root
-        if (text.length() == 0) {
-			return new Path(text);
-		}
-       
-        return (new Path(text)).makeAbsolute();
-    }
-
-    /**
-     * Queries the user to supply a container resource.
-     *
-     * @return the path to an existing or new container, or <code>null</code> if the
-     *    user cancelled the dialog
-     */
-    protected IPath queryForContainer(IContainer initialSelection, String msg) {
-        return queryForContainer(initialSelection, msg, null);
-    }
-
-    /**
-     * Queries the user to supply a container resource.
-     *
-     * @return the path to an existing or new container, or <code>null</code> if the
-     *    user cancelled the dialog
-     */
-    protected IPath queryForContainer(IContainer initialSelection, String msg,
-            String title) {
-        ContainerSelectionDialog dialog = new ContainerSelectionDialog(
-                getControl().getShell(), initialSelection,
-                allowNewContainerName(), msg);
-        if (title != null) {
-			dialog.setTitle(title);
-		}
-        dialog.showClosedProjects(false);
-        dialog.open();
-        Object[] result = dialog.getResult();
-        if (result != null && result.length == 1) {
-            return (IPath) result[0];
-        }
-        return null;
-    }
-
-    /**
-     * The <code>WizardDataTransfer</code> implementation of this 
-     * <code>IOverwriteQuery</code> method asks the user whether the existing 
-     * resource at the given path should be overwritten.
-     *
-     * @param pathString 
-     * @return the user's reply: one of <code>"YES"</code>, <code>"NO"</code>, <code>"ALL"</code>, 
-     *   or <code>"CANCEL"</code>
-     */
-    public String queryOverwrite(String pathString) {
-
-        Path path = new Path(pathString);
-
-        String messageString;
-        //Break the message up if there is a file name and a directory
-        //and there are at least 2 segments.
-        if (path.getFileExtension() == null || path.segmentCount() < 2) {
-			messageString = NLS.bind(IDEWorkbenchMessages.WizardDataTransfer_existsQuestion, pathString);
-		} else {
-			messageString = NLS.bind(IDEWorkbenchMessages.WizardDataTransfer_overwriteNameAndPathQuestion, path.lastSegment(),
-			path.removeLastSegments(1).toOSString());
-		}
-
-        final MessageDialog dialog = new MessageDialog(getContainer()
-                .getShell(), IDEWorkbenchMessages.Question,
-                null, messageString, MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL,
-                        IDialogConstants.YES_TO_ALL_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.NO_TO_ALL_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        String[] response = new String[] { YES, ALL, NO, NO_ALL, CANCEL };
-        //run in syncExec because callback is from an operation,
-        //which is probably not running in the UI thread.
-        getControl().getDisplay().syncExec(new Runnable() {
-            public void run() {
-                dialog.open();
-            }
-        });
-        return dialog.getReturnCode() < 0 ? CANCEL : response[dialog
-                .getReturnCode()];
-    }
-
-    /**
-     * Displays a Yes/No question to the user with the specified message and returns
-     * the user's response.
-     *
-     * @param message the question to ask
-     * @return <code>true</code> for Yes, and <code>false</code> for No
-     */
-    protected boolean queryYesNoQuestion(String message) {
-        MessageDialog dialog = new MessageDialog(getContainer().getShell(),
-                IDEWorkbenchMessages.Question,
-                (Image) null, message, MessageDialog.NONE,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL }, 0);
-        // ensure yes is the default
-
-        return dialog.open() == 0;
-    }
-
-    /**
-     * Restores control settings that were saved in the previous instance of this
-     * page.  
-     * <p>
-     * The <code>WizardDataTransferPage</code> implementation of this method does
-     * nothing. Subclasses may override this hook method.
-     * </p>
-     */
-    protected void restoreWidgetValues() {
-    }
-
-    /**
-     * Saves control settings that are to be restored in the next instance of
-     * this page.  
-     * <p>
-     * The <code>WizardDataTransferPage</code> implementation of this method does
-     * nothing. Subclasses may override this hook method.
-     * </p>
-     */
-    protected void saveWidgetValues() {
-    }
-
-    /**
-     * Determine if the page is complete and update the page appropriately. 
-     */
-    protected void updatePageCompletion() {
-        boolean pageComplete = determinePageCompletion();
-        setPageComplete(pageComplete);
-        if (pageComplete) {
-            setMessage(null);
-        }
-    }
-
-    /**
-     * Updates the enable state of this page's controls.
-     * <p>
-     * The <code>WizardDataTransferPage</code> implementation of this method does
-     * nothing. Subclasses may extend this hook method.
-     * </p>
-     */
-    protected void updateWidgetEnablements() {
-    }
-
-    /**
-     * Returns whether this page's destination specification controls currently all
-     * contain valid values.
-     * <p>
-     * The <code>WizardDataTransferPage</code> implementation of this method returns
-     * <code>true</code>. Subclasses may reimplement this hook method.
-     * </p>
-     *
-     * @return <code>true</code> indicating validity of all controls in the 
-     *   destination specification group
-     */
-    protected boolean validateDestinationGroup() {
-        return true;
-    }
-
-    /**
-     * Returns whether this page's options group's controls currently all contain
-     * valid values.
-     * <p>
-     * The <code>WizardDataTransferPage</code> implementation of this method returns
-     * <code>true</code>. Subclasses may reimplement this hook method.
-     * </p>
-     *
-     * @return <code>true</code> indicating validity of all controls in the options
-     *   group
-     */
-    protected boolean validateOptionsGroup() {
-        return true;
-    }
-
-    /**
-     * Returns whether this page's source specification controls currently all
-     * contain valid values.
-     * <p>
-     * The <code>WizardDataTransferPage</code> implementation of this method returns
-     * <code>true</code>. Subclasses may reimplement this hook method.
-     * </p>
-     *
-     * @return <code>true</code> indicating validity of all controls in the 
-     *   source specification group
-     */
-    protected boolean validateSourceGroup() {
-        return true;
-    }
-
-    /**
-     *	Create the options specification widgets.
-     *
-     *	@param parent org.eclipse.swt.widgets.Composite
-     */
-    protected void createOptionsGroup(Composite parent) {
-        // options group
-        Group optionsGroup = new Group(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        optionsGroup.setLayout(layout);
-        optionsGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL));
-        optionsGroup.setText(IDEWorkbenchMessages.WizardExportPage_options);
-        optionsGroup.setFont(parent.getFont());
-
-        createOptionsGroupButtons(optionsGroup);
-
-    }
-
-    /**
-     * Display an error dialog with the specified message.
-     *
-     * @param message the error message
-     */
-    protected void displayErrorDialog(String message) {
-        MessageDialog.openError(getContainer().getShell(),
-                getErrorDialogTitle(), message);
-    }
-
-    /**
-     * Display an error dislog with the information from the
-     * supplied exception.
-     * @param exception Throwable
-     */
-    protected void displayErrorDialog(Throwable exception) {
-        String message = exception.getMessage();
-        //Some system exceptions have no message
-        if (message == null) {
-			message = NLS.bind(IDEWorkbenchMessages.WizardDataTransfer_exceptionMessage, exception);
-		}
-        displayErrorDialog(message);
-    }
-
-    /**
-     * Get the title for an error dialog. Subclasses should
-     * override.
-     */
-    protected String getErrorDialogTitle() {
-        return IDEWorkbenchMessages.WizardExportPage_internalErrorTitle;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardExportPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardExportPage.java
deleted file mode 100644
index 1787a12..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardExportPage.java
+++ /dev/null
@@ -1,955 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-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.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.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-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.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IFileEditorMapping;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * Abstract superclass for a typical export wizard's main page.
- * <p>
- * Clients may subclass this page to inherit its common destination resource
- * selection facilities.
- * </p>
- * <p>
- * Subclasses must implement 
- * <ul>
- *   <li><code>createDestinationGroup</code></li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may override
- * <ul>
- *   <li><code>allowNewContainerName</code></li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may extend
- * <ul>
- *   <li><code>handleEvent</code></li>
- *   <li><code>internalSaveWidgetValues</code></li>
- *   <li><code>updateWidgetEnablements</code></li>
- * </ul>
- * </p>
- * @deprecated use WizardExportResourcePage
- */
-public abstract class WizardExportPage extends WizardDataTransferPage {
-    private IStructuredSelection currentResourceSelection;
-
-    private List selectedResources;
-
-    private List selectedTypes;
-
-    private boolean exportCurrentSelection = false;
-
-    private boolean exportAllResourcesPreSet = false;
-
-    // widgets
-    private Combo typesToExportField;
-
-    private Button typesToExportEditButton;
-
-    private Button exportAllTypesRadio;
-
-    private Button exportSpecifiedTypesRadio;
-
-    private Button resourceDetailsButton;
-
-    private Label resourceDetailsDescription;
-
-    private Text resourceNameField;
-
-    private Button resourceBrowseButton;
-
-    // initial value stores
-    private boolean initialExportAllTypesValue = true;
-
-    private String initialExportFieldValue;
-
-    private String initialTypesFieldValue;
-
-    // constants
-    private static final String CURRENT_SELECTION = "<current selection>";//$NON-NLS-1$
-
-    private static final String TYPE_DELIMITER = ",";//$NON-NLS-1$
-
-    // dialog store id constants
-    private static final String STORE_SELECTED_TYPES_ID = "WizardFileSystemExportPage1.STORE_SELECTED_TYPES_ID.";//$NON-NLS-1$
-
-    private static final String STORE_EXPORT_ALL_RESOURCES_ID = "WizardFileSystemExportPage1.STORE_EXPORT_ALL_RESOURCES_ID.";//$NON-NLS-1$
-
-    /**
-     * Creates an export wizard page. If the current resource selection 
-     * is not empty then it will be used as the initial collection of resources
-     * selected for export.
-     *
-     * @param pageName the name of the page
-     * @param selection the current resource selection
-     */
-    protected WizardExportPage(String pageName, IStructuredSelection selection) {
-        super(pageName);
-        this.currentResourceSelection = selection;
-    }
-
-    /**
-     * The <code>WizardExportPage</code> implementation of this 
-     * <code>WizardDataTransferPage</code> method returns <code>false</code>. 
-     * Subclasses may override this method.
-     */
-    protected boolean allowNewContainerName() {
-        return false;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        Composite composite = new Composite(parent, SWT.NULL);
-        composite.setLayout(new GridLayout());
-        composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-
-        createBoldLabel(composite, IDEWorkbenchMessages.WizardExportPage_whatLabel);
-        createSourceGroup(composite);
-
-        createSpacer(composite);
-
-        createBoldLabel(composite, IDEWorkbenchMessages.WizardExportPage_whereLabel);
-        createDestinationGroup(composite);
-
-        createSpacer(composite);
-
-        createBoldLabel(composite, IDEWorkbenchMessages.WizardExportPage_options);
-        createOptionsGroup(composite);
-
-        restoreResourceSpecificationWidgetValues(); // ie.- local
-        restoreWidgetValues(); // ie.- subclass hook
-        if (currentResourceSelection != null) {
-			setupBasedOnInitialSelections();
-		}
-
-        updateWidgetEnablements();
-        setPageComplete(determinePageCompletion());
-
-        setControl(composite);
-    }
-
-    /**
-     * Creates the export destination specification visual components.
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @param parent the parent control
-     */
-    protected abstract void createDestinationGroup(Composite parent);
-
-    /**
-     * Creates the export source resource specification controls.
-     *
-     * @param parent the parent control
-     */
-    protected final void createSourceGroup(Composite parent) {
-        // top level group
-        Composite sourceGroup = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        sourceGroup.setLayout(layout);
-        sourceGroup.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-
-        // resource label
-        new Label(sourceGroup, SWT.NONE).setText(IDEWorkbenchMessages.WizardExportPage_folder);
-
-        // resource name entry field
-        resourceNameField = new Text(sourceGroup, SWT.SINGLE | SWT.BORDER);
-        resourceNameField.addListener(SWT.KeyDown, this);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-        resourceNameField.setLayoutData(data);
-
-        // resource browse button
-        resourceBrowseButton = new Button(sourceGroup, SWT.PUSH);
-        resourceBrowseButton.setText(IDEWorkbenchMessages.WizardExportPage_browse);
-        resourceBrowseButton.addListener(SWT.Selection, this);
-        resourceBrowseButton.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-
-        // export all types radio	
-        exportAllTypesRadio = new Button(sourceGroup, SWT.RADIO);
-        exportAllTypesRadio.setText(IDEWorkbenchMessages.WizardExportPage_allTypes);
-        exportAllTypesRadio.addListener(SWT.Selection, this);
-        data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        data.horizontalSpan = 3;
-        exportAllTypesRadio.setLayoutData(data);
-
-        // export specific types radio
-        exportSpecifiedTypesRadio = new Button(sourceGroup, SWT.RADIO);
-        exportSpecifiedTypesRadio.setText(IDEWorkbenchMessages.WizardExportPage_specificTypes);
-        exportSpecifiedTypesRadio.addListener(SWT.Selection, this);
-
-        // types combo
-        typesToExportField = new Combo(sourceGroup, SWT.NONE);
-        data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-        typesToExportField.setLayoutData(data);
-        typesToExportField.addListener(SWT.Modify, this);
-
-        // types edit button
-        typesToExportEditButton = new Button(sourceGroup, SWT.PUSH);
-        typesToExportEditButton.setText(IDEWorkbenchMessages.WizardExportPage_edit);
-        typesToExportEditButton.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL
-                        | GridData.VERTICAL_ALIGN_END));
-        typesToExportEditButton.addListener(SWT.Selection, this);
-
-        // details button
-        resourceDetailsButton = new Button(sourceGroup, SWT.PUSH);
-        resourceDetailsButton.setText(IDEWorkbenchMessages.WizardExportPage_details);
-        resourceDetailsButton.addListener(SWT.Selection, this);
-
-        // details label
-        resourceDetailsDescription = new Label(sourceGroup, SWT.NONE);
-        data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        data.horizontalSpan = 2;
-        resourceDetailsDescription.setLayoutData(data);
-
-        // initial setup
-        resetSelectedResources();
-        exportAllTypesRadio.setSelection(initialExportAllTypesValue);
-        exportSpecifiedTypesRadio.setSelection(!initialExportAllTypesValue);
-        typesToExportField.setEnabled(!initialExportAllTypesValue);
-        typesToExportEditButton.setEnabled(!initialExportAllTypesValue);
-
-        if (initialExportFieldValue != null) {
-			resourceNameField.setText(initialExportFieldValue);
-		}
-        if (initialTypesFieldValue != null) {
-			typesToExportField.setText(initialTypesFieldValue);
-		}
-    }
-
-    /**
-     * Display an error dialog with the specified message.
-     *
-     * @param message the error message
-     */
-    protected void displayErrorDialog(String message) {
-        MessageDialog.openError(getContainer().getShell(), IDEWorkbenchMessages.WizardExportPage_errorDialogTitle, message);
-    }
-
-    /**
-     * Displays a description message that indicates a selection of resources
-     * of the specified size.
-     *
-     * @param selectedResourceCount the resource selection size to display
-     */
-    protected void displayResourcesSelectedCount(int selectedResourceCount) {
-        if (selectedResourceCount == 1) {
-			resourceDetailsDescription.setText(IDEWorkbenchMessages.WizardExportPage_oneResourceSelected);
-		} else {
-			resourceDetailsDescription
-                    .setText(NLS.bind(IDEWorkbenchMessages.WizardExportPage_resourceCountMessage, new Integer(selectedResourceCount)));
-		}
-    }
-
-    /**
-     * Obsolete method. This was implemented to handle the case where ensureLocal()
-     * needed to be called but it doesn't use it any longer.
-     *
-     * @param resources the list of resources to ensure locality for
-     * @return <code>true</code> for successful completion
-     * @deprecated Only retained for backwards compatibility.
-     */
-    protected boolean ensureResourcesLocal(List resources) {
-        return true;
-    }
-
-    /**
-     * Returns a new subcollection containing only those resources which are not 
-     * local.
-     *
-     * @param originalList the original list of resources (element type: 
-     *   <code>IResource</code>)
-     * @return the new list of non-local resources (element type: 
-     *   <code>IResource</code>)
-     */
-    protected List extractNonLocalResources(List originalList) {
-        Vector result = new Vector(originalList.size());
-        Iterator resourcesEnum = originalList.iterator();
-
-        while (resourcesEnum.hasNext()) {
-            IResource currentResource = (IResource) resourcesEnum.next();
-            if (!currentResource.isLocal(IResource.DEPTH_ZERO)) {
-				result.addElement(currentResource);
-			}
-        }
-
-        return result;
-    }
-
-    /**
-     * Returns the current selection value of the "Export all types" radio,
-     * or its set initial value if it does not exist yet.
-     *
-     * @return the "Export All Types" radio's current value or anticipated initial
-     *   value
-     */
-    public boolean getExportAllTypesValue() {
-        if (exportAllTypesRadio == null) {
-			return initialExportAllTypesValue;
-		}
-
-        return exportAllTypesRadio.getSelection();
-    }
-
-    /**
-     * Returns the current contents of the resource name entry field,
-     * or its set initial value if it does not exist yet (which could
-     * be <code>null</code>).
-     *
-     * @return the resource name field's current value or anticipated initial value,
-     *   or <code>null</code>
-     */
-    public String getResourceFieldValue() {
-        if (resourceNameField == null) {
-			return initialExportFieldValue;
-		}
-
-        return resourceNameField.getText();
-    }
-
-    /**
-     * Return the path for the resource field.
-     * @return org.eclipse.core.runtime.IPath
-     */
-    protected IPath getResourcePath() {
-        return getPathFromText(this.resourceNameField);
-    }
-
-    /**
-     * Returns this page's collection of currently-specified resources to be 
-     * exported. This is the primary resource selection facility accessor for 
-     * subclasses.
-     *
-     * @return the collection of resources currently selected for export (element 
-     *   type: <code>IResource</code>)
-     */
-    protected List getSelectedResources() {
-        if (selectedResources == null) {
-            IResource sourceResource = getSourceResource();
-
-            if (sourceResource != null) {
-				selectAppropriateResources(sourceResource);
-			}
-        }
-
-        return selectedResources;
-    }
-
-    /**
-     * Returns the resource object specified in the resource name entry field,
-     * or <code>null</code> if such a resource does not exist in the workbench.
-     *
-     * @return the resource specified in the resource name entry field, or 
-     *   <code>null</code>
-     */
-    protected IResource getSourceResource() {
-        IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-        //make the path absolute to allow for optional leading slash
-        IPath testPath = getResourcePath();
-
-        IStatus result = workspace.validatePath(testPath.toString(),
-                IResource.ROOT | IResource.PROJECT | IResource.FOLDER
-                        | IResource.FILE);
-
-        if (result.isOK() && workspace.getRoot().exists(testPath)) {
-			return workspace.getRoot().findMember(testPath);
-		}
-
-        return null;
-    }
-
-    /**
-     * Returns the current contents of the types entry field, or its set
-     * initial value if it does not exist yet (which could be <code>null</code>).
-     *
-     * @return the types entry field's current value or anticipated initial value,
-     *   or <code>null</code>
-     */
-    public String getTypesFieldValue() {
-        if (typesToExportField == null) {
-			return initialTypesFieldValue;
-		}
-
-        return typesToExportField.getText();
-    }
-
-    /**
-     * Returns the resource extensions currently specified to be exported.
-     *
-     * @return the resource extensions currently specified to be exported (element 
-     *   type: <code>String</code>)
-     */
-    protected List getTypesToExport() {
-        List result = new ArrayList();
-        StringTokenizer tokenizer = new StringTokenizer(typesToExportField
-                .getText(), TYPE_DELIMITER);
-
-        while (tokenizer.hasMoreTokens()) {
-            String currentExtension = tokenizer.nextToken().trim();
-            if (!currentExtension.equals("")) { //$NON-NLS-1$
-				result.add(currentExtension);
-			}
-        }
-
-        return result;
-    }
-
-    /**
-     * The <code>WizardExportPage</code> implementation of this 
-     * <code>Listener</code> method handles all events and enablements for controls
-     * on this page. Subclasses may extend.
-     */
-    public void handleEvent(Event event) {
-        Widget source = event.widget;
-
-        if (source == exportAllTypesRadio || source == typesToExportField
-                || source == resourceNameField) {
-			resetSelectedResources();
-		} else if (source == exportSpecifiedTypesRadio) {
-            resetSelectedResources();
-            typesToExportField.setFocus();
-        } else if (source == resourceDetailsButton) {
-			handleResourceDetailsButtonPressed();
-		} else if (source == resourceBrowseButton) {
-			handleResourceBrowseButtonPressed();
-		} else if (source == typesToExportEditButton) {
-			handleTypesEditButtonPressed();
-		}
-
-        setPageComplete(determinePageCompletion());
-        updateWidgetEnablements();
-    }
-
-    /**
-     * Opens a container selection dialog and displays the user's subsequent
-     * container selection in this page's resource name field.
-     */
-    protected void handleResourceBrowseButtonPressed() {
-        IResource currentFolder = getSourceResource();
-        if (currentFolder != null && currentFolder.getType() == IResource.FILE) {
-			currentFolder = currentFolder.getParent();
-		}
-
-        IPath containerPath = queryForContainer((IContainer) currentFolder,
-                IDEWorkbenchMessages.WizardExportPage_selectResourcesToExport);
-        if (containerPath != null) { // null means user cancelled
-            String relativePath = containerPath.makeRelative().toString();
-            if (!relativePath.toString().equals(resourceNameField.getText())) {
-                resetSelectedResources();
-                resourceNameField.setText(relativePath);
-            }
-        }
-    }
-
-    /**
-     * Opens a resource selection dialog and records the user's subsequent
-     * resource selections.
-     */
-    protected void handleResourceDetailsButtonPressed() {
-        IAdaptable source = getSourceResource();
-
-        if (source == null) {
-			source = ResourcesPlugin.getWorkspace().getRoot();
-		}
-
-        selectAppropriateResources(source);
-
-        if (source instanceof IFile) {
-            source = ((IFile) source).getParent();
-            setResourceToDisplay((IResource) source);
-        }
-
-        Object[] newlySelectedResources = queryIndividualResourcesToExport(source);
-
-        if (newlySelectedResources != null) {
-            selectedResources = Arrays.asList(newlySelectedResources);
-            displayResourcesSelectedCount(selectedResources.size());
-        }
-    }
-
-    /**
-     * Queries the user for the types of resources to be exported and
-     * displays these types in this page's "Types to export" field.
-     */
-    protected void handleTypesEditButtonPressed() {
-        Object[] newSelectedTypes = queryResourceTypesToExport();
-
-        if (newSelectedTypes != null) { // ie.- did not press Cancel
-            List result = new ArrayList(newSelectedTypes.length);
-            for (int i = 0; i < newSelectedTypes.length; i++) {
-				result.add(((IFileEditorMapping) newSelectedTypes[i])
-                        .getExtension());
-			}
-            setTypesToExport(result);
-        }
-    }
-
-    /**
-     * Returns whether the extension of the given resource name is an extension that
-     * has been specified for export by the user.
-     *
-     * @param resourceName the resource name
-     * @return <code>true</code> if the resource name is suitable for export based 
-     *   upon its extension
-     */
-    protected boolean hasExportableExtension(String resourceName) {
-        if (selectedTypes == null) {
-			return true;
-		}
-
-        int separatorIndex = resourceName.lastIndexOf(".");//$NON-NLS-1$
-        if (separatorIndex == -1) {
-			return false;
-		}
-
-        String extension = resourceName.substring(separatorIndex + 1);
-
-        Iterator it = selectedTypes.iterator();
-        while (it.hasNext()) {
-            if (extension.equalsIgnoreCase((String) it.next())) {
-				return true;
-			}
-        }
-
-        return false;
-    }
-
-    /**
-     * Persists additional setting that are to be restored in the next instance of
-     * this page.
-     * <p> 
-     * The <code>WizardImportPage</code> implementation of this method does
-     * nothing. Subclasses may extend to persist additional settings.
-     * </p>
-     */
-    protected void internalSaveWidgetValues() {
-    }
-
-    /**
-     * Queries the user for the individual resources that are to be exported
-     * and returns these resources as a collection.
-     * 
-     * @param rootResource the resource to use as the root of the selection query
-     * @return the resources selected for export (element type: 
-     *   <code>IResource</code>), or <code>null</code> if the user canceled the 
-     *   selection
-     */
-    protected Object[] queryIndividualResourcesToExport(IAdaptable rootResource) {
-        ResourceSelectionDialog dialog = new ResourceSelectionDialog(
-                getContainer().getShell(), rootResource, IDEWorkbenchMessages.WizardExportPage_selectResourcesTitle);
-        dialog.setInitialSelections(selectedResources
-                .toArray(new Object[selectedResources.size()]));
-        dialog.open();
-        return dialog.getResult();
-    }
-
-    /**
-     * Queries the user for the resource types that are to be exported and returns
-     * these types as a collection.
-     *
-     * @return the resource types selected for export (element type: 
-     *   <code>String</code>), or <code>null</code> if the user canceled the 
-     *   selection
-     */
-    protected Object[] queryResourceTypesToExport() {
-        IFileEditorMapping editorMappings[] = PlatformUI.getWorkbench()
-                .getEditorRegistry().getFileEditorMappings();
-
-        int mappingsSize = editorMappings.length;
-        List selectedTypes = getTypesToExport();
-        List initialSelections = new ArrayList(selectedTypes.size());
-
-        for (int i = 0; i < mappingsSize; i++) {
-            IFileEditorMapping currentMapping = editorMappings[i];
-            if (selectedTypes.contains(currentMapping.getExtension())) {
-				initialSelections.add(currentMapping);
-			}
-        }
-
-        ListSelectionDialog dialog = new ListSelectionDialog(getContainer()
-                .getShell(), editorMappings,
-                FileEditorMappingContentProvider.INSTANCE,
-                FileEditorMappingLabelProvider.INSTANCE, IDEWorkbenchMessages.WizardExportPage_selectionDialogMessage);
-
-        dialog.setTitle(IDEWorkbenchMessages.WizardExportPage_resourceTypeDialog);
-        dialog.open();
-
-        return dialog.getResult();
-    }
-
-    /**
-     * Resets this page's selected resources collection and updates its controls
-     * accordingly.
-     */
-    protected void resetSelectedResources() {
-        resourceDetailsDescription.setText(IDEWorkbenchMessages.WizardExportPage_detailsMessage);
-        selectedResources = null;
-
-        if (exportCurrentSelection) {
-            exportCurrentSelection = false;
-
-            if (resourceNameField.getText().length() > CURRENT_SELECTION
-                    .length()) {
-				resourceNameField.setText(resourceNameField.getText()
-                        .substring(CURRENT_SELECTION.length()));
-			} else {
-				resourceNameField.setText("");//$NON-NLS-1$
-			}
-        }
-    }
-
-    /**
-     * Restores resource specification control settings that were persisted
-     * in the previous instance of this page. Subclasses wishing to restore
-     * persisted values for their controls may extend.
-     */
-    protected void restoreResourceSpecificationWidgetValues() {
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            String pageName = getName();
-            boolean exportAllResources = settings
-                    .getBoolean(STORE_EXPORT_ALL_RESOURCES_ID + pageName);
-
-            // restore all/typed radio values iff not already explicitly set
-            if (!exportAllResourcesPreSet) {
-                exportAllTypesRadio.setSelection(exportAllResources);
-                exportSpecifiedTypesRadio.setSelection(!exportAllResources);
-            }
-
-            // restore selected types iff not explicitly already set
-            if (initialTypesFieldValue == null) {
-                String[] selectedTypes = settings
-                        .getArray(STORE_SELECTED_TYPES_ID + pageName);
-                if (selectedTypes != null) {
-                    if (selectedTypes.length > 0) {
-						typesToExportField.setText(selectedTypes[0]);
-					}
-                    for (int i = 0; i < selectedTypes.length; i++) {
-						typesToExportField.add(selectedTypes[i]);
-					}
-                }
-            }
-        }
-    }
-
-    /**
-     * Persists resource specification control setting that are to be restored
-     * in the next instance of this page. Subclasses wishing to persist additional
-     * setting for their controls should extend hook method 
-     * <code>internalSaveWidgetValues</code>.
-     */
-    protected void saveWidgetValues() {
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            String pageName = getName();
-
-            // update specific types to export history
-            String[] selectedTypesNames = settings
-                    .getArray(STORE_SELECTED_TYPES_ID + pageName);
-            if (selectedTypesNames == null) {
-				selectedTypesNames = new String[0];
-			}
-
-            if (exportSpecifiedTypesRadio.getSelection()) {
-                selectedTypesNames = addToHistory(selectedTypesNames,
-                        typesToExportField.getText());
-            }
-
-            settings
-                    .put(STORE_SELECTED_TYPES_ID + pageName, selectedTypesNames);
-
-            // radio buttons
-            settings.put(STORE_EXPORT_ALL_RESOURCES_ID + pageName,
-                    exportAllTypesRadio.getSelection());
-        }
-
-        // allow subclasses to save values
-        internalSaveWidgetValues();
-
-    }
-
-    /**
-     * Records a container's recursive file descendents which have an extension
-     * that has been specified for export by the user.
-     *
-     * @param resource the parent container
-     */
-    protected void selectAppropriateFolderContents(IContainer resource) {
-        try {
-            IResource[] members = resource.members();
-
-            for (int i = 0; i < members.length; i++) {
-                if (members[i].getType() == IResource.FILE) {
-                    IFile currentFile = (IFile) members[i];
-                    if (hasExportableExtension(currentFile.getFullPath()
-                            .toString())) {
-						selectedResources.add(currentFile);
-					}
-                }
-                if (members[i].getType() == IResource.FOLDER) {
-                    selectAppropriateFolderContents((IContainer) members[i]);
-                }
-            }
-        } catch (CoreException e) {
-            //don't show children if there are errors -- should at least log this
-        }
-    }
-
-    /**
-     * Records a resource's recursive descendents which are appropriate
-     * for export based upon this page's current controls contents.
-     *
-     * @param resource the parent resource
-     */
-    protected void selectAppropriateResources(Object resource) {
-        if (selectedResources == null) {
-
-            if (exportSpecifiedTypesRadio.getSelection()) {
-				selectedTypes = getTypesToExport();
-			} else {
-				selectedTypes = null; // sentinel for select all extensions
-			}
-
-            selectedResources = new ArrayList();
-            if (resource instanceof IWorkspaceRoot) {
-                IProject[] projects = ((IWorkspaceRoot) resource).getProjects();
-                for (int i = 0; i < projects.length; i++) {
-                    selectAppropriateFolderContents(projects[i]);
-                }
-            } else if (resource instanceof IFile) {
-                IFile file = (IFile) resource;
-                if (hasExportableExtension(file.getFullPath().toString())) {
-					selectedResources.add(file);
-				}
-            } else {
-                selectAppropriateFolderContents((IContainer) resource);
-            }
-        }
-    }
-
-    /**
-     * Sets the selection value of this page's "Export all types" radio, or stores
-     * it for future use if this visual component does not exist yet.
-     *
-     * @param value new selection value
-     */
-    public void setExportAllTypesValue(boolean value) {
-        if (exportAllTypesRadio == null) {
-            initialExportAllTypesValue = value;
-            exportAllResourcesPreSet = true;
-        } else {
-            exportAllTypesRadio.setSelection(value);
-            exportSpecifiedTypesRadio.setSelection(!value);
-        }
-    }
-
-    /**
-     * Sets the value of this page's source resource field, or stores
-     * it for future use if this visual component does not exist yet.
-     *
-     * @param value new value
-     */
-    public void setResourceFieldValue(String value) {
-        if (resourceNameField == null) {
-			initialExportFieldValue = value;
-		} else {
-			resourceNameField.setText(value);
-		}
-    }
-
-    /**
-     * Set the resource whos name we will display.
-     * @param resource
-     */
-    protected void setResourceToDisplay(IResource resource) {
-        setResourceFieldValue(resource.getFullPath().makeRelative().toString());
-    }
-
-    /**
-     * Sets the value of this page's "Types to export" field, or stores
-     * it for future use if this visual component does not exist yet.
-     *
-     * @param value new value
-     */
-    public void setTypesFieldValue(String value) {
-        if (typesToExportField == null) {
-			initialTypesFieldValue = value;
-		} else {
-			typesToExportField.setText(value);
-		}
-    }
-
-    /**
-     * Sets the value of this page's "Types to export" field based upon the
-     * collection of extensions.
-     *
-     * @param typeStrings the collection of extensions to populate the "Types to
-     *   export" field with (element type: <code>String</code>)
-     */
-    protected void setTypesToExport(List typeStrings) {
-        StringBuffer result = new StringBuffer();
-        Iterator typesEnum = typeStrings.iterator();
-
-        while (typesEnum.hasNext()) {
-            result.append(typesEnum.next());
-            result.append(TYPE_DELIMITER);
-            result.append(" ");//$NON-NLS-1$
-        }
-
-        typesToExportField.setText(result.toString());
-    }
-
-    /**
-     * Populates the resource name field based upon the currently selected resources.
-     */
-    protected void setupBasedOnInitialSelections() {
-        if (initialExportFieldValue != null) {
-            // a source resource has been programatically specified, which overrides
-            // the current workbench resource selection
-            IResource specifiedSourceResource = getSourceResource();
-            if (specifiedSourceResource == null) {
-				currentResourceSelection = new StructuredSelection();
-			} else {
-				currentResourceSelection = new StructuredSelection(
-                        specifiedSourceResource);
-			}
-        }
-
-        if (currentResourceSelection.isEmpty()) {
-			return; // no setup needed
-		}
-
-        List selections = new ArrayList();
-        Iterator it = currentResourceSelection.iterator();
-        while (it.hasNext()) {
-            IResource currentResource = (IResource) it.next();
-            // do not add inaccessible elements
-            if (currentResource.isAccessible()) {
-				selections.add(currentResource);
-			}
-        }
-
-        if (selections.isEmpty()) {
-			return; // setup not needed anymore
-		}
-
-        int selectedResourceCount = selections.size();
-        if (selectedResourceCount == 1) {
-            IResource resource = (IResource) selections.get(0);
-            setResourceToDisplay(resource);
-        } else {
-            selectedResources = selections;
-            exportAllTypesRadio.setSelection(true);
-            exportSpecifiedTypesRadio.setSelection(false);
-            resourceNameField.setText(CURRENT_SELECTION);
-            exportCurrentSelection = true;
-            displayResourcesSelectedCount(selectedResourceCount);
-        }
-    }
-
-    /**
-     * Updates the enablements of this page's controls. Subclasses may extend.
-     */
-    protected void updateWidgetEnablements() {
-        if (exportCurrentSelection) {
-			resourceDetailsButton.setEnabled(true);
-		} else {
-            IResource resource = getSourceResource();
-            resourceDetailsButton.setEnabled(resource != null
-                    && resource.isAccessible());
-        }
-
-        exportSpecifiedTypesRadio.setEnabled(!exportCurrentSelection);
-        typesToExportField.setEnabled(exportSpecifiedTypesRadio.getSelection());
-        typesToExportEditButton.setEnabled(exportSpecifiedTypesRadio
-                .getSelection());
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WizardDataTransferPage.
-     */
-    protected final boolean validateSourceGroup() {
-        if (exportCurrentSelection) {
-			return true;
-		}
-
-        String sourceString = resourceNameField.getText();
-        if (sourceString.equals("")) {//$NON-NLS-1$
-            setErrorMessage(null);
-            return false;
-        }
-
-        IResource resource = getSourceResource();
-
-        if (resource == null) {
-            setErrorMessage(IDEWorkbenchMessages.WizardExportPage_mustExistMessage);
-            return false;
-        }
-
-        if (!resource.isAccessible()) {
-            setErrorMessage(IDEWorkbenchMessages.WizardExportPage_mustBeAccessibleMessage);
-            return false;
-        }
-
-        return true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardExportResourcesPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardExportResourcesPage.java
deleted file mode 100644
index 64f3fc6..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardExportResourcesPage.java
+++ /dev/null
@@ -1,635 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-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.events.SelectionListener;
-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.Shell;
-import org.eclipse.ui.internal.ide.DialogUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.dialogs.ResourceTreeAndListGroup;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Abstract superclass for a typical export wizard's main page.
- * <p>
- * Clients may subclass this page to inherit its common destination resource
- * selection facilities.
- * </p>
- * <p>
- * Subclasses must implement 
- * <ul>
- *   <li><code>createDestinationGroup</code></li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may override
- * <ul>
- *   <li><code>allowNewContainerName</code></li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may extend
- * <ul>
- *   <li><code>handleEvent</code></li>
- *   <li><code>internalSaveWidgetValues</code></li>
- *   <li><code>updateWidgetEnablements</code></li>
- * </ul>
- * </p>
- */
-public abstract class WizardExportResourcesPage extends WizardDataTransferPage {
-    private IStructuredSelection initialResourceSelection;
-
-    private List selectedTypes = new ArrayList();
-
-    // widgets
-    private ResourceTreeAndListGroup resourceGroup;
-
-    private final static String SELECT_TYPES_TITLE = IDEWorkbenchMessages.WizardTransferPage_selectTypes;
-
-    private final static String SELECT_ALL_TITLE = IDEWorkbenchMessages.WizardTransferPage_selectAll;
-
-    private final static String DESELECT_ALL_TITLE = IDEWorkbenchMessages.WizardTransferPage_deselectAll;
-
-    /**
-     * Creates an export wizard page. If the current resource selection 
-     * is not empty then it will be used as the initial collection of resources
-     * selected for export.
-     *
-     * @param pageName the name of the page
-     * @param selection the current resource selection
-     */
-    protected WizardExportResourcesPage(String pageName,
-            IStructuredSelection selection) {
-        super(pageName);
-        this.initialResourceSelection = selection;
-    }
-
-    /**
-     * The <code>addToHierarchyToCheckedStore</code> implementation of this 
-     * <code>WizardDataTransferPage</code> method returns <code>false</code>. 
-     * Subclasses may override this method.
-     */
-    protected boolean allowNewContainerName() {
-        return false;
-    }
-
-    /**
-     * Creates a new button with the given id.
-     * <p>
-     * The <code>Dialog</code> implementation of this framework method
-     * creates a standard push button, registers for selection events
-     * including button presses and registers
-     * default buttons with its shell.
-     * The button id is stored as the buttons client data.
-     * Note that the parent's layout is assumed to be a GridLayout 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
-     */
-    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);
-
-        GridData buttonData = new GridData(GridData.FILL_HORIZONTAL);
-        button.setLayoutData(buttonData);
-
-        button.setData(new Integer(id));
-        button.setText(label);
-        button.setFont(parent.getFont());
-
-        if (defaultButton) {
-            Shell shell = parent.getShell();
-            if (shell != null) {
-                shell.setDefaultButton(button);
-            }
-            button.setFocus();
-        }
-        button.setFont(parent.getFont());
-        setButtonLayoutData(button);
-        return button;
-    }
-
-    /**
-     * Creates the buttons for selecting specific types or selecting all or none of the
-     * elements.
-     *
-     * @param parent the parent control
-     */
-    protected final void createButtonsGroup(Composite parent) {
-
-        Font font = parent.getFont();
-
-        // top level group
-        Composite buttonComposite = new Composite(parent, SWT.NONE);
-        buttonComposite.setFont(parent.getFont());
-
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        layout.makeColumnsEqualWidth = true;
-        buttonComposite.setLayout(layout);
-        buttonComposite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-
-        // types edit button
-        Button selectTypesButton = createButton(buttonComposite,
-                IDialogConstants.SELECT_TYPES_ID, SELECT_TYPES_TITLE, false);
-
-        SelectionListener listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                handleTypesEditButtonPressed();
-            }
-        };
-        selectTypesButton.addSelectionListener(listener);
-        selectTypesButton.setFont(font);
-        setButtonLayoutData(selectTypesButton);
-
-        Button selectButton = createButton(buttonComposite,
-                IDialogConstants.SELECT_ALL_ID, SELECT_ALL_TITLE, false);
-
-        listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                resourceGroup.setAllSelections(true);
-            }
-        };
-        selectButton.addSelectionListener(listener);
-        selectButton.setFont(font);
-        setButtonLayoutData(selectButton);
-
-        Button deselectButton = createButton(buttonComposite,
-                IDialogConstants.DESELECT_ALL_ID, DESELECT_ALL_TITLE, false);
-
-        listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                resourceGroup.setAllSelections(false);
-            }
-        };
-        deselectButton.addSelectionListener(listener);
-        deselectButton.setFont(font);
-        setButtonLayoutData(deselectButton);
-
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-
-        initializeDialogUnits(parent);
-
-        Composite composite = new Composite(parent, SWT.NULL);
-        composite.setLayout(new GridLayout());
-        composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-        composite.setFont(parent.getFont());
-
-        createResourcesGroup(composite);
-        createButtonsGroup(composite);
-
-        createDestinationGroup(composite);
-
-        createOptionsGroup(composite);
-
-        restoreResourceSpecificationWidgetValues(); // ie.- local
-        restoreWidgetValues(); // ie.- subclass hook
-        if (initialResourceSelection != null) {
-			setupBasedOnInitialSelections();
-		}
-
-        updateWidgetEnablements();
-        setPageComplete(determinePageCompletion());
-        setErrorMessage(null);	// should not initially have error message
-        
-        setControl(composite);
-    }
-
-    /**
-     * Creates the export destination specification visual components.
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @param parent the parent control
-     */
-    protected abstract void createDestinationGroup(Composite parent);
-
-    /**
-     * Creates the checkbox tree and list for selecting resources.
-     *
-     * @param parent the parent control
-     */
-    protected final void createResourcesGroup(Composite parent) {
-
-        //create the input element, which has the root resource
-        //as its only child
-        List input = new ArrayList();
-        IProject[] projects = ResourcesPlugin.getWorkspace().getRoot()
-                .getProjects();
-        for (int i = 0; i < projects.length; i++) {
-            if (projects[i].isOpen()) {
-				input.add(projects[i]);
-			}
-        }
-
-        this.resourceGroup = new ResourceTreeAndListGroup(parent, input,
-                getResourceProvider(IResource.FOLDER | IResource.PROJECT),
-                WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider(),
-                getResourceProvider(IResource.FILE), WorkbenchLabelProvider
-                        .getDecoratingWorkbenchLabelProvider(), SWT.NONE,
-                DialogUtil.inRegularFontMode(parent));
-        
-        ICheckStateListener listener = new ICheckStateListener() {
-            public void checkStateChanged(CheckStateChangedEvent event) {
-                updateWidgetEnablements();
-            }
-        };
-        
-        this.resourceGroup.addCheckStateListener(listener);
-    }
-
-    /*
-     * @see WizardDataTransferPage.getErrorDialogTitle()
-     */
-    protected String getErrorDialogTitle() {
-        return IDEWorkbenchMessages.WizardExportPage_errorDialogTitle;
-    }
-
-    /**
-     * Obsolete method. This was implemented to handle the case where ensureLocal()
-     * needed to be called but it doesn't use it any longer.
-     *
-     * @deprecated Only retained for backwards compatibility.
-     */
-    protected boolean ensureResourcesLocal(List resources) {
-        return true;
-    }
-
-    /**
-     * Returns a new subcollection containing only those resources which are not 
-     * local.
-     *
-     * @param originalList the original list of resources (element type: 
-     *   <code>IResource</code>)
-     * @return the new list of non-local resources (element type: 
-     *   <code>IResource</code>)
-     */
-    protected List extractNonLocalResources(List originalList) {
-        Vector result = new Vector(originalList.size());
-        Iterator resourcesEnum = originalList.iterator();
-
-        while (resourcesEnum.hasNext()) {
-            IResource currentResource = (IResource) resourcesEnum.next();
-            if (!currentResource.isLocal(IResource.DEPTH_ZERO)) {
-				result.addElement(currentResource);
-			}
-        }
-
-        return result;
-    }
-
-    /**
-     * Returns a content provider for <code>IResource</code>s that returns 
-     * only children of the given resource type.
-     */
-    private ITreeContentProvider getResourceProvider(final int resourceType) {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object o) {
-                if (o instanceof IContainer) {
-                    IResource[] members = null;
-                    try {
-                        members = ((IContainer) o).members();
-                    } catch (CoreException e) {
-                        //just return an empty set of children
-                        return new Object[0];
-                    }
-
-                    //filter out the desired resource types
-                    ArrayList results = new ArrayList();
-                    for (int i = 0; i < members.length; i++) {
-                        //And the test bits with the resource types to see if they are what we want
-                        if ((members[i].getType() & resourceType) > 0) {
-                            results.add(members[i]);
-                        }
-                    }
-                    return results.toArray();
-                } 
-                //input element case
-                if (o instanceof ArrayList) {
-                    return ((ArrayList) o).toArray();
-                } 
-                return new Object[0];
-            }
-        };
-    }
-
-    /**
-     * Returns this page's collection of currently-specified resources to be 
-     * exported. This is the primary resource selection facility accessor for 
-     * subclasses.
-     *
-     * @return a collection of resources currently selected 
-     * for export (element type: <code>IResource</code>)
-     */
-    protected List getSelectedResources() {
-        Iterator resourcesToExportIterator = this
-                .getSelectedResourcesIterator();
-        List resourcesToExport = new ArrayList();
-        while (resourcesToExportIterator.hasNext()) {
-			resourcesToExport.add(resourcesToExportIterator.next());
-		}
-        return resourcesToExport;
-    }
-
-    /**
-     * Returns this page's collection of currently-specified resources to be 
-     * exported. This is the primary resource selection facility accessor for 
-     * subclasses.
-     *
-     * @return an iterator over the collection of resources currently selected 
-     * for export (element type: <code>IResource</code>). This will include
-     * white checked folders and individually checked files.
-     */
-    protected Iterator getSelectedResourcesIterator() {
-        return this.resourceGroup.getAllCheckedListItems().iterator();
-    }
-
-    /**
-     * Returns the resource extensions currently specified to be exported.
-     *
-     * @return the resource extensions currently specified to be exported (element 
-     *   type: <code>String</code>)
-     */
-    protected List getTypesToExport() {
-
-        return selectedTypes;
-    }
-
-    /**
-     * Returns this page's collection of currently-specified resources to be 
-     * exported. This returns both folders and files - for just the files use
-     * getSelectedResources.
-     *
-     * @return a collection of resources currently selected 
-     * for export (element type: <code>IResource</code>)
-     */
-    protected List getWhiteCheckedResources() {
-
-        return this.resourceGroup.getAllWhiteCheckedItems();
-    }
-
-    /**
-     * Queries the user for the types of resources to be exported and selects
-     * them in the checkbox group.
-     */
-    protected void handleTypesEditButtonPressed() {
-        Object[] newSelectedTypes = queryResourceTypesToExport();
-
-        if (newSelectedTypes != null) { // ie.- did not press Cancel
-            this.selectedTypes = new ArrayList(newSelectedTypes.length);
-            for (int i = 0; i < newSelectedTypes.length; i++) {
-                this.selectedTypes.add(newSelectedTypes[i]);
-            }
-            setupSelectionsBasedOnSelectedTypes();
-        }
-
-    }
-
-    /**
-     * Returns whether the extension of the given resource name is an extension that
-     * has been specified for export by the user.
-     *
-     * @param resourceName the resource name
-     * @return <code>true</code> if the resource name is suitable for export based 
-     *   upon its extension
-     */
-    protected boolean hasExportableExtension(String resourceName) {
-        if (selectedTypes == null) {
-			return true;
-		}
-
-        int separatorIndex = resourceName.lastIndexOf("."); //$NON-NLS-1$
-        if (separatorIndex == -1) {
-			return false;
-		}
-
-        String extension = resourceName.substring(separatorIndex + 1);
-
-        Iterator it = selectedTypes.iterator();
-        while (it.hasNext()) {
-            if (extension.equalsIgnoreCase((String) it.next())) {
-				return true;
-			}
-        }
-
-        return false;
-    }
-
-    /**
-     * Persists additional setting that are to be restored in the next instance of
-     * this page.
-     * <p> 
-     * The <code>WizardImportPage</code> implementation of this method does
-     * nothing. Subclasses may extend to persist additional settings.
-     * </p>
-     */
-    protected void internalSaveWidgetValues() {
-    }
-
-    /**
-     * Queries the user for the resource types that are to be exported and returns
-     * these types as an array.
-     *
-     * @return the resource types selected for export (element type: 
-     *   <code>String</code>), or <code>null</code> if the user canceled the 
-     *   selection
-     */
-    protected Object[] queryResourceTypesToExport() {
-
-        TypeFilteringDialog dialog = new TypeFilteringDialog(getContainer()
-                .getShell(), getTypesToExport());
-
-        dialog.open();
-
-        return dialog.getResult();
-    }
-
-    /**
-     * Restores resource specification control settings that were persisted
-     * in the previous instance of this page. Subclasses wishing to restore
-     * persisted values for their controls may extend.
-     */
-    protected void restoreResourceSpecificationWidgetValues() {
-    }
-
-    /**
-     * Persists resource specification control setting that are to be restored
-     * in the next instance of this page. Subclasses wishing to persist additional
-     * setting for their controls should extend hook method 
-     * <code>internalSaveWidgetValues</code>.
-     */
-    protected void saveWidgetValues() {
-
-        // allow subclasses to save values
-        internalSaveWidgetValues();
-
-    }
-
-    /**
-     * Set the initial selections in the resource group.
-     */
-    protected void setupBasedOnInitialSelections() {
-
-        Iterator it = this.initialResourceSelection.iterator();
-        while (it.hasNext()) {
-            IResource currentResource = (IResource) it.next();
-            if (currentResource.getType() == IResource.FILE) {
-				this.resourceGroup.initialCheckListItem(currentResource);
-			} else {
-				this.resourceGroup.initialCheckTreeItem(currentResource);
-			}
-        }
-    }
-
-    /**
-     * Update the tree to only select those elements that match the selected types
-     */
-    private void setupSelectionsBasedOnSelectedTypes() {
-
-        Runnable runnable = new Runnable() {
-            public void run() {
-                Map selectionMap = new Hashtable();
-                //Only get the white selected ones
-                Iterator resourceIterator = resourceGroup
-                        .getAllWhiteCheckedItems().iterator();
-                while (resourceIterator.hasNext()) {
-                    //handle the files here - white checked containers require recursion
-                    IResource resource = (IResource) resourceIterator.next();
-                    if (resource.getType() == IResource.FILE) {
-                        if (hasExportableExtension(resource.getName())) {
-                            List resourceList = new ArrayList();
-                            IContainer parent = resource.getParent();
-                            if (selectionMap.containsKey(parent)) {
-								resourceList = (List) selectionMap.get(parent);
-							}
-                            resourceList.add(resource);
-                            selectionMap.put(parent, resourceList);
-                        }
-                    } else {
-						setupSelectionsBasedOnSelectedTypes(selectionMap,
-                                (IContainer) resource);
-					}
-                }
-                resourceGroup.updateSelections(selectionMap);
-            }
-        };
-
-        BusyIndicator.showWhile(getShell().getDisplay(), runnable);
-
-    }
-
-    /**
-     * Set up the selection values for the resources and put them in the selectionMap.
-     * If a resource is a file see if it matches one of the selected extensions. If not
-     * then check the children.
-     */
-    private void setupSelectionsBasedOnSelectedTypes(Map selectionMap,
-            IContainer parent) {
-
-        List selections = new ArrayList();
-        IResource[] resources;
-        boolean hasFiles = false;
-
-        try {
-            resources = parent.members();
-        } catch (CoreException exception) {
-            //Just return if we can't get any info
-            return;
-        }
-
-        for (int i = 0; i < resources.length; i++) {
-            IResource resource = resources[i];
-            if (resource.getType() == IResource.FILE) {
-                if (hasExportableExtension(resource.getName())) {
-                    hasFiles = true;
-                    selections.add(resource);
-                }
-            } else {
-                setupSelectionsBasedOnSelectedTypes(selectionMap,
-                        (IContainer) resource);
-            }
-        }
-
-        //Only add it to the list if there are files in this folder
-        if (hasFiles) {
-			selectionMap.put(parent, selections);
-		}
-    }
-
-    /**
-     * Save any editors that the user wants to save before export.
-     * @return boolean if the save was successful.
-     */
-    protected boolean saveDirtyEditors() {
-        return IDEWorkbenchPlugin.getDefault().getWorkbench().saveAllEditors(
-                true);
-    }
-    
-    /**
-     * Check if widgets are enabled or disabled by a change in the dialog.
-     */
-    protected void updateWidgetEnablements() {
-
-        boolean pageComplete = determinePageCompletion();
-        setPageComplete(pageComplete);
-        if (pageComplete) {
-			setMessage(null);
-		}
-        super.updateWidgetEnablements();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardImportPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardImportPage.java
deleted file mode 100644
index 0ad46b2..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardImportPage.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.MessageDialog;
-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.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * The abstract superclass for a typical import wizard's main page.
- * <p>
- * Clients may subclass this page to inherit its common destination resource
- * selection facilities.
- * </p>
- * <p>
- * Subclasses must implement 
- * <ul>
- *   <li><code>createSourceGroup</code></li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may override
- * <ul>
- *   <li><code>allowNewContainerName</code></li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may extend
- * <ul>
- *   <li><code>handleEvent</code></li>
- * </ul>
- * </p>
- * @deprecated use WizardResourceImportPage
- */
-public abstract class WizardImportPage extends WizardDataTransferPage {
-    private IResource currentResourceSelection;
-
-    // initial value stores
-    private String initialContainerFieldValue;
-
-    // widgets
-    private Text containerNameField;
-
-    private Button containerBrowseButton;
-
-    /**
-     * Creates an import wizard page. If the initial resource selection 
-     * contains exactly one container resource then it will be used as the default
-     * import destination.
-     *
-     * @param name the name of the page
-     * @param selection the current resource selection
-     */
-    protected WizardImportPage(String name, IStructuredSelection selection) {
-        super(name);
-
-        if (selection.size() == 1) {
-			currentResourceSelection = (IResource) selection.getFirstElement();
-		} else {
-			currentResourceSelection = null;
-		}
-
-        if (currentResourceSelection != null) {
-            if (currentResourceSelection.getType() == IResource.FILE) {
-				currentResourceSelection = currentResourceSelection.getParent();
-			}
-
-            if (!currentResourceSelection.isAccessible()) {
-				currentResourceSelection = null;
-			}
-        }
-
-    }
-
-    /**
-     * The <code>WizardImportPage</code> implementation of this 
-     * <code>WizardDataTransferPage</code> method returns <code>true</code>. 
-     * Subclasses may override this method.
-     */
-    protected boolean allowNewContainerName() {
-        return true;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        Composite composite = new Composite(parent, SWT.NULL);
-        composite.setLayout(new GridLayout());
-        composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-        composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
-        createSourceGroup(composite);
-
-        createSpacer(composite);
-
-        createBoldLabel(composite, IDEWorkbenchMessages.WizardImportPage_destinationLabel);
-        createDestinationGroup(composite);
-
-        createSpacer(composite);
-
-        createBoldLabel(composite, IDEWorkbenchMessages.WizardImportPage_options);
-        createOptionsGroup(composite);
-
-        restoreWidgetValues();
-        updateWidgetEnablements();
-        setPageComplete(determinePageCompletion());
-
-        setControl(composite);
-    }
-
-    /**
-     * Creates the import destination specification controls.
-     *
-     * @param parent the parent control
-     */
-    protected final void createDestinationGroup(Composite parent) {
-        // container specification group
-        Composite containerGroup = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        containerGroup.setLayout(layout);
-        containerGroup.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-
-        // container label
-        Label resourcesLabel = new Label(containerGroup, SWT.NONE);
-        resourcesLabel.setText(IDEWorkbenchMessages.WizardImportPage_folder);
-
-        // container name entry field
-        containerNameField = new Text(containerGroup, SWT.SINGLE | SWT.BORDER);
-        containerNameField.addListener(SWT.Modify, this);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-        containerNameField.setLayoutData(data);
-
-        // container browse button
-        containerBrowseButton = new Button(containerGroup, SWT.PUSH);
-        containerBrowseButton.setText(IDEWorkbenchMessages.WizardImportPage_browseLabel);
-        containerBrowseButton.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL));
-        containerBrowseButton.addListener(SWT.Selection, this);
-
-        initialPopulateContainerField();
-    }
-
-    /**
-     * Creates the import source specification controls.
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @param parent the parent control
-     */
-    protected abstract void createSourceGroup(Composite parent);
-
-    /**
-     * Display an error dialog with the specified message.
-     *
-     * @param message the error message
-     */
-    protected void displayErrorDialog(String message) {
-        MessageDialog.openError(getContainer().getShell(), IDEWorkbenchMessages.WizardImportPage_errorDialogTitle, message);
-    }
-
-    /**
-     * Returns the path of the container resource specified in the container
-     * name entry field, or <code>null</code> if no name has been typed in.
-     * <p>
-     * The container specified by the full path might not exist and would need to
-     * be created.
-     * </p>
-     *
-     * @return the full path of the container resource specified in
-     *   the container name entry field, or <code>null</code>
-     */
-    protected IPath getContainerFullPath() {
-        IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-
-        //make the path absolute to allow for optional leading slash
-        IPath testPath = getResourcePath();
-
-        IStatus result = workspace.validatePath(testPath.toString(),
-                IResource.PROJECT | IResource.FOLDER);
-        if (result.isOK()) {
-            return testPath;
-        }
-
-        return null;
-    }
-
-    /**
-     * Return the path for the resource field.
-     * @return org.eclipse.core.runtime.IPath
-     */
-    protected IPath getResourcePath() {
-        return getPathFromText(this.containerNameField);
-    }
-
-    /**
-     * Returns the container resource specified in the container name entry field,
-     * or <code>null</code> if such a container does not exist in the workbench.
-     *
-     * @return the container resource specified in the container name entry field,
-     *   or <code>null</code>
-     */
-    protected IContainer getSpecifiedContainer() {
-        IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-        IPath path = getContainerFullPath();
-        if (workspace.getRoot().exists(path)) {
-			return (IContainer) workspace.getRoot().findMember(path);
-		}
-
-        return null;
-    }
-
-    /**
-     * Opens a container selection dialog and displays the user's subsequent
-     * container resource selection in this page's container name field.
-     */
-    protected void handleContainerBrowseButtonPressed() {
-        // see if the user wishes to modify this container selection
-        IPath containerPath = queryForContainer(getSpecifiedContainer(),
-                IDEWorkbenchMessages.WizardImportPage_selectFolderLabel);
-
-        // if a container was selected then put its name in the container name field
-        if (containerPath != null) {
-			containerNameField.setText(containerPath.makeRelative().toString());
-		}
-    }
-
-    /**
-     * The <code>WizardImportPage</code> implementation of this 
-     * <code>Listener</code> method handles all events and enablements for controls
-     * on this page. Subclasses may extend.
-     */
-    public void handleEvent(Event event) {
-        Widget source = event.widget;
-
-        if (source == containerBrowseButton) {
-			handleContainerBrowseButtonPressed();
-		}
-
-        setPageComplete(determinePageCompletion());
-        updateWidgetEnablements();
-    }
-
-    /**
-     * Sets the initial contents of the container name field.
-     */
-    protected final void initialPopulateContainerField() {
-        if (initialContainerFieldValue != null) {
-			containerNameField.setText(initialContainerFieldValue);
-		} else if (currentResourceSelection != null) {
-			containerNameField.setText(currentResourceSelection.getFullPath()
-                    .toString());
-		}
-    }
-
-    /**
-     * Sets the value of this page's container resource field, or stores
-     * it for future use if this page's controls do not exist yet.
-     *
-     * @param value new value
-     */
-    public void setContainerFieldValue(String value) {
-        if (containerNameField == null) {
-			initialContainerFieldValue = value;
-		} else {
-			containerNameField.setText(value);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WizardDataTransferPage.
-     */
-    protected final boolean validateDestinationGroup() {
-        if (getContainerFullPath() == null) {
-			return false;
-		}
-
-        // If the container exist, validate it
-        IContainer container = getSpecifiedContainer();
-        if (container != null) {
-            if (!container.isAccessible()) {
-                setErrorMessage(IDEWorkbenchMessages.WizardImportPage_folderMustExist);
-                return false;
-            }
-        }
-
-        return true;
-
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFileCreationPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFileCreationPage.java
deleted file mode 100644
index 493098c..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFileCreationPage.java
+++ /dev/null
@@ -1,620 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceStatus;
-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.IAdaptable;
-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.Path;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-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.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.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.CreateLinkedResourceGroup;
-import org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup;
-
-/**
- * Standard main page for a wizard that creates a file resource.
- * <p>
- * This page may be used by clients as-is; it may be also be subclassed to suit.
- * </p>
- * <p>
- * Subclasses may override
- * <ul>
- *   <li><code>getInitialContents</code></li>
- *   <li><code>getNewFileLabel</code></li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may extend
- * <ul>
- *   <li><code>handleEvent</code></li>
- * </ul>
- * </p>
- */
-public class WizardNewFileCreationPage extends WizardPage implements Listener {
-    private static final int SIZING_CONTAINER_GROUP_HEIGHT = 250;
-
-    // the current resource selection
-    private IStructuredSelection currentSelection;
-
-    // cache of newly-created file
-    private IFile newFile;
-
-    private IPath linkTargetPath;
-
-    // widgets
-    private ResourceAndContainerGroup resourceGroup;
-
-    private Button advancedButton;
-
-    private CreateLinkedResourceGroup linkedResourceGroup;
-
-    private Composite linkedResourceParent;
-
-    private Composite linkedResourceComposite;
-
-    // initial value stores
-    private String initialFileName;
-
-    private IPath initialContainerFullPath;
-
-    /**
-     * Height of the "advanced" linked resource group. Set when the
-     * advanced group is first made visible. 
-     */
-    private int linkedResourceGroupHeight = -1;
-
-    /**
-     * First time the advanced group is validated.
-     */
-    private boolean firstLinkCheck = true;
-
-    /**
-     * Creates a new file creation wizard page. If the initial resource selection 
-     * contains exactly one container resource then it will be used as the default
-     * container resource.
-     *
-     * @param pageName the name of the page
-     * @param selection the current resource selection
-     */
-    public WizardNewFileCreationPage(String pageName,
-            IStructuredSelection selection) {
-        super(pageName);
-        setPageComplete(false);
-        this.currentSelection = selection;
-    }
-
-    /**
-     * Creates the widget for advanced options.
-     *  
-     * @param parent the parent composite
-     */
-    protected void createAdvancedControls(Composite parent) {
-        Preferences preferences = ResourcesPlugin.getPlugin()
-                .getPluginPreferences();
-
-        if (preferences.getBoolean(ResourcesPlugin.PREF_DISABLE_LINKING) == false) {
-            linkedResourceParent = new Composite(parent, SWT.NONE);
-            linkedResourceParent.setFont(parent.getFont());
-            linkedResourceParent.setLayoutData(new GridData(
-                    GridData.FILL_HORIZONTAL));
-            GridLayout layout = new GridLayout();
-            layout.marginHeight = 0;
-            layout.marginWidth = 0;
-            linkedResourceParent.setLayout(layout);
-
-            advancedButton = new Button(linkedResourceParent, SWT.PUSH);
-            advancedButton.setFont(linkedResourceParent.getFont());
-            advancedButton.setText(IDEWorkbenchMessages.showAdvanced);
-            GridData data = setButtonLayoutData(advancedButton);
-            data.horizontalAlignment = GridData.BEGINNING;
-            advancedButton.setLayoutData(data);
-            advancedButton.addSelectionListener(new SelectionAdapter() {
-                public void widgetSelected(SelectionEvent e) {
-                    handleAdvancedButtonSelect();
-                }
-            });
-        }
-        linkedResourceGroup = new CreateLinkedResourceGroup(IResource.FILE,
-                new Listener() {
-                    public void handleEvent(Event e) {
-                        setPageComplete(validatePage());
-                        firstLinkCheck = false;
-                    }
-                },
-                new CreateLinkedResourceGroup.IStringValue(){
-					public void setValue(String string) {
-						resourceGroup.setResource(string);
-					}
-					public String getValue() {
-						return resourceGroup.getResource();
-					}
-                });
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        initializeDialogUnits(parent);
-        // top level group
-        Composite topLevel = new Composite(parent, SWT.NONE);
-        topLevel.setLayout(new GridLayout());
-        topLevel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-        topLevel.setFont(parent.getFont());
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(topLevel,
-				IIDEHelpContextIds.NEW_FILE_WIZARD_PAGE);
-
-        // resource and container group
-        resourceGroup = new ResourceAndContainerGroup(
-                topLevel,
-                this,
-                getNewFileLabel(),
-                IDEWorkbenchMessages.WizardNewFileCreationPage_file, false, SIZING_CONTAINER_GROUP_HEIGHT);
-        resourceGroup.setAllowExistingResources(false);
-        initialPopulateContainerNameField();
-        createAdvancedControls(topLevel);
-        if (initialFileName != null) {
-			resourceGroup.setResource(initialFileName);
-		}
-        validatePage();
-        // Show description on opening
-        setErrorMessage(null);
-        setMessage(null);
-        setControl(topLevel);
-    }
-
-    /**
-     * Creates a file resource given the file handle and contents.
-     *
-     * @param fileHandle the file handle to create a file resource with
-     * @param contents the initial contents of the new file resource, or
-     *   <code>null</code> if none (equivalent to an empty stream)
-     * @param monitor the progress monitor to show visual progress with
-     * @exception CoreException if the operation fails
-     * @exception OperationCanceledException if the operation is canceled
-     */
-    protected void createFile(IFile fileHandle, InputStream contents,
-            IProgressMonitor monitor) throws CoreException {
-        if (contents == null) {
-			contents = new ByteArrayInputStream(new byte[0]);
-		}
-
-        try {
-            // Create a new file resource in the workspace
-            if (linkTargetPath != null) {
-				fileHandle.createLink(linkTargetPath,
-                        IResource.ALLOW_MISSING_LOCAL, monitor);
-			} else {
-                IPath path = fileHandle.getFullPath();
-                IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-                int numSegments= path.segmentCount();
-                if (numSegments > 2 && !root.getFolder(path.removeLastSegments(1)).exists()) {
-                    // If the direct parent of the path doesn't exist, try to create the
-                    // necessary directories.
-                    for (int i= numSegments - 2; i > 0; i--) {
-                        IFolder folder = root.getFolder(path.removeLastSegments(i));
-                        if (!folder.exists()) {
-                            folder.create(false, true, monitor);
-                        }
-                    }
-                }
-                fileHandle.create(contents, false, monitor);
-            }
-        } catch (CoreException e) {
-            // If the file already existed locally, just refresh to get contents
-            if (e.getStatus().getCode() == IResourceStatus.PATH_OCCUPIED) {
-				fileHandle.refreshLocal(IResource.DEPTH_ZERO, null);
-			} else {
-				throw e;
-			}
-        }
-
-        if (monitor.isCanceled()) {
-			throw new OperationCanceledException();
-		}
-    }
-
-    /**
-     * Creates a file resource handle for the file with the given workspace path.
-     * This method does not create the file resource; this is the responsibility
-     * of <code>createFile</code>.
-     *
-     * @param filePath the path of the file resource to create a handle for
-     * @return the new file resource handle
-     * @see #createFile
-     */
-    protected IFile createFileHandle(IPath filePath) {
-        return IDEWorkbenchPlugin.getPluginWorkspace().getRoot().getFile(
-                filePath);
-    }
-
-    /**
-     * Creates the link target path if a link target has been specified. 
-     */
-    protected void createLinkTarget() {
-        String linkTarget = linkedResourceGroup.getLinkTarget();
-        if (linkTarget != null) {
-            linkTargetPath = new Path(linkTarget);
-        } else {
-            linkTargetPath = null;
-        }
-    }
-
-    /**
-     * Creates a new file resource in the selected container and with the selected
-     * name. Creates any missing resource containers along the path; does nothing if
-     * the container resources already exist.
-     * <p>
-     * In normal usage, this method is invoked after the user has pressed Finish on
-     * the wizard; the enablement of the Finish button implies that all controls on 
-     * on this page currently contain valid values.
-     * </p>
-     * <p>
-     * Note that this page caches the new file once it has been successfully
-     * created; subsequent invocations of this method will answer the same
-     * file resource without attempting to create it again.
-     * </p>
-     * <p>
-     * This method should be called within a workspace modify operation since
-     * it creates resources.
-     * </p>
-     *
-     * @return the created file resource, or <code>null</code> if the file
-     *    was not created
-     */
-    public IFile createNewFile() {
-        if (newFile != null) {
-			return newFile;
-		}
-
-        // create the new file and cache it if successful
-
-        final IPath containerPath = resourceGroup.getContainerFullPath();
-        IPath newFilePath = containerPath.append(resourceGroup.getResource());
-        final IFile newFileHandle = createFileHandle(newFilePath);
-        final InputStream initialContents = getInitialContents();
-
-        createLinkTarget();
-        WorkspaceModifyOperation op = new WorkspaceModifyOperation(createRule(newFileHandle)) {
-            protected void execute(IProgressMonitor monitor)
-                    throws CoreException {
-                try {
-                    monitor.beginTask(IDEWorkbenchMessages.WizardNewFileCreationPage_progress, 2000);
-                    ContainerGenerator generator = new ContainerGenerator(
-                            containerPath);
-                    generator.generateContainer(new SubProgressMonitor(monitor,
-                            1000));
-                    createFile(newFileHandle, initialContents,
-                            new SubProgressMonitor(monitor, 1000));
-                } finally {
-                    monitor.done();
-                }
-            }
-        };
-
-        try {
-            getContainer().run(true, true, op);
-        } catch (InterruptedException e) {
-            return null;
-        } catch (InvocationTargetException e) {
-            if (e.getTargetException() instanceof CoreException) {
-                ErrorDialog
-                        .openError(
-                                getContainer().getShell(), // Was Utilities.getFocusShell()
-                                IDEWorkbenchMessages.WizardNewFileCreationPage_errorTitle,
-                                null, // no special message
-                                ((CoreException) e.getTargetException())
-                                        .getStatus());
-            } else {
-                // CoreExceptions are handled above, but unexpected runtime exceptions and errors may still occur.
-                IDEWorkbenchPlugin.log(getClass(),
-                        "createNewFile()", e.getTargetException()); //$NON-NLS-1$
-                MessageDialog
-                        .openError(
-                                getContainer().getShell(),
-                                IDEWorkbenchMessages.WizardNewFileCreationPage_internalErrorTitle, NLS.bind(IDEWorkbenchMessages.WizardNewFileCreationPage_internalErrorMessage, e.getTargetException().getMessage()));
-            }
-            return null;
-        }
-
-        newFile = newFileHandle;
-
-        return newFile;
-    }
-
-    /**
-     * Returns the scheduling rule to use when creating the resource at
-     * the given container path. The rule should be the creation rule for
-     * the top-most non-existing parent.
-     * @param resource The resource being created
-     * @return The scheduling rule for creating the given resource
-     * @since 3.1
-     */
-    protected ISchedulingRule createRule(IResource resource) {
-		IResource parent = resource.getParent();
-    	while (parent != null) {
-    		if (parent.exists()) {
-				return resource.getWorkspace().getRuleFactory().createRule(resource);
-			}
-    		resource = parent;
-    		parent = parent.getParent();
-    	}
-		return resource.getWorkspace().getRoot();
-	}
-
-	/**
-     * Returns the current full path of the containing resource as entered or 
-     * selected by the user, or its anticipated initial value.
-     *
-     * @return the container's full path, anticipated initial value, 
-     *   or <code>null</code> if no path is known
-     */
-    public IPath getContainerFullPath() {
-        return resourceGroup.getContainerFullPath();
-    }
-
-    /**
-     * Returns the current file name as entered by the user, or its anticipated
-     * initial value.
-     *
-     * @return the file name, its anticipated initial value, or <code>null</code>
-     *   if no file name is known
-     */
-    public String getFileName() {
-        if (resourceGroup == null) {
-			return initialFileName;
-		}
-
-        return resourceGroup.getResource();
-    }
-
-    /**
-     * Returns a stream containing the initial contents to be given to new file resource
-     * instances.  <b>Subclasses</b> may wish to override.  This default implementation
-     * provides no initial contents.
-     *
-     * @return initial contents to be given to new file resource instances
-     */
-    protected InputStream getInitialContents() {
-        return null;
-    }
-
-    /**
-     * Returns the label to display in the file name specification visual
-     * component group.
-     * <p>
-     * Subclasses may reimplement.
-     * </p>
-     *
-     * @return the label to display in the file name specification visual
-     *     component group
-     */
-    protected String getNewFileLabel() {
-        return IDEWorkbenchMessages.WizardNewFileCreationPage_fileLabel;
-    }
-
-    /**
-     * Shows/hides the advanced option widgets. 
-     */
-    protected void handleAdvancedButtonSelect() {
-        Shell shell = getShell();
-        Point shellSize = shell.getSize();
-        Composite composite = (Composite) getControl();
-
-        if (linkedResourceComposite != null) {
-            linkedResourceComposite.dispose();
-            linkedResourceComposite = null;
-            composite.layout();
-            shell.setSize(shellSize.x, shellSize.y - linkedResourceGroupHeight);
-            advancedButton.setText(IDEWorkbenchMessages.showAdvanced);
-        } else {
-            linkedResourceComposite = linkedResourceGroup
-                    .createContents(linkedResourceParent);
-            if (linkedResourceGroupHeight == -1) {
-                Point groupSize = linkedResourceComposite.computeSize(
-                        SWT.DEFAULT, SWT.DEFAULT, true);
-                linkedResourceGroupHeight = groupSize.y;
-            }
-            shell.setSize(shellSize.x, shellSize.y + linkedResourceGroupHeight);
-            composite.layout();
-            advancedButton.setText(IDEWorkbenchMessages.hideAdvanced);
-        }
-    }
-
-    /**
-     * The <code>WizardNewFileCreationPage</code> implementation of this 
-     * <code>Listener</code> method handles all events and enablements for controls
-     * on this page. Subclasses may extend.
-     */
-    public void handleEvent(Event event) {
-        setPageComplete(validatePage());
-    }
-
-    /**
-     * Sets the initial contents of the container name entry field, based upon
-     * either a previously-specified initial value or the ability to determine
-     * such a value.
-     */
-    protected void initialPopulateContainerNameField() {
-        if (initialContainerFullPath != null) {
-			resourceGroup.setContainerFullPath(initialContainerFullPath);
-		} else {
-            Iterator it = currentSelection.iterator();
-            if (it.hasNext()) {
-                Object object = it.next();
-                IResource selectedResource = null;
-                if (object instanceof IResource) {
-                    selectedResource = (IResource) object;
-                } else if (object instanceof IAdaptable) {
-                    selectedResource = (IResource) ((IAdaptable) object)
-                            .getAdapter(IResource.class);
-                }
-                if (selectedResource != null) {
-                    if (selectedResource.getType() == IResource.FILE) {
-						selectedResource = selectedResource.getParent();
-					}
-                    if (selectedResource.isAccessible()) {
-						resourceGroup.setContainerFullPath(selectedResource
-                                .getFullPath());
-					}
-                }
-            }
-        }
-    }
-
-    /**
-     * Sets the value of this page's container name field, or stores
-     * it for future use if this page's controls do not exist yet.
-     *
-     * @param path the full path to the container
-     */
-    public void setContainerFullPath(IPath path) {
-        if (resourceGroup == null) {
-			initialContainerFullPath = path;
-		} else {
-			resourceGroup.setContainerFullPath(path);
-		}
-    }
-
-    /**
-     * Sets the value of this page's file name field, or stores
-     * it for future use if this page's controls do not exist yet.
-     *
-     * @param value new file name
-     */
-    public void setFileName(String value) {
-        if (resourceGroup == null) {
-			initialFileName = value;
-		} else {
-			resourceGroup.setResource(value);
-		}
-    }
-
-    /**
-     * Checks whether the linked resource target is valid.
-     * Sets the error message accordingly and returns the status.
-     *  
-     * @return IStatus validation result from the CreateLinkedResourceGroup
-     */
-    protected IStatus validateLinkedResource() {
-        IPath containerPath = resourceGroup.getContainerFullPath();
-        IPath newFilePath = containerPath.append(resourceGroup.getResource());
-        IFile newFileHandle = createFileHandle(newFilePath);
-        IStatus status = linkedResourceGroup
-                .validateLinkLocation(newFileHandle);
-
-        if (status.getSeverity() == IStatus.ERROR) {
-            if (firstLinkCheck) {
-				setMessage(status.getMessage());
-			} else {
-				setErrorMessage(status.getMessage());
-			}
-        } else if (status.getSeverity() == IStatus.WARNING) {
-            setMessage(status.getMessage(), WARNING);
-            setErrorMessage(null);
-        }
-        return status;
-    }
-
-    /**
-     * Returns whether this page's controls currently all contain valid 
-     * values.
-     *
-     * @return <code>true</code> if all controls are valid, and
-     *   <code>false</code> if at least one is invalid
-     */
-    protected boolean validatePage() {
-        boolean valid = true;
-
-        if (!resourceGroup.areAllValuesValid()) {
-            // if blank name then fail silently
-            if (resourceGroup.getProblemType() == ResourceAndContainerGroup.PROBLEM_RESOURCE_EMPTY
-                    || resourceGroup.getProblemType() == ResourceAndContainerGroup.PROBLEM_CONTAINER_EMPTY) {
-                setMessage(resourceGroup.getProblemMessage());
-                setErrorMessage(null);
-            } else {
-				setErrorMessage(resourceGroup.getProblemMessage());
-			}
-            valid = false;
-        }
-
-        String resourceName = resourceGroup.getResource();
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        IStatus result = workspace.validateName(resourceName, IResource.FILE);
-        if (!result.isOK()){
-        	setErrorMessage(result.getMessage());
-        	return false;
-        }
-        
-        IStatus linkedResourceStatus = null;
-        if (valid) {
-            linkedResourceStatus = validateLinkedResource();
-            if (linkedResourceStatus.getSeverity() == IStatus.ERROR) {
-				valid = false;
-			}
-        }
-        // validateLinkedResource sets messages itself
-        if (valid
-                && (linkedResourceStatus == null || linkedResourceStatus.isOK())) {
-            setMessage(null);
-            setErrorMessage(null);
-        }
-        return valid;
-    }
-
-    /*
-     * @see DialogPage.setVisible(boolean)
-     */
-    public void setVisible(boolean visible) {
-        super.setVisible(visible);
-        if (visible) {
-			resourceGroup.setFocus();
-		}
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFolderMainPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFolderMainPage.java
deleted file mode 100644
index 98d4e66..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFolderMainPage.java
+++ /dev/null
@@ -1,509 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Leon J. Breedt - Added multiple folder creation support (in WizardNewFolderMainPage)
- *     
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-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.Path;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-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.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.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.CreateLinkedResourceGroup;
-import org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup;
-
-/**
- * Standard main page for a wizard that creates a folder resource.
- * <p>
- * This page may be used by clients as-is; it may be also be subclassed to suit.
- * </p>
- * <p>
- * Subclasses may extend
- * <ul>
- *   <li><code>handleEvent</code></li>
- * </ul>
- * </p>
- */
-public class WizardNewFolderMainPage extends WizardPage implements Listener {
-    private static final int SIZING_CONTAINER_GROUP_HEIGHT = 250;
-
-    private IStructuredSelection currentSelection;
-
-    private IFolder newFolder;
-
-    // link target location
-    private IPath linkTargetPath;
-
-    // widgets
-    private ResourceAndContainerGroup resourceGroup;
-
-    private Button advancedButton;
-
-    private CreateLinkedResourceGroup linkedResourceGroup;
-
-    private Composite linkedResourceParent;
-
-    private Composite linkedResourceComposite;
-
-    /**
-     * Height of the "advanced" linked resource group. Set when the
-     * advanced group is first made visible. 
-     */
-    private int linkedResourceGroupHeight = -1;
-
-    /**
-     * First time the advanced group is validated.
-     */
-    private boolean firstLinkCheck = true;
-
-    /**
-     * Creates a new folder creation wizard page. If the initial resource selection 
-     * contains exactly one container resource then it will be used as the default
-     * container resource.
-     *
-     * @param pageName the name of the page
-     * @param selection the current resource selection
-     */
-    public WizardNewFolderMainPage(String pageName,
-            IStructuredSelection selection) {
-        super("newFolderPage1");//$NON-NLS-1$
-        setTitle(pageName);
-        setDescription(IDEWorkbenchMessages.WizardNewFolderMainPage_description);
-        this.currentSelection = selection;
-    }
-
-    /**
-     * Creates the widget for advanced options.
-     *  
-     * @param parent the parent composite
-     */
-    protected void createAdvancedControls(Composite parent) {
-        Preferences preferences = ResourcesPlugin.getPlugin()
-                .getPluginPreferences();
-
-        if (preferences.getBoolean(ResourcesPlugin.PREF_DISABLE_LINKING) == false) {
-            linkedResourceParent = new Composite(parent, SWT.NONE);
-            linkedResourceParent.setFont(parent.getFont());
-            linkedResourceParent.setLayoutData(new GridData(
-                    GridData.FILL_HORIZONTAL));
-            GridLayout layout = new GridLayout();
-            layout.marginHeight = 0;
-            layout.marginWidth = 0;
-            linkedResourceParent.setLayout(layout);
-
-            advancedButton = new Button(linkedResourceParent, SWT.PUSH);
-            advancedButton.setFont(linkedResourceParent.getFont());
-            advancedButton.setText(IDEWorkbenchMessages.showAdvanced);
-            GridData data = setButtonLayoutData(advancedButton);
-            data.horizontalAlignment = GridData.BEGINNING;
-            advancedButton.setLayoutData(data);
-            advancedButton.addSelectionListener(new SelectionAdapter() {
-                public void widgetSelected(SelectionEvent e) {
-                    handleAdvancedButtonSelect();
-                }
-            });
-        }
-        linkedResourceGroup = new CreateLinkedResourceGroup(IResource.FOLDER,
-                new Listener() {
-		            public void handleEvent(Event e) {
-		                setPageComplete(validatePage());
-		                firstLinkCheck = false;
-		            }
-                },
-                new CreateLinkedResourceGroup.IStringValue() {
-                	public String getValue() {
-                		return resourceGroup.getResource();
-                	}
-                	public void setValue(String string) {
-                		resourceGroup.setResource(string);
-                	}
-                });
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        initializeDialogUnits(parent);
-        // top level group
-        Composite composite = new Composite(parent, SWT.NONE);
-        composite.setFont(parent.getFont());
-        composite.setLayout(new GridLayout());
-        composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-
-        PlatformUI.getWorkbench().getHelpSystem()
-                .setHelp(composite, IIDEHelpContextIds.NEW_FOLDER_WIZARD_PAGE);
-
-        resourceGroup = new ResourceAndContainerGroup(
-                composite,
-                this,
-                IDEWorkbenchMessages.WizardNewFolderMainPage_folderName, IDEWorkbenchMessages.WizardNewFolderMainPage_folderLabel, false, SIZING_CONTAINER_GROUP_HEIGHT);
-        resourceGroup.setAllowExistingResources(false);
-        createAdvancedControls(composite);
-        initializePage();
-        validatePage();
-        // Show description on opening
-        setErrorMessage(null);
-        setMessage(null);
-        setControl(composite);
-    }
-
-    /**
-     * Creates a folder resource given the folder handle.
-     *
-     * @param folderHandle the folder handle to create a folder resource for
-     * @param monitor the progress monitor to show visual progress with
-     * @exception CoreException if the operation fails
-     * @exception OperationCanceledException if the operation is canceled
-     */
-    protected void createFolder(IFolder folderHandle, IProgressMonitor monitor)
-            throws CoreException {
-        try {
-            // Create the folder resource in the workspace
-            // Update: Recursive to create any folders which do not exist already
-            if (!folderHandle.exists()) {
-                if (linkTargetPath != null) {
-					folderHandle.createLink(linkTargetPath,
-                            IResource.ALLOW_MISSING_LOCAL, monitor);
-				} else {
-	                IPath path = folderHandle.getFullPath();
-	                IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-	                int numSegments= path.segmentCount();
-	                if (numSegments > 2 && !root.getFolder(path.removeLastSegments(1)).exists()) {
-	                    // If the direct parent of the path doesn't exist, try to create the
-	                    // necessary directories.
-	                    for (int i= numSegments - 2; i > 0; i--) {
-	                        IFolder folder = root.getFolder(path.removeLastSegments(i));
-	                        if (!folder.exists()) {
-	                            folder.create(false, true, monitor);
-	                        }
-	                    }
-	                }
-                    folderHandle.create(false, true, monitor);
-                }
-            }
-        } catch (CoreException e) {
-            // If the folder already existed locally, just refresh to get contents
-            if (e.getStatus().getCode() == IResourceStatus.PATH_OCCUPIED) {
-				folderHandle.refreshLocal(IResource.DEPTH_INFINITE,
-                        new SubProgressMonitor(monitor, 500));
-			} else {
-				throw e;
-			}
-        }
-
-        if (monitor.isCanceled()) {
-			throw new OperationCanceledException();
-		}
-    }
-
-    /**
-     * Creates a folder resource handle for the folder with the given workspace path.
-     * This method does not create the folder resource; this is the responsibility
-     * of <code>createFolder</code>.
-     *
-     * @param folderPath the path of the folder resource to create a handle for
-     * @return the new folder resource handle
-     * @see #createFolder
-     */
-    protected IFolder createFolderHandle(IPath folderPath) {
-        return IDEWorkbenchPlugin.getPluginWorkspace().getRoot().getFolder(
-                folderPath);
-    }
-
-    /**
-     * Creates the link target path if a link target has been specified. 
-     */
-    protected void createLinkTarget() {
-        String linkTarget = linkedResourceGroup.getLinkTarget();
-        if (linkTarget != null) {
-            linkTargetPath = new Path(linkTarget);
-        } else {
-            linkTargetPath = null;
-        }
-    }
-
-    /**
-     * Creates a new folder resource in the selected container and with the selected
-     * name. Creates any missing resource containers along the path; does nothing if
-     * the container resources already exist.
-     * <p>
-     * In normal usage, this method is invoked after the user has pressed Finish on
-     * the wizard; the enablement of the Finish button implies that all controls on
-     * this page currently contain valid values.
-     * </p>
-     * <p>
-     * Note that this page caches the new folder once it has been successfully
-     * created; subsequent invocations of this method will answer the same
-     * folder resource without attempting to create it again.
-     * </p>
-     * <p>
-     * This method should be called within a workspace modify operation since
-     * it creates resources.
-     * </p>
-     *
-     * @return the created folder resource, or <code>null</code> if the folder
-     *    was not created
-     */
-    public IFolder createNewFolder() {
-        if (newFolder != null) {
-			return newFolder;
-		}
-
-        // create the new folder and cache it if successful
-        final IPath containerPath = resourceGroup.getContainerFullPath();
-        IPath newFolderPath = containerPath.append(resourceGroup.getResource());
-        final IFolder newFolderHandle = createFolderHandle(newFolderPath);
-
-        createLinkTarget();
-        WorkspaceModifyOperation op = new WorkspaceModifyOperation(createRule(newFolderHandle)) {
-            public void execute(IProgressMonitor monitor) throws CoreException {
-                try {
-                    monitor.beginTask(IDEWorkbenchMessages.WizardNewFolderCreationPage_progress, 2000);
-                    ContainerGenerator generator = new ContainerGenerator(
-                            containerPath);
-                    generator.generateContainer(new SubProgressMonitor(monitor,
-                            1000));
-                    createFolder(newFolderHandle, new SubProgressMonitor(
-                            monitor, 1000));
-                } finally {
-                    monitor.done();
-                }
-            }
-        };
-
-        try {
-            getContainer().run(true, true, op);
-        } catch (InterruptedException e) {
-            return null;
-        } catch (InvocationTargetException e) {
-            if (e.getTargetException() instanceof CoreException) {
-                ErrorDialog
-                        .openError(
-                                getContainer().getShell(), // Was Utilities.getFocusShell()
-                                IDEWorkbenchMessages.WizardNewFolderCreationPage_errorTitle,
-                                null, // no special message
-                                ((CoreException) e.getTargetException())
-                                        .getStatus());
-            } else {
-                // CoreExceptions are handled above, but unexpected runtime exceptions and errors may still occur.
-
-                IDEWorkbenchPlugin.log(getClass(),
-                        "createNewFolder()", e.getTargetException()); //$NON-NLS-1$
-                MessageDialog
-                        .openError(
-                                getContainer().getShell(),
-                                IDEWorkbenchMessages.WizardNewFolderCreationPage_internalErrorTitle, NLS.bind(IDEWorkbenchMessages.WizardNewFolder_internalError, e.getTargetException().getMessage()));
-            }
-            return null; // ie.- one of the steps resulted in a core exception
-        }
-
-        newFolder = newFolderHandle;
-
-        return newFolder;
-    }
-
-    /**
-     * Returns the scheduling rule to use when creating the resource at
-     * the given container path. The rule should be the creation rule for
-     * the top-most non-existing parent.
-     * @param resource The resource being created
-     * @return The scheduling rule for creating the given resource
-     * @since 3.1
-     */
-    private ISchedulingRule createRule(IResource resource) {
-		IResource parent = resource.getParent();
-    	while (parent != null) {
-    		if (parent.exists()) {
-				return resource.getWorkspace().getRuleFactory().createRule(resource);
-			}
-    		resource = parent;
-    		parent = parent.getParent();
-    	}
-		return resource.getWorkspace().getRoot();
-	}
-
-    /**
-     * Shows/hides the advanced option widgets. 
-     */
-    protected void handleAdvancedButtonSelect() {
-        Shell shell = getShell();
-        Point shellSize = shell.getSize();
-        Composite composite = (Composite) getControl();
-
-        if (linkedResourceComposite != null) {
-            linkedResourceComposite.dispose();
-            linkedResourceComposite = null;
-            composite.layout();
-            shell.setSize(shellSize.x, shellSize.y - linkedResourceGroupHeight);
-            advancedButton.setText(IDEWorkbenchMessages.showAdvanced);
-        } else {
-            linkedResourceComposite = linkedResourceGroup
-                    .createContents(linkedResourceParent);
-            if (linkedResourceGroupHeight == -1) {
-                Point groupSize = linkedResourceComposite.computeSize(
-                        SWT.DEFAULT, SWT.DEFAULT, true);
-                linkedResourceGroupHeight = groupSize.y;
-            }
-            shell.setSize(shellSize.x, shellSize.y + linkedResourceGroupHeight);
-            composite.layout();
-            advancedButton.setText(IDEWorkbenchMessages.hideAdvanced);
-        }
-    }
-
-    /**
-     * The <code>WizardNewFolderCreationPage</code> implementation of this 
-     * <code>Listener</code> method handles all events and enablements for controls
-     * on this page. Subclasses may extend.
-     */
-    public void handleEvent(Event ev) {
-        setPageComplete(validatePage());
-    }
-
-    /**
-     * Initializes this page's controls.
-     */
-    protected void initializePage() {
-        Iterator it = currentSelection.iterator();
-        if (it.hasNext()) {
-            Object next = it.next();
-            IResource selectedResource = null;
-            if (next instanceof IResource) {
-                selectedResource = (IResource) next;
-            } else if (next instanceof IAdaptable) {
-                selectedResource = (IResource) ((IAdaptable) next)
-                        .getAdapter(IResource.class);
-            }
-            if (selectedResource != null) {
-                if (selectedResource.getType() == IResource.FILE) {
-					selectedResource = selectedResource.getParent();
-				}
-                if (selectedResource.isAccessible()) {
-					resourceGroup.setContainerFullPath(selectedResource
-                            .getFullPath());
-				}
-            }
-        }
-
-        setPageComplete(false);
-    }
-
-    /*
-     * @see DialogPage.setVisible(boolean)
-     */
-    public void setVisible(boolean visible) {
-        super.setVisible(visible);
-        if (visible) {
-			resourceGroup.setFocus();
-		}
-    }
-
-    /**
-     * Checks whether the linked resource target is valid.
-     * Sets the error message accordingly and returns the status.
-     *  
-     * @return IStatus validation result from the CreateLinkedResourceGroup
-     */
-    protected IStatus validateLinkedResource() {
-        IPath containerPath = resourceGroup.getContainerFullPath();
-        IPath newFolderPath = containerPath.append(resourceGroup.getResource());
-        IFolder newFolderHandle = createFolderHandle(newFolderPath);
-        IStatus status = linkedResourceGroup
-                .validateLinkLocation(newFolderHandle);
-
-        if (status.getSeverity() == IStatus.ERROR) {
-            if (firstLinkCheck) {
-				setMessage(status.getMessage());
-			} else {
-				setErrorMessage(status.getMessage());
-			}
-        } else if (status.getSeverity() == IStatus.WARNING) {
-            setMessage(status.getMessage(), WARNING);
-            setErrorMessage(null);
-        }
-        return status;
-    }
-
-    /**
-     * Returns whether this page's controls currently all contain valid 
-     * values.
-     *
-     * @return <code>true</code> if all controls are valid, and
-     *   <code>false</code> if at least one is invalid
-     */
-    protected boolean validatePage() {
-        boolean valid = true;
-
-        if (!resourceGroup.areAllValuesValid()) {
-            // if blank name then fail silently
-            if (resourceGroup.getProblemType() == ResourceAndContainerGroup.PROBLEM_RESOURCE_EMPTY
-                    || resourceGroup.getProblemType() == ResourceAndContainerGroup.PROBLEM_CONTAINER_EMPTY) {
-                setMessage(resourceGroup.getProblemMessage());
-                setErrorMessage(null);
-            } else {
-                setErrorMessage(resourceGroup.getProblemMessage());
-            }
-            valid = false;
-        }
-
-        IStatus linkedResourceStatus = null;
-        if (valid) {
-            linkedResourceStatus = validateLinkedResource();
-            if (linkedResourceStatus.getSeverity() == IStatus.ERROR) {
-				valid = false;
-			}
-        }
-        // validateLinkedResource sets messages itself
-        if (valid
-                && (linkedResourceStatus == null || linkedResourceStatus.isOK())) {
-            setMessage(null);
-            setErrorMessage(null);
-        }
-        return valid;
-    }
-
-}
-
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewLinkPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewLinkPage.java
deleted file mode 100644
index 37cbeec..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewLinkPage.java
+++ /dev/null
@@ -1,380 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.ui.dialogs;
-
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IPathVariableManager;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.IDialogConstants;
-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.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.DirectoryDialog;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.dialogs.PathVariableSelectionDialog;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.IDEResourceInfoUtils;
-
-/**
- * Standard resource link page for a wizard that creates a file or 
- * folder resource.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @since 2.1
- */
-public class WizardNewLinkPage extends WizardPage {
-    private String initialLinkTarget;
-
-    private int type;
-
-    private boolean createLink = false;
-
-    private IContainer container;
-
-    // widgets
-    private Text linkTargetField;
-
-    private Button browseButton;
-
-    private Button variablesButton;
-
-    /**
-     * Creates a new resource link wizard page. 
-     *
-     * @param pageName the name of the page
-     * @param type specifies the type of resource to link to. 
-     * 	<code>IResource.FILE</code> or <code>IResource.FOLDER</code>
-     */
-    public WizardNewLinkPage(String pageName, int type) {
-        super(pageName);
-        this.type = type;
-        setPageComplete(true);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        Font font = parent.getFont();
-        initializeDialogUnits(parent);
-        // top level group
-        Composite topLevel = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        topLevel.setLayout(layout);
-        topLevel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-        topLevel.setFont(font);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(topLevel,
-				IIDEHelpContextIds.NEW_LINK_WIZARD_PAGE);
-
-        final Button createLinkButton = new Button(topLevel, SWT.CHECK);
-        if (type == IResource.FILE) {
-			createLinkButton.setText(IDEWorkbenchMessages.WizardNewLinkPage_linkFileButton);
-		} else {
-			createLinkButton.setText(IDEWorkbenchMessages.WizardNewLinkPage_linkFolderButton);
-		}
-        createLinkButton.setSelection(createLink);
-        GridData data = new GridData();
-        data.horizontalSpan = 3;
-        createLinkButton.setLayoutData(data);
-        createLinkButton.setFont(font);
-        SelectionListener listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                createLink = createLinkButton.getSelection();
-                browseButton.setEnabled(createLink);
-                variablesButton.setEnabled(createLink);
-                linkTargetField.setEnabled(createLink);
-                setPageComplete(validatePage());
-            }
-        };
-        createLinkButton.addSelectionListener(listener);
-
-        createLinkLocationGroup(topLevel, createLink);
-        validatePage();
-
-        setErrorMessage(null);
-        setMessage(null);
-        setControl(topLevel);
-    }
-
-    /**
-     * Creates the link target location widgets.
-     *
-     * @param locationGroup the parent composite
-     * @param enabled sets the initial enabled state of the widgets
-     */
-    private void createLinkLocationGroup(Composite locationGroup,
-            boolean enabled) {
-        Font font = locationGroup.getFont();
-        Label fill = new Label(locationGroup, SWT.NONE);
-        GridData data = new GridData();
-        Button button = new Button(locationGroup, SWT.CHECK);
-        data.widthHint = button.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
-        button.dispose();
-        fill.setLayoutData(data);
-
-        // link target location entry field
-        linkTargetField = new Text(locationGroup, SWT.BORDER);
-        data = new GridData(GridData.FILL_HORIZONTAL);
-        linkTargetField.setLayoutData(data);
-        linkTargetField.setFont(font);
-        linkTargetField.setEnabled(enabled);
-        linkTargetField.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                setPageComplete(validatePage());
-            }
-        });
-        if (initialLinkTarget != null) {
-            linkTargetField.setText(initialLinkTarget);
-        }
-
-        // browse button
-        browseButton = new Button(locationGroup, SWT.PUSH);
-        setButtonLayoutData(browseButton);
-        browseButton.setFont(font);
-        browseButton.setText(IDEWorkbenchMessages.WizardNewLinkPage_browseButton);
-        browseButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                handleLinkTargetBrowseButtonPressed();
-            }
-        });
-        browseButton.setEnabled(enabled);
-
-        fill = new Label(locationGroup, SWT.NONE);
-        data = new GridData();
-        data.horizontalSpan = 2;
-        fill.setLayoutData(data);
-
-        // variables button
-        variablesButton = new Button(locationGroup, SWT.PUSH);
-        setButtonLayoutData(variablesButton);
-        variablesButton.setFont(font);
-        variablesButton.setText(IDEWorkbenchMessages.WizardNewLinkPage_variablesButton);
-        variablesButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                handleVariablesButtonPressed();
-            }
-        });
-        variablesButton.setEnabled(enabled);
-    }
-
-    /**
-     * Returns the link target location entered by the user. 
-     *
-     * @return the link target location entered by the user. null if the user
-     * 	choose not to create a link.
-     */
-    public String getLinkTarget() {
-        if (createLink && linkTargetField != null
-                && linkTargetField.isDisposed() == false) {
-            return linkTargetField.getText();
-        }
-        return null;
-    }
-
-    /**
-     * Opens a file or directory browser depending on the link type.
-     */
-    private void handleLinkTargetBrowseButtonPressed() {
-        String linkTargetName = linkTargetField.getText();
-         String selection = null;
-         IFileStore store = null;
-        if (linkTargetName.length() > 0) {
-            store = IDEResourceInfoUtils.getFileStore(linkTargetName);
-            if (store == null || !store.fetchInfo().exists()) {
-            	store = null;
-            }
-        }
-        if (type == IResource.FILE) {
-            FileDialog dialog = new FileDialog(getShell());
-            if (store != null) {
-                if (store.fetchInfo().isDirectory()) {
-					dialog.setFilterPath(linkTargetName);
-				} else {
-					dialog.setFileName(linkTargetName);
-				}
-            }
-            selection = dialog.open();
-        } else {
-            DirectoryDialog dialog = new DirectoryDialog(getShell());
-            if (store != null) {
-                if (!store.fetchInfo().isDirectory()) {
-                    linkTargetName = store.getParent().getName();
-                }
-                if (linkTargetName != null) {
-                    dialog.setFilterPath(linkTargetName);
-                }
-            }
-            dialog.setMessage(IDEWorkbenchMessages.WizardNewLinkPage_targetSelectionLabel);
-            selection = dialog.open();
-        }
-        if (selection != null) {
-            linkTargetField.setText(selection);
-        }
-    }
-
-    /**
-     * Opens a path variable selection dialog
-     */
-    private void handleVariablesButtonPressed() {
-        PathVariableSelectionDialog dialog = new PathVariableSelectionDialog(
-                getShell(), type);
-
-        if (dialog.open() == IDialogConstants.OK_ID) {
-            String[] variableNames = (String[]) dialog.getResult();
-
-            if (variableNames != null) {
-                IPathVariableManager pathVariableManager = ResourcesPlugin
-                        .getWorkspace().getPathVariableManager();
-                IPath path = pathVariableManager.getValue(variableNames[0]);
-
-                if (path != null) {
-                    linkTargetField.setText(path.toOSString());
-                }
-            }
-        }
-    }
-
-    /**
-     * Sets the container to use for link validation.
-     * This should be the parent of the new resource that is being 
-     * linked.
-     *
-     * @param container the container to use for link validation.
-     */
-    public void setContainer(IContainer container) {
-        this.container = container;
-    }
-
-    /**
-     * Sets the value of the link target field
-     * 
-     * @param target the value of the link target field
-     */
-    public void setLinkTarget(String target) {
-        initialLinkTarget = target;
-        if (linkTargetField != null && linkTargetField.isDisposed() == false) {
-            linkTargetField.setText(target);
-        }
-    }
-
-    /**
-     * Validates the type of the given file against the link type specified
-     * during page creation.
-     * 
-     * @param linkTargetStore file to validate
-     * @return boolean <code>true</code> if the link target type is valid
-     * 	and <code>false</code> otherwise.
-     */
-    private boolean validateFileType(IFileStore linkTargetStore) {
-        boolean valid = true;
-
-        if (type == IResource.FILE && linkTargetStore.fetchInfo().isDirectory()) {
-            setErrorMessage(IDEWorkbenchMessages.WizardNewLinkPage_linkTargetNotFile);
-            valid = false;
-        } else if (type == IResource.FOLDER
-                && !linkTargetStore.fetchInfo().isDirectory()) {
-            setErrorMessage(IDEWorkbenchMessages.WizardNewLinkPage_linkTargetNotFolder);
-            valid = false;
-        }
-        return valid;
-    }
-
-    /**
-     * Validates the name of the link target
-     *
-     * @param linkTargetName link target name to validate
-     * @return boolean <code>true</code> if the link target name is valid
-     * 	and <code>false</code> otherwise.
-     */
-    private boolean validateLinkTargetName(String linkTargetName) {
-        boolean valid = true;
-
-        if ("".equals(linkTargetName)) {//$NON-NLS-1$
-            setErrorMessage(IDEWorkbenchMessages.WizardNewLinkPage_linkTargetEmpty);
-            valid = false;
-        } else {
-            IPath path = new Path("");//$NON-NLS-1$
-            if (path.isValidPath(linkTargetName) == false) {
-                setErrorMessage(IDEWorkbenchMessages.WizardNewLinkPage_linkTargetInvalid);
-                valid = false;
-            }
-        }
-        return valid;
-    }
-
-    /**
-     * Returns whether this page's controls currently all contain valid 
-     * values.
-     *
-     * @return <code>true</code> if all controls are valid, and
-     *   <code>false</code> if at least one is invalid
-     */
-    private boolean validatePage() {
-        boolean valid = true;
-        IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-
-        if (createLink) {
-            String linkTargetName = linkTargetField.getText();
-
-            valid = validateLinkTargetName(linkTargetName);
-            if (valid) {
-                IFileStore linkTargetFile = IDEResourceInfoUtils.getFileStore(linkTargetName);
-                if (linkTargetFile == null || !linkTargetFile.fetchInfo().exists()) {
-                    setErrorMessage(IDEWorkbenchMessages.WizardNewLinkPage_linkTargetNonExistent);
-                    valid = false;
-                } else {
-                    IStatus locationStatus = workspace.validateLinkLocation(
-                            container, new Path(linkTargetName));
-
-                    if (locationStatus.isOK() == false) {
-                        setErrorMessage(IDEWorkbenchMessages.WizardNewLinkPage_linkTargetLocationInvalid);
-                        valid = false;
-                    } else {
-                        valid = validateFileType(linkTargetFile);
-                    }
-                }
-            }
-        }
-        // Avoid draw flicker by clearing error message
-        // if all is valid.
-        if (valid) {
-            setMessage(null);
-            setErrorMessage(null);
-        }
-        return valid;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectCreationPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectCreationPage.java
deleted file mode 100644
index 4e93b98..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectCreationPage.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.dialogs;
-
-import java.net.URI;
-
-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.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.ProjectContentsLocationArea;
-import org.eclipse.ui.internal.ide.dialogs.ProjectContentsLocationArea.IErrorMessageReporter;
-
-/**
- * Standard main page for a wizard that is creates a project resource.
- * <p>
- * This page may be used by clients as-is; it may be also be subclassed to suit.
- * </p>
- * <p>
- * Example usage:
- * <pre>
- * mainPage = new WizardNewProjectCreationPage("basicNewProjectPage");
- * mainPage.setTitle("Project");
- * mainPage.setDescription("Create a new project resource.");
- * </pre>
- * </p>
- */
-public class WizardNewProjectCreationPage extends WizardPage {
-
-       // initial value stores
-    private String initialProjectFieldValue;
-
-    // widgets
-    Text projectNameField;
-
-    private Listener nameModifyListener = new Listener() {
-        public void handleEvent(Event e) {
-        	setLocationForSelection();
-            boolean valid = validatePage();
-            setPageComplete(valid);
-                
-        }
-    };
-
-	private ProjectContentsLocationArea locationArea;
-
-    // constants
-    private static final int SIZING_TEXT_FIELD_WIDTH = 250;
-
-    /**
-     * Creates a new project creation wizard page.
-     *
-     * @param pageName the name of this page
-     */
-    public WizardNewProjectCreationPage(String pageName) {
-        super(pageName);
-        setPageComplete(false);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        Composite composite = new Composite(parent, SWT.NULL);
-        composite.setFont(parent.getFont());
-
-        initializeDialogUnits(parent);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
-                IIDEHelpContextIds.NEW_PROJECT_WIZARD_PAGE);
-
-        composite.setLayout(new GridLayout());
-        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-        createProjectNameGroup(composite);
-        locationArea = new ProjectContentsLocationArea(getErrorReporter(), composite);
-        if(initialProjectFieldValue != null) {
-			locationArea.updateProjectName(initialProjectFieldValue);
-		}
-
-		// Scale the button based on the rest of the dialog
-		setButtonLayoutData(locationArea.getBrowseButton());
-		
-        setPageComplete(validatePage());
-        // Show description on opening
-        setErrorMessage(null);
-        setMessage(null);
-        setControl(composite);
-    }
-    
-    /**
-	 * Get an error reporter for the receiver.
-	 * @return IErrorMessageReporter
-	 */
-	private IErrorMessageReporter getErrorReporter() {
-		return new IErrorMessageReporter(){
-			/* (non-Javadoc)
-			 * @see org.eclipse.ui.internal.ide.dialogs.ProjectContentsLocationArea.IErrorMessageReporter#reportError(java.lang.String)
-			 */
-			public void reportError(String errorMessage) {
-				setErrorMessage(errorMessage);
-				boolean valid = errorMessage == null;
-				if(valid) {
-					valid = validatePage();
-				}
-				
-				setPageComplete(valid);
-			}
-		};
-	}
-
-    /**
-     * Creates the project name specification controls.
-     *
-     * @param parent the parent composite
-     */
-    private final void createProjectNameGroup(Composite parent) {
-        // project specification group
-        Composite projectGroup = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        projectGroup.setLayout(layout);
-        projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-        // new project label
-        Label projectLabel = new Label(projectGroup, SWT.NONE);
-        projectLabel.setText(IDEWorkbenchMessages.WizardNewProjectCreationPage_nameLabel);
-        projectLabel.setFont(parent.getFont());
-
-        // new project name entry field
-        projectNameField = new Text(projectGroup, SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_HORIZONTAL);
-        data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-        projectNameField.setLayoutData(data);
-        projectNameField.setFont(parent.getFont());
-
-        // Set the initial value first before listener
-        // to avoid handling an event during the creation.
-        if (initialProjectFieldValue != null) {
-			projectNameField.setText(initialProjectFieldValue);
-		}
-        projectNameField.addListener(SWT.Modify, nameModifyListener);
-    }
-
-
-    /**
-     * Returns the current project location path as entered by 
-     * the user, or its anticipated initial value.
-     * Note that if the default has been returned the path
-     * in a project description used to create a project
-     * should not be set.
-     *
-     * @return the project location path or its anticipated initial value.
-     */
-    public IPath getLocationPath() {
-        return new Path(locationArea.getProjectLocation());
-    }
-    
-    /**
-    /**
-     * Returns the current project location URI as entered by 
-     * the user, or <code>null</code> if a valid project location
-     * has not been entered.
-     *
-     * @return the project location URI, or <code>null</code>
-     * @since 3.2
-     */
-    public URI getLocationURI() {
-    	return locationArea.getProjectLocationURI();
-    }
-
-    /**
-	 * Creates a project resource handle for the current project name field
-	 * value. The project handle is created relative to the workspace root.
-	 * <p>
-	 * This method does not create the project resource; this is the
-	 * responsibility of <code>IProject::create</code> invoked by the new
-	 * project resource wizard.
-	 * </p>
-	 * 
-	 * @return the new project resource handle
-	 */
-    public IProject getProjectHandle() {
-        return ResourcesPlugin.getWorkspace().getRoot().getProject(
-                getProjectName());
-    }
-
-    /**
-     * Returns the current project name as entered by the user, or its anticipated
-     * initial value.
-     *
-     * @return the project name, its anticipated initial value, or <code>null</code>
-     *   if no project name is known
-     */
-    public String getProjectName() {
-        if (projectNameField == null) {
-			return initialProjectFieldValue;
-		}
-
-        return getProjectNameFieldValue();
-    }
-
-    /**
-     * Returns the value of the project name field
-     * with leading and trailing spaces removed.
-     * 
-     * @return the project name in the field
-     */
-    private String getProjectNameFieldValue() {
-        if (projectNameField == null) {
-			return ""; //$NON-NLS-1$
-		}
-
-        return projectNameField.getText().trim();
-    }
-
-    /**
-     * Sets the initial project name that this page will use when
-     * created. The name is ignored if the createControl(Composite)
-     * method has already been called. Leading and trailing spaces
-     * in the name are ignored.
-     * Providing the name of an existing project will not necessarily 
-     * cause the wizard to warn the user.  Callers of this method 
-     * should first check if the project name passed already exists 
-     * in the workspace.
-     * 
-     * @param name initial project name for this page
-     * 
-     * @see IWorkspace#validateName(String, int)
-     * 
-     */
-    public void setInitialProjectName(String name) {
-        if (name == null) {
-			initialProjectFieldValue = null;
-		} else {
-            initialProjectFieldValue = name.trim();
-            if(locationArea != null) {
-				locationArea.updateProjectName(name.trim());
-			}
-        }
-    }
-
-    /**
-     * Set the location to the default location if we are set to useDefaults.
-     */
-    void setLocationForSelection() {
-    	locationArea.updateProjectName(getProjectNameFieldValue());
-    }
-
-  
-    /**
-     * Returns whether this page's controls currently all contain valid 
-     * values.
-     *
-     * @return <code>true</code> if all controls are valid, and
-     *   <code>false</code> if at least one is invalid
-     */
-    protected boolean validatePage() {
-        IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-
-        String projectFieldContents = getProjectNameFieldValue();
-        if (projectFieldContents.equals("")) { //$NON-NLS-1$
-            setErrorMessage(null);
-            setMessage(IDEWorkbenchMessages.WizardNewProjectCreationPage_projectNameEmpty);
-            return false;
-        }
-
-        IStatus nameStatus = workspace.validateName(projectFieldContents,
-                IResource.PROJECT);
-        if (!nameStatus.isOK()) {
-            setErrorMessage(nameStatus.getMessage());
-            return false;
-        }
-
-        IProject handle = getProjectHandle();
-        if (handle.exists()) {
-            setErrorMessage(IDEWorkbenchMessages.WizardNewProjectCreationPage_projectExistsMessage);
-            return false;
-        }
-        
-        /*
-         * If not using the default value validate the location.
-         */
-        if (!locationArea.isDefault()) {
-            IStatus locationStatus = workspace.validateProjectLocationURI(handle,
-                    locationArea.getProjectLocationURI());
-            if (!locationStatus.isOK()) {
-                setErrorMessage(locationStatus.getMessage());
-                return false;
-            }
-        }
-
-        setErrorMessage(null);
-        setMessage(null);
-        return true;
-    }
-
-    /*
-     * see @DialogPage.setVisible(boolean)
-     */
-    public void setVisible(boolean visible) {
-        super.setVisible(visible);
-        if (visible) {
-			projectNameField.setFocus();
-		}
-    }
-
-    /**
-     * Returns the useDefaults.
-     * @return boolean
-     */
-    public boolean useDefaults() {
-        return locationArea.isDefault();
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectReferencePage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectReferencePage.java
deleted file mode 100644
index 6dac88e..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectReferencePage.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.dialogs;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Standard project reference page for a wizard that creates a 
- * project resource.
- * <p>
- * This page may be used by clients as-is; it may be also be
- * subclassed to suit.
- * </p>
- * <p>
- * Example usage:
- * <pre>
- * referencePage = new WizardNewProjectReferencePage("basicReferenceProjectPage");
- * referencePage.setTitle("Project");
- * referencePage.setDescription("Select referenced projects.");
- * </pre>
- * </p>
- */
-public class WizardNewProjectReferencePage extends WizardPage {
-    // widgets
-    private CheckboxTableViewer referenceProjectsViewer;
-
-    private static final String REFERENCED_PROJECTS_TITLE = IDEWorkbenchMessages.WizardNewProjectReferences_title;
-
-    private static final int PROJECT_LIST_MULTIPLIER = 15;
-
-    /**
-     * Creates a new project reference wizard page.
-     *
-     * @param pageName the name of this page
-     */
-    public WizardNewProjectReferencePage(String pageName) {
-        super(pageName);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-
-        Font font = parent.getFont();
-
-        Composite composite = new Composite(parent, SWT.NONE);
-        composite.setLayout(new GridLayout());
-        composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        composite.setFont(font);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
-                IIDEHelpContextIds.NEW_PROJECT_REFERENCE_WIZARD_PAGE);
-
-        Label referenceLabel = new Label(composite, SWT.NONE);
-        referenceLabel.setText(REFERENCED_PROJECTS_TITLE);
-        referenceLabel.setFont(font);
-
-        referenceProjectsViewer = CheckboxTableViewer.newCheckList(composite,
-                SWT.BORDER);
-        referenceProjectsViewer.getTable().setFont(composite.getFont());
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        data.grabExcessHorizontalSpace = true;
-
-        data.heightHint = getDefaultFontHeight(referenceProjectsViewer
-                .getTable(), PROJECT_LIST_MULTIPLIER);
-        referenceProjectsViewer.getTable().setLayoutData(data);
-        referenceProjectsViewer.setLabelProvider(WorkbenchLabelProvider
-                .getDecoratingWorkbenchLabelProvider());
-        referenceProjectsViewer.setContentProvider(getContentProvider());
-        referenceProjectsViewer.setComparator(new ViewerComparator());
-        referenceProjectsViewer.setInput(ResourcesPlugin.getWorkspace());
-
-        setControl(composite);
-    }
-
-    /**
-     * Returns a content provider for the reference project
-     * viewer. It will return all projects in the workspace.
-     *
-     * @return the content provider
-     */
-    protected IStructuredContentProvider getContentProvider() {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object element) {
-                if (!(element instanceof IWorkspace)) {
-					return new Object[0];
-				}
-                IProject[] projects = ((IWorkspace) element).getRoot()
-                        .getProjects();
-                return projects == null ? new Object[0] : projects;
-            }
-        };
-    }
-
-    /**
-     * Get the defualt widget height for the supplied control.
-     * @return int
-     * @param control - the control being queried about fonts
-     * @param lines - the number of lines to be shown on the table.
-     */
-    private static int getDefaultFontHeight(Control control, int lines) {
-        FontData[] viewerFontData = control.getFont().getFontData();
-        int fontHeight = 10;
-
-        //If we have no font data use our guess
-        if (viewerFontData.length > 0) {
-			fontHeight = viewerFontData[0].getHeight();
-		}
-        return lines * fontHeight;
-
-    }
-
-    /**
-     * Returns the referenced projects selected by the user.
-     *
-     * @return the referenced projects
-     */
-    public IProject[] getReferencedProjects() {
-        Object[] elements = referenceProjectsViewer.getCheckedElements();
-        IProject[] projects = new IProject[elements.length];
-        System.arraycopy(elements, 0, projects, 0, elements.length);
-        return projects;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardResourceImportPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardResourceImportPage.java
deleted file mode 100644
index 699c59c..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardResourceImportPage.java
+++ /dev/null
@@ -1,589 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.dialogs;
-
-import java.util.ArrayList;
-import java.util.Map;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-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.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.internal.ide.DialogUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.dialogs.IElementFilter;
-import org.eclipse.ui.internal.ide.dialogs.ResourceTreeAndListGroup;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.model.WorkbenchViewerComparator;
-
-/**
- * The abstract superclass for a typical import wizard's main page.
- * <p>
- * Clients may subclass this page to inherit its common destination resource
- * selection facilities.
- * </p>
- * <p>
- * Subclasses must implement 
- * <ul>
- *   <li><code>createSourceGroup</code></li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may override
- * <ul>
- *   <li><code>allowNewContainerName</code></li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may extend
- * <ul>
- *   <li><code>handleEvent</code></li>
- * </ul>
- * </p>
- */
-public abstract class WizardResourceImportPage extends WizardDataTransferPage {
-    private IResource currentResourceSelection;
-
-    // initial value stores
-    private String initialContainerFieldValue;
-
-    protected java.util.List selectedTypes = new ArrayList();
-
-    // widgets
-    private Text containerNameField;
-
-    private Button containerBrowseButton;
-
-    /**
-	 * The <code>selectionGroup</code> field should have been created with a
-	 * private modifier. Subclasses should not access this field directly.
-	 */
-    protected ResourceTreeAndListGroup selectionGroup;
-
-    //messages
-    private static final String EMPTY_FOLDER_MESSAGE = IDEWorkbenchMessages.WizardImportPage_specifyFolder;
-
-    private static final String EMPTY_PROJECT_MESSAGE = IDEWorkbenchMessages.WizardImportPage_specifyProject;
-    
-    private static final String INACCESSABLE_FOLDER_MESSAGE = IDEWorkbenchMessages.WizardImportPage_folderMustExist;
-
-    /**
-     * Creates an import wizard page. If the initial resource selection 
-     * contains exactly one container resource then it will be used as the default
-     * import destination.
-     *
-     * @param name the name of the page
-     * @param selection the current resource selection
-     */
-    protected WizardResourceImportPage(String name,
-            IStructuredSelection selection) {
-        super(name);
-
-        //Initialize to null
-        currentResourceSelection = null;
-        if (selection.size() == 1) {
-            Object firstElement = selection.getFirstElement();
-            if (firstElement instanceof IAdaptable) {
-                Object resource = ((IAdaptable) firstElement)
-                        .getAdapter(IResource.class);
-                if (resource != null) {
-					currentResourceSelection = (IResource) resource;
-				}
-            }
-        }
-
-        if (currentResourceSelection != null) {
-            if (currentResourceSelection.getType() == IResource.FILE) {
-				currentResourceSelection = currentResourceSelection.getParent();
-			}
-
-            if (!currentResourceSelection.isAccessible()) {
-				currentResourceSelection = null;
-			}
-        }
-
-    }
-
-    /**
-     * The <code>WizardResourceImportPage</code> implementation of this 
-     * <code>WizardDataTransferPage</code> method returns <code>true</code>. 
-     * Subclasses may override this method.
-     */
-    protected boolean allowNewContainerName() {
-        return true;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-
-        initializeDialogUnits(parent);
-
-        Composite composite = new Composite(parent, SWT.NULL);
-        composite.setLayout(new GridLayout());
-        composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-        composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-        composite.setFont(parent.getFont());
-
-        createSourceGroup(composite);
-
-        createDestinationGroup(composite);
-
-        createOptionsGroup(composite);
-
-        restoreWidgetValues();
-        updateWidgetEnablements();
-        setPageComplete(determinePageCompletion());
-        setErrorMessage(null);	// should not initially have error message
-
-        setControl(composite);
-    }
-
-    /**
-     * Creates the import destination specification controls.
-     *
-     * @param parent the parent control
-     */
-    protected final void createDestinationGroup(Composite parent) {
-        // container specification group
-        Composite containerGroup = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        containerGroup.setLayout(layout);
-        containerGroup.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-        containerGroup.setFont(parent.getFont());
-
-        // container label
-        Label resourcesLabel = new Label(containerGroup, SWT.NONE);
-        resourcesLabel.setText(IDEWorkbenchMessages.WizardImportPage_folder);
-        resourcesLabel.setFont(parent.getFont());
-
-        // container name entry field
-        containerNameField = new Text(containerGroup, SWT.SINGLE | SWT.BORDER);
-        containerNameField.addListener(SWT.Modify, this);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-        containerNameField.setLayoutData(data);
-        containerNameField.setFont(parent.getFont());
-
-        // container browse button
-        containerBrowseButton = new Button(containerGroup, SWT.PUSH);
-        containerBrowseButton.setText(IDEWorkbenchMessages.WizardImportPage_browse2);
-        containerBrowseButton.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL));
-        containerBrowseButton.addListener(SWT.Selection, this);
-        containerBrowseButton.setFont(parent.getFont());
-        setButtonLayoutData(containerBrowseButton);
-
-        initialPopulateContainerField();
-    }
-
-    /**
-     *	Create the import source selection widget
-     */
-    protected void createFileSelectionGroup(Composite parent) {
-
-        //Just create with a dummy root.
-        this.selectionGroup = new ResourceTreeAndListGroup(parent,
-                new FileSystemElement("Dummy", null, true),//$NON-NLS-1$
-                getFolderProvider(), new WorkbenchLabelProvider(),
-                getFileProvider(), new WorkbenchLabelProvider(), SWT.NONE,
-                DialogUtil.inRegularFontMode(parent));
-
-        ICheckStateListener listener = new ICheckStateListener() {
-            public void checkStateChanged(CheckStateChangedEvent event) {
-                updateWidgetEnablements();
-            }
-        };
-
-        WorkbenchViewerComparator comparator = new WorkbenchViewerComparator();
-        this.selectionGroup.setTreeComparator(comparator);
-        this.selectionGroup.setListComparator(comparator);
-        this.selectionGroup.addCheckStateListener(listener);
-
-    }
-
-    /**
-     * Creates the import source specification controls.
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @param parent the parent control
-     */
-    protected abstract void createSourceGroup(Composite parent);
-
-    /*
-     * @see WizardDataTransferPage.getErrorDialogTitle()
-     */
-    protected String getErrorDialogTitle() {
-        return IDEWorkbenchMessages.WizardImportPage_errorDialogTitle;
-    }
-
-    /**
-     * Returns the path of the container resource specified in the container
-     * name entry field, or <code>null</code> if no name has been typed in.
-     * <p>
-     * The container specified by the full path might not exist and would need to
-     * be created.
-     * </p>
-     *
-     * @return the full path of the container resource specified in
-     *   the container name entry field, or <code>null</code>
-     */
-    protected IPath getContainerFullPath() {
-        IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-
-        //make the path absolute to allow for optional leading slash
-        IPath testPath = getResourcePath();
-
-        if (testPath.equals(workspace.getRoot().getFullPath())) {
-			return testPath;
-		}
-
-        IStatus result = workspace.validatePath(testPath.toString(),
-                IResource.PROJECT | IResource.FOLDER | IResource.ROOT);
-        if (result.isOK()) {
-            return testPath;
-        }
-
-        return null;
-    }
-
-    /**
-     * Returns a content provider for <code>FileSystemElement</code>s that returns 
-     * only files as children.
-     */
-    protected abstract ITreeContentProvider getFileProvider();
-
-    /**
-     * Returns a content provider for <code>FileSystemElement</code>s that returns 
-     * only folders as children.
-     */
-    protected abstract ITreeContentProvider getFolderProvider();
-
-    /**
-     * Return the path for the resource field.
-     * @return IPath
-     */
-    protected IPath getResourcePath() {
-        return getPathFromText(this.containerNameField);
-    }
-
-    /**
-     * Returns this page's list of currently-specified resources to be 
-     * imported. This is the primary resource selection facility accessor for 
-     * subclasses.
-     *
-     * @return a list of resources currently selected 
-     * for export (element type: <code>IResource</code>)
-     */
-    protected java.util.List getSelectedResources() {
-        return this.selectionGroup.getAllCheckedListItems();
-    }
-
-    /**
-     * Returns this page's list of currently-specified resources to be 
-     * imported filtered by the IElementFilter.
-     *
-     */
-    protected void getSelectedResources(IElementFilter filter,
-            IProgressMonitor monitor) throws InterruptedException {
-        this.selectionGroup.getAllCheckedListItems(filter, monitor);
-    }
-
-    /**
-     * Returns the container resource specified in the container name entry field,
-     * or <code>null</code> if such a container does not exist in the workbench.
-     *
-     * @return the container resource specified in the container name entry field,
-     *   or <code>null</code>
-     */
-    protected IContainer getSpecifiedContainer() {
-        IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-        IPath path = getContainerFullPath();
-        if (workspace.getRoot().exists(path)){
-        	IResource resource = workspace.getRoot().findMember(path);
-        	if(resource.getType() == IResource.FILE) {
-				return null;
-			}
-        	return (IContainer) resource;
-        	
-        }
-            
-
-        return null;
-    }
-
-    /**
-     * Returns a collection of the currently-specified resource types for
-     * use by the type selection dialog.
-     */
-    protected java.util.List getTypesToImport() {
-
-        return selectedTypes;
-    }
-
-    /**
-     * Opens a container selection dialog and displays the user's subsequent
-     * container resource selection in this page's container name field.
-     */
-    protected void handleContainerBrowseButtonPressed() {
-        // see if the user wishes to modify this container selection
-        IPath containerPath = queryForContainer(getSpecifiedContainer(),
-                IDEWorkbenchMessages.WizardImportPage_selectFolderLabel,
-                IDEWorkbenchMessages.WizardImportPage_selectFolderTitle);
-
-        // if a container was selected then put its name in the container name field
-        if (containerPath != null) { // null means user cancelled
-            setErrorMessage(null);
-            containerNameField.setText(containerPath.makeRelative().toString());
-        }
-    }
-
-    /**
-     * The <code>WizardResourceImportPage</code> implementation of this 
-     * <code>Listener</code> method handles all events and enablements for controls
-     * on this page. Subclasses may extend.
-     * @param event Event
-     */
-    public void handleEvent(Event event) {
-        Widget source = event.widget;
-
-        if (source == containerBrowseButton) {
-			handleContainerBrowseButtonPressed();
-		}
-
-        updateWidgetEnablements();
-    }
-
-    /**
-     *	Open a registered type selection dialog and note the selections
-     *	in the receivers types-to-export field
-     */
-    protected void handleTypesEditButtonPressed() {
-
-        TypeFilteringDialog dialog = new TypeFilteringDialog(getContainer()
-                .getShell(), getTypesToImport());
-
-        dialog.open();
-
-        Object[] newSelectedTypes = dialog.getResult();
-        if (newSelectedTypes != null) { // ie.- did not press Cancel
-            this.selectedTypes = new ArrayList(newSelectedTypes.length);
-            for (int i = 0; i < newSelectedTypes.length; i++) {
-				this.selectedTypes.add(newSelectedTypes[i]);
-			}
-
-            setupSelectionsBasedOnSelectedTypes();
-        }
-
-    }
-
-    /**
-     * Sets the initial contents of the container name field.
-     */
-    protected final void initialPopulateContainerField() {
-        if (initialContainerFieldValue != null) {
-			containerNameField.setText(initialContainerFieldValue);
-		} else if (currentResourceSelection != null) {
-			containerNameField.setText(currentResourceSelection.getFullPath()
-                    .makeRelative().toString());
-		}
-    }
-
-    /**
-     * Set all of the selections in the selection group to value
-     * @param value boolean
-     */
-    protected void setAllSelections(boolean value) {
-        selectionGroup.setAllSelections(value);
-    }
-
-    /**
-     * Sets the value of this page's container resource field, or stores
-     * it for future use if this page's controls do not exist yet.
-     *
-     * @param value String
-     */
-    public void setContainerFieldValue(String value) {
-        if (containerNameField == null) {
-			initialContainerFieldValue = value;
-		} else {
-			containerNameField.setText(value);
-		}
-    }
-
-    /**
-     * Update the tree to only select those elements that match the selected types.
-     * Do nothing by default.
-     */
-    protected void setupSelectionsBasedOnSelectedTypes() {
-    }
-
-    /**
-     * Update the selections with those in map .
-     * @param map Map - key tree elements, values Lists of list elements
-     */
-    protected void updateSelections(final Map map) {
-
-        Runnable runnable = new Runnable() {
-            public void run() {
-                selectionGroup.updateSelections(map);
-            }
-        };
-
-        BusyIndicator.showWhile(getShell().getDisplay(), runnable);
-    }
-
-    /**
-     * Check if widgets are enabled or disabled by a change in the dialog.
-     */
-    protected void updateWidgetEnablements() {
-
-        boolean pageComplete = determinePageCompletion();
-        setPageComplete(pageComplete);
-        if (pageComplete) {
-			setMessage(null);
-		}
-        super.updateWidgetEnablements();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WizardDataTransferPage.
-     */
-    protected final boolean validateDestinationGroup() {
-
-        IPath containerPath = getContainerFullPath();
-        if (containerPath == null) {
-            setMessage(EMPTY_FOLDER_MESSAGE);
-            return false;
-        }
-
-        // If the container exist, validate it
-        IContainer container = getSpecifiedContainer();
-        if (container == null) {
-        	//If it exists but is not valid then abort
-        	if(IDEWorkbenchPlugin.getPluginWorkspace().getRoot().exists(getContainerFullPath())) {
-				return false;
-			}
-        	
-            //if it is does not exist be sure the project does
-            IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-            IPath projectPath = containerPath.removeLastSegments(containerPath
-                    .segmentCount() - 1);
-
-            if (workspace.getRoot().exists(projectPath)) {
-				return true;
-			}
-            setErrorMessage(IDEWorkbenchMessages.WizardImportPage_projectNotExist);
-            return false;
-        } 
-        if (!container.isAccessible()) {
-             setErrorMessage(INACCESSABLE_FOLDER_MESSAGE);
-             return false;
-        }
-        if (container.getLocation() == null) {
-          if (container.isLinked()) {
-               setErrorMessage(IDEWorkbenchMessages.WizardImportPage_undefinedPathVariable);
-          } else {
-               setErrorMessage(IDEWorkbenchMessages.WizardImportPage_containerNotExist);
-          }
-         return false;
-        }
-        
-
-        if (sourceConflictsWithDestination(containerPath)) {
-            setErrorMessage(getSourceConflictMessage());
-            return false;
-        }
-
-        if (container instanceof IWorkspaceRoot){
-        	setErrorMessage(EMPTY_PROJECT_MESSAGE);
-        	return false;
-        }
-        return true;
-
-    }
-
-    /**
-     * Returns the error message for when the source conflicts
-     * with the destination.
-     */
-    protected final String getSourceConflictMessage() {
-        return (IDEWorkbenchMessages.WizardImportPage_importOnReceiver);
-    }
-
-    /**
-     * Returns whether or not the source location conflicts
-     * with the destination resource. By default this is not
-     * checked, so <code>false</code> is returned.
-     * 
-     * @param sourcePath the path being checked
-     * @return <code>true</code> if the source location conflicts with the
-     *   destination resource, <code>false</code> if not
-     */
-    protected boolean sourceConflictsWithDestination(IPath sourcePath) {
-        return false;
-    }
-
-    /*
-     * @see WizardDataTransferPage.determinePageCompletion.
-     */
-    protected boolean determinePageCompletion() {
-        //Check for valid projects before making the user do anything 
-        if (noOpenProjects()) {
-            setErrorMessage(IDEWorkbenchMessages.WizardImportPage_noOpenProjects);
-            return false;
-        }
-        return super.determinePageCompletion();
-    }
-
-    /**
-     * Returns whether or not the passed workspace has any 
-     * open projects
-     * @return boolean
-     */
-    private boolean noOpenProjects() {
-        IProject[] projects = IDEWorkbenchPlugin.getPluginWorkspace().getRoot()
-                .getProjects();
-        for (int i = 0; i < projects.length; i++) {
-            if (projects[i].isOpen()) {
-				return false;
-			}
-        }
-        return true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/model/WorkbenchContentProvider.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/model/WorkbenchContentProvider.java
deleted file mode 100644
index 244ac56..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/model/WorkbenchContentProvider.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.model;
-
-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.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.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Tree content provider for resource objects that can be adapted to the
- * interface {@link org.eclipse.ui.model.IWorkbenchAdapter IWorkbenchAdapter}.
- * This provider will listen for resource changes within the workspace and
- * update the viewer as necessary.
- * <p>
- * This class may be instantiated, or subclassed by clients.
- * </p>
- */
-public class WorkbenchContentProvider extends BaseWorkbenchContentProvider
-		implements IResourceChangeListener {
-	private Viewer viewer;
-
-	/**
-	 * Creates the resource content provider.
-	 */
-	public WorkbenchContentProvider() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContentProvider.
-	 */
-	public void dispose() {
-		if (viewer != null) {
-			IWorkspace workspace = null;
-			Object obj = viewer.getInput();
-			if (obj instanceof IWorkspace) {
-				workspace = (IWorkspace) obj;
-			} else if (obj instanceof IContainer) {
-				workspace = ((IContainer) obj).getWorkspace();
-			}
-			if (workspace != null) {
-				workspace.removeResourceChangeListener(this);
-			}
-		}
-
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContentProvider.
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		super.inputChanged(viewer, oldInput, 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);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IResourceChangeListener.
-	 */
-	public final void resourceChanged(final IResourceChangeEvent event) {
-
-		processDelta(event.getDelta());
-
-	}
-
-	/**
-	 * 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);
-				}
-			});
-		}
-
-	}
-
-	/**
-	 * 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();
-		}
-		
-	}
-
-	/**
-	 * 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;
-			}
-		}
-
-		// Opening a project just affects icon, but we need to refresh when
-		// a project is closed because if child items have not yet been created
-		// in the tree we still need to update the item's children
-		int changeFlags = delta.getFlags();
-		if ((changeFlags & IResourceDelta.OPEN) != 0) {
-			if (resource.isAccessible())  {
-				runnables.add(getUpdateRunnable(resource));
-			} else {
-				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.
-		if ((changeFlags & (IResourceDelta.SYNC
-				| IResourceDelta.TYPE | IResourceDelta.DESCRIPTION)) != 0) {
-			runnables.add(getUpdateRunnable(resource));
-		}
-		// 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);
-			}
-		};
-	}
-
-		/**
-		 * Return a runnable for refreshing a resource.
-		 * @param resource
-		 * @return Runnable
-		 */
-		private Runnable getUpdateRunnable(final IResource resource) {
-			return new Runnable(){
-				public void run() {
-					((StructuredViewer) viewer).update(resource, null);
-				}
-			};
-		}
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInput.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInput.java
deleted file mode 100644
index 1de3e40..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInput.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.part;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * Adapter for making a file resource a suitable input for an editor.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class FileEditorInput implements IFileEditorInput, IPathEditorInput,
-        IPersistableElement {
-    private IFile file;
-
-    /**
-     * Creates an editor input based of the given file resource.
-     *
-     * @param file the file resource
-     */
-    public FileEditorInput(IFile file) {
-        if (file == null) {
-            throw new IllegalArgumentException();
-        }
-        this.file = file;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Object.
-     */
-    public int hashCode() {
-        return file.hashCode();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Object.
-     *
-     * The <code>FileEditorInput</code> implementation of this <code>Object</code>
-     * method bases the equality of two <code>FileEditorInput</code> objects on the
-     * equality of their underlying <code>IFile</code> resources.
-     */
-    public boolean equals(Object obj) {
-        if (this == obj) {
-			return true;
-		}
-        if (!(obj instanceof IFileEditorInput)) {
-			return false;
-		}
-        IFileEditorInput other = (IFileEditorInput) obj;
-        return file.equals(other.getFile());
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IEditorInput.
-     */
-    public boolean exists() {
-        return file.exists();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdaptable.
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IFile.class) {
-			return file;
-		}
-        return file.getAdapter(adapter);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPersistableElement.
-     */
-    public String getFactoryId() {
-        return FileEditorInputFactory.getFactoryId();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IFileEditorInput.
-     */
-    public IFile getFile() {
-        return file;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IEditorInput.
-     */
-    public ImageDescriptor getImageDescriptor() {
-        IContentType contentType = IDE.getContentType(file);
-		return PlatformUI.getWorkbench().getEditorRegistry()
-                .getImageDescriptor(file.getName(), contentType);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IEditorInput.
-     */
-    public String getName() {
-        return file.getName();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IEditorInput.
-     */
-    public IPersistableElement getPersistable() {
-        return this;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStorageEditorInput.
-     */
-    public IStorage getStorage() throws CoreException {
-        return file;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IEditorInput.
-     */
-    public String getToolTipText() {
-        return file.getFullPath().makeRelative().toString();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPersistableElement.
-     */
-    public void saveState(IMemento memento) {
-        FileEditorInputFactory.saveState(memento, this);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPathEditorInput
-     * @since 3.0
-     * @issue consider using an internal adapter for IPathEditorInput rather than adding this as API
-     */
-    public IPath getPath() {
-        return file.getLocation();
-    }
-    
-    /* (non-Javadoc)
-     * @see java.lang.Object#toString()
-     */
-    public String toString() {
-        return getClass().getName() + "(" + getFile().getFullPath() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInputFactory.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInputFactory.java
deleted file mode 100644
index 8121ca6..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInputFactory.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.part;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ui.IElementFactory;
-import org.eclipse.ui.IMemento;
-
-/**
- * Factory for saving and restoring a <code>FileEditorInput</code>. 
- * The stored representation of a <code>FileEditorInput</code> remembers
- * the full path of the file (that is, <code>IFile.getFullPath</code>).
- * <p>
- * The workbench will automatically create instances of this class as required.
- * It is not intended to be instantiated or subclassed by the client.
- * </p>
- */
-public class FileEditorInputFactory implements IElementFactory {
-    /**
-     * Factory id. The workbench plug-in registers a factory by this name
-     * with the "org.eclipse.ui.elementFactories" extension point.
-     */
-    private static final String ID_FACTORY = "org.eclipse.ui.part.FileEditorInputFactory"; //$NON-NLS-1$
-
-    /**
-     * Tag for the IFile.fullPath of the file resource.
-     */
-    private static final String TAG_PATH = "path"; //$NON-NLS-1$
-
-    /**
-     * Creates a new factory.
-     */
-    public FileEditorInputFactory() {
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IElementFactory.
-     */
-    public IAdaptable createElement(IMemento memento) {
-        // Get the file name.
-        String fileName = memento.getString(TAG_PATH);
-        if (fileName == null) {
-			return null;
-		}
-
-        // Get a handle to the IFile...which can be a handle
-        // to a resource that does not exist in workspace
-        IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(
-                new Path(fileName));
-        if (file != null) {
-			return new FileEditorInput(file);
-		} else {
-			return null;
-		}
-    }
-
-    /**
-     * Returns the element factory id for this class.
-     * 
-     * @return the element factory id
-     */
-    public static String getFactoryId() {
-        return ID_FACTORY;
-    }
-
-    /**
-     * Saves the state of the given file editor input into the given memento.
-     *
-     * @param memento the storage area for element state
-     * @param input the file editor input
-     */
-    public static void saveState(IMemento memento, FileEditorInput input) {
-        IFile file = input.getFile();
-        memento.putString(TAG_PATH, file.getFullPath().toString());
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileInPlaceEditorInput.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileInPlaceEditorInput.java
deleted file mode 100644
index 0e4e0f6..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileInPlaceEditorInput.java
+++ /dev/null
@@ -1,129 +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.part;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.ui.IInPlaceEditor;
-import org.eclipse.ui.IInPlaceEditorInput;
-
-/**
- * Adapter for making a file resource a suitable input for an in-place editor.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 3.0
- */
-public class FileInPlaceEditorInput extends FileEditorInput implements
-        IInPlaceEditorInput {
-    IInPlaceEditor embeddedEditor;
-
-    /**
-     * A resource listener to update the input and in-place
-     * editor if the input's file resource changes.
-     */
-    private IResourceChangeListener resourceListener = new IResourceChangeListener() {
-        public void resourceChanged(IResourceChangeEvent event) {
-            IResourceDelta mainDelta = event.getDelta();
-            if (mainDelta != null && embeddedEditor != null) {
-                IResourceDelta affectedElement = mainDelta.findMember(getFile()
-                        .getFullPath());
-                if (affectedElement != null) {
-                    try {
-                        processDelta(affectedElement);
-                    } catch (CoreException exception) {
-                        // Failed so close the receiver
-                        if (embeddedEditor != null) {
-                            embeddedEditor.getSite().getPage().closeEditor(
-                                    embeddedEditor, true);
-                        }
-                    }
-                }
-            }
-        }
-
-        private boolean processDelta(final IResourceDelta delta)
-                throws CoreException {
-            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 && embeddedEditor != null) {
-                                embeddedEditor
-                                        .sourceChanged(new FileInPlaceEditorInput(
-                                                newFile));
-                            }
-                        }
-                    };
-                } else {
-                    changeRunnable = new Runnable() {
-                        public void run() {
-                            if (embeddedEditor != null) {
-                                embeddedEditor.sourceDeleted();
-                                embeddedEditor.getSite().getPage().closeEditor(
-                                        embeddedEditor, true);
-                            }
-                        }
-                    };
-
-                }
-
-                break;
-            }
-
-            if (changeRunnable != null && embeddedEditor != null) {
-                embeddedEditor.getSite().getShell().getDisplay().asyncExec(
-                        changeRunnable);
-            }
-
-            return true; // because we are sitting on files anyway
-        }
-    };
-
-    /**
-     * Creates an in-place editor input based on a file resource.
-     *
-     * @param file the file resource
-     */
-    public FileInPlaceEditorInput(IFile file) {
-        super(file);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IInPlaceEditorInput#setInPlaceEditor(org.eclipse.ui.IInPlaceEditor)
-     */
-    public void setInPlaceEditor(IInPlaceEditor editor) {
-        if (embeddedEditor != editor) {
-            if (embeddedEditor != null) {
-                getFile().getWorkspace().removeResourceChangeListener(
-                        resourceListener);
-            }
-
-            embeddedEditor = editor;
-
-            if (embeddedEditor != null) {
-                getFile().getWorkspace().addResourceChangeListener(
-                        resourceListener);
-            }
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/MarkerTransfer.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/MarkerTransfer.java
deleted file mode 100644
index 46183a7..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/MarkerTransfer.java
+++ /dev/null
@@ -1,228 +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.part;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.swt.dnd.ByteArrayTransfer;
-import org.eclipse.swt.dnd.TransferData;
-
-/**
- * A <code>MarkerTransfer</code> is used to transfer an array of 
- * <code>IMarker</code>s from one part to another in a drag and drop 
- * operation.
- * <p>
- * In every drag and drop operation there is a <code>DragSource</code> and 
- * a <code>DropTarget</code>.  When a drag occurs a <code>Transfer</code> is 
- * used to marshall the drag data from the source into a byte array.  If a drop 
- * occurs another <code>Transfer</code> is used to marshall the byte array into
- * drop data for the target.
- * </p><p>
- * This class can be used for a <code>Viewer<code> or an SWT component directly.
- * A singleton is provided which may be serially reused (see <code>getInstance</code>).  
- * It is not intended to be subclassed.
- * </p>
- *
- * @see org.eclipse.jface.viewers.StructuredViewer
- * @see org.eclipse.swt.dnd.DropTarget
- * @see org.eclipse.swt.dnd.DragSource
- */
-public class MarkerTransfer extends ByteArrayTransfer {
-
-    /**
-     * Singleton instance.
-     */
-    private static final MarkerTransfer instance = new MarkerTransfer();
-
-    // Create a unique ID to make sure that different Eclipse
-    // applications use different "types" of <code>MarkerTransfer</code>
-    private static final String TYPE_NAME = "marker-transfer-format" + System.currentTimeMillis() + ":" + instance.hashCode();//$NON-NLS-2$//$NON-NLS-1$
-
-    private static final int TYPEID = registerType(TYPE_NAME);
-
-    private IWorkspace workspace;
-
-    /**
-     * Creates a new transfer object.
-     */
-    private MarkerTransfer() {
-    }
-
-    /**
-     * Locates and returns the marker associated with the given attributes.
-     *
-     * @param pathString the resource path
-     * @param id the id of the marker to get (as per {@link IResource#getMarker
-     *    IResource.getMarker})
-     * @return the specified marker
-     */
-    private IMarker findMarker(String pathString, long id) {
-        IPath path = new Path(pathString);
-        IResource resource = workspace.getRoot().findMember(path);
-        if (resource != null) {
-            return resource.getMarker(id);
-        }
-        return null;
-    }
-
-    /**
-     * Returns the singleton instance.
-     *
-     * @return the singleton instance
-     */
-    public static MarkerTransfer getInstance() {
-        return instance;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Transfer.
-     */
-    protected int[] getTypeIds() {
-        return new int[] { TYPEID };
-    }
-
-    /* (non-Javadoc)
-     * Returns the type names.
-     *
-     * @return the list of type names
-     */
-    protected String[] getTypeNames() {
-        return new String[] { TYPE_NAME };
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Transfer.
-     * On a successful conversion, the transferData.result field will be set to
-     * OLE.S_OK. If this transfer agent is unable to perform the conversion, the
-     * transferData.result field will be set to the failure value of OLE.DV_E_TYMED.
-     */
-    protected void javaToNative(Object object, TransferData transferData) {
-        /**
-         * Transfer data is an array of markers.  Serialized version is:
-         * (int) number of markers
-         * (Marker) marker 1
-         * (Marker) marker 2
-         * ... repeat last four for each subsequent marker
-         * see writeMarker for the (Marker) format.
-         */
-        Object[] markers = (Object[]) object;
-        lazyInit(markers);
-
-        ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
-        DataOutputStream out = new DataOutputStream(byteOut);
-
-        byte[] bytes = null;
-
-        try {
-            /* write number of markers */
-            out.writeInt(markers.length);
-
-            /* write markers */
-            for (int i = 0; i < markers.length; i++) {
-                writeMarker((IMarker) markers[i], out);
-            }
-            out.close();
-            bytes = byteOut.toByteArray();
-        } catch (IOException e) {
-            //when in doubt send nothing
-        }
-
-        if (bytes != null) {
-            super.javaToNative(bytes, transferData);
-        }
-    }
-
-    /**
-     * Initializes the transfer mechanism if necessary.
-     */
-    private void lazyInit(Object[] markers) {
-        if (workspace == null) {
-            if (markers != null && markers.length > 0) {
-                this.workspace = ((IMarker) markers[0]).getResource()
-                        .getWorkspace();
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Transfer.
-     */
-    protected Object nativeToJava(TransferData transferData) {
-        byte[] bytes = (byte[]) super.nativeToJava(transferData);
-        DataInputStream in = new DataInputStream(
-                new ByteArrayInputStream(bytes));
-
-        try {
-            /* read number of markers */
-            int n = in.readInt();
-
-            /* read markers */
-            IMarker[] markers = new IMarker[n];
-            for (int i = 0; i < n; i++) {
-                IMarker marker = readMarker(in);
-                if (marker == null) {
-                    return null;
-                }
-                markers[i] = marker;
-            }
-            return markers;
-        } catch (IOException e) {
-            return null;
-        }
-    }
-
-    /**
-     * Reads and returns a single marker from the given stream.
-     *
-     * @param dataIn the input stream
-     * @return the marker
-     * @exception IOException if there is a problem reading from the stream
-     */
-    private IMarker readMarker(DataInputStream dataIn) throws IOException {
-        /**
-         * Marker serialization format is as follows:
-         * (String) path of resource for marker
-         * (int) marker ID
-         */
-        String path = dataIn.readUTF();
-        long id = dataIn.readLong();
-        return findMarker(path, id);
-    }
-
-    /**
-     * Writes the given marker to the given stream.
-     *
-     * @param marker the marker
-     * @param dataOut the output stream
-     * @exception IOException if there is a problem writing to the stream
-     */
-    private void writeMarker(IMarker marker, DataOutputStream dataOut)
-            throws IOException {
-        /**
-         * Marker serialization format is as follows:
-         * (String) path of resource for marker
-         * (int) marker ID
-         */
-
-        dataOut.writeUTF(marker.getResource().getFullPath().toString());
-        dataOut.writeLong(marker.getId());
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/ResourceTransfer.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/ResourceTransfer.java
deleted file mode 100644
index 1765c13..0000000
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/ResourceTransfer.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.part;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.swt.dnd.ByteArrayTransfer;
-import org.eclipse.swt.dnd.TransferData;
-
-/**
- * The <code>ResourceTransfer</code> class is used to transfer an
- * array of <code>IResources</code>s from one part to another in a 
- * drag and drop operation or a cut, copy, paste action.
- * <p>
- * In every drag and drop operation there is a <code>DragSource</code> and 
- * a <code>DropTarget</code>.  When a drag occurs a <code>Transfer</code> is 
- * used to marshall the drag data from the source into a byte array.  If a drop 
- * occurs another <code>Transfer</code> is used to marshall the byte array into
- * drop data for the target.  
- * </p>
- * <p>
- * When a <code>CutAction</code> or a <code>CopyAction</code> is performed, 
- * this transfer is used to place references to the selected resources 
- * on the <code>Clipboard</code>.  When a <code>PasteAction</code> is performed, the 
- * references on the clipboard are used to move or copy the resources
- * to the selected destination.
- * </p>
- * <p>
- * This class can be used for a <code>Viewer<code> or an SWT component directly.
- * A singleton is provided which may be serially reused (see <code>getInstance</code>).  
- * It is not intended to be subclassed.
- * </p>
- *
- * @see org.eclipse.jface.viewers.StructuredViewer
- * @see org.eclipse.swt.dnd.DropTarget
- * @see org.eclipse.swt.dnd.DragSource
- */
-public class ResourceTransfer extends ByteArrayTransfer {
-
-    /**
-     * Singleton instance.
-     */
-    private static final ResourceTransfer instance = new ResourceTransfer();
-
-    // Create a unique ID to make sure that different Eclipse
-    // applications use different "types" of <code>ResourceTransfer</code>
-    private static final String TYPE_NAME = "resource-transfer-format:" + System.currentTimeMillis() + ":" + instance.hashCode();//$NON-NLS-2$//$NON-NLS-1$
-
-    private static final int TYPEID = registerType(TYPE_NAME);
-
-    private IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-    /**
-     * Creates a new transfer object.
-     */
-    private ResourceTransfer() {
-    }
-
-    /**
-     * Returns the singleton instance.
-     *
-     * @return the singleton instance
-     */
-    public static ResourceTransfer getInstance() {
-        return instance;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Transfer.
-     */
-    protected int[] getTypeIds() {
-        return new int[] { TYPEID };
-    }
-
-    /* (non-Javadoc)
-     * Returns the type names.
-     *
-     * @return the list of type names
-     */
-    protected String[] getTypeNames() {
-        return new String[] { TYPE_NAME };
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Transfer.
-     */
-    protected void javaToNative(Object data, TransferData transferData) {
-        if (!(data instanceof IResource[])) {
-            return;
-        }
-
-        IResource[] resources = (IResource[]) data;
-        /**
-         * The resource serialization format is:
-         *  (int) number of resources
-         * Then, the following for each resource:
-         *  (int) resource type
-         *  (String) path of resource
-         */
-
-        int resourceCount = resources.length;
-
-        try {
-            ByteArrayOutputStream out = new ByteArrayOutputStream();
-            DataOutputStream dataOut = new DataOutputStream(out);
-
-            //write the number of resources
-            dataOut.writeInt(resourceCount);
-
-            //write each resource
-            for (int i = 0; i < resources.length; i++) {
-                writeResource(dataOut, resources[i]);
-            }
-
-            //cleanup
-            dataOut.close();
-            out.close();
-            byte[] bytes = out.toByteArray();
-            super.javaToNative(bytes, transferData);
-        } catch (IOException e) {
-            //it's best to send nothing if there were problems
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Transfer.
-     */
-    protected Object nativeToJava(TransferData transferData) {
-        /**
-         * The resource serialization format is:
-         *  (int) number of resources
-         * Then, the following for each resource:
-         *  (int) resource type
-         *  (String) path of resource
-         */
-
-        byte[] bytes = (byte[]) super.nativeToJava(transferData);
-        if (bytes == null) {
-			return null;
-		}
-        DataInputStream in = new DataInputStream(
-                new ByteArrayInputStream(bytes));
-        try {
-            int count = in.readInt();
-            IResource[] results = new IResource[count];
-            for (int i = 0; i < count; i++) {
-                results[i] = readResource(in);
-            }
-            return results;
-        } catch (IOException e) {
-            return null;
-        }
-    }
-
-    /**
-     * Reads a resource from the given stream.
-     *
-     * @param dataIn the input stream
-     * @return the resource
-     * @exception IOException if there is a problem reading from the stream
-     */
-    private IResource readResource(DataInputStream dataIn) throws IOException {
-        int type = dataIn.readInt();
-        String path = dataIn.readUTF();
-        switch (type) {
-        case IResource.FOLDER:
-            return workspace.getRoot().getFolder(new Path(path));
-        case IResource.FILE:
-            return workspace.getRoot().getFile(new Path(path));
-        case IResource.PROJECT:
-            return workspace.getRoot().getProject(path);
-        }
-        throw new IllegalArgumentException(
-                "Unknown resource type in ResourceTransfer.readResource"); //$NON-NLS-1$
-    }
-
-    /**
-     * Writes the given resource to the given stream.
-     *
-     * @param dataOut the output stream
-     * @param resource the resource
-     * @exception IOException if there is a problem writing to the stream
-     */
-    private void writeResource(DataOutputStream dataOut, IResource resource)
-            throws IOException {
-        dataOut.writeInt(resource.getType());
-        dataOut.writeUTF(resource.getFullPath().toString());
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/addtsk_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/addtsk_tsk.gif
deleted file mode 100644
index f7e6cc0..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/addtsk_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/collapseall.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/collapseall.gif
deleted file mode 100644
index 7dc0de5..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/configs.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/configs.gif
deleted file mode 100644
index 4539ebd..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/configs.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/filter_ps.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/filter_ps.gif
deleted file mode 100644
index ba6d891..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/filter_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/gotoobj_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/gotoobj_tsk.gif
deleted file mode 100644
index 4957126..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/gotoobj_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/refresh_nav.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/refresh_nav.gif
deleted file mode 100644
index c5c70e1..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/refresh_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/selected_mode.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/selected_mode.gif
deleted file mode 100644
index e2ab9b0..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/selected_mode.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showchild_mode.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showchild_mode.gif
deleted file mode 100644
index 8c92e4a..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showchild_mode.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showcomplete_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showcomplete_tsk.gif
deleted file mode 100644
index 0e83deb..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showcomplete_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showerr_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showerr_tsk.gif
deleted file mode 100644
index 8a23317..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showerr_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showtsk_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showtsk_tsk.gif
deleted file mode 100644
index fff68f9..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showtsk_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showwarn_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showwarn_tsk.gif
deleted file mode 100644
index f707e71..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/showwarn_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/smartmode_co.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/smartmode_co.gif
deleted file mode 100644
index 0ddac91..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/smartmode_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/step_current.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/step_current.gif
deleted file mode 100644
index 319fe8d..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/step_current.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/step_done.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/step_done.gif
deleted file mode 100644
index 0e83deb..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/step_done.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/synced.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/synced.gif
deleted file mode 100644
index 4f6e43a..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/usearch_obj.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/usearch_obj.gif
deleted file mode 100644
index 31fa365..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/usearch_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/workingsets.gif b/bundles/org.eclipse.ui.ide/icons/full/dlcl16/workingsets.gif
deleted file mode 100644
index 35b2433..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dlcl16/workingsets.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/build_exec.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/build_exec.gif
deleted file mode 100644
index 264b1c4..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/build_exec.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/export_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/export_wiz.gif
deleted file mode 100644
index 3f89cd9..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/export_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/exportdir_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/exportdir_wiz.gif
deleted file mode 100644
index 33d8df7..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/exportdir_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/exportzip_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/exportzip_wiz.gif
deleted file mode 100644
index b285d84..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/exportzip_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/import_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/import_wiz.gif
deleted file mode 100644
index cd44741..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/import_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/importdir_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/importdir_wiz.gif
deleted file mode 100644
index e25b90a..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/importdir_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/importzip_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/importzip_wiz.gif
deleted file mode 100644
index 3a00d8e..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/importzip_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/newfile_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/newfile_wiz.gif
deleted file mode 100644
index 8c682c0..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/newfile_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/newfolder_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/newfolder_wiz.gif
deleted file mode 100644
index 2821f3e..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/newfolder_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/newprj_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/newprj_wiz.gif
deleted file mode 100644
index 5b4b24c..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/newprj_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/next_nav.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/next_nav.gif
deleted file mode 100644
index 954a83c..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/next_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/prev_nav.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/prev_nav.gif
deleted file mode 100644
index a572efb..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/prev_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/dtool16/search_src.gif b/bundles/org.eclipse.ui.ide/icons/full/dtool16/search_src.gif
deleted file mode 100644
index c8f8871..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/dtool16/search_src.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/addtoworkset.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/addtoworkset.gif
deleted file mode 100644
index 96bbafd..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/addtoworkset.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/addtsk_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/addtsk_tsk.gif
deleted file mode 100644
index a5ac28d..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/addtsk_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/collapseall.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/collapseall.gif
deleted file mode 100644
index a2d80a9..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/configs.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/configs.gif
deleted file mode 100644
index c984fba..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/configs.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/filter_ps.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/filter_ps.gif
deleted file mode 100644
index 6fe6f0e..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/filter_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/flatLayout.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/flatLayout.gif
deleted file mode 100644
index 1ef74cf..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/flatLayout.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/gotoobj_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/gotoobj_tsk.gif
deleted file mode 100644
index cf62b63..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/gotoobj_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/hierarchicalLayout.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/hierarchicalLayout.gif
deleted file mode 100644
index 2344861..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/hierarchicalLayout.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/linkto_help.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/linkto_help.gif
deleted file mode 100644
index 86550fe..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/linkto_help.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/refresh_nav.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/refresh_nav.gif
deleted file mode 100644
index 049cac6..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/refresh_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/removefromworkset.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/removefromworkset.gif
deleted file mode 100644
index 89960f1..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/removefromworkset.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/selected_mode.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/selected_mode.gif
deleted file mode 100644
index 3d4241b..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/selected_mode.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/showchild_mode.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/showchild_mode.gif
deleted file mode 100644
index 6514f7b..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/showchild_mode.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/showcomplete_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/showcomplete_tsk.gif
deleted file mode 100644
index 9cacb96..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/showcomplete_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/showerr_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/showerr_tsk.gif
deleted file mode 100644
index 2ff6678..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/showerr_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/showtsk_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/showtsk_tsk.gif
deleted file mode 100644
index 96028b3..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/showtsk_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/showwarn_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/showwarn_tsk.gif
deleted file mode 100644
index 6c6bd58..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/showwarn_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/smartmode_co.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/smartmode_co.gif
deleted file mode 100644
index 542dddc..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/smartmode_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/step_current.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/step_current.gif
deleted file mode 100644
index e3a7cc7..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/step_current.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/step_done.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/step_done.gif
deleted file mode 100644
index 9cacb96..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/step_done.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/synced.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/synced.gif
deleted file mode 100644
index 870934b..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/usearch_obj.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/usearch_obj.gif
deleted file mode 100644
index 5080599..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/usearch_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/elcl16/workingsets.gif b/bundles/org.eclipse.ui.ide/icons/full/elcl16/workingsets.gif
deleted file mode 100644
index f878001..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/elcl16/workingsets.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/build_exec.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/build_exec.gif
deleted file mode 100644
index 39ee592..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/build_exec.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/export_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/export_wiz.gif
deleted file mode 100644
index 5a0837d..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/export_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/exportdir_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/exportdir_wiz.gif
deleted file mode 100644
index 7c3b2ba..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/exportdir_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/exportzip_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/exportzip_wiz.gif
deleted file mode 100644
index b7a493c..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/exportzip_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/import_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/import_wiz.gif
deleted file mode 100644
index d38085a..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/import_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/importdir_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/importdir_wiz.gif
deleted file mode 100644
index 27d5648..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/importdir_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/importzip_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/importzip_wiz.gif
deleted file mode 100644
index a159667..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/importzip_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/newfile_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/newfile_wiz.gif
deleted file mode 100644
index 9d05088..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/newfile_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/newfolder_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/newfolder_wiz.gif
deleted file mode 100644
index 310eb18..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/newfolder_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/newprj_wiz.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/newprj_wiz.gif
deleted file mode 100644
index fbbac0f..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/newprj_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/next_nav.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/next_nav.gif
deleted file mode 100644
index ce1e02f..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/next_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/prev_nav.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/prev_nav.gif
deleted file mode 100644
index 88d173f..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/prev_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/problem_category.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/problem_category.gif
deleted file mode 100644
index 2344861..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/problem_category.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/etool16/search_src.gif b/bundles/org.eclipse.ui.ide/icons/full/etool16/search_src.gif
deleted file mode 100644
index d540a01..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/etool16/search_src.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/eview16/bkmrk_nav.gif b/bundles/org.eclipse.ui.ide/icons/full/eview16/bkmrk_nav.gif
deleted file mode 100644
index 8eefad3..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/eview16/bkmrk_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/eview16/filenav_nav.gif b/bundles/org.eclipse.ui.ide/icons/full/eview16/filenav_nav.gif
deleted file mode 100644
index 4b98a62..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/eview16/filenav_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/eview16/problems_view.gif b/bundles/org.eclipse.ui.ide/icons/full/eview16/problems_view.gif
deleted file mode 100644
index 807b28a..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/eview16/problems_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/eview16/pview.gif b/bundles/org.eclipse.ui.ide/icons/full/eview16/pview.gif
deleted file mode 100644
index 4aa54a6..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/eview16/pview.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/eview16/resource_persp.gif b/bundles/org.eclipse.ui.ide/icons/full/eview16/resource_persp.gif
deleted file mode 100644
index 1b8fe00..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/eview16/resource_persp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/eview16/tasks_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/eview16/tasks_tsk.gif
deleted file mode 100644
index d3d10f5..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/eview16/tasks_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/bkmrk_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/bkmrk_tsk.gif
deleted file mode 100644
index 82c7fbd..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/bkmrk_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/complete_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/complete_tsk.gif
deleted file mode 100644
index 9cacb96..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/complete_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/cprj_obj.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/cprj_obj.gif
deleted file mode 100644
index 6052a86..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/cprj_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/error_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/error_tsk.gif
deleted file mode 100644
index 9b048d6..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/error_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/exportpref_obj.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/exportpref_obj.gif
deleted file mode 100644
index 79f2353..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/exportpref_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/header_complete.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/header_complete.gif
deleted file mode 100644
index 5936511..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/header_complete.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/header_priority.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/header_priority.gif
deleted file mode 100644
index 89e7925..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/header_priority.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/hprio_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/hprio_tsk.gif
deleted file mode 100644
index 609dbb7..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/hprio_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/importpref_obj.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/importpref_obj.gif
deleted file mode 100644
index 67cea0c..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/importpref_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/incomplete_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/incomplete_tsk.gif
deleted file mode 100644
index f6b9f8a..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/incomplete_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/info_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/info_tsk.gif
deleted file mode 100644
index 2da001e..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/info_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/keyspref_obj.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/keyspref_obj.gif
deleted file mode 100644
index fff27a9..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/keyspref_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/lprio_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/lprio_tsk.gif
deleted file mode 100644
index a6815bc..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/lprio_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/prj_obj.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/prj_obj.gif
deleted file mode 100644
index a4ea580..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/prj_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/taskmrk_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/taskmrk_tsk.gif
deleted file mode 100644
index c73e332..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/taskmrk_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/warn_tsk.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/warn_tsk.gif
deleted file mode 100644
index 14009e9..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/warn_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/warning.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/warning.gif
deleted file mode 100644
index 2f1c5a8..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/warning.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_banner.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_banner.gif
deleted file mode 100644
index 672442f..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_banner.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_editor.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_editor.gif
deleted file mode 100644
index b226e41..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_editor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_item.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_item.gif
deleted file mode 100644
index a16ac83..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/welcome_item.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/obj16/workset.gif b/bundles/org.eclipse.ui.ide/icons/full/obj16/workset.gif
deleted file mode 100644
index 2e4de3d..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/obj16/workset.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/ovr16/link_ovr.gif b/bundles/org.eclipse.ui.ide/icons/full/ovr16/link_ovr.gif
deleted file mode 100644
index 4f1440e..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/ovr16/link_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/ovr16/linkwarn_ovr.gif b/bundles/org.eclipse.ui.ide/icons/full/ovr16/linkwarn_ovr.gif
deleted file mode 100644
index 27c0cfb..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/ovr16/linkwarn_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/exportdir_wiz.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/exportdir_wiz.png
deleted file mode 100644
index dabdfa3..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/exportdir_wiz.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/exportzip_wiz.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/exportzip_wiz.png
deleted file mode 100644
index 4bf65ce..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/exportzip_wiz.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/importdir_wiz.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/importdir_wiz.png
deleted file mode 100644
index dce21ed..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/importdir_wiz.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/importproj_wiz.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/importproj_wiz.png
deleted file mode 100644
index 3a5f3ac..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/importproj_wiz.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/importzip_wiz.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/importzip_wiz.png
deleted file mode 100644
index 38d0216..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/importzip_wiz.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/new_wiz.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/new_wiz.png
deleted file mode 100644
index 6b410e2..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/new_wiz.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/newfile_wiz.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/newfile_wiz.png
deleted file mode 100644
index b3f71ae..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/newfile_wiz.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/newfolder_wiz.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/newfolder_wiz.png
deleted file mode 100644
index f4861b1..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/newfolder_wiz.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/newprj_wiz.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/newprj_wiz.png
deleted file mode 100644
index fdff016..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/newprj_wiz.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/quick_fix.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/quick_fix.png
deleted file mode 100644
index 3130711..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/quick_fix.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/saveas_wiz.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/saveas_wiz.png
deleted file mode 100644
index 4923d03..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/saveas_wiz.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/icons/full/wizban/workset_wiz.png b/bundles/org.eclipse.ui.ide/icons/full/wizban/workset_wiz.png
deleted file mode 100644
index b720214..0000000
--- a/bundles/org.eclipse.ui.ide/icons/full/wizban/workset_wiz.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide/plugin.properties b/bundles/org.eclipse.ui.ide/plugin.properties
deleted file mode 100644
index d1d2853..0000000
--- a/bundles/org.eclipse.ui.ide/plugin.properties
+++ /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
-###############################################################################
-Plugin.name = Eclipse IDE UI
-Plugin.providerName = Eclipse.org
-
-ExtPoint.markerHelp = Marker Help
-ExtPoint.markerImageProviders = Marker Image Providers
-ExtPoint.markerResolution = Marker Resolution
-ExtPoint.projectNatureImages = Project Nature Images
-ExtPoint.resourceFilters = Resource Filters
-ExtPoint.markerSupport = Marker Support
-ExtPoint.fileSystemSupport = File System Support
-
-KeysPreference.Name = Keys Preferences
-KeysPreference.Description = Preferences related to keys, accelerator key bindings, key configurations and commands.
-
-Editors.WelcomeEditor = Welcome
-ImportExportWizards.Category.Basic = General
-ExportWizards.FileSystem = File System
-ExportWizards.Preferences = Preferences
-ExportWizards.ZipFile = Archive File
-ExportWizards.FileSystemDescription = Export resources to the local file system.
-ExportWizards.PreferencesDescription = Export preferences to the local file system.
-ExportWizards.ZipFileDescription = Export resources to an archive file on the local file system.
-ImportWizards.FileSystem = File System
-ImportWizards.Preferences = Preferences
-ImportWizards.ZipFile = Archive File
-ImportWizards.ExternalProject = Existing Projects into Workspace
-ImportWizards.FileSystemDescription = Import resources from the local file system into an existing project.
-ImportWizards.PreferencesDescription = Import preferences from the local file system.
-ImportWizards.ZipFileDescription = Import resources from an archive file into an existing project.
-ImportWizards.ExternalProjectDescription = Create new projects from an archive file or directory. 
-NewWizards.Category.Examples = Examples
-NewWizards.Category.Basic = General
-NewWizards.project = Project
-NewWizards.project.description = Create a new project resource
-NewWizards.folder = Folder
-NewWizards.folder.description = Create a new folder resource
-NewWizards.file = File
-NewWizards.file.description = Create a new file resource
-
-Perspective.resourcePerspective = Resource
-Perspective.resourceDescription = This perspective is designed to provide general resource viewing and navigation. 
-
-PreferencePages.Workbench = General
-PreferencePages.Editors = Editors
-PreferencePages.LinkedResources = Linked Resources
-PreferencePages.FileEditors = File Associations
-PreferencePages.FileStates = Local History
-PreferencePages.Perspectives = Perspectives
-PreferencePages.Views = Appearance
-PreferencePages.Workspace=Workspace
-PreferencePages.BuildOrder = Build Order
-PreferencePages.ColorsAndFonts = Colors and Fonts
-PreferencePages.Decorators = Label Decorations
-PreferencePages.Startup = Startup and Shutdown
-PreferencePages.Keys = Keys
-PreferencePages.NewKeys = Keys (Experimental)
-PreferencePages.ContentTypes = Content Types
-PreferencePages.ContentTypes = Content Types
-PropertyPages.project.reference = Project References
-PropertyPages.info.file = Resource
-
-Views.ResourceNavigator = Navigator
-Views.Bookmark = Bookmarks
-Views.Task = Tasks
-Views.Problem = Problems
-Views.Progress = Progress
-
-WorkingSets.resource = Resource
-NavigateActionSet.label = Resource Navigation
-NavigateActionSet.description = Action set containing resource navigation actions
-
-WorkingSetsActionSet.label = Working Sets
-WorkingSetsActionSet.description = Working set manipulation actions
-
-
-GoToResourceAction.label = &Resource...
-DecoratorLinkedResource.label = Linked Resources
-DecoratorLinkedResource.description = Adds an icon decoration to linked resources.
-OpenWorkspaceFileAction.label = Open Reso&urce...
-SelectWorkingSetsAction.label = &Working Sets
-SelectWorkingSetsAction.tooltip = Modify workbench working sets
-
-AddToWorkingSetAction.label = Add To Working Se&t
-AddToWorkingSetAction.tooltip = Add the selected elements to a working set
-RemoveFromWorkingSetAction.label = Remove Fro&m Working Set
-RemoveFromWorkingSetAction.tooltip = Remove the selected elements from a working set
-
-About.updateSummaryTitle = Current Install Configuration
-
-category.perspective.name=Perspectives
-category.perspective.description=Commands for opening perspectives
-category.project.name=Project
-category.project.description=
-
-command.addTask.description = Add a task
-command.addTask.name = Add Task
-command.buildAll.description = Build all projects
-command.buildAll.name = Build All
-command.buildClean.description = Discard old built state
-command.buildClean.name = Build Clean
-command.buildLast.description = Repeat the last working set build
-command.buildLast.name = Repeat Working Set Build
-command.buildProject.description = Build the selected project
-command.buildProject.name = Build Project
-command.closeProject.description = Close the selected project
-command.closeProject.name = Close Project
-command.closeUnrelatedProjects.name = Close Unrelated Projects
-command.closeUnrelatedProjects.description = Close unrelated projects
-command.correctionAssistProposals.description = Suggest possible fixes for a problem
-command.correctionAssistProposals.name = Quick Fix
-command.goToResource.description = Go to a particular resource in the active view
-command.goToResource.name = Go to Resource
-command.openProject.description = Open a project
-command.openProject.name = Open Project
-command.openResource.description = Open an editor on a particular resource
-command.openResource.name = Open Resource
-command.openWorkspace.description = Open the workspace selection dialog
-command.openWorkspace.name = Switch Workspace
-command.projectProperties.description = Display the properties of the selected item's project 
-command.projectProperties.name = Properties
-command.rebuildAll.description = Rebuild all projects
-command.rebuildAll.name = Rebuild All
-command.rebuildProject.description = Rebuild the selected projects
-command.rebuildProject.name = Rebuild Project
-command.showPerspective.name = Show Perspective
-command.showPerspective.description = Show a particular perspective
-command.showPerspective.perspectiveIdParameter = Parameter
-command.selectWorkingSets.name = Select Working Sets
-command.selectWorkingSets.description = Select the working sets that are applicable for this window.
-command.addToWorkingSet.name = Add to Working Set
-command.addToWorkingSet.description = Adds the selected object to a working set.
-command.removeFromWorkingSet.name = Remove From Working Set
-command.removeFromWorkingSet.description = Removes the selected object from a working set.
-
-
-
-command.showInQuickMenu.name= Show In menu
-command.showInQuickMenu.description = Open the Show In menu
-
-command.newQuickMenu.name= New menu
-command.newQuickMenu.description= Open the New menu
-
-category.update.name= Update
-category.update.description= Commands for Software Updates
-command.manageConfiguration.name= Manage Configuration
-command.manageConfiguration.description= Open the product configuration dialog
-command.findAndInstallUpdates.name= Find and Install Updates
-command.findAndInstallUpdates.description= Open the feature install and update dialog
-
-commandParameter.openFileByPath.filePath.name= File Path
-command.showResourceByPath.name= Show Resource in Navigator
-command.showResourceByPath.description= Show a resource in the Navigator given its path
-commandParameter.showResourceByPath.resourcePath.name= Resource Path
-
-UpdateActionSet.label = Software Updates
-UpdateActionSet.menu.label = &Software Updates
-UpdateActionSet.updates.label = &Find and Install...
-UpdateActionSet.configManager.label = &Manage Configuration
-
-KeyBindingActionSet.label = Keyboard Shortcuts
-KeyBindingActionSet.showKeyAssist.label = &Key Assist...
-
-PreferenceKeywords.Editing = editing
-PreferenceKeywords.Appearance = appearance
-PreferenceKeywords.General = click background
-PreferenceKeywords.Themes = themes
-PreferenceKeywords.AppearancePage = presentation
-PreferenceKeywords.Tabs = tab
-PreferenceKeywords.Editors = editors
-PreferenceKeywords.Keys = binding command scheme
-PreferenceKeywords.Perspectives = open view switch
-PreferenceKeywords.StartupAndShutdown = workbench plug-in plugin
-PreferenceKeywords.Workspace = build refresh encoding line delimiter
-PreferenceKeywords.LinkedResources = path
-
-# TODO This stuff is just to help me work on the parsing of the menus extension
-# point.  It is likely not in its final form yet.
-
-markerGrouping.severity = Severity
-markerGrouping.errors = Errors
-markerGrouping.warnings = Warnings
-markerGrouping.infos = Infos
diff --git a/bundles/org.eclipse.ui.ide/plugin.xml b/bundles/org.eclipse.ui.ide/plugin.xml
deleted file mode 100644
index c454060..0000000
--- a/bundles/org.eclipse.ui.ide/plugin.xml
+++ /dev/null
@@ -1,1023 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-    
-<!-- IDE extension points -->
-   <extension-point id="markerHelp" name="%ExtPoint.markerHelp" schema="schema/markerHelp.exsd"/>
-   <extension-point id="markerImageProviders" name="%ExtPoint.markerImageProviders" schema="schema/markerImageProviders.exsd"/>
-   <extension-point id="markerResolution" name="%ExtPoint.markerResolution" schema="schema/markerResolution.exsd"/>
-   <extension-point id="projectNatureImages" name="%ExtPoint.projectNatureImages" schema="schema/projectNatureImages.exsd"/>
-   <extension-point id="resourceFilters" name="%ExtPoint.resourceFilters" schema="schema/resourceFilters.exsd"/>
-   <extension-point id="markerSupport" name="%ExtPoint.markerSupport" schema="schema/markerSupport.exsd"/>
-   <extension-point id="filesystemSupport" name="%ExtPoint.fileSystemSupport" schema="schema/filesystemSupport.exsd"/>
-
-   <extension
-         id="workbench"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.ui.internal.ide.IDEApplication">
-         </run>
-      </application>
-   </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.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.views.ResourceNavigator">
-         </showInPart>
-      </perspectiveExtension>
-   </extension>
-   <extension
-         point="org.eclipse.ui.importWizards">
-
-      <category
-            name="%ImportExportWizards.Category.Basic"
-            id="org.eclipse.ui.Basic">
-      </category>
-      
-      <wizard
-            name="%ImportWizards.Preferences"
-            icon="$nl$/icons/full/obj16/importpref_obj.gif"
-            id="org.eclipse.ui.wizards.import.Preferences"
-            category="org.eclipse.ui.Basic"            
-            class="org.eclipse.ui.ExtensionFactory:preferencesImportWizard">
-         <description>
-            %ImportWizards.PreferencesDescription
-         </description>
-      </wizard>
-      <wizard
-            name="%ImportWizards.FileSystem"
-            icon="$nl$/icons/full/etool16/importdir_wiz.gif"
-            category="org.eclipse.ui.Basic"            
-            class="org.eclipse.ui.wizards.datatransfer.FileSystemImportWizard"
-            id="org.eclipse.ui.wizards.import.FileSystem">
-         <description>
-            %ImportWizards.FileSystemDescription
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-      <wizard
-            name="%ImportWizards.ExternalProject"
-            icon="$nl$/icons/full/etool16/newprj_wiz.gif"
-            category="org.eclipse.ui.Basic"            
-            class="org.eclipse.ui.wizards.datatransfer.ExternalProjectImportWizard"
-            id="org.eclipse.ui.wizards.import.ExternalProject">
-         <description>
-            %ImportWizards.ExternalProjectDescription
-         </description>
-      </wizard>
-      <wizard
-            name="%ImportWizards.ZipFile"
-            icon="$nl$/icons/full/etool16/importzip_wiz.gif"
-            category="org.eclipse.ui.Basic"            
-            class="org.eclipse.ui.wizards.datatransfer.ZipFileImportWizard"
-            id="org.eclipse.ui.wizards.import.ZipFile">
-         <description>
-            %ImportWizards.ZipFileDescription
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-   </extension>
-   <extension
-         point="org.eclipse.ui.exportWizards">
-
-      <category
-            name="%ImportExportWizards.Category.Basic"
-            id="org.eclipse.ui.Basic">
-      </category>
-               
-      <wizard
-            name="%ExportWizards.Preferences"
-            icon="icons/full/obj16/exportpref_obj.gif"
-            category="org.eclipse.ui.Basic"
-            class="org.eclipse.ui.ExtensionFactory:preferencesExportWizard"
-            id="org.eclipse.ui.wizards.export.Preferences">
-         <description>
-            %ExportWizards.PreferencesDescription
-         </description>
-      </wizard>         
-      <wizard
-            name="%ExportWizards.FileSystem"
-            icon="icons/full/etool16/exportdir_wiz.gif"
-            category="org.eclipse.ui.Basic"
-            class="org.eclipse.ui.wizards.datatransfer.FileSystemExportWizard"
-            id="org.eclipse.ui.wizards.export.FileSystem">
-         <description>
-            %ExportWizards.FileSystemDescription
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-      <wizard
-            name="%ExportWizards.ZipFile"
-            icon="icons/full/etool16/exportzip_wiz.gif"
-            category="org.eclipse.ui.Basic"            
-            class="org.eclipse.ui.wizards.datatransfer.ZipFileExportWizard"
-            id="org.eclipse.ui.wizards.export.ZipFile">
-         <description>
-            %ExportWizards.ZipFileDescription
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-   </extension>
-   <extension
-         point="org.eclipse.ui.ide.markerImageProviders">
-      <imageprovider
-            markertype="org.eclipse.core.resources.bookmark"
-            icon="icons/full/obj16/bkmrk_tsk.gif"
-            id="org.eclipse.ui.bookmarkProvider">
-      </imageprovider>
-      <imageprovider
-            markertype="org.eclipse.core.resources.taskmarker"
-            icon="icons/full/eview16/tasks_tsk.gif"
-            id="org.eclipse.ui.taskMarkerProvider">
-      </imageprovider>
-      <imageprovider
-            markertype="org.eclipse.core.resources.problemmarker"
-            class="org.eclipse.ui.internal.ide.ProblemImageProvider"
-            id="org.eclipse.ui.problemMarkerProvider">
-      </imageprovider>
-   </extension>
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <category
-            name="%NewWizards.Category.Examples"
-            id="org.eclipse.ui.Examples">
-      </category>
-      <category
-            name="%NewWizards.Category.Basic"
-            id="org.eclipse.ui.Basic">
-      </category>
-      <wizard
-            name="%NewWizards.project"
-            icon="$nl$/icons/full/etool16/newprj_wiz.gif"
-            category="org.eclipse.ui.Basic"
-            class="org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard"
-            project="true"
-            id="org.eclipse.ui.wizards.new.project">
-         <description>
-            %NewWizards.project.description
-         </description>
-      </wizard>
-      <wizard
-            name="%NewWizards.folder"
-            icon="$nl$/icons/full/etool16/newfolder_wiz.gif"
-            category="org.eclipse.ui.Basic"
-            class="org.eclipse.ui.wizards.newresource.BasicNewFolderResourceWizard"
-            id="org.eclipse.ui.wizards.new.folder">
-         <description>
-            %NewWizards.folder.description
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-      <wizard
-            name="%NewWizards.file"
-            icon="$nl$/icons/full/etool16/newfile_wiz.gif"
-            category="org.eclipse.ui.Basic"
-            class="org.eclipse.ui.wizards.newresource.BasicNewFileResourceWizard"
-            id="org.eclipse.ui.wizards.new.file">
-         <description>
-            %NewWizards.file.description
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%Editors.WelcomeEditor"
-            icon="$nl$/icons/full/obj16/welcome_editor.gif"
-            class="org.eclipse.ui.internal.ide.dialogs.WelcomeEditor"
-            contributorClass="org.eclipse.ui.internal.ide.dialogs.WelcomeEditorActionContributor"
-            id="org.eclipse.ui.internal.ide.dialogs.WelcomeEditor">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.elementFactories">
-      <factory
-            class="org.eclipse.ui.internal.ide.model.ResourceFactory"
-            id="org.eclipse.ui.internal.model.ResourceFactory">
-      </factory>
-      <factory
-            class="org.eclipse.ui.internal.ide.model.WorkspaceFactory"
-            id="org.eclipse.ui.internal.model.WorkspaceFactory">
-      </factory>
-      <factory
-            class="org.eclipse.ui.part.FileEditorInputFactory"
-            id="org.eclipse.ui.part.FileEditorInputFactory">
-      </factory>
-      <factory
-            class="org.eclipse.ui.internal.ide.dialogs.WelcomeEditorInputFactory"
-            id="org.eclipse.ui.internal.dialogs.WelcomeEditorInputFactory">
-      </factory>
-   </extension>
-   <extension
-         point="org.eclipse.ui.workingSets">
-      <workingSet
-            name="%WorkingSets.resource"
-            pageClass="org.eclipse.ui.internal.ide.dialogs.ResourceWorkingSetPage"
-            updaterClass="org.eclipse.ui.internal.ide.ResourceWorkingSetUpdater"
-            icon="$nl$/icons/full/obj16/workset.gif"
-            id="org.eclipse.ui.resourceWorkingSetPage">
-      </workingSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="%NavigateActionSet.label"
-            description="%NavigateActionSet.description"
-            visible="false"
-            id="org.eclipse.ui.NavigateActionSet">
-         <action
-               definitionId="org.eclipse.ui.navigate.goToResource"
-               label="%GoToResourceAction.label"
-               icon="$nl$/icons/full/elcl16/gotoobj_tsk.gif"
-               menubarPath="navigate/goTo/"
-               retarget="true"
-               id="goToResource">
-         </action>
-         <action
-               label="%OpenWorkspaceFileAction.label"
-               helpContextId="org.eclipse.ui.open_workspace_file_action_context"
-               class="org.eclipse.ui.internal.ide.handlers.OpenResourceHandler"
-               menubarPath="navigate/open.ext2"
-               id="org.eclipse.ui.OpenWorkspaceFile"
-               definitionId="org.eclipse.ui.navigate.openResource">
-         </action>
-      </actionSet>
-      <actionSet
-            label="%KeyBindingActionSet.label"
-            visible="true"
-            id="org.eclipse.ui.actionSet.keyBindings">
-         <action
-               label="%KeyBindingActionSet.showKeyAssist.label"
-               class="org.eclipse.ui.internal.handlers.ShowKeyAssistHandler"
-               menubarPath="help/group.assist"
-               id="org.eclipse.ui.actions.showKeyAssistHandler"
-               definitionId="org.eclipse.ui.window.showKeyAssist">
-         </action>
-      </actionSet>
-      <actionSet
-            label="%WorkingSetsActionSet.label"
-            description="%WorkingSetsActionSet.description"
-            visible="true"
-            id="org.eclipse.ui.WorkingSetActionSet">
-         <action
-               class="org.eclipse.ui.internal.actions.SelectWorkingSetsAction"
-               definitionId="org.eclipse.ui.navigate.selectWorkingSets"
-               icon="$nl$/icons/full/elcl16/workingsets.gif"
-               id="selectWorkingSets"
-               label="%SelectWorkingSetsAction.label"
-               menubarPath="window/additions"
-               style="pulldown"
-               toolbarPath="workingSets"
-               tooltip="%SelectWorkingSetsAction.tooltip"/>    
-  		<action
-          class="org.eclipse.ui.internal.actions.ModifyWorkingSetDelegate:false"
-          definitionId="org.eclipse.ui.navigate.removeFromWorkingSet"
-          icon="icons/full/elcl16/removefromworkset.gif"
-          id="removeFromWorkingSet"
-          label="%RemoveFromWorkingSetAction.label"
-          menubarPath="edit/additions"
-          style="pulldown"
-          toolbarPath="workingSets"
-          tooltip="%RemoveFromWorkingSetAction.tooltip">
-     		<enablement>
-        		<objectClass
-           	   		name="org.eclipse.core.runtime.IAdaptable">
-        		</objectClass>
-     		</enablement>
-  		</action>
-		<action
-        class="org.eclipse.ui.internal.actions.ModifyWorkingSetDelegate:true"
-        definitionId="org.eclipse.ui.navigate.addToWorkingSet"
-        icon="icons/full/elcl16/addtoworkset.gif"
-        id="addToWorkingSet"
-        label="%AddToWorkingSetAction.label"
-        menubarPath="edit/additions"
-        style="pulldown"
-        toolbarPath="workingSets"
-        tooltip="%AddToWorkingSetAction.tooltip">
-     		<enablement>
-        		<objectClass
-           	   		name="org.eclipse.core.runtime.IAdaptable">
-        		</objectClass>
-     		</enablement>
-  		</action>                 
-      </actionSet>
-   </extension>   
-   
-   <extension
-         point="org.eclipse.ui.decorators">
-      <decorator
-            lightweight="true"
-            adaptable="true"
-            location="BOTTOM_RIGHT"
-            label="%DecoratorLinkedResource.label"
-            class="org.eclipse.ui.internal.ide.LinkedResourceDecorator"
-            state="true"
-            id="org.eclipse.ui.LinkedResourceDecorator">
-         <description>
-            %DecoratorLinkedResource.description
-         </description>
-         <enablement>
-            <objectClass
-                  name="org.eclipse.core.resources.IResource">
-            </objectClass>
-         </enablement>
-      </decorator>
-   </extension>
-   <extension
-   		point="org.eclipse.ui.keywords">
-    <keyword
-            label="%PreferenceKeywords.Editing"
-            id="org.eclipse.ui.ide.editing"/>
-      <keyword
-            label="%PreferenceKeywords.Appearance"
-            id="org.eclipse.ui.ide.appearance"/>
-      <keyword
-            id="org.eclipse.ui.ide.general"
-            label="%PreferenceKeywords.General"/>
-      <keyword
-            id="org.eclipse.ui.ide.themes"
-            label="%PreferenceKeywords.Themes"/>
-      <keyword
-            id="org.eclipse.ui.ide.apearancepage"
-            label="%PreferenceKeywords.AppearancePage"/>
-      <keyword
-            id="org.eclipse.ui.ide.tabs"
-            label="%PreferenceKeywords.Tabs"/>
-      <keyword
-            id="org.eclipse.ui.ide.editors"
-            label="%PreferenceKeywords.Editors"/>
-      <keyword
-            id="org.eclipse.ui.ide.keys"
-            label="%PreferenceKeywords.Keys"/>
-      <keyword
-            id="org.eclipse.ui.ide.perspectives"
-            label="%PreferenceKeywords.Perspectives"/>
-      <keyword
-            id="org.eclipse.ui.ide.startupAndShutdown"
-            label="%PreferenceKeywords.StartupAndShutdown"/>
-      <keyword
-            id="org.eclipse.ui.ide.workspace"
-            label="%PreferenceKeywords.Workspace"/>
-      <keyword
-            id="org.eclipse.ui.ide.linked"
-            label="%PreferenceKeywords.LinkedResources"/>
-   </extension>      
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%PreferencePages.Workbench"
-            class="org.eclipse.ui.internal.ide.dialogs.IDEWorkbenchPreferencePage"
-            id="org.eclipse.ui.preferencePages.Workbench">
-         <keywordReference id="org.eclipse.ui.ide.general"/>
-      </page>
-      <page
-            name="%PreferencePages.Editors"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.ui.internal.ide.dialogs.IDEEditorsPreferencePage"
-            id="org.eclipse.ui.preferencePages.Editors">
-         <keywordReference id="org.eclipse.ui.ide.editing"/>
-         <keywordReference id="org.eclipse.ui.ide.tabs"/>
-         <keywordReference id="org.eclipse.ui.ide.editors"/>
-      </page>
-      <page
-            name="%PreferencePages.Perspectives"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.ui.internal.ide.dialogs.IDEPerspectivesPreferencePage"
-            id="org.eclipse.ui.preferencePages.Perspectives">
-         <keywordReference id="org.eclipse.ui.ide.appearance"/>
-         <keywordReference id="org.eclipse.ui.ide.perspectives"/>
-      </page>
-      <page
-            name="%PreferencePages.FileEditors"
-            category="org.eclipse.ui.preferencePages.Editors"
-            class="org.eclipse.ui.ExtensionFactory:fileAssociationsPreferencePage"
-            id="org.eclipse.ui.preferencePages.FileEditors">
-         <keywordReference id="org.eclipse.ui.ide.editing"/>
-         <keywordReference id="org.eclipse.ui.ide.editors"/>
-      </page>
-      <page
-            name="%PreferencePages.Views"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.ui.ExtensionFactory:appearancePreferencePage"
-            id="org.eclipse.ui.preferencePages.Views">
-         <keywordReference id="org.eclipse.ui.ide.appearance"/>
-         <keywordReference id="org.eclipse.ui.ide.themes"/>
-         <keywordReference id="org.eclipse.ui.ide.tabs"/>
-      </page>
-      <page
-            name="%PreferencePages.ColorsAndFonts"
-            category="org.eclipse.ui.preferencePages.Views"
-            class="org.eclipse.ui.ExtensionFactory:colorsAndFontsPreferencePage"
-            id="org.eclipse.ui.preferencePages.ColorsAndFonts">
-         <keywordReference id="org.eclipse.ui.ide.appearance"/>
-         <keywordReference id="org.eclipse.ui.ide.themes"/>
-      </page>
-      <page
-            name="%PreferencePages.Decorators"
-            category="org.eclipse.ui.preferencePages.Views"
-            class="org.eclipse.ui.ExtensionFactory:decoratorsPreferencePage"
-            id="org.eclipse.ui.preferencePages.Decorators">
-         <keywordReference id="org.eclipse.ui.ide.appearance"/>
-      </page>
-      <page
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.ui.internal.ide.dialogs.IDEWorkspacePreferencePage"
-            id="org.eclipse.ui.preferencePages.Workspace"
-            name="%PreferencePages.Workspace">
-         <keywordReference id="org.eclipse.ui.ide.workspace"/>         
-      </page>
-      <page
-      		category="org.eclipse.ui.preferencePages.Workspace"
-            name="%PreferencePages.BuildOrder"
-            class="org.eclipse.ui.internal.ide.dialogs.BuildOrderPreferencePage"
-            id="org.eclipse.ui.preferencePages.BuildOrder">
-      </page>
-      
-       <page
-            name="%PreferencePages.FileStates"
-            category="org.eclipse.ui.preferencePages.Workspace"
-            class="org.eclipse.ui.internal.ide.dialogs.FileStatesPage"
-            id="org.eclipse.ui.preferencePages.FileStates">
-      </page>
-      
-      <page
-            name="%PreferencePages.LinkedResources"
-            category="org.eclipse.ui.preferencePages.Workspace"
-            class="org.eclipse.ui.internal.ide.dialogs.LinkedResourcesPreferencePage"
-            id="org.eclipse.ui.preferencePages.LinkedResources">
-         <keywordReference id="org.eclipse.ui.ide.linked"/>
-      </page>
-      
-      <page
-            name="%PreferencePages.Startup"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.ui.internal.ide.dialogs.IDEStartupPreferencePage"
-            id="org.eclipse.ui.preferencePages.Startup">
-         <keywordReference id="org.eclipse.ui.ide.startupAndShutdown"/>
-      </page>
-      <page
-            name="%PreferencePages.Keys"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.ui.ExtensionFactory:keysPreferencePage"
-            id="org.eclipse.ui.preferencePages.Keys">
-         <keywordReference id="org.eclipse.ui.ide.keys"/>
-      </page>
-      <page
-            name="%PreferencePages.NewKeys"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.ui.ExtensionFactory:newKeysPreferencePage"
-            id="org.eclipse.ui.preferencePages.NewKeys">
-         <keywordReference id="org.eclipse.ui.ide.keys"/>
-      </page>
-      <page
-            class="org.eclipse.ui.ExtensionFactory:contentTypesPreferencePage"
-            id="org.eclipse.ui.preferencePages.ContentTypes"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            name="%PreferencePages.ContentTypes">
-         <keywordReference id="org.eclipse.ui.ide.editing"/>
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="%Views.Progress"
-            icon="$nl$/icons/full/eview16/pview.gif"
-            category="org.eclipse.ui"
-            class="org.eclipse.ui.internal.progress.ProgressView"
-            id="org.eclipse.ui.views.ProgressView">
-      </view>
-      <view
-            name="%Views.ResourceNavigator"
-            icon="$nl$/icons/full/eview16/filenav_nav.gif"
-            category="org.eclipse.ui"
-            class="org.eclipse.ui.views.navigator.ResourceNavigator"
-            id="org.eclipse.ui.views.ResourceNavigator">
-      </view>
-      <view
-            name="%Views.Bookmark"
-            icon="$nl$/icons/full/eview16/bkmrk_nav.gif"
-            category="org.eclipse.ui"
-            class="org.eclipse.ui.views.markers.internal.BookmarkView"
-            id="org.eclipse.ui.views.BookmarkView">
-      </view>
-      <view
-            name="%Views.Task"
-            icon="$nl$/icons/full/eview16/tasks_tsk.gif"
-            category="org.eclipse.ui"
-            class="org.eclipse.ui.views.markers.internal.TaskView"
-            id="org.eclipse.ui.views.TaskList">
-      </view>
-      <view
-            name="%Views.Problem"
-            icon="$nl$/icons/full/eview16/problems_view.gif"
-            category="org.eclipse.ui"
-            class="org.eclipse.ui.views.markers.internal.ProblemView"
-            id="org.eclipse.ui.views.ProblemView">
-      </view>
-    
-   </extension>
-   <extension
-         point="org.eclipse.ui.ide.resourceFilters">
-      <filter
-            selected="false"
-            pattern=".*">
-      </filter>
-   </extension>
-   <extension
-         point="org.eclipse.ui.propertyPages">
-      <page
-            class="org.eclipse.ui.internal.ide.dialogs.ProjectReferencePage"
-            id="org.eclipse.ui.propertypages.project.reference"
-            name="%PropertyPages.project.reference"
-            >
-         <enabledWhen>
-            <adapt type="org.eclipse.core.resources.IProject"/>
-         </enabledWhen>
-      </page>
-      <page
-            class="org.eclipse.ui.internal.ide.dialogs.ResourceInfoPage"
-            id="org.eclipse.ui.propertypages.info.file"
-            name="%PropertyPages.info.file"
-            >
-         <enabledWhen>
-            <adapt type="org.eclipse.core.resources.IResource"/>
-         </enabledWhen>
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="%category.project.name"
-            description="%category.project.description"
-            id="org.eclipse.ui.category.project">
-      </category>
-      <category
-            name="%category.perspective.name"
-            description="%category.perspective.description"
-            id="org.eclipse.ui.category.perspectives" />
-      <command
-      		name="%command.showPerspective.name"
-      		description="%command.showPerspective.description"
-      		categoryId="org.eclipse.ui.category.perspectives"
-      		id="org.eclipse.ui.perspectives.showPerspective"
-      		defaultHandler="org.eclipse.ui.handlers.ShowPerspectiveHandler">
-      		<commandParameter
-      			id="org.eclipse.ui.perspectives.showPerspective.perspectiveId"
-      			name="%command.showPerspective.perspectiveIdParameter"
-      			values="org.eclipse.ui.internal.ide.registry.PerspectiveParameterValues" />
-      </command>
-      <command
-            name="%command.openWorkspace.name"
-            description="%command.openWorkspace.description"
-            categoryId="org.eclipse.ui.category.file"
-            id="org.eclipse.ui.file.openWorkspace">
-      </command>
-      <command
-            name="%command.newQuickMenu.name"
-            description="%command.newQuickMenu.description"
-            categoryId="org.eclipse.ui.category.file"
-            id="org.eclipse.ui.file.newQuickMenu">
-      </command>
-       <command
-            name="%command.showInQuickMenu.name"
-            description="%command.showInQuickMenu.description"
-            categoryId="org.eclipse.ui.category.navigate"
-            id="org.eclipse.ui.navigate.showInQuickMenu">
-      </command>
-      <command
-            name="%command.goToResource.name"
-            description="%command.goToResource.description"
-            categoryId="org.eclipse.ui.category.navigate"
-            id="org.eclipse.ui.navigate.goToResource">
-      </command>
-      <commandParameterType
-            converter="org.eclipse.ui.internal.ide.commands.ResourcePathConverter"
-            id="org.eclipse.ui.ide.resourcePath"
-            type="org.eclipse.core.resources.IResource"/>
-      <command
-            name="%command.openResource.name"
-            description="%command.openResource.description"
-            categoryId="org.eclipse.ui.category.navigate"
-            id="org.eclipse.ui.navigate.openResource"
-            defaultHandler="org.eclipse.ui.internal.ide.handlers.OpenResourceHandler">
-         <commandParameter
-               id="filePath"
-               name="%commandParameter.openFileByPath.filePath.name"
-               typeId="org.eclipse.ui.ide.resourcePath"/>
-      </command>
-      <command
-            name="%command.openProject.name"
-            description="%command.openProject.description"
-            categoryId="org.eclipse.ui.category.project"
-            id="org.eclipse.ui.project.openProject">
-      </command>
-      <command
-            name="%command.closeProject.name"
-            description="%command.closeProject.description"
-            categoryId="org.eclipse.ui.category.project"
-            id="org.eclipse.ui.project.closeProject">
-      </command>
-      <command
-            name="%command.closeUnrelatedProjects.name"
-            description="%command.closeUnrelatedProjects.description"
-            categoryId="org.eclipse.ui.category.project"
-            id="org.eclipse.ui.project.closeUnrelatedProjects">
-      </command>
-      <command
-            name="%command.buildProject.name"
-            description="%command.buildProject.description"
-            categoryId="org.eclipse.ui.category.project"
-            id="org.eclipse.ui.project.buildProject">
-      </command>
-      <command
-            name="%command.rebuildProject.name"
-            description="%command.rebuildProject.description"
-            categoryId="org.eclipse.ui.category.project"
-            id="org.eclipse.ui.project.rebuildProject">
-      </command>
-      <command
-            name="%command.buildAll.name"
-            description="%command.buildAll.description"
-            categoryId="org.eclipse.ui.category.project"
-            id="org.eclipse.ui.project.buildAll">
-      </command>
-      <command
-            name="%command.rebuildAll.name"
-            description="%command.rebuildAll.description"
-            categoryId="org.eclipse.ui.category.project"
-            id="org.eclipse.ui.project.rebuildAll">
-      </command>
-      <command
-            name="%command.buildLast.name"
-            description="%command.buildLast.description"
-            categoryId="org.eclipse.ui.category.project"
-            id="org.eclipse.ui.project.buildLast">
-      </command>
-      <command
-            name="%command.buildClean.name"
-            description="%command.buildClean.description"
-            categoryId="org.eclipse.ui.category.project"
-            id="org.eclipse.ui.project.cleanAction">
-      </command>
-      <command
-            name="%command.projectProperties.name"
-            description="%command.projectProperties.description"
-            categoryId="org.eclipse.ui.category.project"
-            id="org.eclipse.ui.project.properties">
-      </command>
-      <command
-            name="%command.addTask.name"
-            description="%command.addTask.description"
-            categoryId="org.eclipse.ui.category.edit"
-            id="org.eclipse.ui.edit.addTask">
-      </command>
-      <command
-            name="%command.correctionAssistProposals.name"
-            description="%command.correctionAssistProposals.description"
-            categoryId="org.eclipse.ui.category.edit"
-            id="org.eclipse.jdt.ui.edit.text.java.correction.assist.proposals">
-      </command>
-      <command
-            name="%command.selectWorkingSets.name"
-            description="%command.selectWorkingSets.description"
-            categoryId="org.eclipse.ui.category.window"
-            id="org.eclipse.ui.navigate.selectWorkingSets">
-      </command>
-      <command
-            name="%command.addToWorkingSet.name"
-            description="%command.addToWorkingSet.description"
-            categoryId="org.eclipse.ui.category.edit"
-            id="org.eclipse.ui.navigate.addToWorkingSet">
-      </command>
-       <command
-            name="%command.removeFromWorkingSet.name"
-            description="%command.removeFromWorkingSet.description"
-            categoryId="org.eclipse.ui.category.edit"
-            id="org.eclipse.ui.navigate.removeFromWorkingSet">
-      </command>
-      <category
-            description="%category.update.description"
-            id="org.eclipse.ui.category.update"
-            name="%category.update.name"/>
-      <command
-            categoryId="org.eclipse.ui.category.update"
-            description="%command.manageConfiguration.description"
-            id="org.eclipse.ui.update.manageConfiguration"
-            name="%command.manageConfiguration.name"/>
-      <command
-            categoryId="org.eclipse.ui.category.update"
-            description="%command.findAndInstallUpdates.description"
-            id="org.eclipse.ui.update.findAndInstallUpdates"
-            name="%command.findAndInstallUpdates.name"/>
-      <command
-            categoryId="org.eclipse.ui.category.navigate"
-            defaultHandler="org.eclipse.ui.internal.ide.handlers.ShowResourceByPathHandler"
-            description="%command.showResourceByPath.description"
-            id="org.eclipse.ui.navigate.showResourceByPath"
-            name="%command.showResourceByPath.name">
-         <commandParameter
-               id="resourcePath"
-               name="%commandParameter.showResourceByPath.resourcePath.name"
-               optional="false"
-               typeId="org.eclipse.ui.ide.resourcePath"/>
-      </command>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.commandImages">
-      <image
-            commandId="org.eclipse.ui.navigate.goToResource"
-            icon="$nl$/icons/full/elcl16/gotoobj_tsk.gif" />
-   </extension>
-   
-   <extension
-   		 point="org.eclipse.ui.bindings">
-      <key
-      		commandId="org.eclipse.ui.window.showKeyAssist"
-      		contextId="org.eclipse.ui.contexts.dialogAndWindow"
-      		sequence="M1+M2+L"
-      		schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            commandId="org.eclipse.jdt.ui.edit.text.java.correction.assist.proposals"
-            sequence="M1+1"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            commandId="org.eclipse.ui.navigate.openResource"
-            sequence="M1+M2+R"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            commandId="org.eclipse.ui.navigate.openResource"
-            sequence="CTRL+X CTRL+F"
-            schemeId="org.eclipse.ui.emacsAcceleratorConfiguration" />
-      <key
-            commandId="org.eclipse.ui.project.buildAll"
-            sequence="M1+B"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            commandId="org.eclipse.ui.navigate.showInQuickMenu"
-            contextId="org.eclipse.ui.contexts.window"
-            sequence="M2+M3+W"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            platform="carbon"
-            contextId="org.eclipse.ui.contexts.window"
-            sequence="M2+M3+W"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            platform="carbon"
-            commandId="org.eclipse.ui.navigate.showInQuickMenu"
-            contextId="org.eclipse.ui.contexts.window"
-            sequence="M1+M3+W"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            commandId="org.eclipse.ui.file.newQuickMenu"
-            contextId="org.eclipse.ui.contexts.window"
-            sequence="M2+M3+N"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            platform="carbon"
-            commandId=""
-            contextId="org.eclipse.ui.contexts.window"
-            sequence="M2+M3+N"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            platform="carbon"
-            commandId="org.eclipse.ui.file.newQuickMenu"
-            contextId="org.eclipse.ui.contexts.window"
-            sequence="M2+M3+N"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            sequence="M2+M3+Q X"
-            contextId="org.eclipse.ui.contexts.window"
-            commandId="org.eclipse.ui.views.showView"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-            <parameter 
-            	id="org.eclipse.ui.views.showView.viewId"
-            	value="org.eclipse.ui.views.ProblemView" />
-      </key>
-      <key
-            sequence="M2+M3+Q Q"
-            contextId="org.eclipse.ui.contexts.window"
-            commandId="org.eclipse.ui.views.showView"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
-      <key
-            platform="carbon"
-            sequence="M2+M3+Q X"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            platform="carbon"
-            sequence="M1+M3+Q X"
-            contextId="org.eclipse.ui.contexts.window"
-            commandId="org.eclipse.ui.views.showView"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-            <parameter 
-            	id="org.eclipse.ui.views.showView.viewId" 
-            	value="org.eclipse.ui.views.ProblemView" />
-      </key>
-      <key
-            sequence="M2+M3+Q O"
-            contextId="org.eclipse.ui.contexts.window"
-            commandId="org.eclipse.ui.views.showView"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-            <parameter
-            	id="org.eclipse.ui.views.showView.viewId"
-            	value="org.eclipse.ui.views.ContentOutline" />
-      </key>
-      <key
-            platform="carbon"
-            sequence="M2+M3+Q O"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
-      <key
-            platform="carbon"
-            sequence="M1+M3+Q O"
-            contextId="org.eclipse.ui.contexts.window"
-            commandId="org.eclipse.ui.views.showView"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-            <parameter
-            	id="org.eclipse.ui.views.showView.viewId" 
-            	value="org.eclipse.ui.views.ContentOutline" />
-      </key>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.systemSummarySections">
-      <section
-      		id="15.UpdateSection"
-            sectionTitle="%About.updateSummaryTitle"
-            class="org.eclipse.ui.internal.ide.dialogs.ConfigurationLogUpdateSection">
-      </section>
-   </extension>
-
-<!-- Update Actions -->
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="%UpdateActionSet.label"
-            visible="true"
-            id="org.eclipse.update.ui.softwareUpdates">
-         <menu
-               label="%UpdateActionSet.menu.label"
-               path="help/group.updates"
-               id="org.eclipse.update.ui.updateMenu">
-            <separator
-                  name="group0">
-            </separator>
-            <separator
-                  name="group1">
-            </separator>
-         </menu>
-         <action
-               class="org.eclipse.ui.internal.ide.update.ConfigurationManagerAction"
-               definitionId="org.eclipse.ui.update.manageConfiguration"
-               helpContextId="org.eclipse.update.ui.newUpdates"
-               icon="$nl$/icons/full/elcl16/configs.gif"
-               id="org.eclipse.update.ui.configManager"
-               label="%UpdateActionSet.configManager.label"
-               menubarPath="help/org.eclipse.update.ui.updateMenu/group0">
-         </action>
-         <action
-               class="org.eclipse.ui.internal.ide.update.InstallWizardAction"
-               definitionId="org.eclipse.ui.update.findAndInstallUpdates"
-               helpContextId="org.eclipse.update.ui.newUpdates"
-               icon="$nl$/icons/full/elcl16/usearch_obj.gif"
-               id="org.eclipse.update.ui.newUpdates"
-               label="%UpdateActionSet.updates.label"
-               menubarPath="help/org.eclipse.update.ui.updateMenu/group0">
-         </action>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer class="org.eclipse.ui.internal.ide.IDEPreferenceInitializer"/>
-   </extension>
-<!-- End Update -->
-  <extension
-         point="org.eclipse.ui.preferenceTransfer">
-       <transfer
-            id="org.eclipse.ui.ide.transfer.keys"
-            icon="/icons/full/obj16/keyspref_obj.gif"
-            name="%KeysPreference.Name">
-            <mapping scope="instance">
-            	<entry node="org.eclipse.ui.workbench">
-            	   <key name="org.eclipse.ui.commands"/>
-            	</entry>
-            	<entry node="org.eclipse.ui">
-            	   <key name="KEY_CONFIGURATION_ID"/>
-            	</entry>
-            </mapping>
-			<description>
-            	%KeysPreference.Description
-		    </description>
-	   </transfer>
-   </extension>
-   
-   <!-- Adaptor factory for IWorkingSet to IContributorResourceAdapter, IWorkbenchAdapter, ResourceMapping -->
-      <extension
-         id="org.eclipse.ui.ide.resourceMappingAdapters"
-         point="org.eclipse.core.runtime.adapters">
-       <factory
-            class="org.eclipse.ui.internal.ide.model.WorkingSetAdapterFactory"
-            adaptableType="org.eclipse.ui.IWorkingSet">
-            <adapter type="org.eclipse.ui.IContributorResourceAdapter"/>
-       </factory>
-       <factory
-            class="org.eclipse.ui.internal.ide.model.WorkingSetAdapterFactory"
-            adaptableType="org.eclipse.ui.IWorkingSet">
-            <adapter type="org.eclipse.ui.model.IWorkbenchAdapter"/>
-       </factory>
-       <factory
-            class="org.eclipse.ui.internal.ide.model.WorkingSetAdapterFactory"
-            adaptableType="org.eclipse.ui.IWorkingSet">
-            <adapter type="org.eclipse.core.resources.mapping.ResourceMapping"/>
-       </factory>
-       <factory
-             adaptableType="org.eclipse.ui.IFileEditorInput"
-             class="org.eclipse.ui.internal.ide.model.FileInputAdapterFactory">
-          <adapter
-                type="org.eclipse.core.resources.IFile">
-          </adapter>
-          <adapter
-                type="org.eclipse.core.resources.IResource">
-          </adapter>
-       </factory>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.activitySupport">
-      <triggerPoint id="org.eclipse.ui.ide.natures">
-         <hint
-               id="interactive"
-               value="false"/>
-      </triggerPoint>
-   </extension>
-  
-   <extension
-         point="org.eclipse.ui.ide.markerSupport">
-      <markerGrouping
-            id="org.eclipse.ui.ide.severity"
-            label="%markerGrouping.severity"
-            >
-      </markerGrouping>
-      <markerGroupingEntry
-            markerGrouping="org.eclipse.ui.ide.severity"
-            id="org.eclipse.ui.ide.errorSeverity"
-            label="%markerGrouping.errors"
-            priority="30"/>
-      <markerGroupingEntry
-            markerGrouping="org.eclipse.ui.ide.severity"
-            id="org.eclipse.ui.ide.warningSeverity"
-            label="%markerGrouping.warnings"
-            priority="20"/>
-      <markerGroupingEntry
-            markerGrouping="org.eclipse.ui.ide.severity"
-            id="org.eclipse.ui.ide.infoSeverity"
-            label="%markerGrouping.infos"
-            priority="10"/>
-      <markerAttributeGrouping
-            attribute="severity"
-            markerType="org.eclipse.core.resources.problemmarker">
-         <markerAttributeMapping
-               markerGroupingEntry="org.eclipse.ui.ide.errorSeverity"
-               value="2"/>
-         <markerAttributeMapping
-               markerGroupingEntry="org.eclipse.ui.ide.warningSeverity"
-               value="1"/>
-         <markerAttributeMapping
-               markerGroupingEntry="org.eclipse.ui.ide.infoSeverity"
-               value="0"/>
-      </markerAttributeGrouping>
-   </extension>
-   
-</plugin>
diff --git a/bundles/org.eclipse.ui.ide/schema/filesystemSupport.exsd b/bundles/org.eclipse.ui.ide/schema/filesystemSupport.exsd
deleted file mode 100644
index a12e924..0000000
--- a/bundles/org.eclipse.ui.ide/schema/filesystemSupport.exsd
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.ide">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.ide" id="filesystemSupport" name="File System Support"/>
-      </appInfo>
-      <documentation>
-         filesystemSupport supplies IDE contributions to support filesystems contributed using the org.eclipse.core.filesystem.filesystems extension point.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="filesystemContributor" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="filesystemContributor">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-      </annotation>
-      <complexType>
-         <attribute name="label" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The label is the human readable label for this file system.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  class is the org.eclipse.ui.ide.fileSystem.FileSystemContributor used to handle browsing and validation of an org.eclipse.core.filesystem.IFileSystem.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.ide.fileSystem.FileSystemContributor"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="scheme" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The scheme is the scheme of a org.eclipse.core.filesystems.filesystem this contribution corresponds to.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.2
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;
-&lt;pre&gt;
- &lt;extension
-         point=&quot;org.eclipse.ui.ide.filesystemSupport&quot;&gt;
-      &lt;filesystemContributor       
-        class=&quot;myFileSystemContributor&quot;
-            label=&quot;My file system&quot;
-            scheme=&quot;myFilesystem &quot;/&gt;
-   &lt;/extension&gt;
-   
-   &lt;/pre&gt;
-&lt;/p&gt;
-
-The example above has a FileSystemContributor that maps to a org.eclipse.core.filesystems.filesystem that it is provding a user interface for.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         The should be a one to one mapping of a org.eclipse.core.filesystems.filesystem scheme to filesystemContributor.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         There are no filesystemSupports contributed by default. There is an internal implementation that supports the IResource that is backed by the file system. 
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 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.ide/schema/markerHelp.exsd b/bundles/org.eclipse.ui.ide/schema/markerHelp.exsd
deleted file mode 100644
index d597a46..0000000
--- a/bundles/org.eclipse.ui.ide/schema/markerHelp.exsd
+++ /dev/null
@@ -1,158 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.ide">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.ide" id="markerHelp" name="Marker Help"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to associate a help context id with a specific &quot;kind&quot; of marker (a marker of a certain type or having certain attribute values).
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="markerHelp" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="markerHelp">
-      <complexType>
-         <sequence>
-            <element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="markerType" type="string">
-            <annotation>
-               <documentation>
-                  the unique type of the marker for which the help context applies.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="helpContextId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the unique id of the help context.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="attribute">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the name of the attribute whose value is being specified.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the specified value of the attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0 (originally added in release 2.0 as org.eclipse.ui.markerHelp)
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a marker help extension (note the sub-element and the way attributes are used):
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.ui.ide.markerHelp&quot;&gt;
-  &lt;markerHelp
-   markerType=&quot;org.eclipse.ui.examples.readmetool.readmemarker&quot;
-   helpContextId=&quot;org.eclipse.ui.examples.readmetool.marker_example1_context&quot;&gt;
-   &lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.id&quot; value=&quot;1234&quot;/&gt;
-  &lt;/markerHelp&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, a help context id is associated with markers of type org.eclipse.ui.examples.readmetool.readmemarker
-whose org.eclipse.ui.examples.readmetool.id attribute has a value of 1234.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         It is up to the developer to ensure that only a single help context id is supplied for a given marker.
-If two or more help context ids are supplied for a given kind of marker, the workbench does not define which will be returned.
-However the workbench does define that the &quot;most specific&quot; context id will always be returned for a given marker.
-That is, a context id associated with three matching attribute values will be returned before a context id associated with only two.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2002, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Eclipse Public License v1.0 which accompanies
-this distribution, and is available at &lt;a 
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.ui.ide/schema/markerImageProviders.exsd b/bundles/org.eclipse.ui.ide/schema/markerImageProviders.exsd
deleted file mode 100644
index aea877b..0000000
--- a/bundles/org.eclipse.ui.ide/schema/markerImageProviders.exsd
+++ /dev/null
@@ -1,148 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.ide">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.ide" id="markerImageProviders" name="Marker Image Providers"/>
-      </appInfo>
-      <documentation>
-         The markerImageProvider extension point is the point for specifying the images for marker types in the defining plug-in.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="imageprovider" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="imageprovider">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique name that can be used to identify this markerImageProvider.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="markertype" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The markertype is the id of the type defined in &lt;code&gt;org.eclipse.core.resources.IMarker&lt;/code&gt; that this definition is applied to.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="icon" type="string">
-            <annotation>
-               <documentation>
-                  If there is no class defined the icon attribute is used to define the icon that will be applied to this type of marker.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  The class is the fully qualifed name of the class that will be used to look up an image. This class must implement &lt;code&gt;IMarkerImageProvider&lt;/code&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0 (originally added in release 2.1 as org.eclipse.ui.markerImageProviders)
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following an example of the two forms of marker image providers. The first one is one where the image does not change and is declared directly. For the second one the image must be determined by an instance of IMarkerImageProvider.
- 
-&lt;p&gt;
-&lt;pre&gt;
-  &lt;extension
-         point=&quot;org.eclipse.ui.ide.markerImageProviders&quot;&gt;
-      &lt;imageprovider
-        markertype=&quot;org.eclipse.core.resources.taskmarker&quot;
-            icon=&quot;taskicon.gif&quot;
-            id=&quot;myPlugin.declarativeMarkerProvider&quot;&gt;
-      &lt;/imageprovider&gt;
-      &lt;imageprovider
-            markertype=&quot;org.eclipse.core.resources.problemmarker&quot;
-            class=&quot;myPlugin.MyIMarkerImageProvider&quot;
-            id=&quot;myPlugin.implementedMarkerProvider&quot;&gt;
-      &lt;/imageprovider&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         markerImageProvider is currently internal and should not be considered API.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         Image providers are currently registered for the bookmarks, tasks and problem markers.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2002, 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.ide/schema/markerResolution.exsd b/bundles/org.eclipse.ui.ide/schema/markerResolution.exsd
deleted file mode 100644
index c3fec71..0000000
--- a/bundles/org.eclipse.ui.ide/schema/markerResolution.exsd
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.ide">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.ide" id="markerResolution" name="Marker Resolutions"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to associate a marker resolution generator with a specific &quot;kind&quot; of marker.
-(a marker of a certain type or having certain attribute values).
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <documentation>
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="markerResolutionGenerator" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="markerResolutionGenerator">
-      <annotation>
-         <documentation>
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the name of the class implementing IMarkerResolutionGenerator
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.IMarkerResolutionGenerator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="markerType" type="string">
-            <annotation>
-               <documentation>
-                  the type of marker for which the help context applies.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="attribute">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-         <documentation>
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the name of the attribute whose value is being specified.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the specified value of the attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0 (originally added in release 2.0 as org.eclipse.ui.markerResolution)
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a marker resolution generator extension (note the sub-element and the way attributes are used):
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.ui.ide.markerResolution&quot;&gt;
-  &lt;markerResolutionGenerator
-   class=&quot;org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator&quot;
-   markerType=&quot;org.eclipse.ui.examples.readmetool.readmemarker&quot;&gt;
-   &lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.id&quot; value=&quot;1234&quot;/&gt;
-  &lt;/markerResolutionGenerator&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, a marker resolution generator is associated with markers of type org.eclipse.ui.examples.readmetool.readmemarker
-whose org.eclipse.ui.examples.redmetool.id attribute has a value of 1234.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         More than one marker resolution generator may be supplied for a given marker.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2002, 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.ide/schema/markerSupport.exsd b/bundles/org.eclipse.ui.ide/schema/markerSupport.exsd
deleted file mode 100644
index b94767c..0000000
--- a/bundles/org.eclipse.ui.ide/schema/markerSupport.exsd
+++ /dev/null
@@ -1,385 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.ide">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.ide" id="markerSupport" name="Marker Support"/>
-      </appInfo>
-      <documentation>
-         The Marker Support extension point defines extensions to the workbench tools that show markers such as the problems, bookmarks and tasks views.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="problemFilter" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="markerTypeCategory" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="markerGrouping" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="markerGroupingEntry" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="markerAttributeGrouping" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="problemFilter">
-      <annotation>
-         <documentation>
-            A problem filter is a filter that can be applied to problems.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="selectedType"/>
-         </sequence>
-         <attribute name="enabled" type="boolean">
-            <annotation>
-               <documentation>
-                  Whether or not this filter is enabled by default. If this value is not specified the value is true.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="scope">
-            <annotation>
-               <documentation>
-                  The scope of the filter. One of 
-ON_ANY: any item in the workbench
-ON_SELECTED_ONLY: on the currently selected item
-ON_SELECTED_AND_CHILDREN: on the currently selected item and it&apos;s children
-ON_ANY_IN_SAME_CONTAINER: on any item with the same top level container as the selection
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="ON_ANY">
-                  </enumeration>
-                  <enumeration value="ON_SELECTED_ONLY">
-                  </enumeration>
-                  <enumeration value="ON_SELECTED_AND_CHILDREN">
-                  </enumeration>
-                  <enumeration value="ON_ANY_IN_SAME_CONTAINER">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="onDescription" type="string">
-            <annotation>
-               <documentation>
-                  The description of the problem to check against. If this value is preceded with a ! the check will check that the description does not contain this string.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="severity">
-            <annotation>
-               <documentation>
-                  The severity of problem this filter is enabled for. If this value is not set then no filtering by severity will occur. Severity can be one of the following values: ERROR, WARNING or INFO.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="ERROR">
-                  </enumeration>
-                  <enumeration value="WARNING">
-                  </enumeration>
-                  <enumeration value="INFO">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The human readable name of the filter.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique id of the filter.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="selectedType">
-      <annotation>
-         <documentation>
-            The selectedTypes are the ids of the marker types selected by default in this filter. If there are no selected types all marker types are enabled. All types not specified in this filter are disabled by default.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="markerId" type="string">
-            <annotation>
-               <documentation>
-                  The id of a marker that is enabled by default.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="markerTypeCategory">
-      <annotation>
-         <documentation>
-            The markerTypeCategory is an element for grouping marker types into a single category.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="markerTypeReference"/>
-         </sequence>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The label is the human readable name that will be presented to the user.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="markerTypeReference">
-      <annotation>
-         <documentation>
-            The markerTypeReference is a reference to a markerType defined using the extension point in org.eclipse.core.resources.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the markerType
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="markerGrouping">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="label"/>
-         </appInfo>
-         <documentation>
-            A markerGrouping is a definition of a grouping criterea for the marker views that support it (currently only the problems view). The sort order of the group is the order of specification of attribute mappings.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="label" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The label is the human readable String that will be used to create the entry in the Group By-&gt; menu for this marker grouping.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id is non translatable identifier for the markerGrouping. Referred to in a markerGroupingEntry.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="markerAttributeMapping">
-      <annotation>
-         <documentation>
-            A markerAttributeMapping maps a marker attribute to a name.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The value is the value of the attribute that is used in this mapping.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="markerGroupingEntry" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the markerGroupingEntry that this attribute value maps to.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="markerGroupingEntry">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="label"/>
-         </appInfo>
-         <documentation>
-            A markerGroupingEntry is the specification of one of the entries in a markerGrouping.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the markerGroupingEntry. Referred to in a markerAttributeGrouping.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="markerGrouping" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The markerGrouping is the id of the markerGrouping this entry will be added to.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The translable label of the entry.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="priority" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The priority of the entry. Higher priorities show up higher in the list.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="markerAttributeGrouping">
-      <annotation>
-         <documentation>
-            markerAttributeGrouping is a definition of attribute mappings for a particular markerType
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="markerAttributeMapping" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="markerType" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the markerType this grouping applies to.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="attribute" type="string">
-            <annotation>
-               <documentation>
-                  The attribute is the name of the attribute to test. If it is not specified then only the defaultGroupingEntry will be checked.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="defaultGroupingEntry" type="string">
-            <annotation>
-               <documentation>
-                  The defaultGroupingEntry is the optional category for groupings that do not satisfy any of the markerAttributeMappings in the receiver. This default will be applied when the attribute value does not match a mapping or when the attribute is not available.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.2
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a problem filter definition in the marker support. This example only shows java warnings on the selected element and it&apos;s children and filters out those with the String NON-NLS
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.ui.ide.markerSupport&quot;&gt;
-  &lt;problemFilter
-    name = &quot;Warnings&quot;
-    id = &quot;org.eclipse.example.warningFilter&quot;
-    enabled = &quot;true&quot;
-    scope=&quot;ON_SELECTED_AND_CHILDREN&quot;
-    onDescription=&quot;!NON-NLS&quot;
-    severity=&quot;WARNING&quot;
-  &gt;
-  &lt;selectedType
-    markerId=&quot;org.eclipse.core.resources.problemmarker&quot;/&gt;
-  &lt;/problemFilter&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The severity markerGrouping is provided in the org.eclipse.ui.ide plug-in by default.
-      </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.ide/schema/projectNatureImages.exsd b/bundles/org.eclipse.ui.ide/schema/projectNatureImages.exsd
deleted file mode 100644
index 24e2450..0000000
--- a/bundles/org.eclipse.ui.ide/schema/projectNatureImages.exsd
+++ /dev/null
@@ -1,151 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.ide">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.ide" id="projectNatureImages" name="Project Nature Images"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to associate an image with a project nature.
-The supplied image is used to form a composite image consisting of the standard project image combined with the image of its nature.
-The supplied image is drawn over the top right corner of the base image.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="image" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="image">
-      <complexType>
-         <sequence>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique name that will be used to identify this nature image.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="natureId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the unique name of the nature for which the image is being supplied.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="icon" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a relative name of the image that will be associated with this perspective.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="description" type="string">
-      <annotation>
-         <appInfo>
-            <meta.element translatable="true"/>
-         </appInfo>
-         <documentation>
-            a short description of what this image represents.
-         </documentation>
-      </annotation>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0 (originally added in release 1.0 as org.eclipse.ui.projectNatureImages)
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a nature image extension:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.ui.ide.projectNatureImages&quot;&gt;
-  &lt;image 
-    id=&quot;org.eclipse.ui.javaNatureImage&quot;
-    natureId=&quot;Resource&quot;
-    icon=&quot;icons/javaNature.gif&quot;&gt;
-  &lt;/image&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         The value of the &lt;samp&gt;natureId&lt;/samp&gt; attribute is the nature id as defined by the plugin creating the project.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2002, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Eclipse Public License v1.0 which accompanies
-this distribution, and is available at &lt;a 
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.ui.ide/schema/resourceFilters.exsd b/bundles/org.eclipse.ui.ide/schema/resourceFilters.exsd
deleted file mode 100644
index fe46c27..0000000
--- a/bundles/org.eclipse.ui.ide/schema/resourceFilters.exsd
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.ide">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.ide" id="resourceFilters" name="Resource Filters"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to add predefined filters to views which show resources, such as the Navigator view.
-These filters can be selected to hide resources whose names match the filter&apos;s pattern.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="filter" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="filter">
-      <complexType>
-         <sequence>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="pattern" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the pattern to match.  May contain * and ? wildcards.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="selected" type="boolean" use="default" value="false">
-            <annotation>
-               <documentation>
-                  &quot;true&quot; if the pattern should be selected by default, &quot;false&quot; or undefined if not.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="description" type="string">
-      <annotation>
-         <appInfo>
-            <meta.element translatable="true"/>
-         </appInfo>
-         <documentation>
-            the description of the purpose of this filter.
-         </documentation>
-      </annotation>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0 (originally added in release 1.0 as org.eclipse.ui.resourceFilters)
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a resource filter extension, which filters out class files, and is selected by default:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.ui.ide.resourceFilters&quot;&gt;
-  &lt;filter pattern=&quot;*.class&quot; selected=&quot;true&quot;/&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&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) 2002, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Eclipse Public License v1.0 which accompanies
-this distribution, and is available at &lt;a 
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/FileStoreEditorInput.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/FileStoreEditorInput.java
deleted file mode 100644
index dd61b5a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/FileStoreEditorInput.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.ide;
-
-import java.net.URI;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.IURIEditorInput;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * Implements an IEditorInput instance appropriate for 
- * <code>IFileStore</code> elements that represent files
- * that are not part of the current workspace.
- * 
- * @since 3.3
- *
- */
-public class FileStoreEditorInput implements IURIEditorInput {
-
-	/**
-	 * The workbench adapter which simply provides the label.
-	 *
-	 * @since 3.3
-	 */
-	private class WorkbenchAdapter implements IWorkbenchAdapter {
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object o) {
-			return null;
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
-		 */
-		public ImageDescriptor getImageDescriptor(Object object) {
-			return null;
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
-		 */
-		public String getLabel(Object o) {
-			return ((FileStoreEditorInput)o).getName();
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object o) {
-			return null;
-		}
-	}
-
-	private IFileStore fFileStore;
-	private WorkbenchAdapter fWorkbenchAdapter= new WorkbenchAdapter();
-	
-	/**
-	 * @param fileStore
-	 */
-	public FileStoreEditorInput(IFileStore fileStore) {
-		Assert.isNotNull(fileStore);
-		Assert.isTrue(EFS.SCHEME_FILE.equals(fileStore.getFileSystem().getScheme()));
-		fFileStore = fileStore;
-		fWorkbenchAdapter = new WorkbenchAdapter();
-	}
-	/*
-	 * @see org.eclipse.ui.IEditorInput#exists()
-	 */
-	public boolean exists() {
-		return fFileStore.fetchInfo().exists();
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getName()
-	 */
-	public String getName() {
-		return fFileStore.getName();
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getPersistable()
-	 */
-	public IPersistableElement getPersistable() {
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
-	 */
-	public String getToolTipText() {
-		return fFileStore.toString();
-	}
-
-	/*
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		if (IWorkbenchAdapter.class.equals(adapter))
-			return fWorkbenchAdapter;
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-	/*
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object o) {
-		if (o == this)
-			return true;
-
-		if (o instanceof FileStoreEditorInput) {
-			FileStoreEditorInput input= (FileStoreEditorInput) o;
-			return fFileStore.equals(input.fFileStore);
-		}
-
-		return false;
-	}
-
-	/*
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return fFileStore.hashCode();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IURIEditorInput#getURI()
-	 */
-	public URI getURI() {
-		return fFileStore.toURI();
-	}
-
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IContributorResourceAdapter2.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IContributorResourceAdapter2.java
deleted file mode 100644
index 922f65e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IContributorResourceAdapter2.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.ui.ide;
-
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.IContributorResourceAdapter;
-
-/**
- * An extension to the <code>IContributorResourceAdapter</code> that adapts 
- * a model object to a <code>ResourceMapping</code>.
- * 
- * @since 3.2
- */
-public interface IContributorResourceAdapter2 extends IContributorResourceAdapter {
-
-    /**
-     * Return the resource mapping that the supplied adaptable 
-     * adapts to. An <code>IContributorResourceAdapter2</code> assumes
-     * that any object passed to it adapts to one equivalent
-     * resource mapping.
-     * 
-     * @param adaptable the adaptable being queried
-     * @return a resource mapping, or <code>null</code> if there
-     *  is no adapted resource mapping for this type
-     */
-    public ResourceMapping getAdaptedResourceMapping(IAdaptable adaptable);
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDE.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDE.java
deleted file mode 100644
index 30f7043..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDE.java
+++ /dev/null
@@ -1,1301 +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.ide;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.IModelProviderDescriptor;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.core.resources.mapping.ModelProvider;
-import org.eclipse.core.resources.mapping.ModelStatus;
-import org.eclipse.core.resources.mapping.ResourceChangeValidator;
-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.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeMatcher;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IMarkerHelpRegistry;
-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.EditorManager;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.registry.MarkerHelpRegistry;
-import org.eclipse.ui.internal.ide.registry.MarkerHelpRegistryReader;
-import org.eclipse.ui.internal.misc.UIStats;
-import org.eclipse.ui.part.FileEditorInput;
-
-/**
- * Collection of IDE-specific APIs factored out of existing workbench. This
- * class cannot be instantiated; all functionality is provided by static methods
- * and fields.
- * 
- * @since 3.0
- */
-public final class IDE {
-	/**
-	 * The persistent property key used on IFile resources to contain the
-	 * preferred editor ID to use.
-	 * <p>
-	 * Example of retrieving the persisted editor id:
-	 * 
-	 * <pre><code>
-	 *  IFile file = ...
-	 *  IEditorDescriptor editorDesc = null;
-	 *  try {
-	 *  	String editorID = file.getPersistentProperty(EDITOR_KEY);
-	 *  	if (editorID != null) {
-	 *  		editorDesc = editorReg.findEditor(editorID);
-	 *  	}
-	 *  } catch (CoreException e) {
-	 *  	// handle problem accessing persistent property here
-	 *  }
-	 * </code></pre>
-	 * 
-	 * </p>
-	 * <p>
-	 * Example of persisting the editor id:
-	 * 
-	 * <pre><code>
-	 *  IFile file = ...
-	 *  try {
-	 *  	file.setPersistentProperty(EDITOR_KEY, editorDesc.getId());
-	 *  } catch (CoreException e) {
-	 *  	// handle problem setting persistent property here
-	 *  }
-	 * </code></pre>
-	 * 
-	 * </p>
-	 */
-	public static final QualifiedName EDITOR_KEY = new QualifiedName(
-			"org.eclipse.ui.internal.registry.ResourceEditorRegistry", "EditorProperty");//$NON-NLS-2$//$NON-NLS-1$
-
-	/**
-	 * An optional attribute within a workspace marker (<code>IMarker</code>)
-	 * which identifies the preferred editor type to be opened.
-	 */
-	public static final String EDITOR_ID_ATTR = "org.eclipse.ui.editorID"; //$NON-NLS-1$
-
-	/**
-	 * The resource based perspective identifier.
-	 */
-	public static final String RESOURCE_PERSPECTIVE_ID = "org.eclipse.ui.resourcePerspective"; //$NON-NLS-1$
-
-	/**
-	 * Marker help registry mapping markers to help context ids and resolutions;
-	 * lazily initialized on fist access.
-	 */
-	private static MarkerHelpRegistry markerHelpRegistry = null;
-
-	/**
-	 * Standard shared images defined by the IDE. These are over and above the
-	 * standard workbench images declared in {@link org.eclipse.ui.ISharedImages
-	 * ISharedImages}.
-	 * <p>
-	 * This interface is not intended to be implemented by clients.
-	 * </p>
-	 * 
-	 * @see org.eclipse.ui.ISharedImages
-	 */
-	public interface SharedImages {
-		/**
-		 * Identifies a project image.
-		 */
-		public final static String IMG_OBJ_PROJECT = "IMG_OBJ_PROJECT"; //$NON-NLS-1$
-
-		/**
-		 * Identifies a closed project image.
-		 */
-		public final static String IMG_OBJ_PROJECT_CLOSED = "IMG_OBJ_PROJECT_CLOSED"; //$NON-NLS-1$
-
-		/**
-		 * Identifies the image used for "open marker".
-		 */
-		public final static String IMG_OPEN_MARKER = "IMG_OPEN_MARKER"; //$NON-NLS-1$
-
-		/**
-		 * Identifies the default image used to indicate a task.
-		 */
-		public final static String IMG_OBJS_TASK_TSK = "IMG_OBJS_TASK_TSK"; //$NON-NLS-1$
-
-		/**
-		 * Identifies the default image used to indicate a bookmark.
-		 */
-		public final static String IMG_OBJS_BKMRK_TSK = "IMG_OBJS_BKMRK_TSK"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Preferences defined by the IDE workbench.
-	 * <p>
-	 * This interface is not intended to be implemented by clients.
-	 * </p>
-	 */
-	public interface Preferences {
-
-		/**
-		 * A named preference for how a new perspective should be opened when a
-		 * new project is created.
-		 * <p>
-		 * Value is of type <code>String</code>. The possible values are
-		 * defined by the constants
-		 * <code>OPEN_PERSPECTIVE_WINDOW, OPEN_PERSPECTIVE_PAGE, 
-		 * OPEN_PERSPECTIVE_REPLACE, and NO_NEW_PERSPECTIVE</code>.
-		 * </p>
-		 * 
-		 * @see org.eclipse.ui.IWorkbenchPreferenceConstants#OPEN_PERSPECTIVE_WINDOW
-		 * @see org.eclipse.ui.IWorkbenchPreferenceConstants#OPEN_PERSPECTIVE_PAGE
-		 * @see org.eclipse.ui.IWorkbenchPreferenceConstants#OPEN_PERSPECTIVE_REPLACE
-		 * @see org.eclipse.ui.IWorkbenchPreferenceConstants#NO_NEW_PERSPECTIVE
-		 */
-		public static final String PROJECT_OPEN_NEW_PERSPECTIVE = "PROJECT_OPEN_NEW_PERSPECTIVE"; //$NON-NLS-1$
-
-		/**
-		 * <p>
-		 * Specifies whether or not the workspace selection dialog should be
-		 * shown on startup.
-		 * </p>
-		 * <p>
-		 * The default value for this preference is <code>true</code>.
-		 * </p>
-		 * 
-		 * @since 3.1
-		 */
-		public static final String SHOW_WORKSPACE_SELECTION_DIALOG = "SHOW_WORKSPACE_SELECTION_DIALOG"; //$NON-NLS-1$
-
-		/**
-		 * <p>
-		 * Stores the maximum number of workspaces that should be displayed in
-		 * the ChooseWorkspaceDialog.
-		 * </p>
-		 * 
-		 * @since 3.1
-		 */
-		public static final String MAX_RECENT_WORKSPACES = "MAX_RECENT_WORKSPACES"; //$NON-NLS-1$
-
-		/**
-		 * <p>
-		 * Stores a comma separated list of the recently used workspace paths.
-		 * </p>
-		 * 
-		 * @since 3.1
-		 */
-		public static final String RECENT_WORKSPACES = "RECENT_WORKSPACES"; //$NON-NLS-1$
-
-		/**
-		 * <p>
-		 * Stores the version of the protocol used to decode/encode the list of
-		 * recent workspaces.
-		 * </p>
-		 * 
-		 * @since 3.1
-		 */
-		public static final String RECENT_WORKSPACES_PROTOCOL = "RECENT_WORKSPACES_PROTOCOL"; //$NON-NLS-1$
-
-	}
-
-	/**
-	 * Block instantiation.
-	 */
-	private IDE() {
-		// do nothing
-	}
-
-	/**
-	 * Returns the marker help registry for the workbench.
-	 * 
-	 * @return the marker help registry
-	 */
-	public static IMarkerHelpRegistry getMarkerHelpRegistry() {
-		if (markerHelpRegistry == null) {
-			markerHelpRegistry = new MarkerHelpRegistry();
-			new MarkerHelpRegistryReader().addHelp(markerHelpRegistry);
-		}
-		return markerHelpRegistry;
-	}
-
-	/**
-	 * Sets the cursor and selection state for the given editor to reveal the
-	 * position of the given marker. This is done on a best effort basis. If the
-	 * editor does not provide an <code>IGotoMarker</code> interface (either
-	 * directly or via <code>IAdaptable.getAdapter</code>), this has no
-	 * effect.
-	 * 
-	 * @param editor
-	 *            the editor
-	 * @param marker
-	 *            the marker
-	 */
-	public static void gotoMarker(IEditorPart editor, IMarker marker) {
-		IGotoMarker gotoMarker = null;
-		if (editor instanceof IGotoMarker) {
-			gotoMarker = (IGotoMarker) editor;
-		} else {
-			gotoMarker = (IGotoMarker) editor.getAdapter(IGotoMarker.class);
-		}
-		if (gotoMarker != null) {
-			gotoMarker.gotoMarker(marker);
-		}
-	}
-
-	/**
-	 * Opens an editor on the given object.
-	 * <p>
-	 * If the page already has an editor open on the target object then that
-	 * editor is brought to front; otherwise, a new editor is opened.
-	 * <p>
-	 * 
-	 * @param page
-	 *            the page in which the editor will be opened
-	 * @param input
-	 *            the editor input
-	 * @param editorId
-	 *            the id of the editor extension to use
-	 * @return an open editor or <code>null</code> if an external editor was
-	 *         opened
-	 * @exception PartInitException
-	 *                if the editor could not be initialized
-	 * @see org.eclipse.ui.IWorkbenchPage#openEditor(IEditorInput, String)
-	 */
-	public static IEditorPart openEditor(IWorkbenchPage page,
-			IEditorInput input, String editorId) throws PartInitException {
-		// sanity checks
-		if (page == null) {
-			throw new IllegalArgumentException();
-		}
-
-		// open the editor on the file
-		return page.openEditor(input, editorId);
-	}
-
-	/**
-	 * Opens an editor on the given IFileStore object.
-	 * <p>
-	 * Unlike the other <code>openEditor</code> methods, this one can be used
-	 * to open files that reside outside the workspace resource set.
-	 * </p>
-	 * <p>
-	 * If the page already has an editor open on the target object then that
-	 * editor is brought to front; otherwise, a new editor is opened.
-	 * </p>
-	 * 
-	 * @param page
-	 *            the page in which the editor will be opened
-	 * @param uri
-	 *            the URI of the file store representing the file to open
-	 * @param editorId
-	 *            the id of the editor extension to use
-	 * @param activate
-	 *            if <code>true</code> the editor will be activated opened
-	 * @return an open editor or <code>null</code> if an external editor was
-	 * @exception PartInitException
-	 *                if the editor could not be initialized
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPage#openEditor(IEditorInput, String)
-	 * @see EFS#getStore(URI)
-	 * 
-	 * @since 3.3
-	 */
-	public static IEditorPart openEditor(IWorkbenchPage page,
-			URI uri, String editorId, boolean activate)
-			throws PartInitException {
-		// sanity checks
-		if (page == null) {
-			throw new IllegalArgumentException();
-		}
-		
-		IFileStore fileStore;
-		try {
-			fileStore = EFS.getStore(uri);
-		} catch (CoreException e) {
-			throw new PartInitException(
-					IDEWorkbenchMessages.IDE_coreExceptionFileStore,e);
-		}
-
-		IEditorInput input = getEditorInput(fileStore);
-
-		// open the editor on the file
-		return page.openEditor(input, editorId, activate);
-	}
-
-	/**
-	 * Create the Editor Input appropriate for the given <code>IFileStore</code>.
-	 * The result is a normal file editor input if the file exists in the
-	 * workspace and, if not, we create a wrapper capable of managing an
-	 * 'external' file using its <code>IFileStore</code>.
-	 * 
-	 * @param fileStore
-	 *            The file store to provide the editor input for
-	 * @return The editor input associated with the given file store
-	 */
-	private static IEditorInput getEditorInput(IFileStore fileStore) {
-		IFile workspaceFile = getWorkspaceFile(fileStore);
-		if (workspaceFile != null)
-			return new FileEditorInput(workspaceFile);
-		return new FileStoreEditorInput(fileStore);
-	}
-
-	/**
-	 * Determine whether or not the <code>IFileStore</code> represents a file
-	 * currently in the workspace.
-	 * 
-	 * @param fileStore
-	 *            The <code>IFileStore</code> to test
-	 * @return The workspace's <code>IFile</code> if it exists or
-	 *         <code>null</code> if not
-	 */
-	private static IFile getWorkspaceFile(IFileStore fileStore) {
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IFile[] files = workspace.getRoot().findFilesForLocation(
-				new Path(fileStore.toURI().getPath()));
-		files = filterNonExistentFiles(files);
-		if (files == null || files.length == 0)
-			return null;
-
-		// for now only return the first file
-		return files[0];
-	}
-
-	/**
-	 * Filter the incoming array of <code>IFile</code> elements by removing
-	 * any that do not currently exist in the workspace.
-	 * 
-	 * @param files
-	 *            The array of <code>IFile</code> elements
-	 * @return The filtered array
-	 */
-	private static IFile[] filterNonExistentFiles(IFile[] files) {
-		if (files == null)
-			return null;
-
-		int length = files.length;
-		ArrayList existentFiles = new ArrayList(length);
-		for (int i = 0; i < length; i++) {
-			if (files[i].exists())
-				existentFiles.add(files[i]);
-		}
-		return (IFile[]) existentFiles.toArray(new IFile[existentFiles.size()]);
-	}
-
-	/**
-	 * Opens an editor on the given object.
-	 * <p>
-	 * If the page already has an editor open on the target object then that
-	 * editor is brought to front; otherwise, a new editor is opened. If
-	 * <code>activate == true</code> the editor will be activated.
-	 * <p>
-	 * 
-	 * @param page
-	 *            the page in which the editor will be opened
-	 * @param input
-	 *            the editor input
-	 * @param editorId
-	 *            the id of the editor extension to use
-	 * @param activate
-	 *            if <code>true</code> the editor will be activated
-	 * @return an open editor or <code>null</code> if an external editor was
-	 *         opened
-	 * @exception PartInitException
-	 *                if the editor could not be initialized
-	 * @see org.eclipse.ui.IWorkbenchPage#openEditor(IEditorInput, String,
-	 *      boolean)
-	 */
-	public static IEditorPart openEditor(IWorkbenchPage page,
-			IEditorInput input, String editorId, boolean activate)
-			throws PartInitException {
-		// sanity checks
-		if (page == null) {
-			throw new IllegalArgumentException();
-		}
-
-		// open the editor on the file
-		return page.openEditor(input, editorId, activate);
-	}
-
-	/**
-	 * Opens an editor on the given file resource. This method will attempt to
-	 * resolve the editor based on content-type bindings as well as traditional
-	 * name/extension bindings.
-	 * <p>
-	 * If the page already has an editor open on the target object then that
-	 * editor is brought to front; otherwise, a new editor is opened. If
-	 * <code>activate == true</code> the editor will be activated.
-	 * <p>
-	 * 
-	 * @param page
-	 *            the page in which the editor will be opened
-	 * @param input
-	 *            the editor input
-	 * @param activate
-	 *            if <code>true</code> the editor will be activated
-	 * @return an open editor or <code>null</code> if an external editor was
-	 *         opened
-	 * @exception PartInitException
-	 *                if the editor could not be initialized
-	 * @see org.eclipse.ui.IWorkbenchPage#openEditor(org.eclipse.ui.IEditorInput,
-	 *      String, boolean)
-	 */
-	public static IEditorPart openEditor(IWorkbenchPage page, IFile input,
-			boolean activate) throws PartInitException {
-		return openEditor(page, input, activate, true);
-	}
-
-	/**
-	 * Opens an editor on the given file resource. This method will attempt to
-	 * resolve the editor based on content-type bindings as well as traditional
-	 * name/extension bindings if <code>determineContentType</code> is
-	 * <code>true</code>.
-	 * <p>
-	 * If the page already has an editor open on the target object then that
-	 * editor is brought to front; otherwise, a new editor is opened. If
-	 * <code>activate == true</code> the editor will be activated.
-	 * <p>
-	 * 
-	 * @param page
-	 *            the page in which the editor will be opened
-	 * @param input
-	 *            the editor input
-	 * @param activate
-	 *            if <code>true</code> the editor will be activated
-	 * @param determineContentType
-	 *            attempt to resolve the content type for this file
-	 * @return an open editor or <code>null</code> if an external editor was
-	 *         opened
-	 * @exception PartInitException
-	 *                if the editor could not be initialized
-	 * @see org.eclipse.ui.IWorkbenchPage#openEditor(org.eclipse.ui.IEditorInput,
-	 *      String, boolean)
-	 * @since 3.1
-	 */
-	public static IEditorPart openEditor(IWorkbenchPage page, IFile input,
-			boolean activate, boolean determineContentType)
-			throws PartInitException {
-		// sanity checks
-		if (page == null) {
-			throw new IllegalArgumentException();
-		}
-
-		// open the editor on the file
-		IEditorDescriptor editorDesc = getEditorDescriptor(input,
-				determineContentType);
-		return page.openEditor(new FileEditorInput(input), editorDesc.getId(),
-				activate);
-	}
-
-	/**
-	 * Opens an editor on the given file resource. This method will attempt to
-	 * resolve the editor based on content-type bindings as well as traditional
-	 * name/extension bindings.
-	 * <p>
-	 * If the page already has an editor open on the target object then that
-	 * editor is brought to front; otherwise, a new editor is opened.
-	 * <p>
-	 * 
-	 * @param page
-	 *            the page in which the editor will be opened
-	 * @param input
-	 *            the editor input
-	 * @return an open editor or <code>null</code> if an external editor was
-	 *         opened
-	 * @exception PartInitException
-	 *                if the editor could not be initialized
-	 * @see org.eclipse.ui.IWorkbenchPage#openEditor(IEditorInput, String)
-	 */
-	public static IEditorPart openEditor(IWorkbenchPage page, IFile input)
-			throws PartInitException {
-		// sanity checks
-		if (page == null) {
-			throw new IllegalArgumentException();
-		}
-
-		// open the editor on the file
-		IEditorDescriptor editorDesc = getEditorDescriptor(input);
-		return page.openEditor(new FileEditorInput(input), editorDesc.getId());
-	}
-
-	/**
-	 * Opens an editor on the given file resource.
-	 * <p>
-	 * If the page already has an editor open on the target object then that
-	 * editor is brought to front; otherwise, a new editor is opened.
-	 * <p>
-	 * 
-	 * @param page
-	 *            the page in which the editor will be opened
-	 * @param input
-	 *            the editor input
-	 * @param editorId
-	 *            the id of the editor extension to use
-	 * @return an open editor or <code>null</code> if an external editor was
-	 *         opened
-	 * @exception PartInitException
-	 *                if the editor could not be initialized
-	 * @see org.eclipse.ui.IWorkbenchPage#openEditor(IEditorInput, String)
-	 */
-	public static IEditorPart openEditor(IWorkbenchPage page, IFile input,
-			String editorId) throws PartInitException {
-		// sanity checks
-		if (page == null) {
-			throw new IllegalArgumentException();
-		}
-
-		// open the editor on the file
-		return page.openEditor(new FileEditorInput(input), editorId);
-	}
-
-	/**
-	 * Opens an editor on the given file resource.
-	 * <p>
-	 * If the page already has an editor open on the target object then that
-	 * editor is brought to front; otherwise, a new editor is opened. If
-	 * <code>activate == true</code> the editor will be activated.
-	 * <p>
-	 * 
-	 * @param page
-	 *            the page in which the editor will be opened
-	 * @param input
-	 *            the editor input
-	 * @param editorId
-	 *            the id of the editor extension to use
-	 * @param activate
-	 *            if <code>true</code> the editor will be activated
-	 * @return an open editor or <code>null</code> if an external editor was
-	 *         opened
-	 * @exception PartInitException
-	 *                if the editor could not be initialized
-	 * @see org.eclipse.ui.IWorkbenchPage#openEditor(IEditorInput, String,
-	 *      boolean)
-	 */
-	public static IEditorPart openEditor(IWorkbenchPage page, IFile input,
-			String editorId, boolean activate) throws PartInitException {
-		// sanity checks
-		if (page == null) {
-			throw new IllegalArgumentException();
-		}
-
-		// open the editor on the file
-		return page.openEditor(new FileEditorInput(input), editorId, activate);
-	}
-
-	/**
-	 * Returns an editor descriptor appropriate for opening the given file
-	 * resource.
-	 * <p>
-	 * The editor descriptor is determined using a multistep process. This
-	 * method will attempt to resolve the editor based on content-type bindings
-	 * as well as traditional name/extension bindings.
-	 * </p>
-	 * <ol>
-	 * <li>The file is consulted for a persistent property named
-	 * <code>IDE.EDITOR_KEY</code> containing the preferred editor id to be
-	 * used.</li>
-	 * <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(String)</code>.</li>
-	 * <li>The operating system is consulted to determine if an in-place
-	 * component editor is available (e.g. OLE editor on Win32 platforms).</li>
-	 * <li>The operating system is consulted to determine if an external editor
-	 * is available.</li>
-	 * </ol>
-	 * </p>
-	 * 
-	 * @param file
-	 *            the file
-	 * @return an editor descriptor, appropriate for opening the file
-	 * @throws PartInitException
-	 *             if no editor can be found
-	 */
-	public static IEditorDescriptor getEditorDescriptor(IFile file)
-			throws PartInitException {
-		return getEditorDescriptor(file, true);
-	}
-
-	/**
-	 * Returns an editor descriptor appropriate for opening the given file
-	 * resource.
-	 * <p>
-	 * The editor descriptor is determined using a multistep process. This
-	 * method will attempt to resolve the editor based on content-type bindings
-	 * as well as traditional name/extension bindings if
-	 * <code>determineContentType</code>is <code>true</code>.
-	 * </p>
-	 * <ol>
-	 * <li>The file is consulted for a persistent property named
-	 * <code>IDE.EDITOR_KEY</code> containing the preferred editor id to be
-	 * used.</li>
-	 * <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(String)</code>.</li>
-	 * <li>The operating system is consulted to determine if an in-place
-	 * component editor is available (e.g. OLE editor on Win32 platforms).</li>
-	 * <li>The operating system is consulted to determine if an external editor
-	 * is available.</li>
-	 * </ol>
-	 * </p>
-	 * 
-	 * @param file
-	 *            the file
-	 * @param determineContentType
-	 *            query the content type system for the content type of the file
-	 * @return an editor descriptor, appropriate for opening the file
-	 * @throws PartInitException
-	 *             if no editor can be found
-	 * @since 3.1
-	 */
-	public static IEditorDescriptor getEditorDescriptor(IFile file,
-			boolean determineContentType) throws PartInitException {
-
-		if (file == null) {
-			throw new IllegalArgumentException();
-		}
-
-		return getEditorDescriptor(file.getName(), PlatformUI.getWorkbench()
-				.getEditorRegistry(), getDefaultEditor(file,
-				determineContentType));
-	}
-
-	/**
-	 * Returns an editor descriptor appropriate for opening a file resource with
-	 * the given name.
-	 * <p>
-	 * The editor descriptor is determined using a multistep process. This
-	 * method will attempt to infer content type from the file name.
-	 * </p>
-	 * <ol>
-	 * <li>The file is consulted for a persistent property named
-	 * <code>IDE.EDITOR_KEY</code> containing the preferred editor id to be
-	 * used.</li>
-	 * <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(String)</code>.</li>
-	 * <li>The operating system is consulted to determine if an in-place
-	 * component editor is available (e.g. OLE editor on Win32 platforms).</li>
-	 * <li>The operating system is consulted to determine if an external editor
-	 * is available.</li>
-	 * </ol>
-	 * </p>
-	 * 
-	 * @param name
-	 *            the file name
-	 * @return an editor descriptor, appropriate for opening the file
-	 * @throws PartInitException
-	 *             if no editor can be found
-	 * @since 3.1
-	 */
-	public static IEditorDescriptor getEditorDescriptor(String name)
-			throws PartInitException {
-		return getEditorDescriptor(name, true);
-	}
-
-	/**
-	 * Returns an editor descriptor appropriate for opening a file resource with
-	 * the given name.
-	 * <p>
-	 * The editor descriptor is determined using a multistep process. This
-	 * method will attempt to infer the content type of the file if
-	 * <code>inferContentType</code> is <code>true</code>.
-	 * </p>
-	 * <ol>
-	 * <li>The file is consulted for a persistent property named
-	 * <code>IDE.EDITOR_KEY</code> containing the preferred editor id to be
-	 * used.</li>
-	 * <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(String)</code>.</li>
-	 * <li>The operating system is consulted to determine if an in-place
-	 * component editor is available (e.g. OLE editor on Win32 platforms).</li>
-	 * <li>The operating system is consulted to determine if an external editor
-	 * is available.</li>
-	 * </ol>
-	 * </p>
-	 * 
-	 * @param name
-	 *            the file name
-	 * @param inferContentType
-	 *            attempt to infer the content type from the file name if this
-	 *            is <code>true</code>
-	 * @return an editor descriptor, appropriate for opening the file
-	 * @throws PartInitException
-	 *             if no editor can be found
-	 * @since 3.1
-	 */
-	public static IEditorDescriptor getEditorDescriptor(String name,
-			boolean inferContentType) throws PartInitException {
-
-		if (name == null) {
-			throw new IllegalArgumentException();
-		}
-
-		IContentType contentType = inferContentType ? Platform
-				.getContentTypeManager().findContentTypeFor(name) : null;
-		IEditorRegistry editorReg = PlatformUI.getWorkbench()
-				.getEditorRegistry();
-
-		return getEditorDescriptor(name, editorReg, editorReg.getDefaultEditor(
-				name, contentType));
-	}
-
-	/**
-	 * Get the editor descriptor for a given name using the editorDescriptor
-	 * passed in as a default as a starting point.
-	 * 
-	 * @param name
-	 *            The name of the element to open.
-	 * @param editorReg
-	 *            The editor registry to do the lookups from.
-	 * @param defaultDescriptor
-	 *            IEditorDescriptor or <code>null</code>
-	 * @return IEditorDescriptor
-	 * @throws PartInitException
-	 *             if no valid editor can be found
-	 * 
-	 * @since 3.1
-	 */
-	private static IEditorDescriptor getEditorDescriptor(String name,
-			IEditorRegistry editorReg, IEditorDescriptor defaultDescriptor)
-			throws PartInitException {
-
-		if (defaultDescriptor != null) {
-			return defaultDescriptor;
-		}
-
-		IEditorDescriptor editorDesc = defaultDescriptor;
-
-		// next check the OS for in-place editor (OLE on Win32)
-		if (editorReg.isSystemInPlaceEditorAvailable(name)) {
-			editorDesc = editorReg
-					.findEditor(IEditorRegistry.SYSTEM_INPLACE_EDITOR_ID);
-		}
-
-		// next check with the OS for an external editor
-		if (editorDesc == null
-				&& editorReg.isSystemExternalEditorAvailable(name)) {
-			editorDesc = editorReg
-					.findEditor(IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID);
-		}
-
-		// next lookup the default text editor
-		if (editorDesc == null) {
-			editorDesc = editorReg
-					.findEditor(IDEWorkbenchPlugin.DEFAULT_TEXT_EDITOR_ID);
-		}
-
-		// if no valid editor found, bail out
-		if (editorDesc == null) {
-			throw new PartInitException(
-					IDEWorkbenchMessages.IDE_noFileEditorFound);
-		}
-
-		return editorDesc;
-	}
-
-	/**
-	 * Opens an editor on the file resource of the given marker.
-	 * <p>
-	 * If this page already has an editor open on the marker resource file that
-	 * editor is brought to front; otherwise, a new editor is opened.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 file will be used.
-	 * </p>
-	 * 
-	 * @param page
-	 *            the workbench page to open the editor in
-	 * @param marker
-	 *            the marker to open
-	 * @return an open editor or <code>null</code> not possible
-	 * @exception PartInitException
-	 *                if the editor could not be initialized
-	 * @see #openEditor(org.eclipse.ui.IWorkbenchPage,
-	 *      org.eclipse.core.resources.IMarker, boolean)
-	 */
-	public static IEditorPart openEditor(IWorkbenchPage page, IMarker marker)
-			throws PartInitException {
-		return openEditor(page, marker, true);
-	}
-
-	/**
-	 * Opens an editor on the file resource of the given marker.
-	 * <p>
-	 * If this page already has an editor open on the marker resource file 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 file will be used.
-	 * </p>
-	 * 
-	 * @param page
-	 *            the workbench page to open the editor in
-	 * @param marker
-	 *            the marker to open
-	 * @param activate
-	 *            if <code>true</code> the editor will be activated
-	 * @return an open editor or <code>null</code> not possible
-	 * @exception PartInitException
-	 *                if the editor could not be initialized
-	 */
-	public static IEditorPart openEditor(IWorkbenchPage page, IMarker marker,
-			boolean activate) throws PartInitException {
-		// sanity checks
-		if (page == null || marker == null) {
-			throw new IllegalArgumentException();
-		}
-
-		// get the marker resource file
-		if (!(marker.getResource() instanceof IFile)) {
-			IDEWorkbenchPlugin
-					.log("Open editor on marker failed; marker resource not an IFile"); //$NON-NLS-1$
-			return null;
-		}
-		IFile file = (IFile) marker.getResource();
-
-		// get the preferred editor id from the marker
-		IEditorRegistry editorReg = PlatformUI.getWorkbench()
-				.getEditorRegistry();
-		IEditorDescriptor editorDesc = null;
-		try {
-			String editorID = (String) marker.getAttribute(EDITOR_ID_ATTR);
-			if (editorID != null) {
-				editorDesc = editorReg.findEditor(editorID);
-			}
-		} catch (CoreException e) {
-			// ignore this
-		}
-
-		// open the editor on the marker resource file
-		IEditorPart editor = null;
-		if (editorDesc == null) {
-			editor = openEditor(page, file, activate);
-		} else {
-			editor = page.openEditor(new FileEditorInput(file), editorDesc
-					.getId(), activate);
-		}
-
-		// get the editor to update its position based on the marker
-		if (editor != null) {
-			gotoMarker(editor, marker);
-		}
-
-		return editor;
-	}
-
-	/**
-	 * Save all dirty editors in the workbench whose editor input is a child
-	 * resource of one of the <code>IResource</code>'s provided. Opens a
-	 * dialog to prompt the user if <code>confirm</code> is true. Return true
-	 * if successful. Return false if the user has cancelled the command.
-	 * 
-	 * @since 3.0
-	 * 
-	 * @param resourceRoots
-	 *            the resource roots under which editor input should be saved,
-	 *            other will be left dirty
-	 * @param confirm
-	 *            prompt the user if true
-	 * @return boolean false if the operation was cancelled.
-	 */
-	public static boolean saveAllEditors(IResource[] resourceRoots,
-			boolean confirm) {
-		final IResource[] finalResources = resourceRoots;
-		final boolean finalConfirm = confirm;
-		final boolean[] result = new boolean[1];
-		result[0] = true;
-
-		if (resourceRoots.length == 0) {
-			return result[0];
-		}
-
-		Platform.run(new SafeRunnable(IDEWorkbenchMessages.ErrorClosing) {
-			public void run() {
-				// Collect dirtyEditors
-				ArrayList dirtyEditors = new ArrayList();
-
-				IWorkbenchWindow[] windows = PlatformUI.getWorkbench()
-						.getWorkbenchWindows();
-				for (int i = 0; i < windows.length; i++) {
-					IWorkbenchWindow window = windows[i];
-					IWorkbenchPage[] pages = window.getPages();
-					for (int j = 0; j < pages.length; j++) {
-						IWorkbenchPage page = pages[j];
-						IEditorPart[] dirty = page.getDirtyEditors();
-						for (int k = 0; k < dirty.length; k++) {
-							IEditorPart part = dirty[k];
-							IFile file = ResourceUtil.getFile(part
-									.getEditorInput());
-							if (file != null) {
-								for (int l = 0; l < finalResources.length; l++) {
-									IResource resource = finalResources[l];
-									if (resource.getFullPath().isPrefixOf(
-											file.getFullPath())) {
-										dirtyEditors.add(part);
-										break;
-									}
-								}
-							}
-						}
-					}
-
-				}
-				if (dirtyEditors.size() > 0) {
-					IWorkbenchWindow w = Workbench.getInstance()
-							.getActiveWorkbenchWindow();
-					if (w == null) {
-						w = windows[0];
-					}
-					result[0] = EditorManager.saveAll(dirtyEditors,
-							finalConfirm, false, false, w);
-				}
-			}
-		});
-		return result[0];
-	}
-
-	/**
-	 * Sets the default editor id for a given file. This value will be used to
-	 * determine the default editor descriptor for the file in future calls to
-	 * <code>getDefaultEditor(IFile)</code>.
-	 * 
-	 * @param file
-	 *            the file
-	 * @param editorID
-	 *            the editor id
-	 */
-	public static void setDefaultEditor(IFile file, String editorID) {
-		try {
-			file.setPersistentProperty(EDITOR_KEY, editorID);
-		} catch (CoreException e) {
-			// do nothing
-		}
-	}
-
-	/**
-	 * Returns the default editor for a given file. This method will attempt to
-	 * resolve the editor based on content-type bindings as well as traditional
-	 * name/extension bindings.
-	 * <p>
-	 * A default editor id may be registered for a specific file using
-	 * <code>setDefaultEditor</code>. If the given file has a registered
-	 * default editor id the default editor will derived from it. If not, the
-	 * default editor is determined by taking the file name for the file and
-	 * obtaining the default editor for that name.
-	 * </p>
-	 * 
-	 * @param file
-	 *            the file
-	 * @return the descriptor of the default editor, or <code>null</code> if
-	 *         not found
-	 */
-	public static IEditorDescriptor getDefaultEditor(IFile file) {
-		return getDefaultEditor(file, true);
-	}
-
-	/**
-	 * Returns the default editor for a given file. This method will attempt to
-	 * resolve the editor based on content-type bindings as well as traditional
-	 * name/extension bindings if <code>determineContentType</code> is
-	 * <code>true</code>.
-	 * <p>
-	 * A default editor id may be registered for a specific file using
-	 * <code>setDefaultEditor</code>. If the given file has a registered
-	 * default editor id the default editor will derived from it. If not, the
-	 * default editor is determined by taking the file name for the file and
-	 * obtaining the default editor for that name.
-	 * </p>
-	 * 
-	 * @param file
-	 *            the file
-	 * @param determineContentType
-	 *            determine the content type for the given file
-	 * @return the descriptor of the default editor, or <code>null</code> if
-	 *         not found
-	 * @since 3.1
-	 */
-	public static IEditorDescriptor getDefaultEditor(IFile file,
-			boolean determineContentType) {
-		// Try file specific editor.
-		IEditorRegistry editorReg = PlatformUI.getWorkbench()
-				.getEditorRegistry();
-		try {
-			String editorID = file.getPersistentProperty(EDITOR_KEY);
-			if (editorID != null) {
-				IEditorDescriptor desc = editorReg.findEditor(editorID);
-				if (desc != null) {
-					return desc;
-				}
-			}
-		} catch (CoreException e) {
-			// do nothing
-		}
-
-		IContentType contentType = null;
-		if (determineContentType) {
-			contentType = getContentType(file);
-		}
-		// Try lookup with filename
-		return editorReg.getDefaultEditor(file.getName(), contentType);
-	}
-
-	/**
-	 * Extracts and returns the <code>IResource</code>s in the given
-	 * selection or the resource objects they adapts to.
-	 * 
-	 * @param originalSelection
-	 *            the original selection, possibly empty
-	 * @return list of resources (element type: <code>IResource</code>),
-	 *         possibly empty
-	 */
-	public static List computeSelectedResources(
-			IStructuredSelection originalSelection) {
-		List resources = null;
-		for (Iterator e = originalSelection.iterator(); e.hasNext();) {
-			Object next = e.next();
-			Object resource = null;
-			if (next instanceof IResource) {
-				resource = next;
-			} else if (next instanceof IAdaptable) {
-				resource = ((IAdaptable) next).getAdapter(IResource.class);
-			}
-			if (resource != null) {
-				if (resources == null) {
-					// lazy init to avoid creating empty lists
-					// assume selection contains mostly resources most times
-					resources = new ArrayList(originalSelection.size());
-				}
-				resources.add(resource);
-			}
-		}
-		if (resources == null) {
-			return Collections.EMPTY_LIST;
-		}
-		return resources;
-
-	}
-
-	/**
-	 * Return the content type for the given file.
-	 * 
-	 * @param file
-	 *            the file to test
-	 * @return the content type, or <code>null</code> if it cannot be
-	 *         determined.
-	 * @since 3.1
-	 */
-	public static IContentType getContentType(IFile file) {
-		try {
-			UIStats.start(UIStats.CONTENT_TYPE_LOOKUP, file.getName());
-			IContentDescription contentDescription = file
-					.getContentDescription();
-			if (contentDescription == null) {
-				return null;
-			}
-			return contentDescription.getContentType();
-		} catch (CoreException e) {
-			return null;
-		} finally {
-			UIStats.end(UIStats.CONTENT_TYPE_LOOKUP, file, file.getName());
-		}
-	}
-
-	/**
-	 * Guess at the content type of the given file based on the filename.
-	 * 
-	 * @param file
-	 *            the file to test
-	 * @return the content type, or <code>null</code> if it cannot be
-	 *         determined.
-	 * @since 3.2
-	 */
-	public static IContentType guessContentType(IFile file) {
-		String fileName = file.getName();
-		try {
-			UIStats.start(UIStats.CONTENT_TYPE_LOOKUP, fileName);
-			IContentTypeMatcher matcher = file.getProject()
-					.getContentTypeMatcher();
-			return matcher.findContentTypeFor(fileName);
-		} catch (CoreException e) {
-			return null;
-		} finally {
-			UIStats.end(UIStats.CONTENT_TYPE_LOOKUP, file, fileName);
-		}
-	}
-
-	/**
-	 * Prompt the user to inform them of the possible side effects of an
-	 * operation on resources. Do not prompt for side effects from ignored model
-	 * providers. A model provider can be ignored if it is the client calling
-	 * this API. Any message from the provided model provider id or any model
-	 * providers it extends will be ignored.
-	 * 
-	 * @param shell
-	 *            the shell to parent the prompt dialog
-	 * @param title
-	 *            the title of the dialog
-	 * @param message
-	 *            the message for the dialog
-	 * @param delta
-	 *            a delta built using an
-	 *            {@link IResourceChangeDescriptionFactory}
-	 * @param ignoreModelProviderIds
-	 *            model providers to be ignored
-	 * @param syncExec
-	 *            prompt in a sync exec (required when called from a non-UI
-	 *            thread)
-	 * @return whether the user chose to continue
-	 * @since 3.2
-	 */
-	public static boolean promptToConfirm(final Shell shell,
-			final String title, String message, IResourceDelta delta,
-			String[] ignoreModelProviderIds, boolean syncExec) {
-		IStatus status = ResourceChangeValidator.getValidator().validateChange(
-				delta, null);
-		if (status.isOK()) {
-			return true;
-		}
-		final IStatus displayStatus;
-		if (status.isMultiStatus()) {
-			List result = new ArrayList();
-			IStatus[] children = status.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				IStatus child = children[i];
-				if (!isIgnoredStatus(child, ignoreModelProviderIds)) {
-					result.add(child);
-				}
-			}
-			if (result.isEmpty()) {
-				return true;
-			}
-			if (result.size() == 1) {
-				displayStatus = (IStatus) result.get(0);
-			} else {
-				displayStatus = new MultiStatus(status.getPlugin(), status
-						.getCode(), (IStatus[]) result
-						.toArray(new IStatus[result.size()]), status
-						.getMessage(), status.getException());
-			}
-		} else {
-			if (isIgnoredStatus(status, ignoreModelProviderIds)) {
-				return true;
-			}
-			displayStatus = status;
-		}
-
-		if (message == null) {
-			message = IDEWorkbenchMessages.IDE_sideEffectWarning;
-		}
-		final String dialogMessage = NLS.bind(
-				IDEWorkbenchMessages.IDE_areYouSure, message);
-
-		final boolean[] result = new boolean[] { false };
-		Runnable runnable = new Runnable() {
-			public void run() {
-				ErrorDialog dialog = new ErrorDialog(shell, title,
-						dialogMessage, displayStatus, IStatus.ERROR
-								| IStatus.WARNING | IStatus.INFO) {
-					protected void createButtonsForButtonBar(Composite parent) {
-						createButton(parent, IDialogConstants.YES_ID,
-								IDialogConstants.YES_LABEL, false);
-						createButton(parent, IDialogConstants.NO_ID,
-								IDialogConstants.NO_LABEL, true);
-						createDetailsButton(parent);
-					}
-
-					/*
-					 * (non-Javadoc)
-					 * 
-					 * @see org.eclipse.jface.dialogs.ErrorDialog#buttonPressed(int)
-					 */
-					protected void buttonPressed(int id) {
-						if (id == IDialogConstants.YES_ID) {
-							super.buttonPressed(IDialogConstants.OK_ID);
-						} else if (id == IDialogConstants.NO_ID) {
-							super.buttonPressed(IDialogConstants.CANCEL_ID);
-						}
-						super.buttonPressed(id);
-					}
-				};
-				int code = dialog.open();
-				result[0] = code == 0;
-			}
-		};
-		if (syncExec) {
-			shell.getDisplay().syncExec(runnable);
-		} else {
-			runnable.run();
-		}
-		return result[0];
-	}
-
-	private static boolean isIgnoredStatus(IStatus status,
-			String[] ignoreModelProviderIds) {
-		if (ignoreModelProviderIds == null) {
-			return false;
-		}
-		if (status instanceof ModelStatus) {
-			ModelStatus ms = (ModelStatus) status;
-			for (int i = 0; i < ignoreModelProviderIds.length; i++) {
-				String id = ignoreModelProviderIds[i];
-				if (ms.getModelProviderId().equals(id)) {
-					return true;
-				}
-				IModelProviderDescriptor desc = ModelProvider
-						.getModelProviderDescriptor(id);
-				String[] extended = desc.getExtendedModels();
-				if (isIgnoredStatus(status, extended)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDEActionFactory.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDEActionFactory.java
deleted file mode 100644
index 3b92a06..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDEActionFactory.java
+++ /dev/null
@@ -1,370 +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.ide;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.GlobalBuildAction;
-import org.eclipse.ui.actions.NewWizardDropDownAction;
-import org.eclipse.ui.actions.NewWizardMenu;
-import org.eclipse.ui.actions.QuickStartAction;
-import org.eclipse.ui.actions.RetargetAction;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.TipsAndTricksAction;
-import org.eclipse.ui.internal.ide.actions.BuildCleanAction;
-import org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction;
-import org.eclipse.ui.internal.ide.actions.ProjectPropertyDialogAction;
-import org.eclipse.ui.internal.ide.actions.RetargetActionWithDefault;
-import org.eclipse.ui.internal.ide.actions.ToggleAutoBuildAction;
-
-/**
- * Access to standard actions provided by the IDE workbench (including
- * those of the generic workbench).
- * <p>
- * The functionality of this class is provided by static fields.
- * Example usage:
- * <pre>
- * MenuManager menu = ...;
- * ActionFactory.IWorkbenchAction closeProjectAction
- * 	  = IDEActionFactory.CLOSE_PROJECT.create(window);
- * menu.add(closeProjectAction);
- * </pre>
- * </p>
- * 
- * @since 3.0
- */
-public final class IDEActionFactory {
-
-    /**
-     * Prevents instantiation.
-     */
-    private IDEActionFactory() {
-        // do nothing
-    }
-
-    /**
-     * IDE-specific workbench action: Add task.
-     * This action is a {@link RetargetAction} with 
-     * id "addTask". This action maintains its enablement state.
-     */
-    public static final ActionFactory ADD_TASK = new ActionFactory("addTask") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            RetargetAction action = new RetargetAction(getId(), IDEWorkbenchMessages.Workbench_addTask);
-            action.setToolTipText(IDEWorkbenchMessages.Workbench_addTaskToolTip);
-            window.getPartService().addPartListener(action);
-            action.setActionDefinitionId("org.eclipse.ui.edit.addTask"); //$NON-NLS-1$
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Add bookmark.
-     * This action is a {@link RetargetAction} with 
-     * id "bookmark". This action maintains its enablement state.
-     */
-    public static final ActionFactory BOOKMARK = new ActionFactory("bookmark") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            RetargetAction action = new RetargetAction(getId(), IDEWorkbenchMessages.Workbench_addBookmark);
-            action.setToolTipText(IDEWorkbenchMessages.Workbench_addBookmarkToolTip);
-            window.getPartService().addPartListener(action);
-            action.setActionDefinitionId("org.eclipse.ui.edit.addBookmark"); //$NON-NLS-1$
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Incremental build.
-     * This action maintains its enablement state.
-     */
-    public static final ActionFactory BUILD = new ActionFactory("build") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            return new GlobalBuildAction(window,
-                    IncrementalProjectBuilder.INCREMENTAL_BUILD);
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Build clean
-     * This action maintains its enablement state.
-     * @since 3.0
-     */
-    public static final ActionFactory BUILD_CLEAN = new ActionFactory(
-            "buildClean") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            IWorkbenchAction action = new BuildCleanAction(window);
-            action.setId(getId());
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Build automatically
-     * This action maintains its enablement state.
-     * @since 3.0
-     */
-    public static final ActionFactory BUILD_AUTOMATICALLY = new ActionFactory(
-            "buildAutomatically") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            IWorkbenchAction action = new ToggleAutoBuildAction(window);
-            action.setId(getId());
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Incremental build.
-     * This action is a {@link RetargetAction} with 
-     * id "buildProject". This action maintains its enablement state.
-     */
-    public static final ActionFactory BUILD_PROJECT = new ActionFactory(
-            "buildProject") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            RetargetAction action = new RetargetActionWithDefault(getId(),
-                    IDEWorkbenchMessages.Workbench_buildProject);
-            action.setToolTipText(IDEWorkbenchMessages.Workbench_buildProjectToolTip);
-            window.getPartService().addPartListener(action);
-            action.setActionDefinitionId("org.eclipse.ui.project.buildProject"); //$NON-NLS-1$
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Close project.
-     * This action is a {@link RetargetAction} with 
-     * id "closeProject". This action maintains its enablement state.
-     */
-    public static final ActionFactory CLOSE_PROJECT = new ActionFactory(
-            "closeProject") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            RetargetAction action = new RetargetAction(getId(), IDEWorkbenchMessages.CloseResourceAction_text);
-            action.setToolTipText(IDEWorkbenchMessages.CloseResourceAction_text);
-            window.getPartService().addPartListener(action);
-            action.setActionDefinitionId("org.eclipse.ui.project.closeProject"); //$NON-NLS-1$
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Close unrelated projects.
-     * <p>
-     * This action closes all projects that are unrelated to the selected projects. A
-     * project is unrelated if it is not directly or transitively referenced by one 
-     * of the selected projects, and does not directly or transitively reference
-     * one of the selected projects.
-     * </p>
-     * This action is a {@link RetargetAction} with 
-     * id "closeUnrelatedProjects". This action maintains its enablement state.
-     * @see IProject#getReferencedProjects()
-     * @see IProject#getReferencingProjects()
-     * @see IProject#close(org.eclipse.core.runtime.IProgressMonitor)
-     * @since 3.2
-     */
-    public static final ActionFactory CLOSE_UNRELATED_PROJECTS = new ActionFactory(
-            "closeUnrelatedProjects") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            RetargetAction action = new RetargetAction(getId(), IDEWorkbenchMessages.CloseUnrelatedProjectsAction_text);
-            action.setToolTipText(IDEWorkbenchMessages.CloseUnrelatedProjectsAction_toolTip);
-            window.getPartService().addPartListener(action);
-            action.setActionDefinitionId("org.eclipse.ui.project.closeUnrelatedProjects"); //$NON-NLS-1$
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Opens the "new" wizard drop down, including
-     * resource-specific items for Project... and Example...
-     * This action maintains its enablement state.
-     */
-    public static final ActionFactory NEW_WIZARD_DROP_DOWN = new ActionFactory(
-            "newWizardDropDown") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            // @issue we are creating a NEW action just to pass to NewWizardDropDownAction
-            IWorkbenchAction innerAction = ActionFactory.NEW.create(window);
-            NewWizardMenu newWizardMenu = new NewWizardMenu(window);
-            IWorkbenchAction action = new NewWizardDropDownAction(window,
-                    innerAction, newWizardMenu);
-            action.setId(getId());
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Open project.
-     * This action is a {@link RetargetAction} with 
-     * id "openProject". This action maintains its enablement state.
-     */
-    public static final ActionFactory OPEN_PROJECT = new ActionFactory(
-            "openProject") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            RetargetAction action = new RetargetAction(getId(), IDEWorkbenchMessages.OpenResourceAction_text);
-            action.setToolTipText(IDEWorkbenchMessages.OpenResourceAction_toolTip);
-            window.getPartService().addPartListener(action);
-            action.setActionDefinitionId("org.eclipse.ui.project.openProject"); //$NON-NLS-1$
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Open workspace.
-     * This action maintains its enablement state.
-     */
-    public static final ActionFactory OPEN_WORKSPACE = new ActionFactory(
-            "openWorkspace") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            IWorkbenchAction action = new OpenWorkspaceAction(window);
-            action.setId(getId());
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Open project properties.
-     * This action maintains its enablement state.
-     */
-    public static final ActionFactory OPEN_PROJECT_PROPERTIES = new ActionFactory(
-            "projectProperties") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            IWorkbenchAction action = new ProjectPropertyDialogAction(window);
-            action.setId(getId());
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Quick start.
-     * This action maintains its enablement state.
-     * 
-     * @deprecated the IDE now uses the new intro mechanism
-     */
-    public static final ActionFactory QUICK_START = new ActionFactory(
-            "quickStart") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            IWorkbenchAction action = new QuickStartAction(window);
-            action.setId(getId());
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Full build.
-     * This action maintains its enablement state.
-     * 
-     * @deprecated as of 3.0, this action no longer appears in the UI (was deprecated in 3.1)
-     */
-    public static final ActionFactory REBUILD_ALL = new ActionFactory(
-            "rebuildAll") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            IWorkbenchAction action = new GlobalBuildAction(window,
-                    IncrementalProjectBuilder.FULL_BUILD);
-            action.setId(getId());
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Rebuild project.
-     * This action is a {@link RetargetAction} with 
-     * id "rebuildProject". This action maintains its enablement state.
-     * 
-     * @deprecated as of 3.0, this action no longer appears in the UI (was deprecated in 3.1)
-     */
-    public static final ActionFactory REBUILD_PROJECT = new ActionFactory(
-            "rebuildProject") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            RetargetAction action = new RetargetAction(getId(), IDEWorkbenchMessages.Workbench_rebuildProject);
-            action.setToolTipText(IDEWorkbenchMessages.Workbench_rebuildProjectToolTip);
-            window.getPartService().addPartListener(action);
-            action
-                    .setActionDefinitionId("org.eclipse.ui.project.rebuildProject"); //$NON-NLS-1$
-            return action;
-        }
-    };
-
-    /**
-     * IDE-specific workbench action: Tips and tricks.
-     * This action maintains its enablement state.
-     */
-    public static final ActionFactory TIPS_AND_TRICKS = new ActionFactory(
-            "tipsAndTricks") { //$NON-NLS-1$
-        /* (non-javadoc) method declared on ActionFactory */
-        public IWorkbenchAction create(IWorkbenchWindow window) {
-            if (window == null) {
-                throw new IllegalArgumentException();
-            }
-            IWorkbenchAction action = new TipsAndTricksAction(window);
-            action.setId(getId());
-            return action;
-        }
-    };
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDEEncoding.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDEEncoding.java
deleted file mode 100644
index fe9a262..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDEEncoding.java
+++ /dev/null
@@ -1,234 +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.ide;
-
-import java.nio.charset.Charset;
-import java.nio.charset.IllegalCharsetNameException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.WorkbenchEncoding;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * IDEEncoding is a utility class for managing encoding information that
- * includes user preferences from the IDE and core resources.
- * <p>
- * This class provides all its functionality via static methods.
- * It is not intended to be instantiated or subclassed.
- * </p>
- * 
- * @see org.eclipse.ui.WorkbenchEncoding
- * @see org.eclipse.core.resources.ResourcesPlugin
- * @since 3.1
- */
-public final class IDEEncoding {
-	
-	private IDEEncoding () {
-        // prevent instantiation
-	}
-
-	//The preference for the user entered encodings.
-	private static String IDE_ENCODINGS_PREFERENCE = "IDE_ENCODINGS_PREFERENCE"; //$NON-NLS-1$
-
-	private static String PREFERENCE_SEPARATOR = "'"; //$NON-NLS-1$
-
-	/**
-	 * Display constant for the UTF 8 byte order marker for resources.
-	 */
-	public static String BOM_UTF_8 = "UTF-8 (BOM)";//$NON-NLS-1$
-
-	/**
-	 * Display constant for the UTF 16 big endian byte order marker for
-	 * resources.
-	 */
-	public static String BOM_UTF_16BE = "UTF-16 Big-Endian (BOM)";//$NON-NLS-1$
-
-	/**
-	 * Display constant for the UTF 16 little endian byte order marker for
-	 * resources.
-	 */
-	public static String BOM_UTF_16LE = "UTF-16 Little-Endian (BOM)";//$NON-NLS-1$
-
-	/**
-	 * Get all of the available encodings including any that were saved as a
-	 * preference in the IDE or in core resources.
-	 * 
-	 * @return List of String
-	 */
-	public static List getIDEEncodings() {
-		List encodings = getIDEEncodingsPreference();
-		encodings.addAll(WorkbenchEncoding.getDefinedEncodings());
-
-		String enc = getResourceEncoding();
-
-		if (!(enc == null || encodings.contains(enc))) {
-			encodings.add(enc);
-		}
-
-		Collections.sort(encodings);
-		return encodings;
-	}
-
-	/**
-	 * Get the current value of the encoding preference. If the value is not set
-	 * return <code>null</code>.
-	 * 
-	 * @return String
-	 */
-	public static String getResourceEncoding() {
-		String preference = ResourcesPlugin.getPlugin().getPluginPreferences().getString(
-				ResourcesPlugin.PREF_ENCODING);
-		if (preference == null || preference.length() == 0) {
-			return null;
-		}
-		return preference;
-	}
-
-	/**
-	 * Add value to the list of workbench encodings.
-	 * 
-	 * @param value
-	 */
-	public static void addIDEEncoding(String value) {
-
-		if (WorkbenchEncoding.getDefinedEncodings().contains(value)) {
-			return;
-		}
-
-		writeEncodingsPreference(value, getIDEEncodingsPreference());
-
-	}
-
-	/**
-	 * Write the encodings preference. If value is not null
-	 * and not already in the list of currentEncodings add
-	 * it to the list.
-	 * @param value String or <code>null</code>
-	 * @param encodings The list of encodings to write
-	 */
-	private static void writeEncodingsPreference(String value, Collection encodings) {
-		boolean addValue = (value != null);
-
-		StringBuffer result = new StringBuffer();
-
-		Iterator currentEncodings = encodings.iterator();
-
-		while (currentEncodings.hasNext()) {
-			String string = (String) currentEncodings.next();
-			result.append(string);
-			result.append(PREFERENCE_SEPARATOR);
-			if (addValue && string.equals(value)) {
-				addValue = false;
-			}
-		}
-
-		if (addValue) {
-			result.append(value);
-		}
-
-		IDEWorkbenchPlugin.getDefault().getPreferenceStore().setValue(IDE_ENCODINGS_PREFERENCE,
-				result.toString());
-	}
-
-	/**
-	 * Get the value of the encodings preference.
-	 * 
-	 * @return List
-	 */
-	private static List getIDEEncodingsPreference() {
-		
-		boolean updateRequired = false;
-		
-		String encodings = IDEWorkbenchPlugin.getDefault().getPreferenceStore().getString(
-				IDE_ENCODINGS_PREFERENCE);
-
-		if (encodings == null || encodings.length() == 0) {
-			return new ArrayList();
-		}
-
-		String[] preferenceEncodings = encodings.split(PREFERENCE_SEPARATOR);
-		ArrayList result = new ArrayList();
-
-		//Drop any encodings that are not valid
-		for (int i = 0; i < preferenceEncodings.length; i++) {
-			String string = preferenceEncodings[i];
-			boolean isSupported;
-			try {
-				isSupported = Charset.isSupported(string);
-			} catch (IllegalCharsetNameException e) {
-				isSupported = false;
-			}
-			if (isSupported) {
-				result.add(string);
-			} else{
-				WorkbenchPlugin.log(NLS.bind(IDEWorkbenchMessages.WorkbenchEncoding_invalidCharset, string));
-				updateRequired = true;
-			}
-				
-		}
-		
-		if(updateRequired) {
-			writeEncodingsPreference(null, result);
-		}
-		return result;
-
-	}
-
-	/**
-	 * Clear the IDE encodings preference.
-	 */
-	public static void clearUserEncodings() {
-		IDEWorkbenchPlugin.getDefault().getPreferenceStore().setToDefault(IDE_ENCODINGS_PREFERENCE);
-	}
-
-	/**
-	 * Get the displayable string for the byte order marking from the supplied
-	 * file description.
-	 * 
-	 * @param description
-	 *            The description to query. May be <code>null</code>.
-	 * @return String or <code>null</code> if the byte order mark cannot be
-	 *         found or the description is <code>null</code>.
-	 * @see IContentDescription#getProperty(org.eclipse.core.runtime.QualifiedName)
-	 */
-	public static String getByteOrderMarkLabel(IContentDescription description) {
-
-		if (description == null) {
-			return null;
-		}
-
-		byte[] bom = (byte[]) description.getProperty(IContentDescription.BYTE_ORDER_MARK);
-		if (bom == null) {
-			return null;
-		}
-		if (bom == IContentDescription.BOM_UTF_8) {
-			return IDEEncoding.BOM_UTF_8;
-		}
-		if (bom == IContentDescription.BOM_UTF_16BE) {
-			return IDEEncoding.BOM_UTF_16BE;
-		}
-		if (bom == IContentDescription.BOM_UTF_16LE) {
-			return IDEEncoding.BOM_UTF_16LE;
-		}
-
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IGotoMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IGotoMarker.java
deleted file mode 100644
index 7ec50be..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IGotoMarker.java
+++ /dev/null
@@ -1,29 +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.ide;
-
-import org.eclipse.core.resources.IMarker;
-
-/**
- * An adapter interface for editors, which allows the editor
- * to reveal the position of a given marker.
- * 
- * @since 3.0
- */
-public interface IGotoMarker {
-    /**
-     * Sets the cursor and selection state for an editor to 
-     * reveal the position of the given marker.
-     *  
-     * @param marker the marker
-     */
-    public void gotoMarker(IMarker marker);
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IIDEActionConstants.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IIDEActionConstants.java
deleted file mode 100644
index 55d7fdb..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IIDEActionConstants.java
+++ /dev/null
@@ -1,280 +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.ide;
-
-/**
- * Identifiers for IDE menus, toolbars and groups.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * 
- * Note: want to move IDE-specific stuff out of IWorkbenchActionConstants.
- *   There's still some cleanup to be done here (and there).
- * 
- * @since 3.0
- */
-public interface IIDEActionConstants {
-
-    /**
-     * Name of standard File menu (value <code>"file"</code>).
-     */
-    public static final String M_FILE = "file"; //$NON-NLS-1$
-
-    /**
-     * Name of standard Edit menu (value <code>"edit"</code>).
-     */
-    public static final String M_EDIT = "edit"; //$NON-NLS-1$
-
-    /**
-     * Name of standard Navigate menu (value <code>"navigate"</code>).
-     */
-    public static final String M_NAVIGATE = "navigate"; //$NON-NLS-1$
-
-    /**
-     * Name of standard Project menu (value <code>"project"</code>).
-     */
-    public static final String M_PROJECT = "project"; //$NON-NLS-1$
-
-    /**
-     * Name of standard Window menu (value <code>"window"</code>).
-     */
-    public static final String M_WINDOW = "window"; //$NON-NLS-1$
-
-    /**
-     * Name of standard Help menu (value <code>"help"</code>).
-     */
-    public static final String M_HELP = "help"; //$NON-NLS-1$
-
-    /**
-     * File menu: name of group for start of menu (value <code>"fileStart"</code>).
-     */
-    public static final String FILE_START = "fileStart"; //$NON-NLS-1$
-
-    /**
-     * File menu: name of group for end of menu (value <code>"fileEnd"</code>).
-     */
-    public static final String FILE_END = "fileEnd"; //$NON-NLS-1$
-
-    /**
-     * File menu: name of group for extra New-like actions (value <code>"new.ext"</code>).
-     */
-    public static final String NEW_EXT = "new.ext"; //$NON-NLS-1$
-
-    /**
-     * File menu: name of group for extra Close-like actions (value <code>"close.ext"</code>).
-     */
-    public static final String CLOSE_EXT = "close.ext"; //$NON-NLS-1$
-
-    /**
-     * File menu: name of group for extra Save-like actions (value <code>"save.ext"</code>).
-     */
-    public static final String SAVE_EXT = "save.ext"; //$NON-NLS-1$
-
-    /**
-     * File menu: name of group for extra Print-like actions (value <code>"print.ext"</code>).
-     */
-    public static final String PRINT_EXT = "print.ext"; //$NON-NLS-1$
-
-    /**
-     * File menu: name of group for extra Import-like actions (value <code>"import.ext"</code>).
-     */
-    public static final String IMPORT_EXT = "import.ext"; //$NON-NLS-1$
-
-    /**
-     * File menu: name of "Most Recently Used File" group.
-     * (value <code>"mru"</code>).
-     */
-    public static final String MRU = "mru"; //$NON-NLS-1$
-
-    /**
-     * Edit menu: name of group for start of menu (value <code>"editStart"</code>).
-     */
-    public static final String EDIT_START = "editStart"; //$NON-NLS-1$
-
-    /**
-     * Edit menu: name of group for end of menu (value <code>"editEnd"</code>).
-     */
-    public static final String EDIT_END = "editEnd"; //$NON-NLS-1$
-
-    /**
-     * Edit menu: name of group for extra Undo-like actions (value <code>"undo.ext"</code>).
-     */
-    public static final String UNDO_EXT = "undo.ext"; //$NON-NLS-1$
-
-    /**
-     * Edit menu: name of group for extra Cut-like actions (value <code>"cut.ext"</code>).
-     */
-    public static final String CUT_EXT = "cut.ext"; //$NON-NLS-1$
-
-    /**
-     * Edit menu: name of group for extra Find-like actions (value <code>"find.ext"</code>).
-     * <p>Note: The value of this constant has changed in 3.3 to match the specification;
-     * before 3.3, its value was incorrect (<code>"cut.ext"</code>).  See bug 155856 for details.</p>
-     */
-    public static final String FIND_EXT = "find.ext"; //$NON-NLS-1$
-
-    /**
-     * Edit menu: name of group for extra Add-like actions (value <code>"add.ext"</code>).
-     */
-    public static final String ADD_EXT = "add.ext"; //$NON-NLS-1$
-
-    /**
-     * Workbench menu: name of group for extra Build-like actions
-     * (value <code>"build.ext"</code>).
-     */
-    public static final String BUILD_EXT = "build.ext"; //$NON-NLS-1$
-
-    /**
-     * Workbench toolbar id for file toolbar group.
-     * 
-     * @since 2.1
-     */
-    public static final String TOOLBAR_FILE = "org.eclipse.ui.workbench.file"; //$NON-NLS-1$
-
-    /**
-     * Workbench toolbar id for navigate toolbar group.
-     * 
-     * @since 2.1
-     */
-    public static final String TOOLBAR_NAVIGATE = "org.eclipse.ui.workbench.navigate"; //$NON-NLS-1$
-
-    // Workbench toolbar group ids.  To add an item at the beginning of the group, 
-    // use the GROUP id.  To add an item at the end of the group, use the EXT id.
-
-    /**
-     * Group id for pin toolbar group.
-     * 
-     * @since 2.1
-     */
-    public static final String PIN_GROUP = "pin.group"; //$NON-NLS-1$
-
-    /**
-     * Group ids for history toolbar group.
-     * 
-     * @since 2.1
-     */
-    public static final String HISTORY_GROUP = "history.group"; //$NON-NLS-1$
-
-    /**
-     * Group ids for new toolbar group.
-     * 
-     * @since 2.1
-     */
-    public static final String NEW_GROUP = "new.group"; //$NON-NLS-1$
-
-    /**
-     * Group ids for save toolbar group.
-     * 
-     * @since 2.1
-     */
-    public static final String SAVE_GROUP = "save.group"; //$NON-NLS-1$
-
-    /**
-     * Group ids for build toolbar group.
-     * 
-     * @since 2.1
-     */
-    public static final String BUILD_GROUP = "build.group"; //$NON-NLS-1$
-
-    // Pop-up menu groups:
-    /**
-     * Pop-up menu: name of group for Add actions (value <code>"group.add"</code>).
-     */
-    public static final String GROUP_ADD = "group.add"; //$NON-NLS-1$
-
-    /**
-     * Pop-up menu and cool bar: name of group for File actions (value <code>"group.file"</code>).
-     */
-    public static final String GROUP_FILE = "group.file"; //$NON-NLS-1$
-
-    /**
-     * Coolbar: name of group for Navigate actions (value <code>"group.nav"</code>).
-     */
-    public static final String GROUP_NAV = "group.nav"; //$NON-NLS-1$
-
-    /**
-     * Pop-up menu: name of group for Show In actions (value <code>"group.showIn"</code>).
-     * 
-     * @since 2.1
-     */
-    public static final String GROUP_SHOW_IN = "group.showIn"; //$NON-NLS-1$
-
-    /**
-     * Navigate menu: name of group for start of menu
-     * (value <code>"navStart"</code>).
-     */
-    public static final String NAV_START = "navStart"; //$NON-NLS-1$
-
-    /**
-     * Navigate menu: name of group for end of menu
-     * (value <code>"navEnd"</code>).
-     */
-    public static final String NAV_END = "navEnd"; //$NON-NLS-1$
-
-    /**
-     * Navigate menu: name of group for extra Open actions
-     * (value <code>"open.ext"</code>).
-     */
-    public static final String OPEN_EXT = "open.ext"; //$NON-NLS-1$
-
-    /**
-     * Navigate menu: name of group for extra Show actions
-     * (value <code>"show.ext"</code>).
-     */
-    public static final String SHOW_EXT = "show.ext"; //$NON-NLS-1$
-
-    /**
-     * Navigate menu: name of standard Go Into global action
-     * (value <code>"goInto"</code>).
-     */
-    public static final String GO_INTO = "goInto"; // Global action. //$NON-NLS-1$
-
-    /**
-     * Navigate menu: name of standard Go To submenu
-     * (value <code>"goTo"</code>).
-     */
-    public static final String GO_TO = "goTo"; //$NON-NLS-1$
-
-    /**
-     * Navigate menu: name of standard Go To Resource global action
-     * (value <code>"goToResource"</code>).
-     * 
-     * Note:should be in an action factory
-     */
-    public static final String GO_TO_RESOURCE = "goToResource"; // Global action. //$NON-NLS-1$
-
-    /**
-     * Project menu: name of group for start of menu
-     * (value <code>"projStart"</code>).
-     */
-    public static final String PROJ_START = "projStart"; //$NON-NLS-1$
-
-    /**
-     * Project menu: name of group for start of menu
-     * (value <code>"projEnd"</code>).
-     */
-    public static final String PROJ_END = "projEnd"; //$NON-NLS-1$
-
-    /**
-     * Help menu: name of group for start of menu
-     * (value <code>"helpStart"</code>).
-     */
-    public static final String HELP_START = "helpStart"; //$NON-NLS-1$
-
-    /**
-     * Help menu: name of group for end of menu
-     * (value <code>"helpEnd"</code>).
-     */
-    public static final String HELP_END = "helpEnd"; //$NON-NLS-1$
-
-}
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/ResourceUtil.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/ResourceUtil.java
deleted file mode 100644
index a06ff71..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/ResourceUtil.java
+++ /dev/null
@@ -1,267 +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.ide;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-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.Platform;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.part.FileEditorInput;
-
-/**
- * Utility class for manipulating resources and determining correspondences 
- * between resources and workbench objects.
- * <p>
- * This class provides all its functionality via static methods.
- * It is not intended to be instantiated or subclassed.
- * </p>
- *
- * @since 3.1
- */
-public final class ResourceUtil {
-
-    private ResourceUtil() {
-        // prevent instantiation
-    }
-
-    /**
-     * Returns the file corresponding to the given editor input, or <code>null</code>
-     * if there is no applicable file.  
-     * Returns <code>null</code> if the given editor input is <code>null</code>.
-     * 
-     * @param editorInput the editor input, or <code>null</code>
-     * @return the file corresponding to the editor input, or <code>null</code>
-     */
-    public static IFile getFile(IEditorInput editorInput) {
-		if (editorInput == null) {
-			return null;
-		}
-        // Note: do not treat IFileEditorInput as a special case.  Use the adapter mechanism instead.
-        // See Bug 87288 [IDE] [EditorMgmt] Should avoid explicit checks for [I]FileEditorInput
-        Object o = editorInput.getAdapter(IFile.class);
-        if (o instanceof IFile) {
-			return (IFile) o;
-		}
-        return null;
-    }
-
-    /**
-     * Returns the resource corresponding to the given editor input, or <code>null</code>
-     * if there is no applicable resource.
-     * Returns <code>null</code> if the given editor input is <code>null</code>.
-     * 
-     * @param editorInput the editor input
-     * @return the file corresponding to the editor input, or <code>null</code>
-     */
-    public static IResource getResource(IEditorInput editorInput) {
-		if (editorInput == null) {
-			return null;
-		}
-        // Note: do not treat IFileEditorInput as a special case.  Use the adapter mechanism instead.
-        // See Bug 87288 [IDE] [EditorMgmt] Should avoid explicit checks for [I]FileEditorInput
-        Object o = editorInput.getAdapter(IResource.class);
-        if (o instanceof IResource) {
-			return (IResource) o;
-		}
-        // the input may adapt to IFile but not IResource
-        return getFile(editorInput);
-    }
-
-    /**
-     * Returns the editor in the given page whose input represents the given file,
-     * or <code>null</code> if there is no such editor.
-     * 
-     * @param page the workbench page
-     * @param file the file
-     * @return the matching editor, or <code>null</code>
-     */
-    public static IEditorPart findEditor(IWorkbenchPage page, IFile file) {
-        // handle the common case where the editor input is a FileEditorInput
-        IEditorPart editor = page.findEditor(new FileEditorInput(file));
-        if (editor != null) {
-            return editor;
-        }
-        // check for editors that have their own kind of input that adapts to IFile,
-        // being careful not to force loading of the editor
-        IEditorReference[] refs = page.getEditorReferences();
-        for (int i = 0; i < refs.length; i++) {
-            IEditorReference ref = refs[i];
-            IEditorPart part = ref.getEditor(false);
-            if (part != null) {
-                IFile editorFile = getFile(part.getEditorInput());
-                if (editorFile != null && file.equals(editorFile)) {
-                    return part;
-                }
-            }
-        }
-        return null;
-    }
-    
-    /**
-     * Returns the resource corresponding to the given model element, or <code>null</code>
-     * if there is no applicable resource.
-     * 
-     * @param element the model element, or <code>null</code>
-     * @return the resource corresponding to the model element, or <code>null</code>
-     * @since 3.2
-     */
-    public static IResource getResource(Object element) {
-		if (element == null) {
-			return null;
-		}
-		if (element instanceof IResource) {
-			return (IResource) element;
-		}
-		return (IResource) getAdapter(element, IResource.class, true);
-    }
-
-    /**
-     * Returns the file corresponding to the given model element, or <code>null</code>
-     * if there is no applicable file.
-     * 
-     * @param element the model element, or <code>null</code>
-     * @return the resource corresponding to the model element, or <code>null</code>
-     * @since 3.2
-     */
-    public static IFile getFile(Object element) {
-		if (element == null) {
-			return null;
-		}
-		
-		// try direct instanceof check
-		if (element instanceof IFile) {
-			return (IFile) element;
-		}
-		
-		// try for ResourceMapping
-		ResourceMapping mapping = getResourceMapping(element);
-		if (mapping != null) {
-			return getFileFromResourceMapping(mapping);
-		}
-		
-		// try for IFile adapter (before IResource adapter, since it's more specific)
-		Object adapter = getAdapter(element, IFile.class, true);
-		if (adapter instanceof IFile) {
-			return (IFile) adapter;
-		}
-		
-		// try for IResource adapter
-		adapter = getAdapter(element, IResource.class, true);
-		if (adapter instanceof IFile) {
-			return (IFile) adapter;
-		}
-		return null;
-    }
-
-	/**
-     * Returns the resource mapping corresponding to the given model element, or <code>null</code>
-     * if there is no applicable resource mapping.
-     * 
-     * @param element the model element, or <code>null</code>
-     * @return the resource mapping corresponding to the model element, or <code>null</code>
-     * @since 3.2
-     */
-    public static ResourceMapping getResourceMapping(Object element) {
-		if (element == null) {
-			return null;
-		}
-		
-		// try direct instanceof check
-		if (element instanceof ResourceMapping) {
-			return (ResourceMapping) element;
-		}
-		
-		// try for ResourceMapping adapter
-		Object adapter = getAdapter(element, ResourceMapping.class, true);
-		if (adapter instanceof ResourceMapping) {
-			return (ResourceMapping) adapter;
-		}
-		return null;
-	}
-    
-    /**
-     * Tries to extra a single file from the given resource mapping.
-     * Returns the file if the mapping maps to a single file, or <code>null</code>
-     * if it maps to zero or multiple files.
-     * 
-     * @param mapping the resource mapping
-     * @return the file, or <code>null</code>
-     */
-    private static IFile getFileFromResourceMapping(ResourceMapping mapping) {
-    	IResource resource = getResourceFromResourceMapping(mapping);
-    	if (resource instanceof IFile) {
-    		return (IFile) resource;
-    	}
-    	return null;
-    }
-    
-    /**
-     * Tries to extra a single resource from the given resource mapping.
-     * Returns the resource if the mapping maps to a single resource, or <code>null</code>
-     * if it maps to zero or multiple resources.
-     * 
-     * @param mapping the resource mapping
-     * @return the resource, or <code>null</code>
-     */
-    private static IResource getResourceFromResourceMapping(ResourceMapping mapping) {
-		try {
-			ResourceTraversal[] traversals = mapping.getTraversals(null, null);
-	    	if (traversals.length != 1) {
-	    		return null;
-	    	}
-	    	ResourceTraversal traversal = traversals[0];
-	    	// TODO: need to honour traversal flags
-	    	IResource[] resources = traversal.getResources();
-	    	if (resources.length != 1) {
-	    		return null;
-	    	}
-	    	return resources[0];
-		} catch (CoreException e) {
-			IDEWorkbenchPlugin.log("Error in ResourceUtil.getFileFromResourceMapping", e); //$NON-NLS-1$
-			return null;
-		}
-	}
-
-
-	/**
-     * Returns the specified adapter for the given element, or <code>null</code>
-     * if no such adapter was found.
-     * 
-     * @param element the model element
-	 * @param adapterType the type of adapter to look up
-	 * @param forceLoad <code>true</code> to force loading of the plug-in providing the adapter, 
-	 *   <code>false</code> otherwise
-     * @return the adapter
-     * @since 3.2
-     */
-	public static Object getAdapter(Object element, Class adapterType, boolean forceLoad) {
-		if (element instanceof IAdaptable) {
-			IAdaptable adaptable = (IAdaptable) element;
-	        Object o = adaptable.getAdapter(adapterType);
-	        if (o != null) {
-	        	return o;
-	        }
-		}
-		if (forceLoad) {
-			return Platform.getAdapterManager().loadAdapter(element, adapterType.getName());
-		}
-		return Platform.getAdapterManager().getAdapter(element, adapterType);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/AbstractEncodingFieldEditor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/AbstractEncodingFieldEditor.java
deleted file mode 100644
index 44a295a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/AbstractEncodingFieldEditor.java
+++ /dev/null
@@ -1,360 +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.ide.dialogs;
-
-import java.nio.charset.Charset;
-import java.nio.charset.IllegalCharsetNameException;
-import java.util.List;
-
-import org.eclipse.jface.preference.FieldEditor;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.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.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.WorkbenchEncoding;
-import org.eclipse.ui.ide.IDEEncoding;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * The abstract superclass of field editors used to set an encoding. 
- * Any user entered encodings will be added to the list of encodings available via {@link org.eclipse.ui.ide.IDEEncoding}.
- * <p>
- * Subclasses may extend, but must call <code>createEncodingGroup</code> during <code>doFillIntoGrid</code>.
- * </p>
- * 
- * @see org.eclipse.ui.ide.IDEEncoding
- * @since 3.1
- */
-public abstract class AbstractEncodingFieldEditor extends FieldEditor {
-    
-	private Composite container;
-
-	private Button defaultEncodingButton;
-
-	private String defaultEnc;
-
-	private Button otherEncodingButton;
-
-	private Combo encodingCombo;
-
-	private boolean isValid = true;
-
-	private String oldSelectedEncoding;
-
-	/**
-	 * Creates a new encoding field editor with no settings set.
-	 */
-	protected AbstractEncodingFieldEditor() {
-		super();
-	}
-
-	/**
-	 * Creates a new encoding field editor with the given preference name, label and parent.
-     * 
-     * @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 AbstractEncodingFieldEditor(String name, String labelText, Composite parent) {
-		super(name, labelText, parent);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#adjustForNumColumns(int)
-	 */
-	protected void adjustForNumColumns(int numColumns) {
-		((GridData) getContainer().getLayoutData()).horizontalSpan = numColumns;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int)
-	 */
-	protected void doFillIntoGrid(Composite parent, int numColumns) {
-		container = createEncodingGroup(parent, numColumns);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doLoad()
-	 */
-	protected void doLoad() {
-		if (encodingCombo != null) {
-			List encodings = IDEEncoding.getIDEEncodings();
-			String resourcePreference = getStoredValue();
-			populateEncodingsCombo(encodings, resourcePreference);
-			updateEncodingState(resourcePreference == null);
-		}
-	}
-
-	/**
-	 * Returns the value that is currently stored for the encoding.
-     * 
-	 * @return the currently stored encoding
-	 */
-	protected abstract String getStoredValue();
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doLoadDefault()
-	 */
-	protected void doLoadDefault() {
-		updateEncodingState(true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#getNumberOfControls()
-	 */
-	public int getNumberOfControls() {
-		return 1;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#isValid()
-	 */
-	public boolean isValid() {
-		return isValid;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#refreshValidState()
-	 */
-	protected void refreshValidState() {
-		updateValidState();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#setPreferenceStore(org.eclipse.jface.preference.IPreferenceStore)
-	 */
-	public void setPreferenceStore(IPreferenceStore store) {
-		super.setPreferenceStore(store);
-		defaultEnc = store.getDefaultString(getPreferenceName());
-		updateDefaultEncoding();
-	}
-
-	private void updateDefaultEncoding() {
-		defaultEncodingButton.setText(defaultButtonText());
-	}
-
-	private Composite getContainer() {
-		return container;
-	}
-
-	/**
-	 * Creates a composite with all the encoding controls.
-     * <p>
-     * Subclasses may extend.
-     * </p>
-     * 
-	 * @param parent the parent widget
-	 * @param numColumns the number of columns in the parent
-	 * @return the group control
-	 */
-	protected Composite createEncodingGroup(Composite parent, int numColumns) {
-
-		Font font = parent.getFont();
-		Group group = new Group(parent, SWT.NONE);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		group.setLayoutData(data);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		group.setLayout(layout);
-		group.setText(IDEWorkbenchMessages.WorkbenchPreference_encoding);
-		group.setFont(font);
-
-		SelectionAdapter buttonListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateEncodingState(defaultEncodingButton.getSelection());
-				updateValidState();
-			}
-		};
-
-		defaultEncodingButton = new Button(group, SWT.RADIO);
-		defaultEnc = findDefaultEncoding();
-		defaultEncodingButton.setText(defaultButtonText()); 
-		data = new GridData();
-		data.horizontalSpan = 2;
-		defaultEncodingButton.setLayoutData(data);
-		defaultEncodingButton.addSelectionListener(buttonListener);
-		defaultEncodingButton.setFont(font);
-
-		otherEncodingButton = new Button(group, SWT.RADIO);
-		otherEncodingButton.setText(IDEWorkbenchMessages.WorkbenchPreference_otherEncoding);
-		otherEncodingButton.addSelectionListener(buttonListener);
-		otherEncodingButton.setFont(font);
-
-		encodingCombo = new Combo(group, SWT.NONE);
-		data = new GridData();
-		encodingCombo.setFont(font);
-		encodingCombo.setLayoutData(data);
-		encodingCombo.addSelectionListener(new SelectionAdapter(){
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				updateValidState();
-			}
-		});
-		encodingCombo.addKeyListener(new KeyAdapter(){
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt.events.KeyEvent)
-			 */
-			public void keyReleased(KeyEvent e) {
-				updateValidState();
-			}
-		});
-
-
-		return group;
-	}
-
-	/**
-	 * Returns the default encoding for the object being shown.
-     * 
-	 * @return the default encoding for the object being shown
-	 */
-	protected String findDefaultEncoding() {
-		return WorkbenchEncoding.getWorkbenchDefaultEncoding();
-	}
-
-	/**
-	 * Returns the text for the default encoding button.
-     * 
-	 * @return the text for the default encoding button 
-	 */
-	protected String defaultButtonText() {
-		return NLS.bind(IDEWorkbenchMessages.WorkbenchPreference_defaultEncoding, defaultEnc);
-	}
-
-	/**
-	 * Populates the encodings combo. Sets the text based on the
-	 * selected encoding. If there is no selected encoding, the text is set to the default encoding.
-     * 
-	 * @param encodings the list of encodings (list of String)
-	 * @param selectedEncoding the selected encoding, or <code>null</code>
-	 */
-	private void populateEncodingsCombo(List encodings, String selectedEncoding) {
-		String[] encodingStrings = new String[encodings.size()];
-		encodings.toArray(encodingStrings);
-		encodingCombo.setItems(encodingStrings);
-
-		if (selectedEncoding == null) {
-			encodingCombo.setText(getDefaultEnc());
-		} else {
-			encodingCombo.setText(selectedEncoding);
-		}
-	}
-
-	private void updateEncodingState(boolean useDefault) {
-		defaultEncodingButton.setSelection(useDefault);
-		otherEncodingButton.setSelection(!useDefault);
-		if(useDefault) {
-			encodingCombo.setText(getDefaultEnc());
-		}
-		encodingCombo.setEnabled(!useDefault);
-		updateValidState();
-	}
-
-	private void updateValidState() {
-		boolean isValidNow = isEncodingValid();
-		if (isValidNow != isValid) {
-			isValid = isValidNow;
-			if (isValid) {
-				clearErrorMessage();
-			} else {
-				showErrorMessage(IDEWorkbenchMessages.WorkbenchPreference_unsupportedEncoding);
-			}
-			fireStateChanged(IS_VALID, !isValid, isValid);
-
-			String newValue = getSelectedEncoding();
-			if (isValid && !newValue.equals(oldSelectedEncoding)) {
-				fireValueChanged(VALUE, oldSelectedEncoding, newValue);
-				oldSelectedEncoding = newValue;
-			}
-		}
-	}
-
-	/**
-	 * Returns the currently selected encoding.
-     * 
-	 * @return the currently selected encoding
-	 */
-	protected String getSelectedEncoding() {
-		if (defaultEncodingButton.getSelection()) {
-			return defaultEnc;
-		}
-		return encodingCombo.getText();
-	}
-
-	private boolean isEncodingValid() {
-		return defaultEncodingButton.getSelection() || isValidEncoding(encodingCombo.getText());
-	}
-
-	/**
-	 * Returns whether or not the given encoding is valid.
-     * 
-	 * @param enc the encoding to validate
-	 * @return <code>true</code> if the encoding is valid, <code>false</code> otherwise
-	 */
-	private boolean isValidEncoding(String enc) {
-		try {
-			return Charset.isSupported(enc);
-		} catch (IllegalCharsetNameException e) {
-			//This is a valid exception
-			return false;
-		}
-		
-	}
-
-	/**
-	 * Returns the default encoding.
-     * 
-	 * @return the default encoding
-	 */
-	protected String getDefaultEnc() {
-		return defaultEnc;
-	}
-
-	/**
-	 * Returns whether or not the encoding setting changed.
-     * 
-	 * @param encodingSetting the setting from the page.
-	 * @return boolean <code>true</code> if the resource encoding
-	 *   is the same as before.
-	 */
-	protected boolean hasSameEncoding(String encodingSetting) {
-
-		String current = getStoredValue();
-
-		if (encodingSetting == null) {
-			//Changed if default is selected and there is no setting
-			return current == null || current.length() == 0;
-		}
-		return encodingSetting.equals(current);
-	}
-
-	/**
-	 * Return whether or not the default has been selected.
-	 * @return <code>true</code> if the default button has been
-	 * selected.
-	 */
-	boolean isDefaultSelected() {
-		return defaultEncodingButton.getSelection();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/EncodingFieldEditor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/EncodingFieldEditor.java
deleted file mode 100644
index c6cab81..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/EncodingFieldEditor.java
+++ /dev/null
@@ -1,64 +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.ide.dialogs;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ide.IDEEncoding;
-
-/**
- * The EncodingFieldEditor is a field editor that allows the 
- * user to set an encoding on a preference in a preference
- * store.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 3.1
- */
-public final class EncodingFieldEditor extends AbstractEncodingFieldEditor {
-
-	/**
-	 * Create a new instance of the receiver on the preference called name
-	 * with a label of labelText.
-	 * @param name
-	 * @param labelText
-	 * @param parent
-	 */
-	public EncodingFieldEditor(String name, String labelText, Composite parent) {
-		super(name, labelText, parent);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.ide.dialogs.AbstractEncodingFieldEditor#getStoredValue()
-	 */
-	protected String getStoredValue() {
-		return getPreferenceStore().getString(getPreferenceName());
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doStore()
-	 */
-	protected void doStore() {
-		String encoding = getSelectedEncoding();
-		
-		if(hasSameEncoding(encoding)) {
-			return;
-		}
-		
-		IDEEncoding.addIDEEncoding(encoding);	
-		
-		if (encoding.equals(getDefaultEnc())) {
-			getPreferenceStore().setToDefault(getPreferenceName());
-		} else {
-			getPreferenceStore().setValue(getPreferenceName(), encoding);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/PathVariableSelectionDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/PathVariableSelectionDialog.java
deleted file mode 100644
index a8131be..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/PathVariableSelectionDialog.java
+++ /dev/null
@@ -1,224 +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.ide.dialogs;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.filesystem.URIUtil;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-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.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.FileFolderSelectionDialog;
-import org.eclipse.ui.internal.ide.dialogs.IDEResourceInfoUtils;
-import org.eclipse.ui.internal.ide.dialogs.PathVariablesGroup;
-
-/**
- * A selection dialog which shows the path variables defined in the 
- * workspace.
- * The <code>getResult</code> method returns the name(s) of the 
- * selected path variable(s).
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- *  PathVariableSelectionDialog dialog =
- *    new PathVariableSelectionDialog(getShell(), IResource.FOLDER);
- *	dialog.open();
- *	String[] result = (String[]) dialog.getResult();
- * </pre> 	
- * </p>
- * 
- * @since 3.1
- */
-public final class PathVariableSelectionDialog extends SelectionDialog {
-    private static final int EXTEND_ID = IDialogConstants.CLIENT_ID + 1;
-
-    private PathVariablesGroup pathVariablesGroup;
-
-    private int variableType;
-
-    /**
-     * Creates a path variable selection dialog.
-     *
-     * @param parentShell the parent shell
-     * @param variableType the type of variables that are displayed in 
-     * 	this dialog. <code>IResource.FILE</code> and/or <code>IResource.FOLDER</code>
-     * 	logically ORed together.
-     */
-    public PathVariableSelectionDialog(Shell parentShell, int variableType) {
-        super(parentShell);
-        setTitle(IDEWorkbenchMessages.PathVariableSelectionDialog_title);
-        this.variableType = variableType;
-        pathVariablesGroup = new PathVariablesGroup(false, variableType,
-                new Listener() {
-                    /* (non-Javadoc)
-                     * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-                     */
-                    public void handleEvent(Event event) {
-                        updateExtendButtonState();
-                    }
-                });
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-    }
-
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
-     */
-    protected void buttonPressed(int buttonId) {
-        if (buttonId == EXTEND_ID) {
-            FileFolderSelectionDialog dialog = new FileFolderSelectionDialog(
-                    getShell(), false, variableType);
-            PathVariablesGroup.PathVariableElement selection = pathVariablesGroup
-                    .getSelection()[0];
-            dialog.setTitle(IDEWorkbenchMessages.PathVariableSelectionDialog_ExtensionDialog_title);
-            dialog.setMessage(NLS.bind(IDEWorkbenchMessages.PathVariableSelectionDialog_ExtensionDialog_description, selection.name));
-            //XXX This only works for variables that refer to local file system locations
-            try {
-				dialog.setInput(EFS.getStore(URIUtil.toURI(selection.path)));
-			} catch (CoreException e) {
-				ErrorDialog.openError(getShell(), null, null, e.getStatus());
-			}
-            if (dialog.open() == Window.OK
-                    && pathVariablesGroup.performOk()) {
-                setExtensionResult(selection, (IFileStore) dialog.getResult()[0]);
-                super.okPressed();
-            }
-        } else {
-			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);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(shell,
-                IIDEHelpContextIds.PATH_VARIABLE_SELECTION_DIALOG);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
-     */
-    protected void createButtonsForButtonBar(Composite parent) {
-        createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL,
-                true);
-        createButton(parent, EXTEND_ID, IDEWorkbenchMessages.PathVariableSelectionDialog_extendButton, false);
-        createButton(parent, IDialogConstants.CANCEL_ID,
-                IDialogConstants.CANCEL_LABEL, false);
-        updateExtendButtonState();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-     */
-    protected Control createDialogArea(Composite parent) {
-        // create composite 
-        Composite dialogArea = (Composite) super.createDialogArea(parent);
-
-        pathVariablesGroup.createContents(dialogArea);
-        return dialogArea;
-    }
-
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.window.Window#close()
-     */
-    public boolean close() {
-        pathVariablesGroup.dispose();
-        return super.close();
-    }
-
-  
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-     */
-    protected void okPressed() {
-		//Sets the dialog result to the selected path variable name(s). 
-        if (pathVariablesGroup.performOk()) {
-            PathVariablesGroup.PathVariableElement[] selection = pathVariablesGroup
-                    .getSelection();
-            String[] variableNames = new String[selection.length];
-
-            for (int i = 0; i < selection.length; i++) {
-				variableNames[i] = selection[i].name;
-			}
-            setSelectionResult(variableNames);
-        } else {
-            setSelectionResult(null);
-        }
-        super.okPressed();
-    }
-
-    /**
-     * Sets the dialog result to the concatenated variable name and extension.
-     * 
-     * @param variable variable selected in the variables list and extended
-     * 	by <code>extensionFile</code>
-     * @param extensionFile file selected to extend the variable.
-     */
-    private void setExtensionResult(
-            PathVariablesGroup.PathVariableElement variable, IFileStore extensionFile) {
-        IPath extensionPath = new Path(extensionFile.toString());
-        int matchCount = extensionPath.matchingFirstSegments(variable.path);
-        IPath resultPath = new Path(variable.name);
-
-        extensionPath = extensionPath.removeFirstSegments(matchCount);
-        resultPath = resultPath.append(extensionPath);
-        setSelectionResult(new String[] { resultPath.toOSString() });
-    }
-
-    /**
-     * Updates the enabled state of the Extend button based on the 
-     * current variable selection.
-     */
-    private void updateExtendButtonState() {
-        PathVariablesGroup.PathVariableElement[] selection = pathVariablesGroup
-                .getSelection();
-        Button extendButton = getButton(EXTEND_ID);
-
-        if (extendButton == null) {
-			return;
-		}
-        if (selection.length == 1) {
-            IFileInfo info = IDEResourceInfoUtils.getFileInfo(selection[0].path);
-            if (info.exists() && info.isDirectory()) {
-				extendButton.setEnabled(true);
-			} else {
-				extendButton.setEnabled(false);
-			}
-                
-        } else {
-			extendButton.setEnabled(false);
-		}
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/ResourceEncodingFieldEditor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/ResourceEncodingFieldEditor.java
deleted file mode 100644
index c8d1c88..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/ResourceEncodingFieldEditor.java
+++ /dev/null
@@ -1,355 +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.ide.dialogs;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-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.content.IContentDescription;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.DialogPage;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-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.WorkbenchEncoding;
-import org.eclipse.ui.ide.IDEEncoding;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * The ResourceEncodingFieldEditor is a field editor for editing the encoding of
- * a resource and does not use a preference store.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 3.1
- */
-public final class ResourceEncodingFieldEditor extends
-		AbstractEncodingFieldEditor {
-
-	/**
-	 * The resource being edited.
-	 */
-	private IResource resource;
-
-	private Composite group;
-
-	/**
-	 * Creates a new encoding field editor for setting the encoding on the given
-	 * resource.
-	 * 
-	 * @param labelText
-	 *            the label text of the field editor
-	 * @param parent
-	 *            the parent of the field editor's control
-	 * @param charsetResource
-	 *            must be an <code>IContainer</code> or an <code>IFile</code>.
-	 * 
-	 * @see org.eclipse.core.resources.IContainer#getDefaultCharset()
-	 * @see org.eclipse.core.resources.IFile#getCharset()
-	 */
-	public ResourceEncodingFieldEditor(String labelText, Composite parent,
-			IResource charsetResource) {
-		super();
-		Assert.isTrue(charsetResource instanceof IContainer
-				|| charsetResource instanceof IFile);
-		setLabelText(labelText);
-		this.resource = charsetResource;
-		createControl(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.ide.dialogs.AbstractEncodingFieldEditor#getStoredValue()
-	 */
-	protected String getStoredValue() {
-		try {
-			if (resource instanceof IContainer) {
-				return ((IContainer) resource).getDefaultCharset(false);
-			}
-			return ((IFile) resource).getCharset(false);
-
-		} catch (CoreException e) {// If there is an error return the default
-			IDEWorkbenchPlugin
-					.log(
-							IDEWorkbenchMessages.ResourceEncodingFieldEditor_ErrorLoadingMessage,
-							e.getStatus());
-			return WorkbenchEncoding.getWorkbenchDefaultEncoding();
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.FieldEditor#doStore()
-	 */
-	protected void doStore() {
-
-		String encoding = getSelectedEncoding();
-
-		// Clear the value if nothing is selected
-		if (isDefaultSelected()) {
-			encoding = null;
-		}
-		// Don't update if the same thing is selected
-		if (hasSameEncoding(encoding)) {
-			return;
-		}
-
-		String descriptionCharset = getCharsetFromDescription();
-		if (descriptionCharset != null
-				&& !(descriptionCharset.equals(encoding)) && encoding != null) {
-			Shell shell = null;
-			DialogPage page = getPage();
-			if (page != null) {
-				shell = page.getShell();
-			}
-
-			MessageDialog dialog = new MessageDialog(
-					shell,
-					IDEWorkbenchMessages.ResourceEncodingFieldEditor_EncodingConflictTitle,
-					null,
-					NLS
-							.bind(
-									IDEWorkbenchMessages.ResourceEncodingFieldEditor_EncodingConflictMessage,
-									encoding, descriptionCharset),
-					MessageDialog.WARNING, new String[] {
-							IDialogConstants.YES_LABEL,
-							IDialogConstants.NO_LABEL }, 0); // yes is the
-			// default
-			if (dialog.open() > 0) {
-				return;
-			}
-		}
-
-		IDEEncoding.addIDEEncoding(encoding);
-
-		final String finalEncoding = encoding;
-
-		Job charsetJob = new Job(IDEWorkbenchMessages.IDEEncoding_EncodingJob) {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-			 */
-			protected IStatus run(IProgressMonitor monitor) {
-				try {
-					if (resource instanceof IContainer) {
-						((IContainer) resource).setDefaultCharset(
-								finalEncoding, monitor);
-					} else {
-						((IFile) resource).setCharset(finalEncoding, monitor);
-					}
-					return Status.OK_STATUS;
-				} catch (CoreException e) {// If there is an error return the
-					// default
-					IDEWorkbenchPlugin
-							.log(
-									IDEWorkbenchMessages.ResourceEncodingFieldEditor_ErrorStoringMessage,
-									e.getStatus());
-					return e.getStatus();
-				}
-			}
-		};
-
-		charsetJob.schedule();
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.FieldEditor#store()
-	 */
-	public void store() {// Override the store method as we are not using a
-		// preference store
-		doStore();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.FieldEditor#load()
-	 */
-	public void load() {// Override the load method as we are not using a
-		// preference store
-		setPresentsDefaultValue(false);
-		doLoad();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.FieldEditor#loadDefault()
-	 */
-	public void loadDefault() {
-		setPresentsDefaultValue(true);
-		doLoadDefault();
-		refreshValidState();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.dialogs.AbstractEncodingFieldEditor#findDefaultEncoding()
-	 */
-	protected String findDefaultEncoding() {
-
-		if (resource instanceof IWorkspaceRoot) {
-			return super.findDefaultEncoding();
-		}
-
-		String defaultCharset = getCharsetFromDescription();
-		defaultCharset = getCharsetFromDescription();
-
-		if (defaultCharset != null && defaultCharset.length() > 0) {
-			return defaultCharset;
-		}
-		try {
-			// Query up the whole hierarchy
-			defaultCharset = resource.getParent().getDefaultCharset(true);
-		} catch (CoreException exception) {
-			// If there is an exception try again
-		}
-
-		if (defaultCharset != null && defaultCharset.length() > 0) {
-			return defaultCharset;
-		}
-
-		return super.findDefaultEncoding();
-	}
-
-	/**
-	 * Returns the charset from the content description if there is one.
-	 * 
-	 * @return the charset from the content description, or <code>null</code>
-	 */
-	private String getCharsetFromDescription() {
-		IContentDescription description = getContentDescription();
-		if (description != null) {
-			return description.getCharset();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.dialogs.AbstractEncodingFieldEditor#defaultButtonText()
-	 */
-	protected String defaultButtonText() {
-
-		if (resource instanceof IWorkspaceRoot) {
-			return super.defaultButtonText();
-		}
-
-		if (resource instanceof IFile) {
-			try {
-				IContentDescription description = ((IFile) resource)
-						.getContentDescription();
-				// If we can find a charset from the description then derive
-				// from that
-				if (description == null || description.getCharset() == null) {
-					return NLS
-							.bind(
-									IDEWorkbenchMessages.ResourceInfo_fileContainerEncodingFormat,
-									getDefaultEnc());
-				}
-
-				return NLS
-						.bind(
-								IDEWorkbenchMessages.ResourceInfo_fileContentEncodingFormat,
-								getDefaultEnc());
-
-			} catch (CoreException exception) {
-				// Do nothing here as we will just try to derive from the
-				// container
-			}
-		}
-
-		return NLS.bind(
-				IDEWorkbenchMessages.ResourceInfo_containerEncodingFormat,
-				getDefaultEnc());
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.dialogs.AbstractEncodingFieldEditor#createEncodingGroup(org.eclipse.swt.widgets.Composite,
-	 *      int)
-	 */
-	protected Composite createEncodingGroup(Composite parent, int numColumns) {
-		group = super.createEncodingGroup(parent, numColumns);
-		String byteOrderLabel = IDEEncoding
-				.getByteOrderMarkLabel(getContentDescription());
-		if (byteOrderLabel != null) {
-			Label label = new Label(group, SWT.NONE);
-			label
-					.setText(NLS
-							.bind(
-									IDEWorkbenchMessages.WorkbenchPreference_encoding_encodingMessage,
-									byteOrderLabel));
-			GridData layoutData = new GridData();
-			layoutData.horizontalSpan = numColumns + 1;
-			label.setLayoutData(layoutData);
-
-		}
-		return group;
-	}
-
-	/**
-	 * Returns the content description of the resource if it is a file and it
-	 * has a content description.
-	 * 
-	 * @return the content description or <code>null</code> if resource is not
-	 *         an <code>IFile</code> or it does not have a description
-	 */
-	private IContentDescription getContentDescription() {
-		try {
-			if (resource instanceof IFile) {
-				return (((IFile) resource).getContentDescription());
-			}
-		} catch (CoreException exception) {
-			// If we cannot find it return null
-		}
-		return null;
-	}
-
-	/* (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);
-		group.setEnabled(enabled);
-		Control[] children = group.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			children[i].setEnabled(enabled);
-
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/package.html
deleted file mode 100644
index 154f696..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/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">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<title>Package-level Javadoc</title>
-</head>
-
-<body>
-APIs for dialogs in the IDE-specific portion of the Eclipse Platform User Interface. 
-<h2>Package Specification</h2>
-This package containsthe dialog APIs for the Eclipse Platform User Interface that 
-are IDE specific. 
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/fileSystem/FileSystemContributor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/fileSystem/FileSystemContributor.java
deleted file mode 100644
index 9c4a907..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/fileSystem/FileSystemContributor.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.ide.fileSystem;
-
-import java.net.URI;
-
-import org.eclipse.core.filesystem.URIUtil;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * The abstract base class for all UI file system contributors. This class
- * provides the infrastructure for defining a contributor and fulfills the contract
- * specified by the <code>org.eclipse.ui.ide.filesystemSupport</code> 
- * extension point.
- * 
- * @since 3.2
- * @see org.eclipse.core.filesystem.IFileSystem
- */
-public abstract class FileSystemContributor {
-	
-	/**
-	 * Browse the file system for a URI to display to the user.
-	 * @param initialPath The path to initialize the selection with.
-	 * @param shell The shell to parent any required dialogs from
-	 * @return URI if the file system is browsed successfully or
-	 * <code>null</code> if a URI could not be determined.
-	 */
-	public abstract URI browseFileSystem(String initialPath, Shell shell);
-	
-	/**
-	 * Return a URI for the supplied String from the user.
-	 * @param string
-	 * @return URI or <code>null</code> if the string is 
-	 * invalid.
-	 */
-	public URI getURI(String string){
-		return URIUtil.toURI(string);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/fileSystem/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/fileSystem/package.html
deleted file mode 100644
index a9e306e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/fileSystem/package.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<title>Package-level Javadoc</title>
-</head>
-
-<body>
-APIs for the IDE-specific support for the 
-org.eclipse.core.filesystem.fileSystem extension.
-<h2>Package Specification</h2>
-This package contains APIs for the Eclipse Platform User Interface that
-support for the org.eclipse.core.filesystem.fileSystem extension
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/package.html
deleted file mode 100644
index 42edd3e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/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>
-
-APIs for the IDE-specific portion of the Eclipse Platform User Interface.
-<h2>Package Specification</h2>
-This package contains APIs for the Eclipse Platform User Interface that are IDE
-specific.
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractCopyOrMoveResourcesOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractCopyOrMoveResourcesOperation.java
deleted file mode 100644
index 9bbe10a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractCopyOrMoveResourcesOperation.java
+++ /dev/null
@@ -1,389 +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.ide.undo;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-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.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.ui.internal.ide.undo.ResourceDescription;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * An AbstractCopyOrMoveResourcesOperation represents an undoable operation for
- * moving or copying one or more resources in the workspace. Clients may call
- * the public API from a background thread.
- * 
- * This class is not intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-abstract class AbstractCopyOrMoveResourcesOperation extends
-		AbstractResourcesOperation {
-
-	// Used when there are different destination names for each resource
-	protected IPath[] destinationPaths = null;
-
-	// Used when all resources are going to the same container (no name changes)
-	protected IPath destination = null;
-
-	/**
-	 * Create an AbstractCopyOrMoveResourcesOperation that moves or copies all
-	 * of the specified resources to the specified paths. The destination paths
-	 * must include the names of the resources at their new location.
-	 * 
-	 * @param resources
-	 *            the resources to be moved or copied
-	 * @param destinationPaths
-	 *            the destination paths for the resources, including the name to
-	 *            be assigned to the resource at its new location.
-	 * @param label
-	 *            the label of the operation
-	 */
-	AbstractCopyOrMoveResourcesOperation(IResource[] resources,
-			IPath[] destinationPaths, String label) {
-		super(resources, label);
-		this.destinationPaths = destinationPaths;
-	}
-
-	/**
-	 * Create an AbstractCopyOrMoveResourcesOperation that moves or copies all
-	 * of the specified resources to the same target location, using their
-	 * existing names.
-	 * 
-	 * @param resources
-	 *            the resources to be moved or copied
-	 * @param destinationPath
-	 *            the destination path for the resources, not including the name
-	 *            of the new resource.
-	 * @param label
-	 *            the label of the operation
-	 */
-	AbstractCopyOrMoveResourcesOperation(IResource[] resources,
-			IPath destinationPath, String label) {
-		super(resources, label);
-		destination = destinationPath;
-	}
-
-	/**
-	 * Create an AbstractCopyOrMoveResourcesOperation whose destination is not
-	 * yet specified.
-	 * 
-	 * @param resources
-	 *            the resources to be modified
-	 * @param label
-	 *            the label of the operation
-	 */
-	AbstractCopyOrMoveResourcesOperation(IResource[] resources, String label) {
-		super(resources, label);
-	}
-
-	/**
-	 * Move or copy any known resources according to the destination parameters
-	 * known by this operation. Store enough information to undo and redo the
-	 * operation.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to use for the operation
-	 * @param uiInfo
-	 *            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 contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * @param move
-	 *            <code>true</code> if the operation is a move, and
-	 *            <code>false</code> if it is a copy
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 */
-	protected void moveOrCopy(IProgressMonitor monitor, IAdaptable uiInfo,
-			boolean move) throws CoreException {
-
-		String progressMessage;
-		if (move) {
-			progressMessage = UndoMessages.AbstractResourcesOperation_MovingResources;
-		} else {
-			progressMessage = UndoMessages.AbstractResourcesOperation_CopyingResourcesProgress;
-		}
-		monitor.beginTask("", 2000); //$NON-NLS-1$
-		monitor.setTaskName(progressMessage);
-		IResource[] resourcesAtDestination = new IResource[resources.length];
-		List overwrittenResources = new ArrayList();
-		IPath[] newDestinationPaths = new IPath[resources.length];
-
-		for (int i = 0; i < resources.length; i++) {
-			// Record the original path so this can be undone
-			newDestinationPaths[i] = resources[i].getFullPath();
-
-			// Move or copy the resources and record the overwrites that would
-			// be restored if this operation were reversed
-			ResourceDescription[] overwrites;
-			if (move) {
-				overwrites = WorkspaceUndoUtil
-						.move(resources[i],
-								getDestinationPath(resources[i], i),
-								new SubProgressMonitor(monitor,
-										1000 / resources.length), uiInfo);
-			} else {
-				overwrites = WorkspaceUndoUtil
-						.copy(new IResource[] { resources[i] },
-								getDestinationPath(resources[i], i),
-								new SubProgressMonitor(monitor,
-										1000 / resources.length), uiInfo, true);
-			}
-			// Accumulate the overwrites into the full list
-			for (int j = 0; j < overwrites.length; j++) {
-				overwrittenResources.add(overwrites[i]);
-			}
-			// Record the resource in its new destination path
-			resourcesAtDestination[i] = getWorkspace().getRoot().findMember(
-					getDestinationPath(resources[i], i));
-		}
-
-		// Are there any previously overwritten resources to restore now?
-		if (resourceDescriptions != null) {
-			for (int i = 0; i < resourceDescriptions.length; i++) {
-				if (resourceDescriptions[i] != null) {
-					resourceDescriptions[i]
-							.createResource(new SubProgressMonitor(monitor,
-									1000 / resourceDescriptions.length));
-				}
-			}
-		}
-
-		// Reset resource descriptions to the just overwritten resources
-		setResourceDescriptions((ResourceDescription[]) overwrittenResources
-				.toArray(new ResourceDescription[overwrittenResources.size()]));
-
-		// Reset the target resources to refer to the resources in their new
-		// location. Note that the destination paths were reset to the original
-		// location as we did the move.
-		setTargetResources(resourcesAtDestination);
-
-		// Reset the destination path to the new paths
-		destinationPaths = newDestinationPaths;
-		destination = null;
-
-		monitor.done();
-	}
-
-	/**
-	 * Compute the status for moving or copying the resources. A status severity
-	 * of <code>OK</code> indicates that the copy or move is likely to be
-	 * successful. A status severity of <code>ERROR</code> indicates that the
-	 * operation is no longer valid. Other status severities are open to
-	 * interpretation by the caller.
-	 * 
-	 * Note this method may be called on initial moving or copying of a
-	 * resource, or when a move or copy is undone or redone. Therefore, this
-	 * method should check conditions that can change over the life of the
-	 * operation, such as whether the file to moved or copied exists, and
-	 * whether the target location is still valid. One-time static checks should
-	 * typically be done by the caller so that the user is not continually
-	 * prompted or warned about conditions that were acceptable at the time of
-	 * original execution and do not change over time.
-	 * 
-	 * @return the status indicating the projected outcome of moving or copying
-	 *         the resources.
-	 */
-	protected IStatus computeMoveOrCopyStatus() {
-		// Check for error conditions first so that we do not prompt the user
-		// on warnings that eventually will not matter anyway.
-		if (resources == null) {
-			markInvalid();
-			return getErrorStatus(UndoMessages.AbstractResourcesOperation_NotEnoughInfo);
-		}
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			// Does the resource still exist?
-			if (!resource.exists()) {
-				markInvalid();
-				return getErrorStatus(UndoMessages.AbstractCopyOrMoveResourcesOperation_ResourceDoesNotExist);
-			}
-
-			// Are we really trying to move it to a different name?
-			if (!isDestinationPathValid(resource, i)) {
-				markInvalid();
-				return getErrorStatus(UndoMessages.AbstractCopyOrMoveResourcesOperation_SameNameOrLocation);
-			}
-			// Is the proposed name valid?
-			IStatus status = getWorkspace().validateName(
-					getProposedName(resource, i), resource.getType());
-			if (status.getSeverity() == IStatus.ERROR) {
-				markInvalid();
-			}
-			if (!status.isOK()) {
-				return status;
-			}
-		}
-
-		// No error conditions. If we are to quietly compute status, do not
-		// go any further.
-		if (quietCompute) {
-			return Status.OK_STATUS;
-		}
-
-		for (int i = 0; i < resources.length; i++) {
-			// Check and warn for any overwrites that may occur.
-			IResource newResource = getOverwrittenResource(resources[i], i);
-
-			if (newResource != null) {
-				int result = queryOverwrite(newResource, null);
-				if (result == IDialogConstants.YES_TO_ALL_ID) {
-					return Status.OK_STATUS;
-				} else if (result == IDialogConstants.CANCEL_ID) {
-					return Status.CANCEL_STATUS;
-				} else if (result == IDialogConstants.NO_ID) {
-					markInvalid();
-					return getErrorStatus(UndoMessages.AbstractResourcesOperation_overwriteError);
-				}
-				// Otherwise (YES_ID) we continue checking each one
-				// individually.
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Return the destination path that should be used to move or copy the
-	 * specified resource. This path is relative to the workspace.
-	 * 
-	 * @param resource
-	 *            the resource being moved or copied
-	 * @param index
-	 *            the integer index of the resource in the resource array
-	 * @return the path specifying the destination for the resource
-	 */
-	protected IPath getDestinationPath(IResource resource, int index) {
-		if (destinationPaths != null) {
-			return destinationPaths[index];
-		}
-		return destination.append(resource.getName());
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#appendDescriptiveText(java.lang.StringBuffer)
-	 */
-	protected void appendDescriptiveText(StringBuffer text) {
-		super.appendDescriptiveText(text);
-		text.append(" destination: "); //$NON-NLS-1$
-		text.append(destination);
-		text.append(", destinationPaths: "); //$NON-NLS-1$
-		text.append(destinationPaths);
-		text.append('\'');
-	}
-
-	/**
-	 * Return any resource that will be overwritten by moving or copying the
-	 * specified resource to the destination recorded at the specified index.
-	 * 
-	 * @param resource
-	 *            the resource to be moved or copied
-	 * @param index
-	 *            the index within the destination array, if applicable
-	 * @return the resource that will be overwritten, or <code>null</code> if
-	 *         no resource will be overwritten.
-	 */
-	protected IResource getOverwrittenResource(IResource resource, int index) {
-		IPath proposedPath = getDestinationPath(resource, index);
-		return getWorkspace().getRoot().findMember(proposedPath);
-	}
-
-	/*
-	 * Move the project to its new location, returning its previous location.
-	 */
-	URI moveProject(IProject project, URI locationURI,
-			IProgressMonitor monitor) throws CoreException {
-		monitor
-				.setTaskName(UndoMessages.AbstractCopyOrMoveResourcesOperation_moveProjectProgress);
-
-		IProjectDescription description = project.getDescription();
-		// Record the original path so this can be undone
-		URI newDestinationURI = description.getLocationURI();
-		// Set the new location into the project's description
-		description.setLocationURI(locationURI);
-
-		project.move(description, IResource.FORCE | IResource.SHALLOW, monitor);
-
-		// Now adjust the projectLocation so this can be undone/redone.
-		return newDestinationURI;
-	}
-
-	/*
-	 * Copy the specified project, returning the handle of the copy.
-	 */
-	IProject copyProject(IProject project, IPath destinationPath,
-			URI locationURI, IProgressMonitor monitor)
-			throws CoreException {
-		monitor
-				.setTaskName(UndoMessages.AbstractCopyOrMoveResourcesOperation_copyProjectProgress);
-
-		IProjectDescription description = project.getDescription();
-
-		// Set the new name and location into the project's description
-		description.setName(destinationPath.lastSegment());
-		description.setLocationURI(locationURI);
-
-		project.copy(description, IResource.FORCE | IResource.SHALLOW, monitor);
-
-		// Now return the handle of the new project
-		return (IProject) getWorkspace().getRoot().findMember(destinationPath);
-	}
-
-	/**
-	 * Return a boolean indicating whether the proposed destination path for a
-	 * resource is valid.
-	 * 
-	 * @param resource
-	 *            the resource whose path is to be checked
-	 * @param index
-	 *            the integer index of the resource in the resource array
-	 * @return a boolean indicating whether the destination path is valid
-	 */
-	protected boolean isDestinationPathValid(IResource resource, int index) {
-		return !resource.getFullPath().equals(
-				getDestinationPath(resource, index));
-	}
-
-	/**
-	 * Return a string indicating the proposed name for the resource
-	 * 
-	 * @param resource
-	 *            the resource whose path is to be checked
-	 * @param index
-	 *            the integer index of the resource in the resource array
-	 * @return the string name of the resource
-	 */
-	protected String getProposedName(IResource resource, int index) {
-		return getDestinationPath(resource, index).lastSegment();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractCreateResourcesOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractCreateResourcesOperation.java
deleted file mode 100644
index 447de89..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractCreateResourcesOperation.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.ui.ide.undo;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-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.jobs.ISchedulingRule;
-import org.eclipse.ui.internal.ide.undo.ResourceDescription;
-
-/**
- * A CreateResourcesOperation represents an undoable operation for creating
- * resources in the workspace. Clients may call the public API from a background
- * thread.
- * 
- * This class is not intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-abstract class AbstractCreateResourcesOperation extends
-		AbstractResourcesOperation {
-
-	/**
-	 * Create an AbstractCreateResourcesOperation.
-	 * 
-	 * @param resourceDescriptions
-	 *            the resourceDescriptions describing resources to be created
-	 * @param label
-	 *            the label of the operation
-	 */
-	AbstractCreateResourcesOperation(
-			ResourceDescription[] resourceDescriptions, String label) {
-		super(resourceDescriptions, label);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation creates resources from the known resource
-	 * descriptions.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doExecute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doExecute(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		recreate(monitor, uiInfo);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation deletes resources.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doUndo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doUndo(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		delete(monitor, uiInfo, false); // never delete content
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation documents the impending create or delete.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#updateResourceChangeDescriptionFactory(org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory,
-	 *      int)
-	 */
-	protected boolean updateResourceChangeDescriptionFactory(
-			IResourceChangeDescriptionFactory factory, int operation) {
-		boolean modified = false;
-		if (operation == UNDO) {
-			for (int i = 0; i < resources.length; i++) {
-				IResource resource = resources[i];
-				factory.delete(resource);
-				modified = true;
-			}
-		} else {
-			for (int i = 0; i < resourceDescriptions.length; i++) {
-				IResource resource = resourceDescriptions[i]
-						.createResourceHandle();
-				factory.create(resource);
-				modified = true;
-			}
-		}
-		return modified;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#getExecuteSchedulingRule()
-	 */
-	protected ISchedulingRule getExecuteSchedulingRule() {
-		return super.computeCreateSchedulingRule();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#getUndoSchedulingRule()
-	 */
-	protected ISchedulingRule getUndoSchedulingRule() {
-		return super.computeDeleteSchedulingRule();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation computes the status for creating resources.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeExecutionStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeExecutionStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeExecutionStatus(monitor);
-		if (status.isOK()) {
-			status = computeCreateStatus();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation computes the status for deleting resources.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeUndoableStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeUndoableStatus(monitor);
-		if (status.isOK()) {
-			status = computeDeleteStatus();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation computes the status for creating resources.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeRedoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeRedoableStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeRedoableStatus(monitor);
-		if (status.isOK()) {
-			status = computeCreateStatus();
-		}
-		return status;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractMarkersOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractMarkersOperation.java
deleted file mode 100644
index ad0c48c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractMarkersOperation.java
+++ /dev/null
@@ -1,472 +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.ide.undo;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-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.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.ui.internal.ide.undo.MarkerDescription;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * An AbstractMarkersOperation represents an undoable operation that affects
- * markers on a resource. It provides implementations for marker creation,
- * deletion, and updating. Clients may call the public API from a background
- * thread.
- * 
- * This class is not intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-abstract class AbstractMarkersOperation extends AbstractWorkspaceOperation {
-
-	MarkerDescription[] markerDescriptions;
-
-	IMarker[] markers;
-
-	Map[] attributes;
-
-	/**
-	 * Create an AbstractMarkersOperation by specifying a combination of markers
-	 * and attributes or marker descriptions.
-	 * 
-	 * @param markers
-	 *            the markers used in the operation or <code>null</code> if no
-	 *            markers yet exist
-	 * @param markerDescriptions
-	 *            the marker descriptions that should be used to create markers,
-	 *            or <code>null</code> if the markers already exist
-	 * @param attributes
-	 *            The map of attributes that should be assigned to any existing
-	 *            markers when the markers are updated. Ignored if the markers
-	 *            parameter is <code>null</code>.
-	 * @param name
-	 *            the name used to describe the operation
-	 */
-	AbstractMarkersOperation(IMarker[] markers,
-			MarkerDescription[] markerDescriptions, Map attributes, String name) {
-		super(name);
-		this.markers = markers;
-		this.attributes = null;
-		// If there is more than one marker, create an array with a copy
-		// of the attributes map for each marker. Keeping a unique map
-		// per marker allows us to support the scenario where attributes
-		// are merged when updated. In this case, each marker's attributes
-		// may differ since their original attributes may have differed.
-		if (attributes != null && markers != null) {
-			if (markers.length > 1) {
-				this.attributes = new Map[markers.length];
-				for (int i = 0; i < markers.length; i++) {
-					Map copiedAttributes = new HashMap();
-					copiedAttributes.putAll(attributes);
-					this.attributes[i] = copiedAttributes;
-				}
-			} else {
-				this.attributes = new Map[] { attributes };
-			}
-		}
-		setMarkerDescriptions(markerDescriptions);
-	}
-
-	/**
-	 * Delete any currently known markers and save their information in marker
-	 * descriptions so that they can be restored.
-	 * 
-	 * @param work
-	 *            the number of work ticks to be used by the delete
-	 * @param monitor
-	 *            the progress monitor to use for the delete
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 * 
-	 */
-	protected void deleteMarkers(int work, IProgressMonitor monitor)
-			throws CoreException {
-		if (markers == null || markers.length == 0) {
-			monitor.worked(work);
-			return;
-		}
-		int markerWork = work / markers.length;
-		markerDescriptions = new MarkerDescription[markers.length];
-		for (int i = 0; i < markers.length; i++) {
-			markerDescriptions[i] = new MarkerDescription(markers[i]);
-			markers[i].delete();
-			monitor.worked(markerWork);
-		}
-		markers = new IMarker[0];
-	}
-
-	/**
-	 * Create markers from any currently known marker descriptions.
-	 * 
-	 * @param work
-	 *            the number of work ticks to be used by the create
-	 * @param monitor
-	 *            the progress monitor to use for the create
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 */
-	protected void createMarkers(int work, IProgressMonitor monitor)
-			throws CoreException {
-		if (markerDescriptions == null || markerDescriptions.length == 0) {
-			monitor.worked(work);
-			return;
-		}
-		int markerWork = work / markerDescriptions.length;
-		markers = new IMarker[markerDescriptions.length];
-
-		// Recreate the markers from the descriptions
-		for (int i = 0; i < markerDescriptions.length; i++) {
-			markers[i] = markerDescriptions[i].createMarker();
-			monitor.worked(markerWork);
-		}
-	}
-
-	/**
-	 * Update the currently known markers with the corresponding array of marker
-	 * descriptions.
-	 * 
-	 * @param work
-	 *            the number of work ticks to be used by the update
-	 * @param monitor
-	 *            the progress monitor to use for the update
-	 * @param mergeAttributes
-	 *            a boolean specifying whether the attributes are merged or
-	 *            considered to be a replacement of the previous attributes.
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 * 
-	 */
-	protected void updateMarkers(int work, IProgressMonitor monitor,
-			boolean mergeAttributes) throws CoreException {
-		if (attributes == null || markers == null
-				|| attributes.length != markers.length || markers.length == 0) {
-			monitor.worked(work);
-			return;
-		}
-		int markerWork = work / markers.length;
-		for (int i = 0; i < markers.length; i++) {
-			if (mergeAttributes) {
-				Map oldAttributes = markers[i].getAttributes();
-				int increment = markerWork / attributes[i].size();
-				Map replacedAttributes = new HashMap();
-
-				for (Iterator iter = attributes[i].keySet().iterator(); iter
-						.hasNext();) {
-					String key = (String) iter.next();
-					Object val = attributes[i].get(key);
-					markers[i].setAttribute(key, val);
-					replacedAttributes.put(key, oldAttributes.get(key));
-					monitor.worked(increment);
-				}
-				attributes[i] = replacedAttributes;
-			} else {
-				// replace all of the attributes
-				Map oldAttributes = markers[i].getAttributes();
-				markers[i].setAttributes(attributes[i]);
-				attributes[i] = oldAttributes;
-			}
-		}
-	}
-
-	/**
-	 * Set the marker descriptions that describe markers that can be created.
-	 * 
-	 * @param descriptions
-	 *            the descriptions of markers that can be created.
-	 */
-	protected void setMarkerDescriptions(MarkerDescription[] descriptions) {
-		markerDescriptions = descriptions;
-		addUndoContexts();
-		updateTargetResources();
-	}
-
-	/*
-	 * Update the target resources by traversing the currently known markers or
-	 * marker descriptions and getting their resources.
-	 */
-
-	private void updateTargetResources() {
-		IResource[] resources = null;
-		if (markers == null) {
-			if (markerDescriptions != null) {
-				resources = new IResource[markerDescriptions.length];
-				for (int i = 0; i < markerDescriptions.length; i++) {
-					resources[i] = markerDescriptions[i].getResource();
-				}
-			}
-		} else {
-			resources = new IResource[markers.length];
-			for (int i = 0; i < markers.length; i++) {
-				resources[i] = markers[i].getResource();
-			}
-		}
-		setTargetResources(resources);
-	}
-
-	/*
-	 * Add undo contexts according to marker types. Any unknown marker types
-	 * will cause the workspace undo context to be added.
-	 * 
-	 * This is an optimization that allows us to add specific undo contexts for
-	 * tasks and bookmarks, without also adding the workspace undo context. Note
-	 * that clients with different marker types may still assign their own
-	 * specific undo context using AbstractOperation.addContext(IUndoContext) in
-	 * addition to the workspace context assigned by this method.
-	 */
-
-	private void addUndoContexts() {
-		String[] types = null;
-		if (markers == null) {
-			if (markerDescriptions != null) {
-				types = new String[markerDescriptions.length];
-				for (int i = 0; i < markerDescriptions.length; i++) {
-					types[i] = markerDescriptions[i].getType();
-				}
-			}
-		} else {
-			types = new String[markers.length];
-			for (int i = 0; i < markers.length; i++) {
-				try {
-					types[i] = markers[i].getType();
-				} catch (CoreException e) {
-				}
-
-			}
-		}
-		if (types != null) {
-			for (int i = 0; i < types.length; i++) {
-				// Marker type could be null if marker did not exist.
-				// This shouldn't happen, but can.
-				// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=158129
-				if (types[i] != null) {
-					if (types[i].equals(IMarker.BOOKMARK)) {
-						addContext(WorkspaceUndoUtil.getBookmarksUndoContext());
-					} else if (types[i].equals(IMarker.TASK)) {
-						addContext(WorkspaceUndoUtil.getTasksUndoContext());
-					} else if (types[i] != null) {
-						// type is not known, use the workspace undo context
-						addContext(WorkspaceUndoUtil.getWorkspaceUndoContext());
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Return the array of markers that has been updated or created.
-	 * 
-	 * @return the array of markers that have been updated or created, or
-	 *         <code>null</code> if no markers have been created or updated.
-	 */
-	public IMarker[] getMarkers() {
-		return markers;
-	}
-
-	/**
-	 * Return whether the markers known by this operation currently exist.
-	 * 
-	 * @return <code>true</code> if there are existing markers and
-	 *         <code>false</code> if there are no known markers or any one of
-	 *         them does not exist
-	 */
-	protected boolean markersExist() {
-		if (markers == null || markers.length == 0) {
-			return false;
-		}
-		for (int i = 0; i < markers.length; i++) {
-			if (!markers[i].exists()) {
-				return false;
-			}
-		}
-		return true;
-
-	}
-
-	/**
-	 * Return a status indicating the projected outcome of undoing the marker
-	 * operation. The receiver is not responsible for remembering the result of
-	 * this computation.
-	 * 
-	 * @return the status indicating whether the operation can be undone
-	 */
-	protected abstract IStatus getBasicUndoStatus();
-
-	/**
-	 * Return a status indicating the projected outcome of redoing the marker
-	 * operation. The receiver is not responsible for remembering the result of
-	 * this computation.
-	 * 
-	 * @return the status indicating whether the operation can be undone
-	 */
-	protected abstract IStatus getBasicRedoStatus();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeExecutionStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeExecutionStatus(IProgressMonitor monitor) {
-		IStatus status = getBasicRedoStatus();
-		if (status.isOK()) {
-			return super.computeExecutionStatus(monitor);
-		}
-		if (status.getSeverity() == IStatus.ERROR) {
-			markInvalid();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeUndoableStatus(IProgressMonitor monitor) {
-		IStatus status = getBasicUndoStatus();
-		if (status.isOK()) {
-			return super.computeUndoableStatus(monitor);
-		}
-		if (status.getSeverity() == IStatus.ERROR) {
-			markInvalid();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeRedoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeRedoableStatus(IProgressMonitor monitor) {
-		IStatus status = getBasicRedoStatus();
-		if (status.isOK()) {
-			return super.computeRedoableStatus(monitor);
-		}
-		if (status.getSeverity() == IStatus.ERROR) {
-			markInvalid();
-		}
-		return status;
-	}
-
-	/**
-	 * Compute the status for deleting any known markers. A status severity of
-	 * <code>OK</code> indicates that the delete is likely to be successful. A
-	 * status severity of <code>ERROR</code> indicates that the operation is
-	 * no longer valid. Other status severities are open to interpretation by
-	 * the caller.
-	 * 
-	 * @return the status indicating the projected outcome of deleting the
-	 *         markers.
-	 * 
-	 */
-	protected IStatus getMarkerDeletionStatus() {
-		if (markersExist()) {
-			return Status.OK_STATUS;
-		}
-		return getErrorStatus(UndoMessages.MarkerOperation_MarkerDoesNotExist);
-	}
-
-	/**
-	 * Compute the status for creating any known markers. A status severity of
-	 * <code>OK</code> indicates that the create is likely to be successful. A
-	 * status severity of <code>ERROR</code> indicates that the operation is
-	 * no longer valid. Other status severities are open to interpretation by
-	 * the caller.
-	 * 
-	 * @return the status indicating the projected outcome of creating the
-	 *         markers.
-	 * 
-	 */
-	protected IStatus getMarkerCreationStatus() {
-		if (!resourcesExist()) {
-			return getErrorStatus(UndoMessages.MarkerOperation_ResourceDoesNotExist);
-		} else if (markerDescriptions == null) {
-			return getErrorStatus(UndoMessages.MarkerOperation_NotEnoughInfo);
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Compute the status for updating any known markers. A status severity of
-	 * <code>OK</code> indicates that the update is likely to be successful. A
-	 * status severity of <code>ERROR</code> indicates that the operation is
-	 * no longer valid. Other status severities are open to interpretation by
-	 * the caller.
-	 * 
-	 * @return the status indicating the projected outcome of updating the
-	 *         markers.
-	 * 
-	 */
-	protected IStatus getMarkerUpdateStatus() {
-		if (!markersExist()) {
-			return getErrorStatus(UndoMessages.MarkerOperation_MarkerDoesNotExist);
-		} else if (attributes == null) {
-			return getErrorStatus(UndoMessages.MarkerOperation_NotEnoughInfo);
-		}
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#getExecuteSchedulingRule()
-	 */
-	protected ISchedulingRule getExecuteSchedulingRule() {
-		ISchedulingRule[] ruleArray = new ISchedulingRule[resources.length];
-		for (int i = 0; i < resources.length; i++) {
-			ruleArray[i] = getWorkspaceRuleFactory().markerRule(resources[i]);
-		}
-		return MultiRule.combine(ruleArray);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#getUndoSchedulingRule()
-	 */
-	protected ISchedulingRule getUndoSchedulingRule() {
-		return getExecuteSchedulingRule();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#appendDescriptiveText(java.lang.StringBuffer)
-	 */
-	protected void appendDescriptiveText(StringBuffer text) {
-		super.appendDescriptiveText(text);
-		text.append(" markers: "); //$NON-NLS-1$
-		text.append(markers);
-		text.append('\'');
-		text.append(" markerDescriptions: "); //$NON-NLS-1$
-		text.append(markerDescriptions);
-		text.append('\'');
-		text.append(" attributes: "); //$NON-NLS-1$
-		text.append(attributes);
-		text.append('\'');
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractResourcesOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractResourcesOperation.java
deleted file mode 100644
index c94e125..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractResourcesOperation.java
+++ /dev/null
@@ -1,301 +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.ide.undo;
-
-import org.eclipse.core.resources.IResource;
-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.runtime.jobs.MultiRule;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.ide.undo.ResourceDescription;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * An AbstractResourcesOperation represents an undoable operation that
- * manipulates resources. It provides implementations for resource rename,
- * delete, creation, and modification. It also assigns the workspace undo
- * context as the undo context for operations of this type. Clients may call the
- * public API from a background thread.
- * 
- * This class is not intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-abstract class AbstractResourcesOperation extends AbstractWorkspaceOperation {
-
-	/*
-	 * The array of resource descriptions known by this operation to create or
-	 * restore overwritten resources.
-	 */
-	protected ResourceDescription[] resourceDescriptions;
-
-	/**
-	 * Create an Abstract Resources Operation
-	 * 
-	 * @param resources
-	 *            the resources to be modified
-	 * @param label
-	 *            the label of the operation
-	 */
-	AbstractResourcesOperation(IResource[] resources, String label) {
-		super(label);
-		this.addContext(WorkspaceUndoUtil.getWorkspaceUndoContext());
-
-		setTargetResources(resources);
-	}
-
-	/**
-	 * Create an Abstract Resources Operation
-	 * 
-	 * @param resourceDescriptions
-	 *            the resourceDescriptions describing resources to be created
-	 * @param label
-	 *            the label of the operation
-	 */
-	AbstractResourcesOperation(ResourceDescription[] resourceDescriptions,
-			String label) {
-		super(label);
-		addContext(WorkspaceUndoUtil.getWorkspaceUndoContext());
-		setResourceDescriptions(resourceDescriptions);
-	}
-
-	/**
-	 * Delete any resources known by this operation. Store enough information to
-	 * undo and redo the operation.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to use for the operation
-	 * @param uiInfo
-	 *            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 contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * @param deleteContent
-	 *            <code>true</code> if the content of any known projects
-	 *            should be deleted along with the project. <code>false</code>
-	 *            if project content should not be deleted.
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 */
-	protected void delete(IProgressMonitor monitor, IAdaptable uiInfo,
-			boolean deleteContent) throws CoreException {
-		setResourceDescriptions(WorkspaceUndoUtil.delete(resources, monitor,
-				uiInfo, deleteContent));
-		setTargetResources(new IResource[0]);
-	}
-
-	/**
-	 * Recreate any resources known by this operation. Store enough information
-	 * to undo and redo the operation.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to use for the operation
-	 * @param uiInfo
-	 *            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 contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 */
-	protected void recreate(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		setTargetResources(WorkspaceUndoUtil.recreate(resourceDescriptions,
-				monitor, uiInfo));
-		setResourceDescriptions(new ResourceDescription[0]);
-	}
-
-	/**
-	 * Compute the status for creating resources from the descriptions. A status
-	 * severity of <code>OK</code> indicates that the create is likely to be
-	 * successful. A status severity of <code>ERROR</code> indicates that the
-	 * operation is no longer valid. Other status severities are open to
-	 * interpretation by the caller.
-	 * 
-	 * Note this method may be called on initial creation of a resource, or when
-	 * a create or delete operation is being undone or redone. Therefore, this
-	 * method should check conditions that can change over the life of the
-	 * operation, such as the existence of the information needed to carry out
-	 * the operation. One-time static checks should typically be done by the
-	 * caller (such as the action that creates the operation) so that the user
-	 * is not continually prompted or warned about conditions that were
-	 * acceptable at the time of original execution.
-	 */
-	protected IStatus computeCreateStatus() {
-		if (resourceDescriptions == null || resourceDescriptions.length == 0) {
-			markInvalid();
-			return getErrorStatus(UndoMessages.AbstractResourcesOperation_NotEnoughInfo);
-		}
-		for (int i = 0; i < resourceDescriptions.length; i++) {
-			if (!resourceDescriptions[i].isValid()) {
-				markInvalid();
-				return getErrorStatus(UndoMessages.AbstractResourcesOperation_InvalidRestoreInfo);
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Compute the status for deleting resources. A status severity of
-	 * <code>OK</code> indicates that the delete is likely to be successful. A
-	 * status severity of <code>ERROR</code> indicates that the operation is
-	 * no longer valid. Other status severities are open to interpretation by
-	 * the caller.
-	 * 
-	 * Note this method may be called on initial deletion of a resource, or when
-	 * a create or delete operation is being undone or redone. Therefore, this
-	 * method should check conditions that can change over the life of the
-	 * operation, such as the existence of the resources to be deleted. One-time
-	 * static checks should typically be done by the caller (such as the action
-	 * that creates the operation) so that the user is not continually prompted
-	 * or warned about conditions that were acceptable at the time of original
-	 * execution.
-	 */
-	protected IStatus computeDeleteStatus() {
-		if (resources == null || resources.length == 0) {
-			markInvalid();
-			return getErrorStatus(UndoMessages.AbstractResourcesOperation_NotEnoughInfo);
-		}
-		if (!resourcesExist()) {
-			markInvalid();
-			return getErrorStatus(UndoMessages.AbstractResourcesOperation_ResourcesDoNotExist);
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Ask the user whether the given resource should be overwritten.
-	 * 
-	 * @param resource
-	 *            the resource to be overwritten
-	 * @param uiInfo
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user. When this parameter is not <code>null</code>, it
-	 *            contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * @return One of the IDialogConstants constants indicating which of the
-	 *         Yes, Yes to All, No, Cancel options has been selected by the
-	 *         user.
-	 */
-	protected int queryOverwrite(IResource resource, IAdaptable uiInfo) {
-		Shell shell = getShell(uiInfo);
-		final MessageDialog dialog = new MessageDialog(
-				shell,
-				UndoMessages.AbstractResourcesOperation_overwriteTitle,
-				null,
-				NLS
-						.bind(
-								UndoMessages.AbstractResourcesOperation_overwriteQuestion,
-								resource.getName()), MessageDialog.QUESTION,
-				new String[] { IDialogConstants.YES_LABEL,
-						IDialogConstants.YES_TO_ALL_LABEL,
-						IDialogConstants.NO_LABEL,
-						IDialogConstants.CANCEL_LABEL }, 0);
-		shell.getDisplay().syncExec(new Runnable() {
-			public void run() {
-				dialog.open();
-			}
-		});
-		int result = dialog.getReturnCode();
-		if (result == 0) {
-			return IDialogConstants.YES_ID;
-		}
-		if (result == 1) {
-			return IDialogConstants.YES_TO_ALL_ID;
-		}
-		if (result == 2) {
-			return IDialogConstants.NO_ID;
-		}
-		return IDialogConstants.CANCEL_ID;
-	}
-
-	/**
-	 * Set the array of resource descriptions describing resources to be
-	 * restored when undoing or redoing this operation.
-	 * 
-	 * @param descriptions
-	 *            the array of resource descriptions
-	 */
-	protected void setResourceDescriptions(ResourceDescription[] descriptions) {
-		if (descriptions == null) {
-			resourceDescriptions = new ResourceDescription[0];
-		} else {
-			resourceDescriptions = descriptions;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#appendDescriptiveText(java.lang.StringBuffer)
-	 */
-	protected void appendDescriptiveText(StringBuffer text) {
-		super.appendDescriptiveText(text);
-		text.append(" resourceDescriptions: "); //$NON-NLS-1$
-		text.append(resourceDescriptions);
-		text.append('\'');
-	}
-
-	/**
-	 * Compute a scheduling rule for creating resources.
-	 * 
-	 * @return a scheduling rule appropriate for creating the resources
-	 *         specified in the resource descriptions
-	 */
-	protected ISchedulingRule computeCreateSchedulingRule() {
-		ISchedulingRule[] ruleArray = new ISchedulingRule[resourceDescriptions.length * 3];
-
-		for (int i = 0; i < resourceDescriptions.length; i++) {
-			IResource resource = resourceDescriptions[i].createResourceHandle();
-			// Need a rule for creating...
-			ruleArray[i * 3] = getWorkspaceRuleFactory().createRule(resource);
-			// ...and modifying
-			ruleArray[i * 3 + 1] = getWorkspaceRuleFactory().modifyRule(
-					resource);
-			// ...and changing the charset
-			ruleArray[i * 3 + 2] = getWorkspaceRuleFactory().charsetRule(
-					resource);
-	
-		}
-		return MultiRule.combine(ruleArray);
-	}
-
-	/**
-	 * Compute a scheduling rule for deleting resources.
-	 * 
-	 * @return a scheduling rule appropriate for deleting the resources
-	 *         specified in the receiver.
-	 */
-	protected ISchedulingRule computeDeleteSchedulingRule() {
-		ISchedulingRule[] ruleArray = new ISchedulingRule[resources.length];
-		for (int i = 0; i < resources.length; i++) {
-			ruleArray[i] = getWorkspaceRuleFactory().deleteRule(resources[i]);
-		}
-		return MultiRule.combine(ruleArray);
-
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractWorkspaceOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractWorkspaceOperation.java
deleted file mode 100644
index 34f9d6c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractWorkspaceOperation.java
+++ /dev/null
@@ -1,872 +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.ide.undo;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.core.commands.operations.IAdvancedUndoableOperation;
-import org.eclipse.core.commands.operations.IAdvancedUndoableOperation2;
-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.resources.IResource;
-import org.eclipse.core.resources.IResourceRuleFactory;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.core.resources.mapping.ResourceChangeValidator;
-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.jface.action.Action;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * An AbstractWorkspaceOperation represents an undoable operation that affects
- * the workspace. It handles common workspace operation activities such as
- * tracking which resources are affected by an operation, prompting the user
- * when there are possible side effects of operations, error handling for core
- * exceptions, etc. Clients may call the public API from a background thread.
- * 
- * This class is not intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public abstract class AbstractWorkspaceOperation extends AbstractOperation
-		implements IAdvancedUndoableOperation, IAdvancedUndoableOperation2 {
-
-	private static String ELLIPSIS = "..."; //$NON-NLS-1$
-
-	protected static int EXECUTE = 1;
-
-	protected static int UNDO = 2;
-
-	protected static int REDO = 3;
-
-	protected IResource[] resources;
-
-	private boolean isValid = true;
-
-	/*
-	 * Specifies whether any user prompting is appropriate while computing
-	 * status.
-	 */
-	protected boolean quietCompute = false;
-
-	String[] modelProviderIds;
-
-	/**
-	 * Create an AbstractWorkspaceOperation with the specified name.
-	 * 
-	 * @param name
-	 *            the name used to describe the operation
-	 */
-	AbstractWorkspaceOperation(String name) {
-		// Many operation names are based on the triggering action's name, so
-		// we strip out the any mnemonics that may be embedded in the name.
-		super(Action.removeMnemonics(name));
-
-		// For the same reason, check for an ellipsis and strip out
-		String label = this.getLabel();
-		if (label.endsWith(ELLIPSIS)) {
-			this.setLabel(label
-					.substring(0, label.length() - ELLIPSIS.length()));
-		}
-	}
-
-	/**
-	 * Set the ids of any model providers for the resources involved.
-	 * 
-	 * @param ids
-	 *            the array of String model provider ids that provide models
-	 *            associated with the resources involved in this operation
-	 */
-	public void setModelProviderIds(String[] ids) {
-		modelProviderIds = ids;
-	}
-
-	/**
-	 * Set the resources which are affected by this operation
-	 * 
-	 * @param resources
-	 *            an array of resources
-	 */
-	protected void setTargetResources(IResource[] resources) {
-		this.resources = resources;
-	}
-
-	/**
-	 * Return the workspace manipulated by this operation.
-	 * 
-	 * @return the IWorkspace used by this operation.
-	 */
-	protected IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	/**
-	 * Return the workspace rule factory associated with this operation.
-	 * 
-	 * @return the IResourceRuleFactory associated with this operation.
-	 */
-	protected IResourceRuleFactory getWorkspaceRuleFactory() {
-		return getWorkspace().getRuleFactory();
-	}
-
-	/**
-	 * Mark this operation invalid due to some external change. May be used by
-	 * subclasses.
-	 * 
-	 */
-	protected void markInvalid() {
-		isValid = false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation checks a validity flag.
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canExecute()
-	 */
-	public boolean canExecute() {
-		return isValid();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation checks a validity flag.
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canUndo()
-	 */
-	public boolean canUndo() {
-		return isValid();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation checks a validity flag.
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canRedo()
-	 */
-	public boolean canRedo() {
-		return isValid();
-	}
-
-	/**
-	 * Execute the specified operation. This implementation executes the
-	 * operation in a workspace runnable and catches any CoreExceptions
-	 * resulting from the operation. An error dialog is shown to the user if a
-	 * CoreException occurs and the exception is propagated as an
-	 * ExecutionException if specified by the core exception handler
-	 * 
-	 * @param monitor
-	 *            the progress monitor to use for the operation
-	 * @param uiInfo
-	 *            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 contains 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.
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus execute(IProgressMonitor monitor, final IAdaptable uiInfo)
-			throws ExecutionException {
-		try {
-			getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					doExecute(monitor, uiInfo);
-				}
-			}, getExecuteSchedulingRule(), IWorkspace.AVOID_UPDATE, null);
-		} catch (final CoreException e) {
-			final boolean[] propagateException = new boolean[1];
-			getShell(uiInfo).getDisplay().syncExec(new Runnable() {
-				public void run() {
-					propagateException[0] = handleCoreException(
-							e,
-							getShell(uiInfo),
-							NLS
-									.bind(
-											UndoMessages.AbstractWorkspaceOperation_ExecuteErrorTitle,
-											getLabel()));
-
-				}
-
-			});
-			if (propagateException[0]) {
-				throw new ExecutionException(
-						NLS
-								.bind(
-										UndoMessages.AbstractWorkspaceOperation_ExecuteErrorTitle,
-										getLabel()), e);
-			}
-		}
-		isValid = true;
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Redo the specified operation. This implementation redoes the operation in
-	 * a workspace runnable and catches any CoreExceptions resulting from the
-	 * operation. An error dialog is shown to the user if a CoreException occurs
-	 * and the exception is propagated as an ExecutionException if specified by
-	 * the core exception handler.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to use for the operation
-	 * @param uiInfo
-	 *            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 contains 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 operation 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 execution.
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus redo(IProgressMonitor monitor, final IAdaptable uiInfo)
-			throws ExecutionException {
-		try {
-			getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					doExecute(monitor, uiInfo);
-				}
-			}, getRedoSchedulingRule(), IWorkspace.AVOID_UPDATE, null);
-		} catch (final CoreException e) {
-			final boolean[] propagateException = new boolean[1];
-			getShell(uiInfo).getDisplay().syncExec(new Runnable() {
-				public void run() {
-					propagateException[0] = handleCoreException(
-							e,
-							getShell(uiInfo),
-							NLS
-									.bind(
-											UndoMessages.AbstractWorkspaceOperation_RedoErrorTitle,
-											getLabel()));
-				}
-
-			});
-			if (propagateException[0]) {
-				throw new ExecutionException(NLS.bind(
-						UndoMessages.AbstractWorkspaceOperation_RedoErrorTitle,
-						getLabel()), e);
-			}
-		}
-		isValid = true;
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Undo the specified operation. This implementation undoes the operation in
-	 * a workspace runnable and catches any CoreExceptions resulting from the
-	 * operation. An error dialog is shown to the user if a CoreException occurs
-	 * and the exception is propagated as an ExecutionException if specified by
-	 * the core exception handler.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to use for the operation
-	 * @param uiInfo
-	 *            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 contains 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 operation 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 execution.
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undo(IProgressMonitor monitor, final IAdaptable uiInfo)
-			throws ExecutionException {
-		try {
-			getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					doUndo(monitor, uiInfo);
-				}
-			}, getUndoSchedulingRule(), IWorkspace.AVOID_UPDATE, null);
-		} catch (final CoreException e) {
-			final boolean[] propagateException = new boolean[1];
-			getShell(uiInfo).getDisplay().syncExec(new Runnable() {
-				public void run() {
-					propagateException[0] = handleCoreException(
-							e,
-							getShell(uiInfo),
-							NLS
-									.bind(
-											UndoMessages.AbstractWorkspaceOperation_UndoErrorTitle,
-											getLabel()));
-
-				}
-
-			});
-			if (propagateException[0]) {
-				throw new ExecutionException(NLS.bind(
-						UndoMessages.AbstractWorkspaceOperation_UndoErrorTitle,
-						getLabel()), e);
-			}
-		}
-		isValid = true;
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Perform the specific work involved in undoing this operation.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to use for the operation
-	 * @param uiInfo
-	 *            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 contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 */
-	protected abstract void doUndo(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException;
-
-	/**
-	 * Perform the specific work involved in executing this operation.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to use for the operation
-	 * @param uiInfo
-	 *            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 contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 * 
-	 */
-	protected abstract void doExecute(IProgressMonitor monitor,
-			IAdaptable uiInfo) throws CoreException;
-
-	/**
-	 * Return whether the proposed operation is valid. The default
-	 * implementation simply checks to see if the flag has been marked as
-	 * invalid, relying on subclasses to mark the flag invalid when appropriate.
-	 * 
-	 * @return the validity flag
-	 */
-	protected boolean isValid() {
-		return isValid;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedUndoableOperation#aboutToNotify(org.eclipse.core.commands.operations.OperationHistoryEvent)
-	 */
-	public void aboutToNotify(OperationHistoryEvent event) {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedUndoableOperation#getAffectedObjects()
-	 */
-	public Object[] getAffectedObjects() {
-		return resources;
-	}
-
-	/**
-	 * Return a status indicating the projected outcome of executing the
-	 * receiver. This method 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 an ERROR status is returned, the operation will not proceed and the
-	 * user notified if deemed necessary by the caller. The validity flag on the
-	 * operation should be marked as invalid. If an OK status is returned, the
-	 * operation will proceed. The caller must interpret any other returned
-	 * status severity, and may choose to prompt the user as to how to proceed.
-	 * 
-	 * If there are multiple conditions that result in an ambiguous status
-	 * severity, it is best for the implementor of this method to consult the
-	 * user as to how to proceed for each one, and return an OK or ERROR status
-	 * that accurately reflects the user's wishes, or to return a multi-status
-	 * that accurately describes all of the issues at hand, so that the caller
-	 * may potentially consult the user. (Note that the user should not be
-	 * consulted at all if a client has called {@link #setQuietCompute(boolean)}
-	 * with a value of <code>true</code>.)
-	 * 
-	 * This implementation computes the validity of execution by computing the
-	 * resource delta that would be generated on execution, and checking whether
-	 * any registered model providers are affected by the operation.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to be used for computing the status
-	 * @return the status indicating the projected outcome of executing the
-	 *         receiver
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedUndoableOperation#computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 * @see #setQuietCompute(boolean)
-	 */
-	public IStatus computeExecutionStatus(IProgressMonitor monitor) {
-		IStatus status = Status.OK_STATUS;
-
-		// If we are not to prompt the user, nothing to do.
-		if (quietCompute) {
-			return status;
-		}
-
-		IResourceChangeDescriptionFactory factory = ResourceChangeValidator
-				.getValidator().createDeltaFactory();
-		if (updateResourceChangeDescriptionFactory(factory, EXECUTE)) {
-			boolean proceed = IDE
-					.promptToConfirm(
-							getShell(null),
-							UndoMessages.AbstractWorkspaceOperation_SideEffectsWarningTitle,
-							NLS
-									.bind(
-											UndoMessages.AbstractWorkspaceOperation_ExecuteSideEffectsWarningMessage,
-											getLabel()), factory.getDelta(),
-							modelProviderIds, true /* syncExec */);
-			if (!proceed) {
-				status = IOperationHistory.OPERATION_INVALID_STATUS;
-				markInvalid();
-			}
-		}
-		return status;
-
-	}
-
-	/**
-	 * Return a status indicating the projected outcome of undoing the receiver.
-	 * This method 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
-	 * undo it.
-	 * 
-	 * If an ERROR status is returned, the undo will not proceed and the user
-	 * notified if deemed necessary by the caller. The validity flag on the
-	 * operation should be marked as invalid. If an OK status is returned, the
-	 * undo will proceed. The caller must interpret any other returned status
-	 * severity, and may choose to prompt the user as to how to proceed.
-	 * 
-	 * If there are multiple conditions that result in an ambiguous status
-	 * severity, it is best for the implementor of this method to consult the
-	 * user as to how to proceed for each one, and return an OK or ERROR status
-	 * that accurately reflects the user's wishes, or to return a multi-status
-	 * that accurately describes all of the issues at hand, so that the caller
-	 * may potentially consult the user. (Note that the user should not be
-	 * consulted at all if a client has called {@link #setQuietCompute(boolean)}
-	 * with a value of <code>true</code>.)
-	 * 
-	 * This implementation computes the validity of undo by computing the
-	 * resource delta that would be generated on undo, and checking whether any
-	 * registered model providers are affected by the operation.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to be used for computing the status
-	 * @return the status indicating the projected outcome of undoing the
-	 *         receiver
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedUndoableOperation#computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 * @see #setQuietCompute(boolean)
-	 */
-	public IStatus computeUndoableStatus(IProgressMonitor monitor) {
-		IStatus status = Status.OK_STATUS;
-		// If we are not to prompt the user, nothing to do.
-		if (quietCompute) {
-			return status;
-		}
-
-		IResourceChangeDescriptionFactory factory = ResourceChangeValidator
-				.getValidator().createDeltaFactory();
-		if (updateResourceChangeDescriptionFactory(factory, UNDO)) {
-			boolean proceed = IDE
-					.promptToConfirm(
-							getShell(null),
-							UndoMessages.AbstractWorkspaceOperation_SideEffectsWarningTitle,
-							NLS
-									.bind(
-											UndoMessages.AbstractWorkspaceOperation_UndoSideEffectsWarningMessage,
-											getLabel()), factory.getDelta(),
-							modelProviderIds, true /* syncExec */);
-			if (!proceed) {
-				status = IOperationHistory.OPERATION_INVALID_STATUS;
-				markInvalid();
-			}
-		}
-		return status;
-
-	}
-
-	/**
-	 * Return a status indicating the projected outcome of redoing the receiver.
-	 * This method 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
-	 * redo it.
-	 * 
-	 * If an ERROR status is returned, the redo will not proceed and the user
-	 * notified if deemed necessary by the caller. The validity flag on the
-	 * operation should be marked as invalid. If an OK status is returned, the
-	 * redo will proceed. The caller must interpret any other returned status
-	 * severity, and may choose to prompt the user as to how to proceed.
-	 * 
-	 * If there are multiple conditions that result in an ambiguous status
-	 * severity, it is best for the implementor of this method to consult the
-	 * user as to how to proceed for each one, and return an OK or ERROR status
-	 * that accurately reflects the user's wishes, or to return a multi-status
-	 * that accurately describes all of the issues at hand, so that the caller
-	 * may potentially consult the user. (Note that the user should not be
-	 * consulted at all if a client has called {@link #setQuietCompute(boolean)}
-	 * with a value of <code>true</code>.)
-	 * 
-	 * This implementation computes the validity of redo by computing the
-	 * resource delta that would be generated on redo, and checking whether any
-	 * registered model providers are affected by the operation.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to be used for computing the status
-	 * @return the status indicating the projected outcome of redoing the
-	 *         receiver
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedUndoableOperation#computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 * @see #setQuietCompute(boolean)
-	 */
-	public IStatus computeRedoableStatus(IProgressMonitor monitor) {
-		IStatus status = Status.OK_STATUS;
-		// If we are not to prompt the user, nothing to do.
-		if (quietCompute) {
-			return status;
-		}
-
-		IResourceChangeDescriptionFactory factory = ResourceChangeValidator
-				.getValidator().createDeltaFactory();
-		if (updateResourceChangeDescriptionFactory(factory, REDO)) {
-			boolean proceed = IDE
-					.promptToConfirm(
-							getShell(null),
-							UndoMessages.AbstractWorkspaceOperation_SideEffectsWarningTitle,
-							NLS
-									.bind(
-											UndoMessages.AbstractWorkspaceOperation_RedoSideEffectsWarningMessage,
-											getLabel()), factory.getDelta(),
-							modelProviderIds, true /* syncExec */);
-			if (!proceed) {
-				status = IOperationHistory.OPERATION_INVALID_STATUS;
-				markInvalid();
-			}
-		}
-		return status;
-	}
-
-	/**
-	 * Update the provided resource change description factory so it can
-	 * generate a resource delta describing the result of an undo or redo.
-	 * Return a boolean indicating whether any update was done. The default
-	 * implementation does not update the factory. Subclasses are expected to
-	 * override this method to more specifically describe their modifications to
-	 * the workspace.
-	 * 
-	 * @param factory
-	 *            the factory to update
-	 * @param operation
-	 *            an integer indicating whether the change is part of an
-	 *            execute, undo, or redo
-	 * @return a boolean indicating whether the factory was updated.
-	 */
-	protected boolean updateResourceChangeDescriptionFactory(
-			IResourceChangeDescriptionFactory factory, int operation) {
-		return false;
-	}
-
-	/**
-	 * Return an error status describing an invalid operation using the provided
-	 * message.
-	 * 
-	 * @param message
-	 *            the message to be used in the status, or <code>null</code>
-	 *            if a generic message should be used
-	 * @return the error status
-	 */
-	protected IStatus getErrorStatus(String message) {
-		String statusMessage = message;
-		if (statusMessage == null) {
-			statusMessage = NLS
-					.bind(
-							UndoMessages.AbstractWorkspaceOperation_ErrorInvalidMessage,
-							getLabel());
-		}
-		return new Status(IStatus.ERROR, IDEWorkbenchPlugin.IDE_WORKBENCH,
-				OperationStatus.OPERATION_INVALID, statusMessage, null);
-	}
-
-	/**
-	 * Return a warning status describing the warning state of an operation
-	 * using the provided message and code.
-	 * 
-	 * @param message
-	 *            the message to be used in the status, or <code>null</code>
-	 *            if a generic message should be used
-	 * @param code
-	 *            the integer code to be assigned to the status
-	 * @return the warning status
-	 */
-	protected IStatus getWarningStatus(String message, int code) {
-		String statusMessage = message;
-		if (statusMessage == null) {
-			statusMessage = NLS
-					.bind(
-							UndoMessages.AbstractWorkspaceOperation_GenericWarningMessage,
-							getLabel());
-		}
-		return new Status(IStatus.WARNING, IDEWorkbenchPlugin.IDE_WORKBENCH,
-				code, statusMessage, null);
-	}
-
-	/**
-	 * Return whether the resources known by this operation currently exist.
-	 * 
-	 * @return <code>true</code> if there are existing resources and
-	 *         <code>false</code> if there are no known resources or any one
-	 *         of them does not exist
-	 */
-	protected boolean resourcesExist() {
-		if (resources == null || resources.length == 0) {
-			return false;
-		}
-		for (int i = 0; i < resources.length; i++) {
-			if (!resources[i].exists()) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the resources known by this operation contain any
-	 * projects.
-	 * 
-	 * @return <code>true</code> if there is one or more projects known by
-	 *         this operation and false if there are no projects.
-	 */
-	protected boolean resourcesIncludesProjects() {
-		if (resources == null || resources.length == 0) {
-			return false;
-		}
-		for (int i = 0; i < resources.length; i++) {
-			if (resources[i].getType() == IResource.PROJECT) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Handle the core exception that occurred while trying to execute, undo, or
-	 * redo the operation, returning a boolean to indicate whether this
-	 * exception should cause a {@link ExecutionException} to be thrown.
-	 * 
-	 * It is safe to access UI in this method. The default implementation is to
-	 * show an error dialog, but subclasses may override this method to swallow
-	 * certain exceptions or handle them differently.
-	 * 
-	 * If the only difference in handling the exception is to show a different
-	 * error message, subclasses should override
-	 * {@link #getErrorMessage(CoreException)} instead.
-	 * 
-	 * @param e
-	 *            the CoreException
-	 * @param shell
-	 *            the shell to be used for showing any UI information
-	 * @param errorTitle
-	 *            the title to be used in the error dialog.
-	 * @return a boolean indicating whether this exception should be propagated
-	 *         to the caller as an ExecutionException
-	 */
-	protected boolean handleCoreException(CoreException e, Shell shell,
-			String errorTitle) {
-		ErrorDialog.openError(shell, errorTitle, getErrorMessage(e), e
-				.getStatus());
-		return true;
-	}
-
-	/**
-	 * Return the specific error message to use when the specified core
-	 * exception occurs, or <code>null</code> to indicate that the the
-	 * exception's message should be used.
-	 * 
-	 * @param e
-	 *            the CoreException
-	 * @return the string to be used in any shown error message, or
-	 *         <code>null</code> if the exception's message should be shown.
-	 */
-	protected String getErrorMessage(CoreException e) {
-		return null;
-	}
-
-	/**
-	 * Return a scheduling rule appropriate for executing this operation.
-	 * 
-	 * The default implementation is to return a rule that locks out the entire
-	 * workspace. Subclasses are encouraged to provide more specific rules that
-	 * affect only their resources.
-	 * 
-	 * @return the scheduling rule to use when executing this operation, or
-	 *         <code>null</code> if there are no scheduling restrictions for
-	 *         this operation.
-	 * 
-	 * @see IWorkspace#run(IWorkspaceRunnable, ISchedulingRule, int,
-	 *      IProgressMonitor)
-	 */
-	protected ISchedulingRule getExecuteSchedulingRule() {
-		return getWorkspace().getRoot();
-	}
-
-	/**
-	 * Return a scheduling rule appropriate for undoing this operation.
-	 * 
-	 * The default implementation is to return a rule that locks out the entire
-	 * workspace. Subclasses are encouraged to provide more specific rules that
-	 * affect only their resources.
-	 * 
-	 * @return the scheduling rule to use when undoing this operation, or
-	 *         <code>null</code> if there are no scheduling restrictions for
-	 *         this operation.
-	 * 
-	 * @see IWorkspace#run(IWorkspaceRunnable, ISchedulingRule, int,
-	 *      IProgressMonitor)
-	 */
-	protected ISchedulingRule getUndoSchedulingRule() {
-		return getWorkspace().getRoot();
-	}
-
-	/**
-	 * Return a scheduling rule appropriate for redoing this operation.
-	 * 
-	 * The default implementation considers the redo scheduling rule the same as
-	 * the original execution scheduling rule.
-	 * 
-	 * @return the scheduling rule to use when redoing this operation, or
-	 *         <code>null</code> if there are no scheduling restrictions for
-	 *         this operation.
-	 * 
-	 * @see IWorkspace#run(IWorkspaceRunnable, ISchedulingRule, int,
-	 *      IProgressMonitor)
-	 */
-	protected ISchedulingRule getRedoSchedulingRule() {
-		return getExecuteSchedulingRule();
-	}
-
-	/**
-	 * Set the boolean that determines whether the computation of the receiver's
-	 * execution, undo, or redo status may consult the user. The default value
-	 * is <code>false</code>. This flag should only be set to
-	 * <code>true</code> while some type of background/quiet computation of
-	 * validity is being performed, and should be restored to <code>false</code>
-	 * when complete.
-	 * 
-	 * @param quiet
-	 *            <code>true</code> if it is inappropriate to consult the user
-	 *            while computing status, and <code>false</code> if the user
-	 *            may be consulted.
-	 * 
-	 * @see #computeExecutionStatus(IProgressMonitor)
-	 * @see #computeUndoableStatus(IProgressMonitor)
-	 * @see #computeRedoableStatus(IProgressMonitor)
-	 */
-	public void setQuietCompute(boolean quiet) {
-		quietCompute = quiet;
-	}
-
-	/*
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer text = new StringBuffer(super.toString());
-		text.append("\n"); //$NON-NLS-1$
-		text.append(this.getClass().getName());
-		appendDescriptiveText(text);
-		return text.toString();
-	}
-
-	/**
-	 * Append any descriptive text to the specified string buffer to be shown in
-	 * the receiver's {@link #toString()} text.
-	 * 
-	 * @param text
-	 *            the StringBuffer on which to append the text
-	 */
-	protected void appendDescriptiveText(StringBuffer text) {
-		text.append(" resources: "); //$NON-NLS-1$
-		text.append(resources);
-		text.append('\'');
-	}
-
-	/**
-	 * Return the shell described by the specified adaptable, or the active
-	 * shell if no shell has been specified in the adaptable.
-	 * 
-	 * @param uiInfo
-	 *            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 contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * 
-	 * @return the shell specified in the adaptable, or the active shell if no
-	 *         shell has been specified
-	 * 
-	 */
-	protected Shell getShell(IAdaptable uiInfo) {
-		if (uiInfo != null) {
-			Shell shell = (Shell) uiInfo.getAdapter(Shell.class);
-			if (shell != null) {
-				return shell;
-			}
-		}
-		return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyProjectOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyProjectOperation.java
deleted file mode 100644
index 9bcb7e4..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyProjectOperation.java
+++ /dev/null
@@ -1,148 +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.ide.undo;
-
-import java.net.URI;
-
-import org.eclipse.core.filesystem.URIUtil;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-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.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.internal.ide.undo.ResourceDescription;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * A CopyProjectOperation represents an undoable operation for copying a
- * project, also specifying the location of its contents. Clients may call the
- * public API from a background thread.
- * 
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class CopyProjectOperation extends CopyResourcesOperation {
-
-	private URI projectLocation;
-
-	/**
-	 * Create a CopyProjectOperation that copies the specified project and sets
-	 * its location to the specified location.
-	 * 
-	 * @param project
-	 *            the project to be copied
-	 * @param name
-	 *            the name of the copy
-	 * @param location
-	 *            the location for the project's content
-	 * @param label
-	 *            the label of the operation
-	 */
-	public CopyProjectOperation(IProject project, String name, URI location,
-			String label) {
-		super(new IResource[] { project }, new Path(name), label);
-		Assert.isLegal(project != null);
-		if (URIUtil.toPath(location).equals(Platform.getLocation())) {
-			projectLocation = null;
-		} else {
-			projectLocation = location;
-		}
-	}
-
-	/*
-	 * Get the project that this operation is moving.
-	 */
-	private IProject getProject() {
-		return (IProject) resources[0];
-	}
-
-	/*
-	 * Make a project handle for the proposed target project, or null if one
-	 * cannot be made.
-	 */
-	private IProject getProposedProjectHandle() {
-		if (destination.segmentCount() == 1) {
-			return getWorkspace().getRoot().getProject(
-					destination.lastSegment());
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Checks that the specified project location is valid in addition to
-	 * superclass checks.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractCopyOrMoveResourcesOperation#computeMoveOrCopyStatus()
-	 */
-	protected IStatus computeMoveOrCopyStatus() {
-		IStatus status = Status.OK_STATUS;
-		IProject project = getProposedProjectHandle();
-		if (project == null) {
-			return getErrorStatus(UndoMessages.AbstractResourcesOperation_NotEnoughInfo);
-		}
-		if (projectLocation != null) {
-			status = getWorkspace().validateProjectLocationURI(project,
-					projectLocation);
-		}
-		if (status.isOK()) {
-			return super.computeMoveOrCopyStatus();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map execute to moving the project
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doExecute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doExecute(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		IProject newProject = copyProject(getProject(), destination,
-				projectLocation, monitor);
-		setTargetResources(new IResource[] { newProject });
-		setResourceDescriptions(new ResourceDescription[0]);
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.ide.undo.AbstractCopyOrMoveResourcesOperation#isDestinationPathValid(org.eclipse.core.resources.IResource, int)
-	 */
-	protected boolean isDestinationPathValid(IResource resource, int index) {
-		// path has already been validated in #computeMoveOrCopyStatus()
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.ide.undo.AbstractCopyOrMoveResourcesOperation#getProposedName(org.eclipse.core.resources.IResource, int)
-	 */
-	protected String getProposedName(IResource resource, int index) {
-		return destination.lastSegment();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyResourcesOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyResourcesOperation.java
deleted file mode 100644
index fa69e61..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyResourcesOperation.java
+++ /dev/null
@@ -1,240 +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.ide.undo;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.ui.internal.ide.undo.ResourceDescription;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * A CopyResourcesOperation represents an undoable operation for copying one or
- * more resources in the workspace. Clients may call the public API from a
- * background thread.
- * 
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class CopyResourcesOperation extends
-		AbstractCopyOrMoveResourcesOperation {
-
-	IResource[] originalResources;
-
-	IPath[] originalDestinationPaths = null;
-
-	IPath originalDestination = null;
-
-	/**
-	 * Create a CopyResourcesOperation that copies a single resource to a new
-	 * location. The new location includes the name of the copy.
-	 * 
-	 * @param resource
-	 *            the resource to be moved
-	 * @param newPath
-	 *            the new workspace-relative path for the resource, including
-	 *            its desired name.
-	 * @param label
-	 *            the label of the operation
-	 */
-	public CopyResourcesOperation(IResource resource, IPath newPath,
-			String label) {
-		super(new IResource[] { resource }, new IPath[] { newPath }, label);
-		originalResources = new IResource[] { resource };
-		originalDestinationPaths = new IPath[] { newPath };
-	}
-
-	/**
-	 * Create a CopyResourcesOperation that copies all of the specified
-	 * resources to a single target location. The original resource name will be
-	 * used when copied to the new location.
-	 * 
-	 * @param resources
-	 *            the resources to be copied
-	 * @param destinationPath
-	 *            the workspace-relative destination path for the copied
-	 *            resource.
-	 * @param label
-	 *            the label of the operation
-	 */
-	public CopyResourcesOperation(IResource[] resources, IPath destinationPath,
-			String label) {
-		super(resources, destinationPath, label);
-		originalResources = resources;
-		originalDestination = destinationPath;
-	}
-
-	/**
-	 * Create a CopyResourcesOperation that copies each of the specified
-	 * resources to its corresponding destination path in the destination path
-	 * array. The resource name for the target is included in the corresponding
-	 * destination path.
-	 * 
-	 * @param resources
-	 *            the resources to be copied
-	 * @param destinationPaths
-	 *            a workspace-relative destination path for each copied
-	 *            resource, which includes the name of the resource at the new
-	 *            destination
-	 * @param label
-	 *            the label of the operation
-	 */
-	public CopyResourcesOperation(IResource[] resources,
-			IPath[] destinationPaths, String label) {
-		super(resources, destinationPaths, label);
-		originalResources = resources;
-		originalDestinationPaths = destinationPaths;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation copies the resources.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doExecute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doExecute(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		moveOrCopy(monitor, uiInfo, false); // false = copy
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation deletes the previously made copies and restores any
-	 * resources that were overwritten by the copy.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doUndo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doUndo(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		monitor.beginTask("", 2); //$NON-NLS-1$
-		monitor
-				.setTaskName(UndoMessages.AbstractResourcesOperation_CopyingResourcesProgress);
-		// undoing a copy is first deleting the copied resources...
-		WorkspaceUndoUtil.delete(resources, new SubProgressMonitor(monitor, 1),
-				uiInfo, true);
-		// then restoring any overwritten by the previous copy...
-		WorkspaceUndoUtil.recreate(resourceDescriptions,
-				new SubProgressMonitor(monitor, 1), uiInfo);
-		setResourceDescriptions(new ResourceDescription[0]);
-		// then setting the target resources and destination paths
-		// back to the original ones
-		setTargetResources(originalResources);
-		if (originalDestination != null) {
-			destination = originalDestination;
-			destinationPaths = null;
-		} else {
-			destination = null;
-			destinationPaths = originalDestinationPaths;
-		}
-		monitor.done();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#updateResourceChangeDescriptionFactory(org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory,
-	 *      int)
-	 */
-	protected boolean updateResourceChangeDescriptionFactory(
-			IResourceChangeDescriptionFactory factory, int operation) {
-		boolean update = false;
-		if (operation == UNDO) {
-			for (int i = 0; i < resources.length; i++) {
-				update = true;
-				IResource resource = resources[i];
-				factory.delete(resource);
-			}
-			for (int i = 0; i < resourceDescriptions.length; i++) {
-				update = true;
-				IResource resource = resourceDescriptions[i]
-						.createResourceHandle();
-				factory.create(resource);
-			}
-		} else {
-			for (int i = 0; i < resources.length; i++) {
-				update = true;
-				IResource resource = resources[i];
-				factory.copy(resource, getDestinationPath(resource, i));
-			}
-		}
-		return update;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation computes the ability to copy the resources.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeExecutionStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeExecutionStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeExecutionStatus(monitor);
-		if (status.isOK()) {
-			status = computeMoveOrCopyStatus();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation computes the ability to delete the original copy and
-	 * restore any overwritten resources.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeUndoableStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeUndoableStatus(monitor);
-		// undoing a copy means deleting the copy that was made
-		if (status.isOK()) {
-			status = computeDeleteStatus();
-		}
-		// and if there were resources overwritten by the copy, can we still
-		// recreate them?
-		if (status.isOK() && resourceDescriptions != null
-				&& resourceDescriptions.length > 0) {
-			status = computeCreateStatus();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation computes the ability to copy the resources.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeRedoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeRedoableStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeRedoableStatus(monitor);
-		if (status.isOK()) {
-			status = computeMoveOrCopyStatus();
-		}
-		return status;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateFileOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateFileOperation.java
deleted file mode 100644
index c693b95..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateFileOperation.java
+++ /dev/null
@@ -1,174 +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.ide.undo;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.net.URI;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFileState;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.ui.internal.ide.undo.ContainerDescription;
-import org.eclipse.ui.internal.ide.undo.FileDescription;
-import org.eclipse.ui.internal.ide.undo.ResourceDescription;
-
-/**
- * A CreateFileOperation represents an undoable operation for creating a file in
- * the workspace. If a link location is specified, the folder is considered to
- * be linked to the file at the specified location. If a link location is not
- * specified, the file will be created in the location specified by the handle,
- * and the entire containment path of the file will be created if it does not
- * exist. Clients may call the public API from a background thread.
- * 
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class CreateFileOperation extends AbstractCreateResourcesOperation {
-
-	/**
-	 * Create a CreateFileOperation
-	 * 
-	 * @param fileHandle
-	 *            the file to be created
-	 * @param linkLocation
-	 *            the location of the file if it is to be linked
-	 * @param contents
-	 *            the initial contents of the file, or null if there is to be no
-	 *            contents
-	 * @param label
-	 *            the label of the operation
-	 */
-	public CreateFileOperation(IFile fileHandle, URI linkLocation,
-			InputStream contents, String label) {
-		super(null, label);
-		ResourceDescription resourceDescription;
-		if (linkLocation == null) {
-			if (fileHandle.getParent().exists()) {
-				resourceDescription = new FileDescription(fileHandle, null,
-						createFileState(fileHandle, contents));
-			} else {
-				// must first ensure descriptions for the parent folders are
-				// created
-				ContainerDescription containerDescription = ContainerDescription
-						.fromContainer(fileHandle.getParent());
-				containerDescription.getFirstLeafFolder().addMember(
-						new FileDescription(fileHandle, null, createFileState(
-								fileHandle, contents)));
-				resourceDescription = containerDescription;
-			}
-		} else {
-			// create a linked file description
-			resourceDescription = new FileDescription(fileHandle, linkLocation,
-					createFileState(fileHandle, contents));
-		}
-		setResourceDescriptions(new ResourceDescription[] { resourceDescription });
-
-	}
-
-	/*
-	 * Create a file state that represents the desired contents and attributes
-	 * of the file to be created. Used to mimic file history when a resource is
-	 * first created.
-	 */
-	private IFileState createFileState(final IFile file,
-			final InputStream contents) {
-		return new IFileState() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.resources.IFileState#getContents()
-			 */
-			public InputStream getContents() {
-				if (contents != null) {
-					return contents;
-				}
-				return new ByteArrayInputStream(new byte[0]);
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-			 */
-			public Object getAdapter(Class clazz) {
-				return null;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.resources.IEncodedStorage#getCharset()
-			 */
-			public String getCharset() {
-				try {
-					return file.getCharset();
-				} catch (CoreException e) {
-					return null;
-				}
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.resources.IFileState#getFullPath()
-			 */
-			public IPath getFullPath() {
-				return file.getFullPath();
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.resources.IFileState#getName()
-			 */
-			public String getName() {
-				return file.getName();
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.resources.IFileState#exists()
-			 */
-			public boolean exists() {
-				return true;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.resources.IFileState#isReadOnly()
-			 */
-			public boolean isReadOnly() {
-				return true;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.resources.IFileState#getModificationTime()
-			 */
-			public long getModificationTime() {
-				return file.getLocalTimeStamp();
-			}
-		};
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateFolderOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateFolderOperation.java
deleted file mode 100644
index f8642d2..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateFolderOperation.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.ide.undo;
-
-import java.net.URI;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.ui.internal.ide.undo.ContainerDescription;
-import org.eclipse.ui.internal.ide.undo.FolderDescription;
-import org.eclipse.ui.internal.ide.undo.ResourceDescription;
-
-/**
- * A CreateFolderOperation represents an undoable operation for creating a
- * folder in the workspace. If a link location is specified, the folder is
- * considered to be linked to the specified location. If a link location is not
- * specified, the folder will be created in the location specified by the
- * handle, and the entire containment path of the folder will be created if it
- * does not exist. Clients may call the public API from a background thread.
- * 
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class CreateFolderOperation extends AbstractCreateResourcesOperation {
-
-	/**
-	 * Create a CreateFolderOperation
-	 * 
-	 * @param folderHandle
-	 *            the folder to be created
-	 * @param linkLocation
-	 *            the location of the folder if it is to be linked
-	 * @param label
-	 *            the label of the operation
-	 */
-	public CreateFolderOperation(IFolder folderHandle, URI linkLocation,
-			String label) {
-		super(null, label);
-		ContainerDescription containerDescription;
-		if (linkLocation == null) {
-			containerDescription = ContainerDescription
-					.fromContainer(folderHandle);
-		} else {
-			// create a linked folder description
-			containerDescription = new FolderDescription(folderHandle,
-					linkLocation);
-		}
-		setResourceDescriptions(new ResourceDescription[] { containerDescription });
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateMarkersOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateMarkersOperation.java
deleted file mode 100644
index 49d3e07..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateMarkersOperation.java
+++ /dev/null
@@ -1,177 +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.ide.undo;
-
-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.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.ui.internal.ide.undo.MarkerDescription;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * A CreateMarkersOperation represents an undoable operation for creating one or
- * more markers on one or more resources in the workspace. Clients may call the
- * public API from a background thread.
- * 
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class CreateMarkersOperation extends AbstractMarkersOperation {
-
-	/**
-	 * Create an undoable operation that can create a marker of a specific type
-	 * on a resource.
-	 * 
-	 * @param type
-	 *            the type of marker to be created
-	 * @param attributes
-	 *            the map of attributes that should be assigned to the marker
-	 * @param resource
-	 *            the resource on which the marker should be created
-	 * @param name
-	 *            the name used to describe the operation that creates the
-	 *            marker
-	 * 
-	 * @see org.eclipse.core.resources.IMarker
-	 */
-	public CreateMarkersOperation(String type, Map attributes,
-			IResource resource, String name) {
-		super(null, new MarkerDescription[] { new MarkerDescription(type,
-				attributes, resource) }, null, name);
-	}
-
-	/**
-	 * Create an undoable operation that can create multiple markers of various
-	 * types on multiple resources.
-	 * 
-	 * @param types
-	 *            an array describing the types of markers to be created
-	 * @param attributes
-	 *            an array of maps of attributes that should be assigned to each
-	 *            created marker, corresponding to each marker type described
-	 * @param resources
-	 *            an array of resources describing the resource on which the
-	 *            corresponding marker type should be created
-	 * @param name
-	 *            the name used to describe the operation that creates the
-	 *            markers
-	 */
-	public CreateMarkersOperation(String[] types, Map[] attributes,
-			IResource[] resources, String name) {
-		super(null, null, null, name);
-		MarkerDescription[] markersToCreate = new MarkerDescription[attributes.length];
-		for (int i = 0; i < markersToCreate.length; i++) {
-			markersToCreate[i] = new MarkerDescription(types[i], attributes[i],
-					resources[i]);
-		}
-		setMarkerDescriptions(markersToCreate);
-	}
-
-	/**
-	 * Create an undoable operation that can create multiple markers of a single
-	 * type on multiple resources.
-	 * 
-	 * @param type
-	 *            the type of markers to be created
-	 * @param attributes
-	 *            an array of maps of attributes that should be assigned to each
-	 *            created marker
-	 * @param resources
-	 *            an array of resources describing the resource on which the
-	 *            marker with the corresponding attributes should be created
-	 * @param name
-	 *            the name used to describe the operation that creates the
-	 *            markers
-	 */
-	public CreateMarkersOperation(String type, Map[] attributes,
-			IResource[] resources, String name) {
-		super(null, null, null, name);
-		MarkerDescription[] markersToCreate = new MarkerDescription[attributes.length];
-		for (int i = 0; i < markersToCreate.length; i++) {
-			markersToCreate[i] = new MarkerDescription(type, attributes[i],
-					resources[i]);
-		}
-		setMarkerDescriptions(markersToCreate);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation creates markers
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doExecute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doExecute(IProgressMonitor monitor, IAdaptable info)
-			throws CoreException {
-		if (monitor == null) {
-			monitor = new NullProgressMonitor();
-		}
-		monitor.beginTask("", 100); //$NON-NLS-1$
-		monitor.setTaskName(UndoMessages.MarkerOperation_CreateProgress);
-		createMarkers(100, monitor);
-		monitor.done();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation deletes markers
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doUndo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doUndo(IProgressMonitor monitor, IAdaptable info)
-			throws CoreException {
-		if (monitor == null) {
-			monitor = new NullProgressMonitor();
-		}
-		monitor.beginTask("", 100); //$NON-NLS-1$
-		monitor.setTaskName(UndoMessages.MarkerOperation_DeleteProgress);
-		deleteMarkers(100, monitor);
-		monitor.done();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation maps the undo status to the deletion status.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractMarkersOperation#getBasicUndoStatus()
-	 */
-	protected IStatus getBasicUndoStatus() {
-		return getMarkerDeletionStatus();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * This implementation maps the redo status to the creation status.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractMarkersOperation#getBasicRedoStatus()
-	 */
-	protected IStatus getBasicRedoStatus() {
-		return getMarkerCreationStatus();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateProjectOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateProjectOperation.java
deleted file mode 100644
index 313f1b1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CreateProjectOperation.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.ide.undo;
-
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.ide.undo.ProjectDescription;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * A CreateProjectOperation represents an undoable operation for creating a
- * project in the workspace. Clients may call the public API from a background
- * thread.
- * 
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class CreateProjectOperation extends AbstractCreateResourcesOperation {
-
-	/**
-	 * Create a CreateProjectOperation
-	 * 
-	 * @param projectDescription
-	 *            the project to be created
-	 * @param label
-	 *            the label of the operation
-	 */
-	public CreateProjectOperation(IProjectDescription projectDescription,
-			String label) {
-		super(new ProjectDescription[] { new ProjectDescription(
-				projectDescription) }, label);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Overridden to return a specific error message for the existence of a case
-	 * variant of a project.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#getErrorMessage(org.eclipse.core.runtime.CoreException)
-	 */
-	protected String getErrorMessage(CoreException e) {
-		if (e.getStatus().getCode() == IResourceStatus.CASE_VARIANT_EXISTS) {
-			if (resourceDescriptions != null
-					&& resourceDescriptions.length == 1) {
-				ProjectDescription project = (ProjectDescription) resourceDescriptions[0];
-				return NLS
-						.bind(
-								UndoMessages.CreateProjectOperation_caseVariantExistsError,
-								project.getName());
-			}
-		}
-		return super.getErrorMessage(e);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/DeleteMarkersOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/DeleteMarkersOperation.java
deleted file mode 100644
index 442d4f0..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/DeleteMarkersOperation.java
+++ /dev/null
@@ -1,111 +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.ide.undo;
-
-import org.eclipse.core.resources.IMarker;
-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.NullProgressMonitor;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * A DeleteMarkersOperation represents an undoable operation for deleting one or
- * more markers in the workspace. Clients may call the public API from a
- * background thread.
- * 
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class DeleteMarkersOperation extends AbstractMarkersOperation {
-
-	/**
-	 * Create an undoable operation that can delete the specified markers.
-	 * 
-	 * @param markers
-	 *            the markers to be deleted
-	 * @param name
-	 *            the name used to describe the operation that deletes the
-	 *            markers
-	 */
-	public DeleteMarkersOperation(IMarker[] markers, String name) {
-		super(markers, null, null, name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map execution to marker deletion.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doExecute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doExecute(IProgressMonitor monitor, IAdaptable info)
-			throws CoreException {
-		if (monitor == null) {
-			monitor = new NullProgressMonitor();
-		}
-		monitor.beginTask("", 100); //$NON-NLS-1$
-		monitor.setTaskName(UndoMessages.MarkerOperation_DeleteProgress);
-		deleteMarkers(100, monitor);
-		monitor.done();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map undo to marker creation.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doUndo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doUndo(IProgressMonitor monitor, IAdaptable info)
-			throws CoreException {
-		if (monitor == null) {
-			monitor = new NullProgressMonitor();
-		}
-		monitor.beginTask("", 100); //$NON-NLS-1$
-		monitor.setTaskName(UndoMessages.MarkerOperation_CreateProgress);
-		createMarkers(100, monitor);
-		monitor.done();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map the undo status to marker creation status.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractMarkersOperation#getBasicUndoStatus()
-	 */
-	protected IStatus getBasicUndoStatus() {
-		return getMarkerCreationStatus();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map the redo status to marker deletion status.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractMarkersOperation#getBasicRedoStatus()
-	 */
-	protected IStatus getBasicRedoStatus() {
-		return getMarkerDeletionStatus();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/DeleteResourcesOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/DeleteResourcesOperation.java
deleted file mode 100644
index cc37b40..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/DeleteResourcesOperation.java
+++ /dev/null
@@ -1,195 +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.ide.undo;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-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.jobs.ISchedulingRule;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * A DeleteResourcesOperation represents an undoable operation for deleting one
- * or more resources in the workspace. Clients may call the public API from a
- * background thread.
- * 
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class DeleteResourcesOperation extends AbstractResourcesOperation {
-
-	// Whether to delete project content
-	private boolean deleteContent = false;
-
-	/**
-	 * Create a DeleteResourcesOperation
-	 * 
-	 * @param resources
-	 *            the resources to be deleted
-	 * @param label
-	 *            the label of the operation
-	 * @param deleteContent
-	 *            whether or not we are deleting content for projects
-	 */
-	public DeleteResourcesOperation(IResource[] resources, String label,
-			boolean deleteContent) {
-		super(resources, label);
-		this.deleteContent = deleteContent;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map execution to resource deletion.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doExecute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doExecute(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		delete(monitor, uiInfo, deleteContent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map undo to resource recreation.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doUndo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doUndo(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		recreate(monitor, uiInfo);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#updateResourceChangeDescriptionFactory(org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory,
-	 *      int)
-	 */
-	protected boolean updateResourceChangeDescriptionFactory(
-			IResourceChangeDescriptionFactory factory, int operation) {
-		boolean modified = false;
-		if (operation == UNDO) {
-			for (int i = 0; i < resourceDescriptions.length; i++) {
-				IResource resource = resourceDescriptions[i]
-						.createResourceHandle();
-				factory.create(resource);
-				modified = true;
-			}
-		} else {
-			for (int i = 0; i < resources.length; i++) {
-				IResource resource = resources[i];
-				factory.delete(resource);
-				modified = true;
-			}
-		}
-		return modified;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#getExecuteSchedulingRule()
-	 */
-	protected ISchedulingRule getExecuteSchedulingRule() {
-		return super.computeDeleteSchedulingRule();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#getUndoSchedulingRule()
-	 */
-	protected ISchedulingRule getUndoSchedulingRule() {
-		return super.computeCreateSchedulingRule();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map execution status to deletion status. Provide an extra warning if
-	 * project content is to be deleted.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeExecutionStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeExecutionStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeExecutionStatus(monitor);
-		if (status.isOK()) {
-			status = computeDeleteStatus();
-		}
-		if (status.isOK()) {
-			// If the resources to be deleted include projects whose content
-			// is to be deleted, return a warning status describing the problem.
-			if (deleteContent && resourcesIncludesProjects()) {
-				status = getWarningStatus(
-						UndoMessages.DeleteResourcesOperation_DeletingProjectContentWarning,
-						0);
-			}
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map undo status to resource creation status.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeUndoableStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeUndoableStatus(monitor);
-		if (status.isOK()) {
-			status = computeCreateStatus();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map redo status to resource deletion status.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeRedoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeRedoableStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeRedoableStatus(monitor);
-		if (status.isOK()) {
-			status = computeDeleteStatus();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#appendDescriptiveText(java.lang.StringBuffer)
-	 */
-	protected void appendDescriptiveText(StringBuffer text) {
-		super.appendDescriptiveText(text);
-		text.append(" deleteContent: "); //$NON-NLS-1$
-		text.append(deleteContent);
-		text.append('\'');
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/MoveProjectOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/MoveProjectOperation.java
deleted file mode 100644
index d6e4b93..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/MoveProjectOperation.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.ide.undo;
-
-import java.net.URI;
-
-import org.eclipse.core.filesystem.URIUtil;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.core.runtime.Assert;
-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.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.internal.ide.undo.ResourceDescription;
-
-/**
- * A MoveProjectOperation represents an undoable operation for moving a
- * project's content to a different location. Clients may call the public API
- * from a background thread.
- * 
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class MoveProjectOperation extends MoveResourcesOperation {
-
-	private URI projectLocation;
-
-	/**
-	 * Create a MoveProjectOperation that moves the specified project contents
-	 * to a new location.
-	 * 
-	 * @param project
-	 *            the project to be moved
-	 * @param location
-	 *            the location for the project
-	 * @param label
-	 *            the label of the operation
-	 */
-	public MoveProjectOperation(IProject project, URI location, String label) {
-		super(new IResource[] { project }, label);
-		Assert.isLegal(project != null);
-		if (URIUtil.toPath(location).equals(Platform.getLocation())) {
-			projectLocation = null;
-		} else {
-			projectLocation = location;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#updateResourceChangeDescriptionFactory(org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory,
-	 *      int)
-	 */
-	protected boolean updateResourceChangeDescriptionFactory(
-			IResourceChangeDescriptionFactory factory, int operation) {
-		// A change of project location only is not of interest to
-		// model providers, so treat it as if nothing is happening.
-		return false;
-	}
-
-	/*
-	 * Get the project that this operation is moving.
-	 */
-	private IProject getProject() {
-		return (IProject) resources[0];
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractCopyOrMoveResourcesOperation#getOverwrittenResource(org.eclipse.core.resources.IResource,
-	 *      int)
-	 */
-	protected IResource getOverwrittenResource(IResource resource, int index) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Checks that the specified project location is valid in addition to
-	 * superclass checks.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractCopyOrMoveResourcesOperation#computeMoveOrCopyStatus()
-	 */
-	protected IStatus computeMoveOrCopyStatus() {
-		IStatus status = Status.OK_STATUS;
-		if (projectLocation != null) {
-			status = getWorkspace().validateProjectLocationURI(getProject(),
-					projectLocation);
-		}
-		if (status.isOK()) {
-			return super.computeMoveOrCopyStatus();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map execute to moving the project
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doExecute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doExecute(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		projectLocation = moveProject(getProject(), projectLocation, monitor);
-		// nothing was overwritten
-		setResourceDescriptions(new ResourceDescription[0]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map undo to moving the project.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doUndo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doUndo(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		doExecute(monitor, uiInfo);
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.ide.undo.AbstractCopyOrMoveResourcesOperation#isDestinationPathValid(org.eclipse.core.resources.IResource, int)
-	 */
-	protected boolean isDestinationPathValid(IResource resource, int index) {
-		// path has already been validated in #computeMoveOrCopyStatus()
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.ide.undo.AbstractCopyOrMoveResourcesOperation#getProposedName(org.eclipse.core.resources.IResource, int)
-	 */
-	protected String getProposedName(IResource resource, int index) {
-		return getProject().getName();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/MoveResourcesOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/MoveResourcesOperation.java
deleted file mode 100644
index b083a87..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/MoveResourcesOperation.java
+++ /dev/null
@@ -1,171 +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.ide.undo;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A MoveResourcesOperation represents an undoable operation for moving one or
- * more resources in the workspace. Clients may call the public API from a
- * background thread.
- * 
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class MoveResourcesOperation extends
-		AbstractCopyOrMoveResourcesOperation {
-
-	/**
-	 * Create a MoveResourcesOperation that moves all of the specified resources
-	 * to the same target location, using their existing names.
-	 * 
-	 * @param resources
-	 *            the resources to be moved
-	 * @param destinationPath
-	 *            the destination path for the resources, not including the name
-	 *            of the new resource.
-	 * @param label
-	 *            the label of the operation
-	 */
-	public MoveResourcesOperation(IResource[] resources, IPath destinationPath,
-			String label) {
-		super(resources, destinationPath, label);
-	}
-
-	/**
-	 * Create a MoveResourcesOperation that moves a single resource to a new
-	 * location. The new location includes the name of the resource, so this may
-	 * be used for a move/rename operation or a simple move.
-	 * 
-	 * @param resource
-	 *            the resource to be moved
-	 * @param newPath
-	 *            the new path for the resource, including its desired name.
-	 * @param label
-	 *            the label of the operation
-	 */
-	public MoveResourcesOperation(IResource resource, IPath newPath,
-			String label) {
-		super(new IResource[] { resource }, new IPath[] { newPath }, label);
-	}
-
-	/**
-	 * Create a MoveResourcesOperation whose destination is not
-	 * yet specified.
-	 * 
-	 * @param resources
-	 *            the resources to be modified
-	 * @param label
-	 *            the label of the operation
-	 */
-	MoveResourcesOperation(IResource[] resources, String label) {
-		super(resources, label);
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map execute to moving the resources
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doExecute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doExecute(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		moveOrCopy(monitor, uiInfo, true); // true = move
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map undo to moving the resources.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doUndo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doUndo(IProgressMonitor monitor, IAdaptable uiInfo)
-			throws CoreException {
-		moveOrCopy(monitor, uiInfo, true); // true = move
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#updateResourceChangeDescriptionFactory(org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory,
-	 *      int)
-	 */
-	protected boolean updateResourceChangeDescriptionFactory(
-			IResourceChangeDescriptionFactory factory, int operation) {
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			factory.move(resource, getDestinationPath(resource, i));
-		}
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map execution to move status.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeExecutionStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeExecutionStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeExecutionStatus(monitor);
-		if (status.isOK()) {
-			status = computeMoveOrCopyStatus();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map undo to move status.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeUndoableStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeUndoableStatus(monitor);
-		if (status.isOK()) {
-			status = computeMoveOrCopyStatus();
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map redo to move status.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#computeRedoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeRedoableStatus(IProgressMonitor monitor) {
-		IStatus status = super.computeRedoableStatus(monitor);
-		if (status.isOK()) {
-			status = computeMoveOrCopyStatus();
-		}
-		return status;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/UpdateMarkersOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/UpdateMarkersOperation.java
deleted file mode 100644
index 8cda8d0..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/UpdateMarkersOperation.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
- ******************************************************************************/
-
-package org.eclipse.ui.ide.undo;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-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.NullProgressMonitor;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * An UpdateMarkersOperation represents an undoable operation for updating one
- * or more markers in the workspace with one or more sets of attributes. Clients
- * may call the public API from a background thread.
- * 
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class UpdateMarkersOperation extends AbstractMarkersOperation {
-
-	// Whether attributes should be merged with existing attributes when
-	// updated, or considered to be complete replacements.
-	private boolean mergeAttributes;
-
-	/**
-	 * Create an undoable operation that can update the specified marker with
-	 * the specified attributes.
-	 * 
-	 * @param marker
-	 *            the marker to be updated
-	 * @param attributes
-	 *            the map of attributes to be assigned to the marker. This map
-	 *            does not replace the attribute map of the marker, but instead,
-	 *            each attribute in the map is added or updated with the current
-	 *            value in the map. In other words
-	 * @param name
-	 *            the name used to describe this operation
-	 * @param mergeAttributes
-	 *            <code>true</code> if the specified map of attributes for the
-	 *            marker is to be merged with the attributes already specified
-	 *            for the marker, or <code>false</code> if the specified map
-	 *            of attributes is to be considered a complete replacement of
-	 *            all attributes of the marker
-	 */
-	public UpdateMarkersOperation(IMarker marker, Map attributes, String name,
-			boolean mergeAttributes) {
-		super(new IMarker[] { marker }, null, attributes, name);
-		this.mergeAttributes = mergeAttributes;
-	}
-
-	/**
-	 * Create an undoable operation that updates many markers to have the same
-	 * set of attributes.
-	 * 
-	 * @param markers
-	 *            the markers to be updated
-	 * @param attributes
-	 *            the map of attributes to be assigned to each marker
-	 * @param name
-	 *            the name used to describe this operation
-	 * @param mergeAttributes
-	 *            <code>true</code> if the specified map of attributes for
-	 *            each marker is to be merged with the attributes already
-	 *            specified for that marker, or <code>false</code> if the
-	 *            specified map of attributes is to be considered a complete
-	 *            replacement of all attributes for each marker
-	 */
-	public UpdateMarkersOperation(IMarker[] markers, Map attributes,
-			String name, boolean mergeAttributes) {
-		super(markers, null, attributes, name);
-		this.mergeAttributes = mergeAttributes;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map execution to updating the markers.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doExecute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doExecute(IProgressMonitor monitor, IAdaptable info)
-			throws CoreException {
-		if (monitor == null) {
-			monitor = new NullProgressMonitor();
-		}
-		monitor.beginTask("", 100); //$NON-NLS-1$
-		monitor.setTaskName(UndoMessages.MarkerOperation_UpdateProgress);
-		updateMarkers(100, monitor, mergeAttributes);
-		monitor.done();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map undo to execute (since both operations update the markers).
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractWorkspaceOperation#doUndo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	protected void doUndo(IProgressMonitor monitor, IAdaptable info)
-			throws CoreException {
-		// doExecute simply swaps the current and remembered attributes,
-		// so it can also be used for undo
-		doExecute(monitor, info);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map undo status to marker update status.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractMarkersOperation#getBasicUndoStatus()
-	 */
-	protected IStatus getBasicUndoStatus() {
-		return getMarkerUpdateStatus();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * Map redo status to marker update status.
-	 * 
-	 * @see org.eclipse.ui.ide.undo.AbstractMarkersOperation#getBasicRedoStatus()
-	 */
-	protected IStatus getBasicRedoStatus() {
-		return getMarkerUpdateStatus();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/WorkspaceUndoUtil.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/WorkspaceUndoUtil.java
deleted file mode 100644
index e4f204e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/WorkspaceUndoUtil.java
+++ /dev/null
@@ -1,706 +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.ide.undo;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.ObjectUndoContext;
-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.resources.IResourceStatus;
-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.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.undo.ContainerDescription;
-import org.eclipse.ui.internal.ide.undo.FileDescription;
-import org.eclipse.ui.internal.ide.undo.ResourceDescription;
-import org.eclipse.ui.internal.ide.undo.UndoMessages;
-
-/**
- * WorkspaceUndoUtil defines common utility methods and constants used by
- * clients who create undoable workspace operations.
- * 
- * <strong>EXPERIMENTAL</strong> This class or interface has been added as part
- * of a work in progress. This API may change at any given time. Please do not
- * use this API without consulting with the Platform/UI team.
- * 
- * @since 3.3
- * 
- */
-public class WorkspaceUndoUtil {
-
-	private static ObjectUndoContext tasksUndoContext;
-
-	private static ObjectUndoContext bookmarksUndoContext;
-
-	/**
-	 * Return the undo context that should be used for workspace-wide operations
-	 * 
-	 * @return the undo context suitable for workspace-level operations.
-	 */
-	public static IUndoContext getWorkspaceUndoContext() {
-		return WorkbenchPlugin.getDefault().getOperationSupport()
-				.getUndoContext();
-	}
-
-	/**
-	 * Return the undo context that should be used for operations involving
-	 * tasks.
-	 * 
-	 * @return the tasks undo context
-	 */
-	public static IUndoContext getTasksUndoContext() {
-		if (tasksUndoContext == null) {
-			tasksUndoContext = new ObjectUndoContext(new Object(),
-					"Tasks Context"); //$NON-NLS-1$
-			tasksUndoContext.addMatch(getWorkspaceUndoContext());
-		}
-		return tasksUndoContext;
-	}
-
-	/**
-	 * Return the undo context that should be used for operations involving
-	 * bookmarks.
-	 * 
-	 * @return the bookmarks undo context
-	 */
-	public static IUndoContext getBookmarksUndoContext() {
-		if (bookmarksUndoContext == null) {
-			bookmarksUndoContext = new ObjectUndoContext(new Object(),
-					"Bookmarks Context"); //$NON-NLS-1$
-			bookmarksUndoContext.addMatch(getWorkspaceUndoContext());
-		}
-		return bookmarksUndoContext;
-	}
-
-	/**
-	 * Make an <code>IAdaptable</code> that adapts to the specified shell,
-	 * suitable for passing for passing to any {@link IUndoableOperation} or
-	 * {@link IOperationHistory} method that requires an {@link IAdaptable}
-	 * <code>uiInfo</code> parameter.
-	 * 
-	 * @param shell
-	 *            the shell that should be returned by the IAdaptable when asked
-	 *            to adapt a shell. If this parameter is <code>null</code>,
-	 *            the returned shell will also be <code>null</code>.
-	 * 
-	 * @return an IAdaptable that will return the specified shell.
-	 */
-	public static IAdaptable getUIInfoAdapter(final Shell shell) {
-		return new IAdaptable() {
-			public Object getAdapter(Class clazz) {
-				if (clazz == Shell.class) {
-					return shell;
-				}
-				return null;
-			}
-		};
-	}
-
-	private WorkspaceUndoUtil() {
-		// should not construct
-	}
-
-	/**
-	 * Delete all of the specified resources, returning resource descriptions
-	 * that can be used to restore them.
-	 * 
-	 * @param resourcesToDelete
-	 *            an array of resources to be deleted
-	 * @param monitor
-	 *            the progress monitor to use to show the operation's progress
-	 * @param uiInfo
-	 *            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 contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * 
-	 * @param deleteContent
-	 *            a boolean indicating whether project content should be deleted
-	 *            when a project resource is to be deleted
-	 * @return an array of ResourceDescriptions that can be used to restore the
-	 *         deleted resources.
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 */
-	static ResourceDescription[] delete(IResource[] resourcesToDelete,
-			IProgressMonitor monitor, IAdaptable uiInfo, boolean deleteContent)
-			throws CoreException {
-		final List exceptions = new ArrayList();
-		boolean forceOutOfSyncDelete = false;
-		ResourceDescription[] returnedResourceDescriptions = new ResourceDescription[resourcesToDelete.length];
-		monitor.beginTask("", resourcesToDelete.length); //$NON-NLS-1$
-		monitor
-				.setTaskName(UndoMessages.AbstractResourcesOperation_DeleteResourcesProgress);
-		try {
-			for (int i = 0; i < resourcesToDelete.length; ++i) {
-				if (monitor.isCanceled()) {
-					throw new OperationCanceledException();
-				}
-				IResource resource = resourcesToDelete[i];
-				try {
-					returnedResourceDescriptions[i] = delete(resource,
-							new SubProgressMonitor(monitor, 1), uiInfo,
-							forceOutOfSyncDelete, deleteContent);
-				} catch (CoreException e) {
-					if (resource.getType() == IResource.FILE) {
-						IStatus[] children = e.getStatus().getChildren();
-						if (children.length == 1
-								&& children[0].getCode() == IResourceStatus.OUT_OF_SYNC_LOCAL) {
-							int result = queryDeleteOutOfSync(resource, uiInfo);
-
-							if (result == IDialogConstants.YES_ID) {
-								// retry the delete with a force out of sync
-								delete(resource, new SubProgressMonitor(
-										monitor, 1), uiInfo, true,
-										deleteContent);
-							} else if (result == IDialogConstants.YES_TO_ALL_ID) {
-								// all future attempts should force out of
-								// sync
-								forceOutOfSyncDelete = true;
-								delete(resource, new SubProgressMonitor(
-										monitor, 1), uiInfo,
-										forceOutOfSyncDelete, deleteContent);
-							} else if (result == IDialogConstants.CANCEL_ID) {
-								throw new OperationCanceledException();
-							} else {
-								exceptions.add(e);
-							}
-						} else {
-							exceptions.add(e);
-						}
-					} else {
-						exceptions.add(e);
-					}
-				}
-			}
-			IStatus result = createResult(exceptions);
-			if (!result.isOK()) {
-				throw new CoreException(result);
-			}
-		} finally {
-			monitor.done();
-		}
-		return returnedResourceDescriptions;
-	}
-
-	/**
-	 * Move the specified resource to the new path provided. The new path is
-	 * relative to the workspace and includes any new name desired for the moved
-	 * resource. Note that this method does not handle the movement of a project
-	 * from one location URI to another. Return the resource descriptions for
-	 * any resources that were overwritten as part of the move.
-	 * 
-	 * @param resourceToMove
-	 *            the resource to be moved
-	 * @param newPath
-	 *            the workspace-relative destination path for the resource,
-	 *            including its name
-	 * @param monitor
-	 *            the progress monitor used to show progress
-	 * @param uiInfo
-	 *            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 contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * @return an array of ResourceDescriptions describing any resources that
-	 *         were overwritten by the move operation
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 */
-
-	static ResourceDescription[] move(IResource resourceToMove, IPath newPath,
-			IProgressMonitor monitor, IAdaptable uiInfo) throws CoreException {
-		monitor.beginTask("", 3); //$NON-NLS-1$
-		monitor
-				.setTaskName(UndoMessages.AbstractResourcesOperation_MovingResources);
-		IWorkspaceRoot workspaceRoot = getWorkspaceRoot();
-		List overwrittenResources = new ArrayList();
-
-		// Some moves are optimized and recorded as complete in this flag
-		boolean moved = false;
-		IResource newResource = workspaceRoot.findMember(newPath);
-		// If a resource already exists at the new location, we must
-		// overwrite it.
-		if (newResource != null) {
-			// File on file overwrite is optimized as a reset of the
-			// target file's contents
-			if (resourceToMove.getType() == IResource.FILE
-					&& newResource.getType() == IResource.FILE) {
-				IFile file = (IFile) resourceToMove;
-				IFile existingFile = (IFile) newResource;
-				ResourceDescription resourceDescription = copyOverExistingResource(
-						file, existingFile, monitor, uiInfo, true);
-				if (resourceDescription != null) {
-					overwrittenResources.add(resourceDescription);
-					moved = true;
-				}
-			} else {
-				// Any other overwrite is simply a delete of the resource
-				// that is being overwritten, followed by the move
-				ResourceDescription[] deleted = delete(
-						new IResource[] { newResource },
-						new SubProgressMonitor(monitor, 1), uiInfo, false);
-				for (int j = 0; j < deleted.length; j++) {
-					overwrittenResources.add(deleted[j]);
-				}
-			}
-		} else {
-			monitor.worked(100);
-		}
-		// Overwrites have been handled. If there is still a move to do, do
-		// so now.
-		if (!moved) {
-			generateContainers(newPath.removeLastSegments(1));
-			resourceToMove.move(newPath, IResource.KEEP_HISTORY
-					| IResource.SHALLOW, new SubProgressMonitor(monitor, 2));
-
-		}
-		monitor.done();
-		return (ResourceDescription[]) overwrittenResources
-				.toArray(new ResourceDescription[overwrittenResources.size()]);
-	}
-
-	/**
-	 * Copies the resources to the given destination. This method can be called
-	 * recursively to merge folders during folder copy.
-	 * 
-	 * @param resources
-	 *            the resources to be copied
-	 * @param destination
-	 *            the destination path for the resources, relative to the
-	 *            workspace
-	 * @param monitor
-	 *            the progress monitor used to show progress
-	 * @param uiInfo
-	 *            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 contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * @param pathIncludesName
-	 *            a boolean that indicates whether the specified path includes
-	 *            the resource's name at the destination. If this value is
-	 *            <code>true</code>, the destination will contain the desired
-	 *            name of the resource (usually only desired when only one
-	 *            resource is being copied). If this value is <code>false</code>,
-	 *            each resource's name will be appended to the destination.
-	 * @return an array of ResourceDescriptions describing any resources that
-	 *         were overwritten by the move operation
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 */
-	static ResourceDescription[] copy(IResource[] resources, IPath destination,
-			IProgressMonitor monitor, IAdaptable uiInfo,
-			boolean pathIncludesName) throws CoreException {
-
-		monitor.beginTask("", resources.length); //$NON-NLS-1$
-		monitor
-				.setTaskName(UndoMessages.AbstractResourcesOperation_CopyingResourcesProgress);
-		List overwrittenResources = new ArrayList();
-		for (int i = 0; i < resources.length; i++) {
-			IResource source = resources[i];
-			IPath destinationPath;
-			if (pathIncludesName) {
-				destinationPath = destination;
-			} else {
-				destinationPath = destination.append(source.getName());
-			}
-			IWorkspaceRoot workspaceRoot = getWorkspaceRoot();
-			IResource existing = workspaceRoot.findMember(destinationPath);
-			if (source.getType() == IResource.FOLDER && existing != null) {
-				// The resource is a folder and it exists in the destination.
-				// Copy its children to the existing destination.
-
-				if (source.isLinked() == existing.isLinked()) {
-					IResource[] children = ((IContainer) source).members();
-					ResourceDescription[] overwritten = copy(children,
-							destinationPath,
-							new SubProgressMonitor(monitor, 1), uiInfo, false);
-					for (int j = 0; j < overwritten.length; j++) {
-						overwrittenResources.add(overwritten[j]);
-					}
-
-				} else {
-					// delete the destination folder, copying a linked folder
-					// over an unlinked one or vice versa. Fixes bug 28772.
-					ResourceDescription[] deleted = delete(
-							new IResource[] { existing },
-							new SubProgressMonitor(monitor, 0), uiInfo, false);
-					source.copy(destinationPath, IResource.SHALLOW,
-							new SubProgressMonitor(monitor, 1));
-					for (int j = 0; j < deleted.length; j++) {
-						overwrittenResources.add(deleted[j]);
-					}
-				}
-			} else {
-				if (existing != null) {
-					if (source.isLinked() == existing.isLinked()) {
-						overwrittenResources.add(copyOverExistingResource(
-								source, existing, new SubProgressMonitor(
-										monitor, 1), uiInfo, false));
-					} else {
-						// Copying a linked resource over unlinked or vice
-						// versa. Can't use setContents here. Fixes bug 28772.
-						ResourceDescription[] deleted = delete(
-								new IResource[] { existing },
-								new SubProgressMonitor(monitor, 0), uiInfo,
-								false);
-						source.copy(destinationPath, IResource.SHALLOW,
-								new SubProgressMonitor(monitor, 1));
-						for (int j = 0; j < deleted.length; j++) {
-							overwrittenResources.add(deleted[j]);
-						}
-					}
-				} else {
-					// no resources are being overwritten
-					// ensure the destination path exists
-					IPath parentPath = destination;
-					if (pathIncludesName) {
-						parentPath = destination.removeLastSegments(1);
-					}
-					generateContainers(parentPath);
-					source.copy(destinationPath, IResource.SHALLOW,
-							new SubProgressMonitor(monitor, 1));
-				}
-
-				if (monitor.isCanceled()) {
-					throw new OperationCanceledException();
-				}
-			}
-		}
-		return (ResourceDescription[]) overwrittenResources
-				.toArray(new ResourceDescription[overwrittenResources.size()]);
-
-	}
-
-	/**
-	 * Recreate the resources from the specified resource descriptions.
-	 * 
-	 * @param resourcesToRecreate
-	 *            the ResourceDescriptions describing resources to be recreated
-	 * @param monitor
-	 *            the progress monitor used to show progress
-	 * @param uiInfo
-	 *            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 contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * @return an array of resources that were created
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 */
-	static IResource[] recreate(ResourceDescription[] resourcesToRecreate,
-			IProgressMonitor monitor, IAdaptable uiInfo) throws CoreException {
-		final List exceptions = new ArrayList();
-		IResource[] resourcesToReturn = new IResource[resourcesToRecreate.length];
-		monitor.beginTask("", resourcesToRecreate.length); //$NON-NLS-1$
-		monitor
-				.setTaskName(UndoMessages.AbstractResourcesOperation_CreateResourcesProgress);
-		try {
-			for (int i = 0; i < resourcesToRecreate.length; ++i) {
-				if (monitor.isCanceled()) {
-					throw new OperationCanceledException();
-				}
-				try {
-					resourcesToReturn[i] = resourcesToRecreate[i]
-							.createResource(new SubProgressMonitor(monitor, 1));
-				} catch (CoreException e) {
-					exceptions.add(e);
-				}
-			}
-			IStatus result = WorkspaceUndoUtil.createResult(exceptions);
-			if (!result.isOK()) {
-				throw new CoreException(result);
-			}
-		} finally {
-			monitor.done();
-		}
-		return resourcesToReturn;
-	}
-
-	/**
-	 * Delete the specified resources, returning a resource description that can
-	 * be used to restore it.
-	 * 
-	 * @param resourceToDelete
-	 *            the resource to be deleted
-	 * @param monitor
-	 *            the progress monitor to use to show the operation's progress
-	 * @param uiInfo
-	 *            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 contains an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class
-	 * @param forceOutOfSyncDelete
-	 *            a boolean indicating whether a resource should be deleted even
-	 *            if it is out of sync with the file system
-	 * @param deleteContent
-	 *            a boolean indicating whether project content should be deleted
-	 *            when a project resource is to be deleted
-	 * @return a ResourceDescription that can be used to restore the deleted
-	 *         resource.
-	 * @throws CoreException
-	 *             propagates any CoreExceptions thrown from the resources API
-	 */
-	static ResourceDescription delete(IResource resourceToDelete,
-			IProgressMonitor monitor, IAdaptable uiInfo,
-			boolean forceOutOfSyncDelete, boolean deleteContent)
-			throws CoreException {
-		ResourceDescription resourceDescription = ResourceDescription
-				.fromResource(resourceToDelete);
-		if (resourceToDelete.getType() == IResource.PROJECT) {
-			// it is a project
-			monitor
-					.setTaskName(UndoMessages.AbstractResourcesOperation_DeleteResourcesProgress);
-			IProject project = (IProject) resourceToDelete;
-			project.delete(deleteContent, forceOutOfSyncDelete, monitor);
-		} else {
-			// if it's not a project, just delete it
-			monitor.beginTask("", 2); //$NON-NLS-1$
-			monitor
-					.setTaskName(UndoMessages.AbstractResourcesOperation_DeleteResourcesProgress);
-			int updateFlags;
-			if (forceOutOfSyncDelete) {
-				updateFlags = IResource.KEEP_HISTORY | IResource.FORCE;
-			} else {
-				updateFlags = IResource.KEEP_HISTORY;
-			}
-			resourceToDelete.delete(updateFlags, new SubProgressMonitor(
-					monitor, 1));
-			resourceDescription.recordLastHistory(resourceToDelete,
-					new SubProgressMonitor(monitor, 1));
-			monitor.done();
-		}
-
-		return resourceDescription;
-	}
-
-	/*
-	 * Copy the content of the specified resource to the existing resource,
-	 * returning a ResourceDescription that can be used to restore the original
-	 * content. Do nothing if the resources are not files.
-	 */
-	private static ResourceDescription copyOverExistingResource(
-			IResource source, IResource existing, IProgressMonitor monitor,
-			IAdaptable uiInfo, boolean deleteSourceFile) throws CoreException {
-		if (!(source instanceof IFile && existing instanceof IFile)) {
-			return null;
-		}
-		IFile file = (IFile) source;
-		IFile existingFile = (IFile) existing;
-		monitor
-				.beginTask(
-						UndoMessages.AbstractResourcesOperation_CopyingResourcesProgress,
-						3);
-		if (file != null && existingFile != null) {
-			if (validateEdit(file, existingFile, getShell(uiInfo))) {
-				// Remember the state of the existing file so it can be
-				// restored.
-				FileDescription fileDescription = new FileDescription(
-						existingFile);
-				// Reset the contents to that of the file being moved
-				existingFile.setContents(file.getContents(),
-						IResource.KEEP_HISTORY, new SubProgressMonitor(monitor,
-								1));
-				fileDescription.recordLastHistory(existingFile,
-						new SubProgressMonitor(monitor, 1));
-				// Now delete the source file if requested
-				// We don't need to remember anything about it, because
-				// any undo involving this operation will move the original
-				// content back to it.
-				if (deleteSourceFile) {
-					file.delete(IResource.KEEP_HISTORY, new SubProgressMonitor(
-							monitor, 1));
-				}
-				monitor.done();
-				return fileDescription;
-			}
-		}
-		monitor.done();
-		return null;
-	}
-
-	/*
-	 * Check for existence of the specified path and generate any containers
-	 * that do not yet exist.
-	 */
-	private static void generateContainers(IPath path) throws CoreException {
-		IContainer container;
-		if (path.segmentCount() == 0) {
-			// nothing to generate
-			return;
-		} else if (path.segmentCount() == 1) {
-			container = ResourcesPlugin.getWorkspace().getRoot().getProject(
-					path.segment(0));
-		} else {
-			container = ResourcesPlugin.getWorkspace().getRoot()
-					.getFolder(path);
-		}
-		if (container != null) {
-			ContainerDescription containerDescription = ContainerDescription
-					.fromContainer(container);
-			containerDescription.createExistentResourceFromHandle(container,
-					new NullProgressMonitor());
-		}
-
-	}
-
-	/*
-	 * Ask the user whether the given resource should be deleted despite being
-	 * out of sync with the file system.
-	 * 
-	 * Return one of the IDialogConstants constants indicating which of the Yes,
-	 * Yes to All, No, Cancel options has been selected by the user.
-	 */
-	private static int queryDeleteOutOfSync(IResource resource,
-			IAdaptable uiInfo) {
-		Shell shell = getShell(uiInfo);
-		final MessageDialog dialog = new MessageDialog(
-				shell,
-				UndoMessages.AbstractResourcesOperation_deletionMessageTitle,
-				null,
-				NLS
-						.bind(
-								UndoMessages.AbstractResourcesOperation_outOfSyncQuestion,
-								resource.getName()), MessageDialog.QUESTION,
-				new String[] { IDialogConstants.YES_LABEL,
-						IDialogConstants.YES_TO_ALL_LABEL,
-						IDialogConstants.NO_LABEL,
-						IDialogConstants.CANCEL_LABEL }, 0);
-		shell.getDisplay().syncExec(new Runnable() {
-			public void run() {
-				dialog.open();
-			}
-		});
-		int result = dialog.getReturnCode();
-		if (result == 0) {
-			return IDialogConstants.YES_ID;
-		}
-		if (result == 1) {
-			return IDialogConstants.YES_TO_ALL_ID;
-		}
-		if (result == 2) {
-			return IDialogConstants.NO_ID;
-		}
-		return IDialogConstants.CANCEL_ID;
-	}
-
-	/*
-	 * Creates and return a result status appropriate for the given list of
-	 * exceptions.
-	 */
-	private static IStatus createResult(List exceptions) {
-		if (exceptions.isEmpty()) {
-			return Status.OK_STATUS;
-		}
-		final int exceptionCount = exceptions.size();
-		if (exceptionCount == 1) {
-			return ((CoreException) exceptions.get(0)).getStatus();
-		}
-		CoreException[] children = (CoreException[]) exceptions
-				.toArray(new CoreException[exceptionCount]);
-		boolean outOfSync = false;
-		for (int i = 0; i < children.length; i++) {
-			if (children[i].getStatus().getCode() == IResourceStatus.OUT_OF_SYNC_LOCAL) {
-				outOfSync = true;
-				break;
-			}
-		}
-		String title = outOfSync ? UndoMessages.AbstractResourcesOperation_outOfSyncError
-				: UndoMessages.AbstractResourcesOperation_deletionExceptionMessage;
-		final MultiStatus multi = new MultiStatus(
-				IDEWorkbenchPlugin.IDE_WORKBENCH, 0, title, null);
-		for (int i = 0; i < exceptionCount; i++) {
-			CoreException exception = children[i];
-			IStatus status = exception.getStatus();
-			multi.add(new Status(status.getSeverity(), status.getPlugin(),
-					status.getCode(), status.getMessage(), exception));
-		}
-		return multi;
-	}
-
-	/*
-	 * Return the workspace.
-	 */
-	private static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	/*
-	 * Return the workspace root.
-	 */
-	private static IWorkspaceRoot getWorkspaceRoot() {
-		return getWorkspace().getRoot();
-	}
-
-	/*
-	 * Validate the destination file if it is read-only and additionally the
-	 * source file if both are read-only. Returns true if both files could be
-	 * made writeable.
-	 */
-	private static boolean validateEdit(IFile source, IFile destination,
-			Shell shell) {
-		if (destination.isReadOnly()) {
-			IWorkspace workspace = WorkspaceUndoUtil.getWorkspace();
-			IStatus status;
-			if (source.isReadOnly()) {
-				status = workspace.validateEdit(new IFile[] { source,
-						destination }, shell);
-			} else {
-				status = workspace.validateEdit(new IFile[] { destination },
-						shell);
-			}
-			return status.isOK();
-		}
-		return true;
-	}
-
-	/*
-	 * Return the shell described by the specified adaptable, or the active
-	 * shell if no shell has been specified in the adaptable.
-	 */
-	private static Shell getShell(IAdaptable uiInfo) {
-		if (uiInfo != null) {
-			Shell shell = (Shell) uiInfo.getAdapter(Shell.class);
-			if (shell != null) {
-				return shell;
-			}
-		}
-		return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/AboutInfo.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/AboutInfo.java
deleted file mode 100644
index 905672a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/AboutInfo.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.zip.CRC32;
-import java.util.zip.CheckedInputStream;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.core.runtime.IBundleGroupProvider;
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.internal.BundleGroupProperties;
-import org.eclipse.ui.internal.ProductProperties;
-
-/**
- * The information within this object is obtained from the about INI file.
- * This file resides within an install configurations directory and must be a 
- * standard java property file.  
- * <p>
- * This class is not intended to be instantiated or subclassed by clients.
- * </p>
- */
-public final class AboutInfo {
-    private ProductProperties productProperties;
-
-    private BundleGroupProperties bundleGroupProperties;
-
-    private Long featureImageCRC;
-
-    private boolean calculatedImageCRC = false;
-
-    /**
-     * The information contained in this info will apply to only the argument product.
-     */
-    public AboutInfo(IProduct product) {
-        this.productProperties = new ProductProperties(product);
-    }
-
-    /**
-     * This info object will apply to the argument bundle group.
-     */
-    public AboutInfo(IBundleGroup bundleGroup) {
-        this.bundleGroupProperties = new BundleGroupProperties(bundleGroup);
-    }
-
-    /**
-     * Returns the configuration information for the feature with the given id.
-     * 
-     * @param featureId
-     *            the feature id
-     * @param versionId
-     *            the version id (of the feature)
-     * @return the configuration information for the feature
-     */
-    public static AboutInfo readFeatureInfo(String featureId, String versionId) {
-        Assert.isNotNull(featureId);
-        Assert.isNotNull(versionId);
-
-        // first see if the id matches the product
-        IProduct product = Platform.getProduct();
-        if (product != null
-                && featureId.equals(ProductProperties.getProductId(product))) {
-			return new AboutInfo(product);
-		}
-
-        // then check the bundle groups
-        IBundleGroup bundleGroup = getBundleGroup(featureId, versionId);
-        if (bundleGroup != null) {
-			return new AboutInfo(bundleGroup);
-		}
-
-        return null;
-    }
-
-    private static IBundleGroup getBundleGroup(String id, String versionId) {
-        if (id == null || versionId == null) {
-			return null;
-		}
-
-        IBundleGroupProvider[] providers = Platform.getBundleGroupProviders();
-        for (int p = 0; p < providers.length; ++p) {
-            IBundleGroup[] groups = providers[p].getBundleGroups();
-            for (int g = 0; g < groups.length; ++g) {
-				if (id.equals(groups[g].getIdentifier())
-                        && versionId.equals(groups[g].getVersion())) {
-					return groups[g];
-				}
-			}
-        }
-
-        return null;
-    }
-
-    /**
-     * Returns the descriptor for an image which can be shown in an "about" dialog 
-     * for this product. Products designed to run "headless" typically would not 
-     * have such an image.
-     * 
-     * @return the descriptor for an about image, or <code>null</code> if none
-     */
-    public ImageDescriptor getAboutImage() {
-        return productProperties == null ? null : productProperties
-                .getAboutImage();
-    }
-
-    /**
-     * Returns the descriptor for an image which can be shown in an "about features" 
-     * dialog. Products designed to run "headless" typically would not have such an image.
-     * 
-     * @return the descriptor for a feature image, or <code>null</code> if none
-     */
-    public ImageDescriptor getFeatureImage() {
-        return bundleGroupProperties == null ? null : bundleGroupProperties
-                .getFeatureImage();
-    }
-
-    /**
-     * Returns the simple name of the feature image file.
-     * 
-     * @return the simple name of the feature image file,
-     * or <code>null</code> if none
-     */
-    public String getFeatureImageName() {
-        if (bundleGroupProperties == null) {
-			return null;
-		}
-
-        URL url = bundleGroupProperties.getFeatureImageUrl();
-        return url == null ? null : new Path(url.getPath()).lastSegment();
-    }
-
-    /**
-     * Returns the CRC of the feature image as supplied in the properties file.
-     * 
-     * @return the CRC of the feature image, or <code>null</code> if none
-     */
-    public Long getFeatureImageCRC() {
-        if (bundleGroupProperties == null) {
-			return null;
-		}
-
-        if (!calculatedImageCRC) {
-            featureImageCRC = calculateImageCRC(bundleGroupProperties
-                    .getFeatureImageUrl());
-            calculatedImageCRC = featureImageCRC != null;
-        }
-
-        return featureImageCRC;
-    }
-
-    /**
-     * Calculate a CRC for the feature image
-     */
-    private static Long calculateImageCRC(URL url) {
-        if (url == null) {
-			return null;
-		}
-
-        InputStream in = null;
-        try {
-            CRC32 checksum = new CRC32();
-            in = new CheckedInputStream(url.openStream(), checksum);
-
-            // the contents don't matter, the read just needs a place to go
-            byte[] sink = new byte[2048];
-            while (true) {
-				if (in.read(sink) <= 0) {
-					break;
-				}
-			}
-
-            return new Long(checksum.getValue());
-        } catch (IOException e) {
-            return null;
-        } finally {
-            if (in != null) {
-				try {
-                    in.close();
-                } catch (IOException e) {
-                    // do nothing
-                }
-			}
-        }
-    }
-
-    /**
-     * Returns a label for the feature plugn, or <code>null</code>.
-     */
-    public String getFeatureLabel() {
-        if (productProperties != null) {
-			return productProperties.getProductName();
-		}
-        if (bundleGroupProperties != null) {
-			return bundleGroupProperties.getFeatureLabel();
-		}
-        return null;
-    }
-
-    /**
-     * Returns the id for this feature.
-     * 
-     * @return the feature id
-     */
-    public String getFeatureId() {
-        String id = null;
-        if (productProperties != null) {
-			id = productProperties.getProductId();
-		} else if (bundleGroupProperties != null) {
-			id = bundleGroupProperties.getFeatureId();
-		}
-        return id != null ? id : ""; //$NON-NLS-1$ 
-    }
-
-    /**
-     * Returns the text to show in an "about" dialog for this product.
-     * Products designed to run "headless" typically would not have such text.
-     * 
-     * @return the about text, or <code>null</code> if none
-     */
-    public String getAboutText() {
-        return productProperties == null ? null : productProperties
-                .getAboutText();
-    }
-
-    /**
-     * Returns the application name or <code>null</code>.
-     * Note this is never shown to the user.
-     * It is used to initialize the SWT Display.
-     * <p>
-     * On Motif, for example, this can be used
-     * to set the name used for resource lookup.
-     * </p>
-     *
-     * @return the application name, or <code>null</code>
-     * 
-     * @see org.eclipse.swt.widgets.Display#setAppName
-     */
-    public String getAppName() {
-        return productProperties == null ? null : productProperties
-                .getAppName();
-    }
-
-    /**
-     * Returns the product name or <code>null</code>.
-     * This is shown in the window title and the About action.
-     *
-     * @return the product name, or <code>null</code>
-     */
-    public String getProductName() {
-        return productProperties == null ? null : productProperties
-                .getProductName();
-    }
-
-    /**
-     * Returns the provider name or <code>null</code>.
-     *
-     * @return the provider name, or <code>null</code>
-     */
-    public String getProviderName() {
-        return bundleGroupProperties == null ? null : bundleGroupProperties
-                .getProviderName();
-    }
-
-    /**
-     * Returns the feature version id.
-     *
-     * @return the version id of the feature
-     */
-    public String getVersionId() {
-        return bundleGroupProperties == null ? "" : bundleGroupProperties.getFeatureVersion(); //$NON-NLS-1$
-    }
-
-    /**
-     * Returns a <code>URL</code> for the welcome page.
-     * Products designed to run "headless" typically would not have such an page.
-     * 
-     * @return the welcome page, or <code>null</code> if none
-     */
-    public URL getWelcomePageURL() {
-        if (productProperties != null) {
-			return productProperties.getWelcomePageUrl();
-		}
-        if (bundleGroupProperties != null) {
-			return bundleGroupProperties.getWelcomePageUrl();
-		}
-        return null;
-    }
-
-    /**
-     * Returns the ID of a perspective in which to show the welcome page.
-     * May be <code>null</code>.
-     * 
-     * @return the welcome page perspective id, or <code>null</code> if none
-     */
-    public String getWelcomePerspectiveId() {
-        return bundleGroupProperties == null ? null : bundleGroupProperties
-                .getWelcomePerspective();
-    }
-
-    /**
-     * Returns a <code>String</code> for the tips and trick href.
-     * 
-     * @return the tips and tricks href, or <code>null</code> if none
-     */
-    public String getTipsAndTricksHref() {
-        return bundleGroupProperties == null ? null : bundleGroupProperties
-                .getTipsAndTricksHref();
-    }
-
-    /**
-     * Return an array of image descriptors for the window images to use for
-     * this product. The expectations is that the elements will be the same
-     * image rendered at different sizes. Products designed to run "headless"
-     * typically would not have such images.
-     * 
-     * @return an array of the image descriptors for the window images, or
-     *         <code>null</code> if none
-     * @since 3.0
-     */
-    public ImageDescriptor[] getWindowImages() {
-        return productProperties == null ? null : productProperties
-                .getWindowImages();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceData.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceData.java
deleted file mode 100644
index 6e7a613..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceData.java
+++ /dev/null
@@ -1,490 +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.ide;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.net.URL;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.osgi.service.datalocation.Location;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * This class stores the information behind the "Launch Workspace" dialog. The
- * class is able to read and write itself to a well known configuration file.
- */
-public class ChooseWorkspaceData {
-    /**
-     * The default max length of the recent workspace mru list.
-     */
-    private static final int RECENT_MAX_LENGTH = 5;
-
-    /**
-     * The directory within the config area that will be used for the
-     * receiver's persisted data.
-     */
-    private static final String PERS_FOLDER = "org.eclipse.ui.ide"; //$NON-NLS-1$
-
-    /**
-     * The name of the file within the config area that will be used for
-     * the recever's persisted data.
-     * @see PERS_FOLDER
-     */
-    private static final String PERS_FILENAME = "recentWorkspaces.xml"; //$NON-NLS-1$
-
-    /**
-     * In the past a file was used to store persist these values.  This file was written
-     * with this value as its protocol identifier.
-     */
-    private static final int PERS_ENCODING_VERSION = 1;
-
-    /**
-     * This is the first version of the encode/decode protocol that uses the config area
-     * preference store for persistence.  The only encoding done is to convert the recent
-     * workspace list into a comma-separated list.
-     */
-    private static final int PERS_ENCODING_VERSION_CONFIG_PREFS = 2;
-
-    private boolean showDialog = true;
-
-    private String initialDefault;
-
-    private String selection;
-
-    private String[] recentWorkspaces;
-
-    // xml tags
-    private static interface XML {
-        public static final String PROTOCOL = "protocol"; //$NON-NLS-1$
-
-        public static final String VERSION = "version"; //$NON-NLS-1$
-
-        public static final String ALWAYS_ASK = "alwaysAsk"; //$NON-NLS-1$
-
-        public static final String SHOW_DIALOG = "showDialog"; //$NON-NLS-1$
-
-        public static final String WORKSPACE = "workspace"; //$NON-NLS-1$
-
-        public static final String RECENT_WORKSPACES = "recentWorkspaces"; //$NON-NLS-1$
-
-        public static final String MAX_LENGTH = "maxLength"; //$NON-NLS-1$
-
-        public static final String PATH = "path"; //$NON-NLS-1$
-    }
-
-    /**
-     * Creates a new instance, loading persistent data if its found.
-     */
-    public ChooseWorkspaceData(String initialDefault) {
-        readPersistedData();
-        setInitialDefault(initialDefault);
-    }
-
-    /**
-     * Creates a new instance, loading persistent data if its found.
-     */
-    public ChooseWorkspaceData(URL instanceUrl) {
-        readPersistedData();
-        if (instanceUrl != null) {
-			setInitialDefault(new File(instanceUrl.getFile()).toString());
-		}
-    }
-
-    /**
-     * Return the folder to be used as a default if no other information
-     * exists. Does not return null.
-     */
-    public String getInitialDefault() {
-        if (initialDefault == null) {
-			setInitialDefault(System.getProperty("user.dir") //$NON-NLS-1$
-                    + File.separator + "workspace"); //$NON-NLS-1$
-		}
-        return initialDefault;
-    }
-
-    /**
-     * Set this data's initialDefault parameter to a properly formatted version
-     * of the argument directory string. The proper format is to the platform
-     * appropriate separator character without meaningless leading or trailing
-     * separator characters.
-     */
-    private void setInitialDefault(String dir) {
-        if (dir == null || dir.length() <= 0) {
-            initialDefault = null;
-            return;
-        }
-
-        dir = new Path(dir).toOSString();
-        while (dir.charAt(dir.length() - 1) == File.separatorChar) {
-			dir = dir.substring(0, dir.length() - 1);
-		}
-        initialDefault = dir;
-    }
-
-    /**
-     * Return the currently selected workspace or null if nothing is selected.
-     */
-    public String getSelection() {
-        return selection;
-    }
-
-    /**
-     * Return the currently selected workspace or null if nothing is selected.
-     */
-    public boolean getShowDialog() {
-        return showDialog;
-    }
-
-    /**
-     * Return an array of recent workspaces sorted with the most recently used at
-     * the start.
-     */
-    public String[] getRecentWorkspaces() {
-        return recentWorkspaces;
-    }
-
-    /**
-     * The argument workspace has been selected, update the receiver.  Does not
-     * persist the new values.
-     */
-    public void workspaceSelected(String dir) {
-        // this just stores the selection, it is not inserted and persisted
-        // until the workspace is actually selected
-        selection = dir;
-    }
-
-    /**
-     * Toggle value of the showDialog persistent setting.
-     */
-    public void toggleShowDialog() {
-        showDialog = !showDialog;
-    }
-
-    /**
-	 * Update the persistent store. Call this function after the currently
-	 * selected value has been found to be ok.
-	 */
-	public void writePersistedData() {
-		// 1. get config pref node
-		Preferences node = new ConfigurationScope().getNode(IDEWorkbenchPlugin.IDE_WORKBENCH);
-
-		// 2. get value for showDialog
-		node.putBoolean(
-				IDE.Preferences.SHOW_WORKSPACE_SELECTION_DIALOG,
-				showDialog);
-
-		// 3. use value of numRecent to create proper length array
-		node.putInt(IDE.Preferences.MAX_RECENT_WORKSPACES,
-				recentWorkspaces.length);
-
-		// move the new selection to the front of the list
-		if (selection != null) {
-			String oldEntry = recentWorkspaces[0];
-			recentWorkspaces[0] = selection;
-			for (int i = 1; i < recentWorkspaces.length && oldEntry != null; ++i) {
-				if (selection.equals(oldEntry)) {
-					break;
-				}
-				String tmp = recentWorkspaces[i];
-				recentWorkspaces[i] = oldEntry;
-				oldEntry = tmp;
-			}
-		}
-
-		// 4. store values of recent workspaces into array
-		String encodedRecentWorkspaces = encodeStoredWorkspacePaths(recentWorkspaces);
-		node.put(IDE.Preferences.RECENT_WORKSPACES,
-				encodedRecentWorkspaces);
-
-		// 5. store the protocol version used to encode the list
-		node.putInt(IDE.Preferences.RECENT_WORKSPACES_PROTOCOL,
-				PERS_ENCODING_VERSION_CONFIG_PREFS);
-
-		// 6. store the node
-		try {
-			node.flush();
-		} catch (BackingStoreException e) {
-			// do nothing
-		}
-	}
-
-    /**
-	 * Look for and read data that might have been persisted from some previous
-	 * run. Leave the receiver in a default state if no persistent data is
-	 * found.
-	 * 
-	 * @return true if a file was successfully read and false otherwise
-	 */
-    private boolean readPersistedData_file() {
-	    URL persUrl = null;
-
-	    Location configLoc = Platform.getConfigurationLocation();
-	    if (configLoc != null) {
-			persUrl = getPersistenceUrl(configLoc.getURL(), false);
-		}
-
-	    try {
-	        // inside try to get the safe default creation in the finally
-	        // clause
-	        if (persUrl == null) {
-				return false;
-			}
-
-	        // E.g.,
-	        //	<launchWorkspaceData>
-	        //		<protocol version="1"/>
-	        //      <alwaysAsk showDialog="1"/>
-	        // 		<recentWorkspaces maxLength="5">
-	        //			<workspace path="C:\eclipse\workspace0"/>
-	        //			<workspace path="C:\eclipse\workspace1"/>
-	        //		</recentWorkspaces>
-	        //	</launchWorkspaceData>
-
-	        Reader reader = new FileReader(persUrl.getFile());
-	        XMLMemento memento = XMLMemento.createReadRoot(reader);
-	        if (memento == null || !compatibleFileProtocol(memento)) {
-				return false;
-			}
-
-	        IMemento alwaysAskTag = memento.getChild(XML.ALWAYS_ASK);
-	        showDialog = alwaysAskTag == null ? true : alwaysAskTag.getInteger(
-	                XML.SHOW_DIALOG).intValue() == 1;
-
-	        IMemento recent = memento.getChild(XML.RECENT_WORKSPACES);
-	        if (recent == null) {
-				return false;
-			}
-
-	        Integer maxLength = recent.getInteger(XML.MAX_LENGTH);
-	        int max = RECENT_MAX_LENGTH;
-	        if (maxLength != null) {
-				max = maxLength.intValue();
-			}
-
-	        IMemento indices[] = recent.getChildren(XML.WORKSPACE);
-	        if (indices == null || indices.length <= 0) {
-				return false;
-			}
-
-	        // if a user has edited maxLength to be shorter than the listed
-	        // indices, accept the list (its tougher for them to retype a long
-	        // list of paths than to update a max number)
-	        max = Math.max(max, indices.length);
-
-	        recentWorkspaces = new String[max];
-	        for (int i = 0; i < indices.length; ++i) {
-	            String path = indices[i].getString(XML.PATH);
-	            if (path == null) {
-					break;
-				}
-	            recentWorkspaces[i] = path;
-	        }
-	    } catch (IOException e) {
-	        // cannot log because instance area has not been set
-	        return false;
-	    } catch (WorkbenchException e) {
-	        // cannot log because instance area has not been set
-	        return false;
-	    } finally {
-	        // create safe default if needed
-	        if (recentWorkspaces == null) {
-				recentWorkspaces = new String[RECENT_MAX_LENGTH];
-			}
-	    }
-
-	    return true;
-	}
-
-    /**
-     * Return the current (persisted) value of the "showDialog on startup"
-     * preference. Return the global default if the file cannot be accessed.
-     */
-    public static boolean getShowDialogValue() {
-    	// TODO See the long comment in #readPersistedData -- when the
-		//      transition time is over this method can be changed to
-    	//      read the preference directly.
-
-        ChooseWorkspaceData data = new ChooseWorkspaceData(""); //$NON-NLS-1$
-
-        // return either the value in the file or true, which is the global
-        // default
-        return data.readPersistedData() ? data.showDialog : true;
-    }
-
-    /**
-	 * Return the current (persisted) value of the "showDialog on startup"
-	 * preference. Return the global default if the file cannot be accessed.
-	 */
-	public static void setShowDialogValue(boolean showDialog) {
-		// TODO See the long comment in #readPersistedData -- when the
-		//      transition time is over this method can be changed to
-		//      read the preference directly.
-
-		ChooseWorkspaceData data = new ChooseWorkspaceData(""); //$NON-NLS-1$
-
-		// update the value and write the new settings
-		data.showDialog = showDialog;
-		data.writePersistedData();
-	}
-
-    /**
-	 * Look in the config area preference store for the list of recently used
-	 * workspaces.
-	 * 
-	 * NOTE: During the transition phase the file will be checked if no config
-	 * preferences are found.
-	 * 
-	 * @return true if the values were successfully retrieved and false
-	 *         otherwise
-	 */
-	public boolean readPersistedData() {
-		IPreferenceStore store = new ScopedPreferenceStore(
-				new ConfigurationScope(), IDEWorkbenchPlugin.IDE_WORKBENCH);
-
-		// The old way was to store this information in a file, the new is to
-		// use the configuration area preference store. To help users with the
-		// transition, this code always looks for values in the preference
-		// store; they are used if found. If there aren't any related
-		// preferences, then the file method is used instead. This class always
-		// writes to the preference store, so the fall-back should be needed no
-		// more than once per-user, per-configuration.
-
-		// This code always sets the value of the protocol to a non-zero value
-		// (currently at 2).  If the value comes back as the default (0), then
-		// none of the preferences were set, revert to the file method.
-
-		int protocol = store
-				.getInt(IDE.Preferences.RECENT_WORKSPACES_PROTOCOL);
-		if (protocol == IPreferenceStore.INT_DEFAULT_DEFAULT
-				&& readPersistedData_file()) {
-			return true;
-		}
-
-		// 2. get value for showDialog
-		showDialog = store
-				.getBoolean(IDE.Preferences.SHOW_WORKSPACE_SELECTION_DIALOG);
-
-		// 3. use value of numRecent to create proper length array
-		int max = store
-				.getInt(IDE.Preferences.MAX_RECENT_WORKSPACES);
-		max = Math.max(max, RECENT_MAX_LENGTH);
-
-		// 4. load values of recent workspaces into array
-		String workspacePathPref = store
-				.getString(IDE.Preferences.RECENT_WORKSPACES);
-		recentWorkspaces = decodeStoredWorkspacePaths(max, workspacePathPref);
-
-		return true;
-	}
-
-	/**
-	 * The the list of recent workspaces must be stored as a string in the preference node.
-	 */
-    private static String encodeStoredWorkspacePaths(String[] recent) {
-		StringBuffer buff = new StringBuffer();
-
-		String path = null;
-		for (int i = 0; i < recent.length; ++i) {
-			if (recent[i] == null) {
-				break;
-			}
-
-			if (path != null) {
-				buff.append(","); //$NON-NLS-1$
-			}
-
-			path = recent[i];
-			buff.append(path);
-		}
-
-		return buff.toString();
-	}
-
-	/**
-	 * The the preference for recent workspaces must be converted from the
-	 * storage string into an array.
-	 */
-    private static String[] decodeStoredWorkspacePaths(int max, String prefValue) {
-		String[] paths = new String[max];
-		if (prefValue == null || prefValue.length() <= 0) {
-			return paths;
-		}
-
-		StringTokenizer tokenizer = new StringTokenizer(prefValue, ","); //$NON-NLS-1$
-		for (int i = 0; i < paths.length && tokenizer.hasMoreTokens(); ++i) {
-			paths[i] = tokenizer.nextToken();
-		}
-
-		return paths;
-	}
-
-    /**
-	 * Return true if the protocol used to encode the argument memento is
-	 * compatible with the receiver's implementation and false otherwise.
-	 */
-    private static boolean compatibleFileProtocol(IMemento memento) {
-        IMemento protocolMemento = memento.getChild(XML.PROTOCOL);
-        if (protocolMemento == null) {
-			return false;
-		}
-
-        Integer version = protocolMemento.getInteger(XML.VERSION);
-        return version != null && version.intValue() == PERS_ENCODING_VERSION;
-    }
-
-    /**
-     * The workspace data is stored in the well known file pointed to by the result
-     * of this method.
-     * @param create If the directory and file does not exist this parameter
-     *               controls whether it will be created.
-     * @return An url to the file and null if it does not exist or could not
-     *         be created.
-     */
-    private static URL getPersistenceUrl(URL baseUrl, boolean create) {
-        if (baseUrl == null) {
-			return null;
-		}
-
-        try {
-            // make sure the directory exists
-            URL url = new URL(baseUrl, PERS_FOLDER);
-            File dir = new File(url.getFile());
-            if (!dir.exists() && (!create || !dir.mkdir())) {
-				return null;
-			}
-
-            // make sure the file exists
-            url = new URL(dir.toURL(), PERS_FILENAME);
-            File persFile = new File(url.getFile());
-            if (!persFile.exists() && (!create || !persFile.createNewFile())) {
-				return null;
-			}
-
-            return persFile.toURL();
-        } catch (IOException e) {
-            // cannot log because instance area has not been set
-            return null;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceDialog.java
deleted file mode 100644
index 2112d00..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceDialog.java
+++ /dev/null
@@ -1,352 +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.ide;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.jface.window.Window;
-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.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.Combo;
-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.Monitor;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A dialog that prompts for a directory to use as a workspace.
- */
-public class ChooseWorkspaceDialog extends TitleAreaDialog {
-	
-	private static final String DIALOG_SETTINGS_SECTION = "ChooseWorkspaceDialogSettings"; //$NON-NLS-1$
-	
-	private ChooseWorkspaceData launchData;
-
-    private Combo text;
-
-    private boolean suppressAskAgain = false;
-
-    private boolean centerOnMonitor = false;
-    /**
-     * Create a modal dialog on the arugment shell, using and updating the
-     * argument data object.
-     * @param parentShell the parent shell for this dialog
-     * @param launchData the launch data from past launches
-     * 
-     * @param suppressAskAgain
-     *            true means the dialog will not have a "don't ask again" button
-     * @param centerOnMonitor indicates whether the dialog should be centered on 
-     * the monitor or according to it's parent if there is one
-     */
-    public ChooseWorkspaceDialog(Shell parentShell,
-            ChooseWorkspaceData launchData, boolean suppressAskAgain, boolean centerOnMonitor) {
-        super(parentShell);
-        this.launchData = launchData;
-        this.suppressAskAgain = suppressAskAgain;
-        this.centerOnMonitor = centerOnMonitor;
-    }
-
-    /**
-     * Show the dialog to the user (if needed). When this method finishes,
-     * #getSelection will return the workspace that should be used (whether it
-     * was just selected by the user or some previous default has been used.
-     * The parameter can be used to override the users preference.  For example,
-     * this is important in cases where the default selection is already in use
-     * and the user is forced to choose a different one.
-     * 
-     * @param force
-     *            true if the dialog should be opened regardless of the value of
-     *            the show dialog checkbox
-     */
-    public void prompt(boolean force) {
-        if (force || launchData.getShowDialog()) {
-            open();
-
-            // 70576: make sure dialog gets dismissed on ESC too
-            if (getReturnCode() == CANCEL) {
-				launchData.workspaceSelected(null);
-			}
-
-            return;
-        }
-
-        String[] recent = launchData.getRecentWorkspaces();
-
-        // If the selection dialog was not used then the workspace to use is either the
-        // most recent selection or the initialDefault (if there is no history).
-        String workspace = null;
-        if (recent != null && recent.length > 0) {
-			workspace = recent[0];
-		}
-        if (workspace == null || workspace.length() == 0) {
-			workspace = launchData.getInitialDefault();
-		}
-        launchData.workspaceSelected(workspace);
-    }
-
-    /**
-     * 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.
-     * </p>
-     *
-     * @param parent the parent composite to contain the dialog area
-     * @return the dialog area control
-     */
-    protected Control createDialogArea(Composite parent) {
-        String productName = null;
-        IProduct product = Platform.getProduct();
-        if (product != null) {
-            productName = product.getName();
-        }
-        if (productName == null) {
-            productName = IDEWorkbenchMessages.ChooseWorkspaceDialog_defaultProductName;
-        }
-
-        Composite composite = (Composite) super.createDialogArea(parent);
-        setTitle(IDEWorkbenchMessages.ChooseWorkspaceDialog_dialogTitle);
-        setMessage(NLS.bind(IDEWorkbenchMessages.ChooseWorkspaceDialog_dialogMessage, productName));
-
-        // bug 59934: load title image for sizing, but set it non-visible so the
-        //            white background is displayed
-        if (getTitleImageLabel() != null) {
-			getTitleImageLabel().setVisible(false);
-		}
-
-        createWorkspaceBrowseRow(composite);
-        if (!suppressAskAgain) {
-			createShowDialogButton(composite);
-		}
-        Dialog.applyDialogFont(composite);
-        return composite;
-    }
-
-    /**
-     * 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 shell the shell
-     */
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        shell.setText(IDEWorkbenchMessages.ChooseWorkspaceDialog_dialogName);
-    }
-
-    /**
-     * 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() {
-        launchData.workspaceSelected(text.getText());
-        super.okPressed();
-    }
-
-    /**
-     * 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() {
-        launchData.workspaceSelected(null);
-        super.cancelPressed();
-    }
-
-    /**
-     * The main area of the dialog is just a row with the current selection
-     * information and a drop-down of the most recently used workspaces.
-     */
-    private void createWorkspaceBrowseRow(Composite parent) {
-        Composite panel = new Composite(parent, SWT.NONE);
-
-        GridLayout layout = new GridLayout(3, false);
-        layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-        layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-        layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-        layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-        panel.setLayout(layout);
-        panel.setLayoutData(new GridData(GridData.FILL_BOTH));
-        panel.setFont(parent.getFont());
-
-        Label label = new Label(panel, SWT.NONE);
-        label.setText(IDEWorkbenchMessages.ChooseWorkspaceDialog_workspaceEntryLabel);
-
-        text = new Combo(panel, SWT.BORDER | SWT.LEAD | SWT.DROP_DOWN);
-        text.setFocus();
-        text.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-                | GridData.FILL_HORIZONTAL));
-        text.addModifyListener(new ModifyListener(){
-        	public void modifyText(ModifyEvent e) {
-        		Button okButton = getButton(Window.OK);
-        		if(okButton != null && !okButton.isDisposed()) {
-        			boolean nonWhitespaceFound = false;
-					String characters = text.getText();
-					for (int i = 0; !nonWhitespaceFound
-							&& i < characters.length(); i++) {
-						if (!Character.isWhitespace(characters.charAt(i))) {
-							nonWhitespaceFound = true;
-						}
-					}
-        			okButton.setEnabled(nonWhitespaceFound);
-        		}
-        	}
-        });
-        setInitialTextValues(text);
-
-        Button browseButton = new Button(panel, SWT.PUSH);
-        browseButton.setText(IDEWorkbenchMessages.ChooseWorkspaceDialog_browseLabel);
-        setButtonLayoutData(browseButton);
-        GridData data = (GridData) browseButton.getLayoutData();
-        data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_END;
-        browseButton.setLayoutData(data);
-        browseButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                DirectoryDialog dialog = new DirectoryDialog(getShell());
-                dialog.setText(IDEWorkbenchMessages.ChooseWorkspaceDialog_directoryBrowserTitle);
-                dialog.setMessage(IDEWorkbenchMessages.ChooseWorkspaceDialog_directoryBrowserMessage);
-                dialog.setFilterPath(getInitialBrowsePath());
-                String dir = dialog.open();
-                if (dir != null) {
-					text.setText(dir);
-				}
-            }
-        });
-    }
-
-    /**
-     * Return a string containing the path that is closest to the current
-     * selection in the text widget. This starts with the current value and
-     * works toward the root until there is a directory for which File.exists
-     * returns true. Return the current working dir if the text box does not
-     * contain a valid path.
-     * 
-     * @return closest parent that exists or an empty string
-     */
-    private String getInitialBrowsePath() {
-        File dir = new File(text.getText());
-        while (dir != null && !dir.exists()) {
-			dir = dir.getParentFile();
-		}
-
-        return dir != null ? dir.getAbsolutePath() : System
-                .getProperty("user.dir"); //$NON-NLS-1$
-    }
-
-	/*
-	 * see org.eclipse.jface.Window.getInitialLocation() 
-	 */
-	protected Point getInitialLocation(Point initialSize) {
-		Composite parent = getShell().getParent();
-		
-		if (!centerOnMonitor || parent == null) {
-			return super.getInitialLocation(initialSize);
-		}
-
-		Monitor monitor = parent.getMonitor();
-		Rectangle monitorBounds = monitor.getClientArea();
-		Point 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)));
-	}
-
-    /**
-     * The show dialog button allows the user to choose to neven be nagged again.
-     */
-    private void createShowDialogButton(Composite parent) {
-        Composite panel = new Composite(parent, SWT.NONE);
-        panel.setFont(parent.getFont());
-
-        GridLayout layout = new GridLayout(1, false);
-        layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-        panel.setLayout(layout);
-
-        GridData data = new GridData(GridData.FILL_BOTH);
-        data.verticalAlignment = GridData.END;
-        panel.setLayoutData(data);
-
-        Button button = new Button(panel, SWT.CHECK);
-        button.setText(IDEWorkbenchMessages.ChooseWorkspaceDialog_useDefaultMessage);
-        button.setSelection(!launchData.getShowDialog());
-        button.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                launchData.toggleShowDialog();
-            }
-        });
-    }
-
-    private void setInitialTextValues(Combo text) {
-        String[] recentWorkspaces = launchData.getRecentWorkspaces();
-        for (int i = 0; i < recentWorkspaces.length; ++i) {
-			if (recentWorkspaces[i] != null) {
-				text.add(recentWorkspaces[i]);
-			}
-		}
-
-        text.setText(text.getItemCount() > 0 ? text.getItem(0) : launchData
-                .getInitialDefault());
-    }
-    
-	/* (non-Javadoc)
-     * @see org.eclipse.jface.window.Dialog#getDialogBoundsSettings()
-     * 
-     * @since 3.2
-     */
-	protected IDialogSettings getDialogBoundsSettings() {
-		// If we were explicitly instructed to center on the monitor, then
-		// do not provide any settings for retrieving a different location or, worse,
-		// saving the centered location.
-		if (centerOnMonitor) {
-			return null;
-		}
-		
-        IDialogSettings settings = IDEWorkbenchPlugin.getDefault().getDialogSettings();
-        IDialogSettings section = settings.getSection(DIALOG_SETTINGS_SECTION);
-        if (section == null) {
-            section = settings.addNewSection(DIALOG_SETTINGS_SECTION);
-        } 
-        return section;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/DefaultContributorResourceAdapter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/DefaultContributorResourceAdapter.java
deleted file mode 100644
index 36dcd0b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/DefaultContributorResourceAdapter.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.internal.ide;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.IContributorResourceAdapter;
-import org.eclipse.ui.ide.IContributorResourceAdapter2;
-
-/**
- * The DefaultContributorResourceAdapter is the default
- * implementation of the IContributorResourceAdapter used for 
- * one to one resource adaption.
- */
-public class DefaultContributorResourceAdapter implements
-        IContributorResourceAdapter2 {
-
-    private static IContributorResourceAdapter singleton;
-
-    /**
-     * Constructor for DefaultContributorResourceAdapter.
-     */
-    public DefaultContributorResourceAdapter() {
-        super();
-    }
-
-    /**
-     * Return the default instance used for TaskList adapting.
-     * @return the default instance used for TaskList adapting
-     */
-    public static IContributorResourceAdapter getDefault() {
-        if (singleton == null) {
-			singleton = new DefaultContributorResourceAdapter();
-		}
-        return singleton;
-    }
-
-    /*
-     * @see IContributorResourceAdapter#getAdaptedResource(IAdaptable)
-     */
-    public IResource getAdaptedResource(IAdaptable adaptable) {
-        return (IResource) adaptable.getAdapter(IResource.class);
-    }
-
-    public ResourceMapping getAdaptedResourceMapping(IAdaptable adaptable) {
-        return (ResourceMapping) adaptable.getAdapter(ResourceMapping.class);
-    }
-}
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/DialogUtil.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/DialogUtil.java
deleted file mode 100644
index 1758c25..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/DialogUtil.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.internal.ide;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PartInitException;
-
-/**
- * Utility class to help with dialogs.
- * <p>
- * Note that a copy of this class exists in the
- * org.eclipse.ui.internal package.
- * </p>
- */
-public class DialogUtil {
-
-    /**
-     * Prevent instantiation.
-     */
-    private DialogUtil() {
-    }
-
-    /**
-     * Open an error style dialog for PartInitException by
-     * including any extra information from the nested
-     * CoreException if present.
-     */
-    public static void openError(Shell parent, String title, String message,
-            PartInitException exception) {
-        // Check for a nested CoreException
-        CoreException nestedException = null;
-        IStatus status = exception.getStatus();
-        if (status != null && status.getException() instanceof CoreException) {
-			nestedException = (CoreException) status.getException();
-		}
-
-        if (nestedException != null) {
-            // Open an error dialog and include the extra
-            // status information from the nested CoreException
-            ErrorDialog.openError(parent, title, message, nestedException
-                    .getStatus());
-        } else {
-            // Open a regular error dialog since there is no
-            // extra information to display
-            MessageDialog.openError(parent, title, message);
-        }
-    }
-
-    /**
-     * Return the number of rows available in the current display using the
-     * current font.
-     * @param parent The Composite whose Font will be queried.
-     * @return int The result of the display size divided by the font size.
-     */
-    public static int availableRows(Composite parent) {
-
-        int fontHeight = (parent.getFont().getFontData())[0].getHeight();
-        int displayHeight = parent.getDisplay().getClientArea().height;
-
-        return displayHeight / fontHeight;
-    }
-
-    /**
-     * Return whether or not the font in the parent is the size of a regular
-     * font.  Typically used to know if a font is smaller than the High Contrast 
-     * Font. This method is used to make layout decisions based on screen space.
-     * 
-     * @param parent The Composite whose Font will be queried.
-     * @return boolean. True if there are more than 50 lines of possible
-     * text in the display.
-     */
-    public static boolean inRegularFontMode(Composite parent) {
-
-        return availableRows(parent) > 50;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/EditorAreaDropAdapter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/EditorAreaDropAdapter.java
deleted file mode 100644
index 983c372..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/EditorAreaDropAdapter.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetAdapter;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorRegistry;
-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.EditorInputTransfer;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.MarkerTransfer;
-import org.eclipse.ui.part.ResourceTransfer;
-
-/**
- * An editor area drop adapter to handle transfer types
- * <code>EditorInputTransfer</code>, <code>MarkerTransfer</code>,
- * and <code>ResourceTransfer</code>.
- */
-public class EditorAreaDropAdapter extends DropTargetAdapter {
-    private IWorkbenchWindow window;
-
-    /**
-     * Constructs a new EditorAreaDropAdapter.
-     * @param window the workbench window
-     */
-    public EditorAreaDropAdapter(IWorkbenchWindow window) {
-        this.window = window;
-    }
-
-    public void dragEnter(DropTargetEvent event) {
-        // always indicate a copy
-        event.detail = DND.DROP_COPY;
-        event.feedback = DND.FEEDBACK_NONE;
-    }
-
-    public void dragOperationChanged(DropTargetEvent event) {
-        // always indicate a copy
-        event.detail = DND.DROP_COPY;
-        event.feedback = DND.FEEDBACK_NONE;
-    }
-
-    public void drop(final DropTargetEvent event) {
-        Display d = window.getShell().getDisplay();
-        final IWorkbenchPage page = window.getActivePage();
-        if (page != null) {
-            d.asyncExec(new Runnable() {
-                public void run() {
-                    asyncDrop(event, page);
-                }
-            });
-        }
-    }
-
-    private void asyncDrop(DropTargetEvent event, IWorkbenchPage page) {
-
-        /* Open Editor for generic IEditorInput */
-        if (EditorInputTransfer.getInstance().isSupportedType(
-                event.currentDataType)) {
-            /* event.data is an array of EditorInputData, which contains an IEditorInput and 
-             * the corresponding editorId */
-            Assert.isTrue(event.data instanceof EditorInputTransfer.EditorInputData[]);
-            EditorInputTransfer.EditorInputData[] editorInputs = (EditorInputTransfer.EditorInputData []) event.data;
-            for (int i = 0; i < editorInputs.length; i++) {
-                IEditorInput editorInput = editorInputs[i].input;
-                String editorId = editorInputs[i].editorId;
-                openNonExternalEditor(page, editorInput, editorId);
-            }
-        }
-
-        /* Open Editor for Marker (e.g. Tasks, Bookmarks, etc) */
-        else if (MarkerTransfer.getInstance().isSupportedType(
-                event.currentDataType)) {
-            Assert.isTrue(event.data instanceof IMarker[]);
-            IMarker[] markers = (IMarker[]) event.data;
-            for (int i = 0; i < markers.length; i++) {
-                openNonExternalEditor(page, markers[i]);
-            }
-        }
-
-        /* Open Editor for resource */
-        else if (ResourceTransfer.getInstance().isSupportedType(
-                event.currentDataType)) {
-            Assert.isTrue(event.data instanceof IResource[]);
-            IResource[] files = (IResource[]) event.data;
-            for (int i = 0; i < files.length; i++) {
-                if (files[i] instanceof IFile) {
-                    IFile file = (IFile) files[i];
-                    openNonExternalEditor(page, file);
-                }
-            }
-        }
-
-    }
-
-    /**
-     * Opens an editor for the given file on the given workbench page in response
-     * to a drop on the workbench editor area. In contrast to other ways of opening
-     * an editor, we never open an external editor in this case (since external
-     * editors appear in their own window and not in the editor area).
-     * The operation fails silently if there is no suitable editor to open.
-     * 
-     * @param page the workbench page
-     * @param file the file to open
-     * @return the editor part that was opened, or <code>null</code> if no editor
-     * was opened
-     */
-    private IEditorPart openNonExternalEditor(IWorkbenchPage page, IFile file) {
-        IEditorPart result;
-        try {
-            // find out which editor we would normal open
-            IEditorDescriptor defaultEditorDesc = IDE.getDefaultEditor(file);
-            if (defaultEditorDesc != null
-                    && !defaultEditorDesc.isOpenExternal()) {
-                // open an internal or in-place editor
-                result = IDE.openEditor(page, file, true);
-            } else {
-                // never open an external editor in response to a drop
-                // check the OS for in-place editor (OLE on Win32)
-                IEditorRegistry editorReg = PlatformUI.getWorkbench()
-                        .getEditorRegistry();
-                IEditorDescriptor editorDesc = null;
-                if (editorReg.isSystemInPlaceEditorAvailable(file.getName())) {
-                    editorDesc = editorReg
-                            .findEditor(IEditorRegistry.SYSTEM_INPLACE_EDITOR_ID);
-                }
-
-                // next lookup the default text editor
-                if (editorDesc == null) {
-                    editorDesc = editorReg
-                            .findEditor(IDEWorkbenchPlugin.DEFAULT_TEXT_EDITOR_ID);
-                }
-
-                // if no valid editor found, bail out
-                if (editorDesc == null) {
-                    throw new PartInitException(IDEWorkbenchMessages.IDE_noFileEditorFound);
-                }
-
-                // open the editor on the file
-                result = page.openEditor(new FileEditorInput(file), editorDesc
-                        .getId(), true);
-            }
-        } catch (PartInitException e) {
-            // silently ignore problems opening the editor
-            result = null;
-        }
-        return result;
-    }
-
-    /**
-     * Opens an editor for the given marker on the given workbench page in response
-     * to a drop on the workbench editor area. In contrast to other ways of opening
-     * an editor, we never open an external editor in this case (since external
-     * editors appear in their own window and not in the editor area).
-     * The operation fails silently if there is no suitable editor to open.
-     * 
-     * @param page the workbench page
-     * @param marker the marker to open
-     * @return the editor part that was opened, or <code>null</code> if no editor
-     * was opened
-     */
-    private IEditorPart openNonExternalEditor(IWorkbenchPage page,
-            IMarker marker) {
-        IEditorPart result;
-        try {
-            // get the marker resource file
-            if (!(marker.getResource() instanceof IFile)) {
-                return null;
-            }
-            IFile file = (IFile) marker.getResource();
-
-            // get the preferred editor id from the marker
-            IEditorDescriptor editorDesc = null;
-            try {
-                String editorID = (String) marker
-                        .getAttribute(IDE.EDITOR_ID_ATTR);
-                if (editorID != null) {
-                    IEditorRegistry editorReg = PlatformUI.getWorkbench()
-                            .getEditorRegistry();
-                    editorDesc = editorReg.findEditor(editorID);
-                }
-            } catch (CoreException e) {
-                // ignore problems with getting the marker
-            }
-
-            // open the editor on the marker resource file
-            if (editorDesc != null && !editorDesc.isOpenExternal()) {
-                result = page.openEditor(new FileEditorInput(file), editorDesc
-                        .getId(), true);
-            } else {
-                result = openNonExternalEditor(page, file);
-            }
-
-            // get the editor to update its position based on the marker
-            if (result != null) {
-                IDE.gotoMarker(result, marker);
-            }
-
-        } catch (PartInitException e) {
-            // silently ignore problems opening the editor
-            result = null;
-        }
-        return result;
-    }
-
-    /**
-     * Opens an editor for the given editor input and editor id combination on the
-     * given workbench page in response to a drop on the workbench editor area.
-     * In contrast to other ways of opening an editor, we never open an external
-     * editor in this case (since external editors appear in their own window and
-     * not in the editor area). The operation fails silently if the editor
-     * cannot be opened.
-     * 
-     * @param page the workbench page
-     * @param editorInput the editor input
-     * @param editorId the editor id
-     * @return the editor part that was opened, or <code>null</code> if no editor
-     * was opened
-     */
-    private IEditorPart openNonExternalEditor(IWorkbenchPage page,
-            IEditorInput editorInput, String editorId) {
-        IEditorPart result;
-        try {
-            IEditorRegistry editorReg = PlatformUI.getWorkbench()
-                    .getEditorRegistry();
-            IEditorDescriptor editorDesc = editorReg.findEditor(editorId);
-            if (editorDesc != null && !editorDesc.isOpenExternal()) {
-                result = page.openEditor(editorInput, editorId);
-            } else {
-                result = null;
-            }
-        } catch (PartInitException e) {
-            // silently ignore problems opening the editor
-            result = null;
-        }
-        return result;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/FeatureSelectionDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/FeatureSelectionDialog.java
deleted file mode 100644
index 3e98fd9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/FeatureSelectionDialog.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-
-import com.ibm.icu.text.Collator;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Locale;
-
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-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.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.internal.ide.dialogs.SimpleListContentProvider;
-
-/**
- * Dialog to allow the user to select a feature from a list.
- */
-public class FeatureSelectionDialog extends SelectionDialog {
-    /**
-     * List width in characters.
-     */
-    private final static int LIST_WIDTH = 60;
-
-    /**
-     * List height in characters.
-     */
-    private final static int LIST_HEIGHT = 10;
-
-    /**
-     * The feature about infos.
-     */
-    private AboutInfo[] features;
-
-    /**
-     * List to display the resolutions.
-     */
-    private ListViewer listViewer;
-
-    /**
-     * The help context id
-     */
-    private String helpContextId;
-
-    /**
-     * Creates an instance of this dialog to display
-     * the given features.
-     * <p>
-     * There must be at least one feature.
-     * </p>
-     * 
-     * @param shell  the parent shell
-     * @param features  the features to display
-     * @param primaryFeatureId  the id of the primary feature or null if none
-     * @param shellTitle  shell title
-     * @param shellMessage  shell message
-     * @param helpContextId  help context id
-     */
-    public FeatureSelectionDialog(Shell shell, AboutInfo[] features,
-            String primaryFeatureId, String shellTitle, String shellMessage,
-            String helpContextId) {
-
-        super(shell);
-        if (features == null || features.length == 0) {
-            throw new IllegalArgumentException();
-        }
-        this.features = features;
-        this.helpContextId = helpContextId;
-        setTitle(shellTitle);
-        setMessage(shellMessage);
-
-        // Sort ascending
-        Arrays.sort(features, new Comparator() {
-            Collator coll = Collator.getInstance(Locale.getDefault());
-
-            public int compare(Object a, Object b) {
-                AboutInfo i1, i2;
-                String name1, name2;
-                i1 = (AboutInfo) a;
-                name1 = i1.getFeatureLabel();
-                i2 = (AboutInfo) b;
-                name2 = i2.getFeatureLabel();
-                if (name1 == null) {
-					name1 = ""; //$NON-NLS-1$
-				}
-                if (name2 == null) {
-					name2 = ""; //$NON-NLS-1$
-				}
-                return coll.compare(name1, name2);
-            }
-        });
-
-        // Find primary feature
-        for (int i = 0; i < features.length; i++) {
-            if (features[i].getFeatureId().equals(primaryFeatureId)) {
-                setInitialSelections(new Object[] { features[i] });
-                return;
-            }
-        }
-
-        // set a safe default		
-        setInitialSelections(new Object[0]);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Window.
-     */
-    protected void configureShell(Shell newShell) {
-        super.configureShell(newShell);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell,
-				helpContextId);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected Control createDialogArea(Composite parent) {
-        Composite composite = (Composite) super.createDialogArea(parent);
-
-        // Create label
-        createMessageArea(composite);
-        // Create list viewer	
-        listViewer = new ListViewer(composite, SWT.SINGLE | SWT.H_SCROLL
-                | SWT.V_SCROLL | SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        data.heightHint = convertHeightInCharsToPixels(LIST_HEIGHT);
-        data.widthHint = convertWidthInCharsToPixels(LIST_WIDTH);
-        listViewer.getList().setLayoutData(data);
-        listViewer.getList().setFont(parent.getFont());
-        // Set the label provider		
-        listViewer.setLabelProvider(new LabelProvider() {
-            public String getText(Object element) {
-                // Return the features's label.
-                return element == null ? "" : ((AboutInfo) element).getFeatureLabel(); //$NON-NLS-1$
-            }
-        });
-
-        // Set the content provider
-        SimpleListContentProvider cp = new SimpleListContentProvider();
-        cp.setElements(features);
-        listViewer.setContentProvider(cp);
-        listViewer.setInput(new Object());
-        // it is ignored but must be non-null
-
-        // Set the initial selection
-        listViewer.setSelection(new StructuredSelection(
-                getInitialElementSelections()), true);
-
-        // Add a selection change listener
-        listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-            public void selectionChanged(SelectionChangedEvent event) {
-                // Update OK button enablement
-                getOkButton().setEnabled(!event.getSelection().isEmpty());
-            }
-        });
-
-        // Add double-click listener
-        listViewer.addDoubleClickListener(new IDoubleClickListener() {
-            public void doubleClick(DoubleClickEvent event) {
-                okPressed();
-            }
-        });
-        return composite;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected void okPressed() {
-        IStructuredSelection selection = (IStructuredSelection) listViewer
-                .getSelection();
-        setResult(selection.toList());
-        super.okPressed();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEApplication.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEApplication.java
deleted file mode 100644
index 7e0b88a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEApplication.java
+++ /dev/null
@@ -1,453 +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.ide;
-
-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.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IPlatformRunnable;
-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.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.PlatformUI;
-
-/**
- * The "main program" for the Eclipse IDE.
- * 
- * @since 3.0
- */
-public class IDEApplication implements IPlatformRunnable, 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);
-
-    /**
-     * Creates a new IDE application.
-     */
-    public IDEApplication() {
-        // There is nothing to do for IDEApplication
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.boot.IPlatformRunnable#run(java.lang.Object)
-     */
-    public Object run(Object args) throws Exception {
-        Display display = createDisplay();
-
-        try {
-            Shell shell = new Shell(display, SWT.ON_TOP);
-
-            try {
-                if (!checkInstanceLocation(shell)) {
-                    Platform.endSplash();
-                    return EXIT_OK;
-                }
-            } finally {
-                if (shell != null) {
-					shell.dispose();
-				}
-            }
-
-            // 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();
-			}
-        }
-    }
-
-    /**
-     * 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) throws CoreException {
-        // 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 {
-        	// don't use the parent shell to make the dialog a top-level
-        	// shell. See bug 84881.
-            new ChooseWorkspaceDialog(null, 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;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEExceptionHandler.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEExceptionHandler.java
deleted file mode 100644
index 0ca68ae..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEExceptionHandler.java
+++ /dev/null
@@ -1,211 +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.ide;
-
-import com.ibm.icu.text.MessageFormat;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.internal.ide.dialogs.InternalErrorDialog;
-
-/**
- * Handles exception while running the event loop.
- * <p>
- * In case of a "simpler" exception such as NPE, log the exception,
- * open a dialog to inform the user and try to keep running.
- * In case of a exception like OutOfMemory and SWTError, log the exception,
- * open a dialog to ask the user to decide if the workbench should 
- * be terminated.
- * </p>
- */
-public final class IDEExceptionHandler {
-
-    private int exceptionCount = 0;
-
-    private InternalErrorDialog dialog;
-
-    private Shell defaultParent = new Shell();
-
-    private boolean closing = false;
-
-    private IWorkbenchConfigurer workbenchConfigurer;
-
-    //Pre-load all Strings trying to run as light as possible in case of fatal errors.
-    private static String MSG_OutOfMemoryError = IDEWorkbenchMessages.FatalError_OutOfMemoryError;
-
-    private static String MSG_StackOverflowError = IDEWorkbenchMessages.FatalError_StackOverflowError;
-
-    private static String MSG_VirtualMachineError = IDEWorkbenchMessages.FatalError_VirtualMachineError;
-
-    private static String MSG_SWTError = IDEWorkbenchMessages.FatalError_SWTError;
-
-    private static String MSG_FATAL_ERROR = IDEWorkbenchMessages.FatalError;
-
-    private static String MSG_FATAL_ERROR_Recursive = IDEWorkbenchMessages.FatalError_RecursiveError;
-
-    private static String MSG_FATAL_ERROR_RecursiveTitle = IDEWorkbenchMessages.Internal_error;
-
-    /**
-     * Creates the exception handle for the IDE application
-     * 
-     * @param configurer an object for configuring the workbench
-     */
-    public IDEExceptionHandler(IWorkbenchConfigurer configurer) {
-        super();
-        workbenchConfigurer = configurer;
-    }
-
-    /**
-     * Handles an event loop exception
-     * 
-     * @param t the exception to handle
-     */
-    public void handleException(Throwable t) {
-        try {
-            exceptionCount++;
-            if (exceptionCount > 1) {
-                if (closing) {
-                    return;
-                }
-                Shell parent = defaultParent;
-                if (dialog != null && dialog.getShell() != null
-                        && !dialog.getShell().isDisposed()) {
-					parent = dialog.getShell();
-				}
-                MessageBox box = new MessageBox(parent, SWT.ICON_ERROR
-                        | SWT.YES | SWT.NO | SWT.SYSTEM_MODAL);
-                box.setText(MSG_FATAL_ERROR_RecursiveTitle);
-                box.setMessage(MessageFormat.format(MSG_FATAL_ERROR,
-                        new Object[] { MSG_FATAL_ERROR_Recursive }));
-                int result = box.open();
-                if (result == SWT.YES) {
-                    closeWorkbench();
-                }
-            } else {
-                if (openQuestionDialog(t)) {
-                    closeWorkbench();
-                }
-            }
-        } finally {
-            exceptionCount--;
-        }
-    }
-
-    /**
-     * Close the workbench and make sure all exceptions are handled.
-     */
-    private void closeWorkbench() {
-        if (closing) {
-            return;
-        }
-
-        try {
-            closing = true;
-            if (dialog != null && dialog.getShell() != null
-                    && !dialog.getShell().isDisposed()) {
-				dialog.close();
-			}
-            workbenchConfigurer.emergencyClose();
-        } catch (RuntimeException re) {
-            // Workbench may be in such bad shape (no OS handles left, out of memory, etc)
-            // that is cannot even close. Just bail out now.
-            System.err
-                    .println("Fatal runtime error happened during workbench emergency close."); //$NON-NLS-1$
-            re.printStackTrace();
-            throw re;
-        } catch (Error e) {
-            // Workbench may be in such bad shape (no OS handles left, out of memory, etc)
-            // that is cannot even close. Just bail out now.
-            System.err
-                    .println("Fatal error happened during workbench emergency close."); //$NON-NLS-1$
-            e.printStackTrace();
-            throw e;
-        }
-    }
-
-    /**
-     * Inform the user about a fatal error. Return true if the user decide to 
-     * exit workbench or if another fatal error happens while reporting it.
-     */
-    private boolean openQuestionDialog(Throwable internalError) {
-        try {
-            String msg = null;
-            if (internalError instanceof OutOfMemoryError) {
-                msg = MSG_OutOfMemoryError;
-            } else if (internalError instanceof StackOverflowError) {
-                msg = MSG_StackOverflowError;
-            } else if (internalError instanceof VirtualMachineError) {
-                msg = MSG_VirtualMachineError;
-            } else if (internalError instanceof SWTError) {
-                msg = MSG_SWTError;
-            } else {
-                if (internalError.getMessage() == null) {
-                    msg = IDEWorkbenchMessages.InternalErrorNoArg;
-                } else {
-                    msg = NLS.bind(IDEWorkbenchMessages.InternalErrorOneArg, internalError.getMessage());
-                }
-                if (Policy.DEBUG_OPEN_ERROR_DIALOG) {
-					return openQuestion(null, IDEWorkbenchMessages.Internal_error, msg, internalError, 1);
-				}
-                return false;
-            }
-            // Always open the dialog in case of major error but do not show the
-            // detail button if not in debug mode.
-            Throwable detail = internalError;
-            if (!Policy.DEBUG_OPEN_ERROR_DIALOG) {
-				detail = null;
-			}
-            return InternalErrorDialog
-                    .openQuestion(null, IDEWorkbenchMessages.Internal_error,
-                            MessageFormat.format(MSG_FATAL_ERROR,
-                                    new Object[] { msg }), detail, 1);
-        } catch (Throwable th) {
-            // Workbench may be in such bad shape (no OS handles left, out of memory, etc)
-            // that is cannot show a message to the user. Just bail out now.
-            System.err
-                    .println("Error while informing user about event loop exception:"); //$NON-NLS-1$
-            internalError.printStackTrace();
-            System.err.println("Dialog open exception:"); //$NON-NLS-1$
-            th.printStackTrace();
-            return true;
-        }
-    }
-
-    private boolean openQuestion(Shell parent, String title, String message,
-            Throwable detail, int defaultIndex) {
-        String[] labels;
-        if (detail == null) {
-			labels = new String[] { IDialogConstants.YES_LABEL,
-                    IDialogConstants.NO_LABEL };
-		} else {
-			labels = new String[] { IDialogConstants.YES_LABEL,
-                    IDialogConstants.NO_LABEL,
-                    IDialogConstants.SHOW_DETAILS_LABEL };
-		}
-
-        dialog = new InternalErrorDialog(parent, title, null, message, detail,
-                MessageDialog.QUESTION, labels, defaultIndex);
-
-        if (detail != null) {
-			dialog.setDetailButton(2);
-		}
-        boolean result = dialog.open() == Window.OK;
-        dialog = null;
-        return result;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEIdleHelper.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEIdleHelper.java
deleted file mode 100644
index 2185f1f..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEIdleHelper.java
+++ /dev/null
@@ -1,228 +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.ide;
-
-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.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;
-
-/**
- * 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 (!Platform.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)
-			}			
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEInternalPreferences.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEInternalPreferences.java
deleted file mode 100644
index 12037fd..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEInternalPreferences.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.internal.ide;
-
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-
-/**
- * The IDEInternalPreferences are the internal constants used by the Workbench.
- */
-public interface IDEInternalPreferences {
-    // (boolean) Save all dirty editors before running a full or incremental build 
-    public static final String SAVE_ALL_BEFORE_BUILD = "SAVE_ALL_BEFORE_BUILD"; //$NON-NLS-1$
-
-    // (boolean) Refresh workspace on startup 
-    public static final String REFRESH_WORKSPACE_ON_STARTUP = "REFRESH_WORKSPACE_ON_STARTUP"; //$NON-NLS-1$
-
-    // (int) Workspace save interval in minutes
-    // @issue we should drop this and have clients refer to the core preference instead. its not even kept up-to-date if client uses core api directly
-    public final static String SAVE_INTERVAL = "saveInterval"; //$NON-NLS-1$
-
-    public static final int MAX_SAVE_INTERVAL = 9999;
-
-    // (boolean) Show Problems view to users when build contains errors
-    //public static final String SHOW_TASKS_ON_BUILD = "SHOW_TASKS_ON_BUILD"; //$NON-NLS-1$
-
-    // (boolean) Prompt for exit confirmation when last window closed.
-    public static final String EXIT_PROMPT_ON_CLOSE_LAST_WINDOW = "EXIT_PROMPT_ON_CLOSE_LAST_WINDOW"; //$NON-NLS-1$
-
-    // (String) Whether to open the preferred perspective when creating a new project
-    public static final String PROJECT_SWITCH_PERSP_MODE = "SWITCH_PERSPECTIVE_ON_PROJECT_CREATION"; //$NON-NLS-1$
-
-    /**
-     * (String) Whether to open required projects when opening a project.
-     */ 
-    public static final String OPEN_REQUIRED_PROJECTS = "OPEN_REQUIRED_PROJECTS"; //$NON-NLS-1$
-
-    public static final String PSPM_PROMPT = MessageDialogWithToggle.PROMPT;
-
-    public static final String PSPM_ALWAYS = MessageDialogWithToggle.ALWAYS;
-
-    public static final String PSPM_NEVER = MessageDialogWithToggle.NEVER;
-
-    // (boolean) Whether or not to display the Welcome dialog on startup.
-    public static final String WELCOME_DIALOG = "WELCOME_DIALOG"; //$NON-NLS-1$
-    
-    //Whether or not to limit problems
-    public static final String LIMIT_PROBLEMS = "LIMIT_PROBLEMS"; //$NON-NLS-1$
-    
-    //The list of defined problems filters
-    public static final String PROBLEMS_FILTERS = "PROBLEMS_FILTERS"; //$NON-NLS-1$
-    
-    //problem limits
-    public static final String PROBLEMS_LIMIT = "PROBLEMS_LIMIT"; //$NON-NLS-1$
-    
-    //Whether or not to limit tasks
-    public static final String LIMIT_TASKS = "LIMIT_TASKS"; //$NON-NLS-1$
-    
-    //tasks limits
-    public static final String TASKS_LIMIT = "TASKS_LIMIT"; //$NON-NLS-1$
-    
-    //The list of defined tasks filters
-    public static final String TASKS_FILTERS = "TASKS_FILTERS"; //$NON-NLS-1$
-    
-    //Whether or not to limit bookmarks
-    public static final String LIMIT_BOOKMARKS = "LIMIT_BOOKMARKS"; //$NON-NLS-1$
-    
-    //bookmark limits
-    public static final String BOOKMARKS_LIMIT = "BOOKMARKS_LIMIT"; //$NON-NLS-1$
-    
-//  The list of defined tasks filters
-    public static final String BOOKMARKS_FILTERS = "BOOKMARKS_FILTERS"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEInternalWorkbenchImages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEInternalWorkbenchImages.java
deleted file mode 100644
index fa89bd0..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEInternalWorkbenchImages.java
+++ /dev/null
@@ -1,120 +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.ide;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class defines internal constants for images that intended to be 
- * available only within the IDE UI proper. Use 
- * <code>IDEInternalWorkbenchImages.getImageDescriptor} to retrieve image
- * descriptors for any of the images named in this class.
- * <p>
- * <b>Note:</b> The existence of these images is not made publically available
- * because such images are subject to change as the dialogs evolve through
- * successive releases.
- * </p>
- */
-public final class IDEInternalWorkbenchImages {
-
-    /** Block instantiation. */
-    private IDEInternalWorkbenchImages() {
-    }
-
-    /*** Constants for Images ***/
-
-    // other toolbar buttons
-    public final static String IMG_ETOOL_BUILD_EXEC = "IMG_ETOOL_BUILD_EXEC"; //$NON-NLS-1$
-
-    public final static String IMG_ETOOL_BUILD_EXEC_HOVER = "IMG_ETOOL_BUILD_EXEC_HOVER"; //$NON-NLS-1$
-
-    public final static String IMG_ETOOL_BUILD_EXEC_DISABLED = "IMG_ETOOL_BUILD_EXEC_DISABLED"; //$NON-NLS-1$
-
-    public final static String IMG_ETOOL_SEARCH_SRC = "IMG_ETOOL_SEARCH_SRC"; //$NON-NLS-1$
-
-    public final static String IMG_ETOOL_SEARCH_SRC_HOVER = "IMG_ETOOL_SEARCH_SRC_HOVER"; //$NON-NLS-1$
-
-    public final static String IMG_ETOOL_SEARCH_SRC_DISABLED = "IMG_ETOOL_SEARCH_SRC_DISABLED"; //$NON-NLS-1$
-
-    public final static String IMG_ETOOL_NEXT_NAV = "IMG_ETOOL_NEXT_NAV"; //$NON-NLS-1$
-
-    public final static String IMG_ETOOL_PREVIOUS_NAV = "IMG_ETOOL_PREVIOUS_NAV"; //$NON-NLS-1$
-
-    public final static String IMG_ETOOL_PROBLEM_CATEGORY = "IMG_ETOOL_PROBLEM_CATEGORY"; //$NON-NLS-1$
-
-    // local toolbars
-	public final static String IMG_LCL_LINKTO_HELP = "IMG_LCL_LINKTO_HELP"; //$NON-NLS-1$
-
-    public final static String IMG_LCL_FLAT_LAYOUT = "IMG_LCL_FLAT_LAYOUT"; //$NON-NLS-1$
-    
-    public final static String IMG_LCL_HIERARCHICAL_LAYOUT = "IMG_LCL_HIERARCHICAL_LAYOUT"; //$NON-NLS-1$
-
-    //wizard images
-    public final static String IMG_WIZBAN_NEWPRJ_WIZ = "IMG_WIZBAN_NEWPRJ_WIZ"; //$NON-NLS-1$
-
-    public final static String IMG_WIZBAN_NEWFOLDER_WIZ = "IMG_WIZBAN_NEWFOLDER_WIZ"; //$NON-NLS-1$
-
-    public final static String IMG_WIZBAN_NEWFILE_WIZ = "IMG_WIZBAN_NEWFILE_WIZ"; //$NON-NLS-1$
-
-    public final static String IMG_WIZBAN_IMPORTDIR_WIZ = "IMG_WIZBAN_IMPORTDIR_WIZ"; //$NON-NLS-1$
-
-    public final static String IMG_WIZBAN_IMPORTZIP_WIZ = "IMG_WIZBAN_IMPORTZIP_WIZ"; //$NON-NLS-1$
-
-    public final static String IMG_WIZBAN_EXPORTDIR_WIZ = "IMG_WIZBAN_EXPORTDIR_WIZ"; //$NON-NLS-1$
-
-    public final static String IMG_WIZBAN_EXPORTZIP_WIZ = "IMG_WIZBAN_EXPORTZIP_WIZ"; //$NON-NLS-1$
-
-    public final static String IMG_WIZBAN_RESOURCEWORKINGSET_WIZ = "IMG_WIZBAN_EXPORTZIP_WIZ"; //$NON-NLS-1$
-    
-    public final static String IMG_DLGBAN_SAVEAS_DLG = "IMG_DLGBAN_SAVEAS_DLG"; //$NON-NLS-1$
-    
-    public final static String IMG_DLGBAN_QUICKFIX_DLG = "IMG_DLGBAN_QUICKFIX_DLG"; //$NON-NLS-1$
-
-    // task objects
-    public final static String IMG_OBJS_COMPLETE_TSK = "IMG_OBJS_COMPLETE_TSK"; //$NON-NLS-1$
-
-    public final static String IMG_OBJS_INCOMPLETE_TSK = "IMG_OBJS_INCOMPLETE_TSK"; //$NON-NLS-1$
-    
-    //problems images
-    public static final String IMG_OBJS_ERROR_PATH = "IMG_OBJS_ERROR_PATH"; //$NON-NLS-1$
-
-    public static final String IMG_OBJS_WARNING_PATH = "IMG_OBJS_WARNING_PATH"; //$NON-NLS-1$
-
-    public static final String IMG_OBJS_INFO_PATH = "IMG_OBJS_INFO_PATH"; //$NON-NLS-1$
-
-    // product
-    public final static String IMG_OBJS_DEFAULT_PROD = "IMG_OBJS_DEFAULT_PROD"; //$NON-NLS-1$
-
-    // welcome
-    public final static String IMG_OBJS_WELCOME_ITEM = "IMG_OBJS_WELCOME_ITEM"; //$NON-NLS-1$
-    
-    public final static String IMG_OBJS_WELCOME_BANNER = "IMG_OBJS_WELCOME_BANNER"; //$NON-NLS-1$
-
-    //Quick fix images
-	public static final String IMG_DLCL_QUICK_FIX_DISABLED = "IMG_DLCL_QUICK_FIX_DISABLED";//$NON-NLS-1$
-
-	public static final String IMG_ELCL_QUICK_FIX_ENABLED = "IMG_ELCL_QUICK_FIX_ENABLED"; //$NON-NLS-1$
-	
-
-    /**
-     * Returns the image descriptor for the workbench image with the given
-     * symbolic name. Use this method to retrieve image descriptors for any
-     * of the images named in this class.
-     *
-     * @param symbolicName the symbolic name of the image
-     * @return the image descriptor, or <code>null</code> if none
-     */
-    public static ImageDescriptor getImageDescriptor(String symbolicName) {
-        return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(
-                symbolicName);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEPreferenceInitializer.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEPreferenceInitializer.java
deleted file mode 100644
index 3f414f1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEPreferenceInitializer.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.internal.ide;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * The IDEPreferenceInitializer is the preference initializer for the IDE
- * preferences.
- */
-public class IDEPreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-
-		IEclipsePreferences node = new DefaultScope()
-				.getNode(IDEWorkbenchPlugin.getDefault().getBundle()
-						.getSymbolicName());
-
-		// API preferences
-
-		node.put(IDE.Preferences.PROJECT_OPEN_NEW_PERSPECTIVE,
-				IWorkbenchPreferenceConstants.OPEN_PERSPECTIVE_REPLACE);
-
-		// Set the workspace selection dialog to open by default
-		node.putBoolean(IDE.Preferences.SHOW_WORKSPACE_SELECTION_DIALOG, true);
-
-		// Internal preferences
-
-		node.putBoolean(IDEInternalPreferences.SAVE_ALL_BEFORE_BUILD, false);
-		node.putInt(IDEInternalPreferences.SAVE_INTERVAL, 5); // 5 minutes
-		node.putBoolean(IDEInternalPreferences.WELCOME_DIALOG, true);
-		node.putBoolean(IDEInternalPreferences.REFRESH_WORKSPACE_ON_STARTUP,
-				false);
-		node.putBoolean(
-				IDEInternalPreferences.EXIT_PROMPT_ON_CLOSE_LAST_WINDOW, true);
-		node.put(IDEInternalPreferences.PROJECT_SWITCH_PERSP_MODE,
-				IDEInternalPreferences.PSPM_PROMPT);
-		node.put(IDEInternalPreferences.OPEN_REQUIRED_PROJECTS,
-				IDEInternalPreferences.PSPM_PROMPT);
-
-		// Turning some Help Menu separators on
-		node.putBoolean(getHelpSeparatorKey("group.main"), true); //$NON-NLS-1$
-		node.putBoolean(getHelpSeparatorKey("group.assist"), true); //$NON-NLS-1$
-		node.putBoolean(getHelpSeparatorKey("group.updates"), true); //$NON-NLS-1$
-
-		// Set up marker limits
-		node.putBoolean(IDEInternalPreferences.LIMIT_PROBLEMS, true);
-		node.putInt(IDEInternalPreferences.PROBLEMS_LIMIT, 100);
-		
-		node.putBoolean(IDEInternalPreferences.LIMIT_BOOKMARKS, true);
-		node.putInt(IDEInternalPreferences.BOOKMARKS_LIMIT, 100);
-
-		node.putBoolean(IDEInternalPreferences.LIMIT_TASKS, true);
-		node.putInt(IDEInternalPreferences.TASKS_LIMIT, 100);
-	}
-
-	private String getHelpSeparatorKey(String groupId) {
-		return "useSeparator." + IWorkbenchActionConstants.M_HELP + "." + groupId; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDESelectionConversionService.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDESelectionConversionService.java
deleted file mode 100644
index f63c8c3..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDESelectionConversionService.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.internal.ide;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.resources.mapping.ResourceMappingContext;
-import org.eclipse.core.resources.mapping.ResourceTraversal;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.ide.ResourceUtil;
-import org.eclipse.ui.internal.ISelectionConversionService;
-
-/**
- * The IDESelectionConversionService is the selection service that uses the
- * resource support available to the IDE.
- * 
- * @since 3.2
- */
-public class IDESelectionConversionService implements
-		ISelectionConversionService {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.SelectionConversionService#convertToResources(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public IStructuredSelection convertToResources(
-			IStructuredSelection originalSelection) {
-
-		List result = new ArrayList();
-		Iterator elements = originalSelection.iterator();
-
-		while (elements.hasNext()) {
-			Object currentElement = elements.next();
-
-			IResource resource = ResourceUtil.getResource(currentElement);
-
-			if (resource == null) {
-
-				ResourceMapping mapping = ResourceUtil
-						.getResourceMapping(currentElement);
-				if (mapping == null)
-					continue;
-
-				ResourceTraversal[] traversals = null;
-				try {
-					traversals = mapping.getTraversals(
-							ResourceMappingContext.LOCAL_CONTEXT,
-							new NullProgressMonitor());
-				} catch (CoreException e) {
-					IDEWorkbenchPlugin.log(e.getLocalizedMessage(), e
-							.getStatus());
-				}
-				if (traversals != null) {
-					ResourceTraversal traversal = null;
-					IResource[] resources = null;
-					for (int i = 0; i < traversals.length; i++) {
-						traversal = traversals[i];
-						resources = traversal.getResources();
-						if (resources != null) {
-							for (int j = 0; j < resources.length; j++) {
-								result.add(resources[j]);
-							}
-						}
-					}
-				}
-
-			} else
-				result.add(resource);
-		}
-
-		// all that can be converted are done, answer new selection
-		if (result.isEmpty()) {
-			return StructuredSelection.EMPTY;
-		}
-		return new StructuredSelection(result.toArray());
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchActivityHelper.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchActivityHelper.java
deleted file mode 100644
index 776184c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchActivityHelper.java
+++ /dev/null
@@ -1,216 +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.ide;
-
-import java.util.HashMap;
-import java.util.Map;
-
-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.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IRegistryChangeEvent;
-import org.eclipse.core.runtime.IRegistryChangeListener;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.activities.ITriggerPoint;
-import org.eclipse.ui.activities.IWorkbenchActivitySupport;
-import org.eclipse.ui.activities.WorkbenchActivityHelper;
-
-/**
- * Utility class that manages promotion of activites in response to workspace changes.
- * 
- * @since 3.0
- */
-public class IDEWorkbenchActivityHelper {
-
-    private static final String NATURE_POINT = "org.eclipse.ui.ide.natures"; //$NON-NLS-1$
-    
-    /**
-     * Resource listener that reacts to new projects (and associated natures) 
-     * coming into the workspace.
-     */
-    private IResourceChangeListener listener;
-
-    /**
-     * Mapping from composite nature ID to IPluginContribution.  Used for proper
-     * activity mapping of natures.
-     */
-    private Map natureMap;
-
-    /**
-     * Singleton instance.
-     */
-    private static IDEWorkbenchActivityHelper singleton;
-
-    /**
-     * Get the singleton instance of this class.
-     * @return the singleton instance of this class.
-     * @since 3.0
-     */
-    public static IDEWorkbenchActivityHelper getInstance() {
-        if (singleton == null) {
-            singleton = new IDEWorkbenchActivityHelper();
-        }
-        return singleton;
-    }
-
-    /**
-     * Create a new <code>IDEWorkbenchActivityHelper</code> which will listen 
-     * for workspace changes and promote activities accordingly.
-     */
-    private IDEWorkbenchActivityHelper() {
-        natureMap = new HashMap();
-        // for dynamic UI
-        Platform.getExtensionRegistry().addRegistryChangeListener(
-                new IRegistryChangeListener() {
-                    public void registryChanged(IRegistryChangeEvent event) {
-                        if (event.getExtensionDeltas(
-                                "org.eclipse.core.resources", "natures").length > 0) { //$NON-NLS-1$ //$NON-NLS-2$
-							loadNatures();
-						}
-                    }
-                }, "org.eclipse.core.resources"); //$NON-NLS-1$
-        loadNatures();
-        listener = getChangeListener();
-        ResourcesPlugin.getWorkspace().addResourceChangeListener(listener);
-        // crawl the initial projects to set up nature bindings
-        IProject[] projects = ResourcesPlugin.getWorkspace().getRoot()
-                .getProjects();
-        IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI
-                .getWorkbench().getActivitySupport();
-        for (int i = 0; i < projects.length; i++) {
-            try {
-                processProject(projects[i], workbenchActivitySupport);
-            } catch (CoreException e) {
-                // do nothing
-            }
-        }
-    }
-
-    /**
-     * For dynamic UI.  Clears the cache of known natures and recreates it.
-     */
-    public void loadNatures() {
-        natureMap.clear();
-        IExtensionPoint point = Platform.getExtensionRegistry()
-                .getExtensionPoint("org.eclipse.core.resources.natures"); //$NON-NLS-1$
-        IExtension[] extensions = point.getExtensions();
-        for (int i = 0; i < extensions.length; i++) {
-            IExtension extension = extensions[i];
-            final String localId = extension.getSimpleIdentifier();
-            final String pluginId = extension.getNamespace();
-            String natureId = extension.getUniqueIdentifier();
-            natureMap.put(natureId, new IPluginContribution() {
-                public String getLocalId() {
-                    return localId;
-                }
-
-                public String getPluginId() {
-                    return pluginId;
-                }
-            });
-        }
-    }
-
-    /**
-     * Get a change listener for listening to resource changes.
-     * 
-     * @return the resource change listeners
-     */
-    private IResourceChangeListener getChangeListener() {
-        return new IResourceChangeListener() {
-            /*
-             * (non-Javadoc) @see
-             * org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
-             */
-            public void resourceChanged(IResourceChangeEvent event) {
-                if (!WorkbenchActivityHelper.isFiltering()) {
-					return;
-				}
-                IResourceDelta mainDelta = event.getDelta();
-
-                if (mainDelta == null) {
-					return;
-				}
-                //Has the root changed?
-                if (mainDelta.getKind() == IResourceDelta.CHANGED
-                        && mainDelta.getResource().getType() == IResource.ROOT) {
-
-                    try {
-                        IResourceDelta[] children = mainDelta
-                                .getAffectedChildren();
-                        IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI
-                                .getWorkbench().getActivitySupport();
-                        for (int i = 0; i < children.length; i++) {
-                            IResourceDelta delta = children[i];
-                            if (delta.getResource().getType() == IResource.PROJECT) {
-                                IProject project = (IProject) delta
-                                        .getResource();
-                                processProject(project,
-                                        workbenchActivitySupport);
-                            }
-                        }
-                    } catch (CoreException exception) {
-                        //Do nothing if there is a CoreException
-                    }
-                }
-            }
-        };
-    }
-
-    /**
-     * Handle natures for the given project.
-     * 
-     * @param project the project
-     * @param workbenchActivitySupport the activity support
-     */
-    protected void processProject(IProject project,
-            IWorkbenchActivitySupport workbenchActivitySupport)
-            throws CoreException {
-        if (!project.isOpen()) {
-			return;
-		}
-        String[] ids = project.getDescription().getNatureIds();
-        if (ids.length == 0) {
-			return;
-		}
-        
-        for (int j = 0; j < ids.length; j++) {
-            IPluginContribution contribution = (IPluginContribution) natureMap
-                    .get(ids[j]);
-            if (contribution == null) {
-				continue; //bad nature ID.
-			}
-            ITriggerPoint triggerPoint = workbenchActivitySupport
-                    .getTriggerPointManager().getTriggerPoint(NATURE_POINT); 
-            //consult the advisor - if the activities need enabling, they will be
-            WorkbenchActivityHelper.allowUseOf(triggerPoint, contribution);
-        }
-    }
-
-    /**
-     * Unhooks the <code>IResourceChangeListener</code>.
-     */
-    public void shutdown() {
-        if (listener != null) {
-            ResourcesPlugin.getWorkspace().removeResourceChangeListener(
-                    listener);
-        }
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchAdvisor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchAdvisor.java
deleted file mode 100644
index debc845..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchAdvisor.java
+++ /dev/null
@@ -1,763 +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.ide;
-
-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.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.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.Dialog;
-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.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-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.Workbench;
-import org.eclipse.ui.internal.ide.model.WorkbenchAdapterBuilder;
-import org.eclipse.ui.internal.ide.undo.WorkspaceUndoMonitor;
-import org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog;
-import org.eclipse.ui.progress.IProgressService;
-import org.eclipse.update.core.SiteManager;
-import org.osgi.framework.Bundle;
-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;
-
-	/**
-	 * Event loop exception handler for the advisor.
-	 */
-	private IDEExceptionHandler exceptionHandler = 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;
-
-	/**
-	 * 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) {
-
-		// make sure we always save and restore workspace state
-		configurer.setSaveAndRestore(true);
-
-		// setup the event loop exception handler
-		exceptionHandler = new IDEExceptionHandler(configurer);
-
-		// register workspace adapters
-		WorkbenchAdapterBuilder.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);
-
-		// use this image for the help button in dialogs
-		ImageRegistry reg = JFaceResources.getImageRegistry();
-		reg
-				.put(
-						Dialog.DLG_IMG_HELP,
-						IDEInternalWorkbenchImages
-								.getImageDescriptor(IDEInternalWorkbenchImages.IMG_LCL_LINKTO_HELP));
-		
-		Policy.setComparator(Collator.getInstance());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#preStartup()
-	 */
-	public void preStartup() {
-
-		// Suspend background jobs while we startup
-		Platform.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();
-			checkUpdates();
-			((Workbench) PlatformUI.getWorkbench()).registerService(
-					ISelectionConversionService.class,
-					new IDESelectionConversionService());
-
-			initializeSettingsChangeListener();
-			Display.getCurrent().addListener(SWT.Settings,
-					settingsChangeListener);
-		} finally {// Resume background jobs after we startup
-			Platform.getJobManager().resume();
-		}
-	}
-
-	/**
-	 * 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#eventLoopException
-	 */
-	public void eventLoopException(Throwable exception) {
-		super.eventLoopException(exception);
-		if (exceptionHandler != null) {
-			exceptionHandler.handleException(exception);
-		} else {
-			if (getWorkbenchConfigurer() != null) {
-				getWorkbenchConfigurer().emergencyClose();
-			}
-		}
-	}
-
-	/*
-	 * (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);
-		IRunnableWithProgress runnable = new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) {
-				try {
-					status.merge(ResourcesPlugin.getWorkspace().save(true,
-							monitor));
-				} catch (CoreException e) {
-					status.merge(e.getStatus());
-				}
-			}
-		};
-		try {
-			new ProgressMonitorJobsDialog(null).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);
-		}
-	}
-
-	/**
-	 * Checks if the -newUpdates command line argument is present and if so,
-	 * opens the update manager.
-	 */
-	private void checkUpdates() {
-		boolean newUpdates = false;
-		String[] commandLineArgs = Platform.getCommandLineArgs();
-		for (int i = 0; i < commandLineArgs.length; i++) {
-			if (commandLineArgs[i].equalsIgnoreCase("-newUpdates")) { //$NON-NLS-1$
-				newUpdates = true;
-				break;
-			}
-		}
-
-		if (newUpdates) {
-			try {
-				SiteManager.handleNewChanges();
-			} catch (CoreException e) {
-				IDEWorkbenchPlugin.log(
-						"Problem opening update manager", e.getStatus()); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/*
-	 * (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  toolbar icons.//$NON-NLS-1$
-		final String PATH_DLOCALTOOL = ICONS_PATH + "dlcl16/"; // Disabled  toolbar icons.//$NON-NLS-1$
-		final String PATH_ETOOL = ICONS_PATH + "etool16/"; // Enabled toolbar icons.//$NON-NLS-1$
-		final String PATH_DTOOL = ICONS_PATH + "dtool16/"; // Disabled toolbar icons.//$NON-NLS-1$
-		final String PATH_OBJECT = ICONS_PATH + "obj16/"; // Model object icons//$NON-NLS-1$
-		final String PATH_WIZBAN = ICONS_PATH + "wizban/"; // Wizard icons//$NON-NLS-1$
-
-		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$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_LCL_LINKTO_HELP, PATH_ELOCALTOOL
-						+ "linkto_help.gif", false); //$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;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java
deleted file mode 100644
index 5f17594..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java
+++ /dev/null
@@ -1,772 +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 - Initial API and implementation
- **********************************************************************/
-package org.eclipse.ui.internal.ide;
-
-import org.eclipse.osgi.util.NLS;
-
-public class IDEWorkbenchMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.ide.messages";//$NON-NLS-1$
-	// package: org.eclipse.ui.ide
-
-	public static String IDEWorkbenchAdvisor_noPerspective;
-
-	public static String IDE_noFileEditorFound;
-	public static String IDE_coreExceptionFileStore;
-
-	public static String QuickStartAction_errorDialogTitle;
-	public static String QuickStartAction_infoReadError;
-	
-	public static String ConfigurationLogUpdateSection_installConfiguration;
-	public static String ConfigurationLogUpdateSection_lastChangedOn;
-	public static String ConfigurationLogUpdateSection_location;
-	public static String ConfigurationLogUpdateSection_configurationSites;
-	public static String ConfigurationLogUpdateSection_configurationFeatures;
-	public static String ConfigurationLogUpdateSection_featureIdAndVersion;
-	public static String ConfigurationLogUpdateSection_plugins;
-
-	public static String ErrorClosing;
-
-	public static String ResourceInfoPage_noResource;
-
-
-	//
-	//
-	// Copies from org.eclipse.ui.workbench
-	//
-	public static String showAdvanced;
-	public static String hideAdvanced;
-
-	// ==============================================================================
-	// Workbench Actions
-	// ==============================================================================
-
-	// --- File Menu ---
-	public static String Workbench_file;
-	public static String Workbench_new;
-	public static String OpenWorkspaceAction_text;
-	public static String OpenWorkspaceAction_toolTip;
-	public static String OpenWorkspaceAction_errorTitle;
-	public static String OpenWorkspaceAction_errorMessage;
-	public static String NewProjectAction_text;
-	public static String NewProjectAction_toolTip;
-	public static String NewExampleAction_text;
-	public static String NewExampleAction_toolTip;
-	public static String SaveAsDialog_title;
-	public static String SaveAsDialog_message;
-	public static String SaveAsDialog_text;
-	public static String SaveAsDialog_fileLabel;
-	public static String SaveAsDialog_file;
-	public static String SaveAsDialog_overwriteQuestion;
-	public static String Workbench_projectProperties;
-	public static String Workbench_projectPropertiesToolTip;
-
-
-	// --- Edit Menu ---
-	public static String Workbench_edit;
-	public static String Workbench_addBookmark;
-	public static String Workbench_addBookmarkToolTip;
-	public static String Workbench_addTask;
-	public static String Workbench_addTaskToolTip;
-
-
-	// --- Navigate Menu ---
-	public static String Workbench_navigate;
-	public static String Workbench_goTo;
-
-	public static String Workbench_showIn;
-
-	// --- Project Menu ---
-	public static String Workbench_project;
-
-	public static String Workbench_buildProject;
-	public static String Workbench_buildProjectToolTip;
-	public static String Workbench_rebuildProject;
-	public static String Workbench_rebuildProjectToolTip;
-	public static String Workbench_buildClean;
-	public static String Workbench_buildSet;
-	public static String Workbench_buildAutomatically;
-
-	public static String GlobalBuildAction_text;
-	public static String GlobalBuildAction_toolTip;
-	public static String GlobalBuildAction_rebuildText;
-	public static String GlobalBuildAction_rebuildToolTip;
-	public static String GlobalBuildAction_buildProblems;
-	public static String GlobalBuildAction_internalError;
-	public static String GlobalBuildAction_buildOperationTitle;
-	public static String GlobalBuildAction_rebuildAllOperationTitle;
-	public static String GlobalBuildAction_jobTitle;
-
-	public static String BuildSetAction_noBuildTitle;
-	public static String BuildSetAction_noProjects;
-
-	
-	// --- Window Menu ---
-	public static String Workbench_window;
-	public static String Workbench_openPerspective;
-	public static String Workbench_showView;
-
-	public static String PromptOnExitDialog_shellTitle;
-	public static String PromptOnExitDialog_message0;
-	public static String PromptOnExitDialog_message1;
-	public static String PromptOnExitDialog_choice;
-
-	public static String Workbench_shortcuts;
-	public static String Workbench_openNewWindow;
-
-
-	// --- Help Menu ---
-	public static String Workbench_help;
-	public static String QuickStart_text;
-	public static String QuickStart_toolTip;
-	public static String QuickStartMessageDialog_title;
-	public static String QuickStartMessageDialog_message;
-	public static String WelcomePageSelectionDialog_title;
-	public static String WelcomePageSelectionDialog_message;
-	public static String TipsAndTricks_text;
-	public static String TipsAndTricks_toolTip;
-	public static String TipsAndTricksMessageDialog_title;
-	public static String TipsAndTricksMessageDialog_message;
-	public static String TipsAndTricksPageSelectionDialog_title;
-	public static String TipsAndTricksPageSelectionDialog_message;
-	public static String TipsAndTricksErrorDialog_title;
-	public static String TipsAndTricksErrorDialog_noHref;
-	public static String TipsAndTricksErrorDialog_noFeatures;
-
-	// ==============================================================================
-	// Navigator Actions
-	// ==============================================================================
-	public static String OpenWithMenu_dialogTitle;
-
-	public static String CopyProjectAction_title;
-	public static String CopyProjectAction_toolTip;
-	public static String CopyProjectAction_progressTitle;
-	public static String CopyProjectAction_copyTitle;
-	public static String CopyProjectAction_copyNameOneArg;
-	public static String CopyProjectAction_copyNameTwoArgs;
-	public static String CopyProjectAction_alreadyExists;
-	public static String CopyProjectAction_copyFailedTitle;
-	public static String CopyProjectAction_internalError;
-
-	public static String CopyResourceAction_title;
-	public static String CopyResourceAction_toolTip;
-	public static String CopyResourceAction_selectDestination;
-
-	public static String MoveProjectAction_text;
-	public static String MoveProjectAction_toolTip;
-	public static String MoveProjectAction_moveTitle;
-	public static String MoveProjectAction_progressMessage;
-	public static String MoveProjectAction_dialogTitle;
-	public static String MoveProjectAction_internalError;
-
-	public static String MoveResourceAction_text;
-	public static String MoveResourceAction_toolTip;
-	public static String MoveResourceAction_title;
-	public static String MoveResourceAction_checkMoveMessage;
-
-	public static String ReadOnlyCheck_problems;
-
-	public static String RenameResourceAction_text;
-	public static String RenameResourceAction_toolTip;
-	public static String RenameResourceAction_inputDialogTitle;
-	public static String RenameResourceAction_inputDialogMessage;
-	public static String RenameResourceAction_checkTitle;
-	public static String RenameResourceAction_readOnlyCheck;
-	public static String RenameResourceAction_resourceExists;
-	public static String RenameResourceAction_nameExists;
-	public static String RenameResourceAction_overwriteQuestion;
-	public static String RenameResourceAction_progressMessage;
-	public static String RenameResourceAction_problemTitle;
-	public static String RenameResourceAction_progress;
-	public static String RenameResourceAction_nameMustBeDifferent;
-	public static String RenameResourceAction_problemMessage;
-
-	public static String DeleteResourceAction_text;
-	public static String DeleteResourceAction_toolTip;
-	public static String DeleteResourceAction_title1;
-	public static String DeleteResourceAction_titleN;
-	public static String DeleteResourceAction_confirm1;
-	public static String DeleteResourceAction_confirmN;
-	public static String DeleteResourceAction_titleProject1;
-	public static String DeleteResourceAction_titleProjectN;
-	public static String DeleteResourceAction_confirmProject1;
-	public static String DeleteResourceAction_confirmProjectN;
-	public static String DeleteResourceAction_deleteContents1;
-	public static String DeleteResourceAction_deleteContentsN;
-	public static String DeleteResourceAction_doNotDeleteContents;
-	public static String DeleteResourceAction_confirmLinkedResource1;
-	public static String DeleteResourceAction_confirmLinkedResourceN;
-	public static String DeleteResourceAction_readOnlyQuestion;
-	public static String DeleteResourceAction_messageTitle;
-	public static String DeleteResourceAction_outOfSyncError;
-	public static String DeleteResourceAction_outOfSyncQuestion;
-	public static String DeleteResourceAction_deletionExceptionMessage;
-	public static String DeleteResourceAction_jobName;
-	public static String DeleteResourceAction_checkJobName;
-
-	public static String AddBookmarkLabel;
-	public static String AddBookmarkToolTip;
-	public static String AddBookmarkDialog_title;
-	public static String AddBookmarkDialog_message;
-
-	public static String AddTaskLabel;
-	public static String AddTaskToolTip;
-
-	public static String OpenFileAction_text;
-	public static String OpenFileAction_toolTip;
-	public static String OpenFileAction_openFileShellTitle;
-
-	public static String OpenResourceAction_text;
-	public static String OpenResourceAction_toolTip;
-	public static String OpenResourceAction_dialogTitle;
-	public static String OpenResourceAction_problemMessage;
-	public static String OpenResourceAction_operationMessage;
-	public static String OpenResourceAction_openRequiredProjects;
-	
-	public static String CloseResourceAction_text;
-	public static String CloseResourceAction_warningForOne;
-	public static String CloseResourceAction_warningForMultiple;
-	public static String CloseResourceAction_confirm;
-	public static String CloseResourceAction_toolTip;
-	public static String CloseResourceAction_title;
-	public static String CloseResourceAction_problemMessage;
-	public static String CloseResourceAction_operationMessage;
-
-	public static String CloseUnrelatedProjectsAction_text;
-	public static String CloseUnrelatedProjectsAction_toolTip;
-
-	public static String BuildAction_text;
-	public static String BuildAction_toolTip;
-	public static String BuildAction_problemMessage;
-	public static String BuildAction_problemTitle;
-	public static String BuildAction_operationMessage;
-
-	public static String RebuildAction_text;
-	public static String RebuildAction_tooltip;
-
-	public static String RefreshAction_text;
-	public static String RefreshAction_toolTip;
-	public static String RefreshAction_progressMessage;
-	public static String RefreshAction_problemTitle;
-	public static String RefreshAction_problemMessage;
-	public static String RefreshAction_locationDeletedMessage;
-	public static String RefreshAction_dialogTitle;
-
-	public static String SelectWorkingSetAction_text;
-
-	// --- Operations ---
-	public static String CopyProjectOperation_progressTitle;
-	public static String CopyProjectOperation_copyFailedMessage;
-	public static String CopyProjectOperation_copyFailedTitle;
-	public static String CopyProjectOperation_internalError;
-	public static String CopyProjectOperation_copyProject;
-
-	public static String CopyFilesAndFoldersOperation_copyFailedTitle;
-	public static String CopyFilesAndFoldersOperation_problemMessage;
-	public static String CopyFilesAndFoldersOperation_operationTitle;
-	public static String CopyFilesAndFoldersOperation_nameCollision;
-	public static String CopyFilesAndFoldersOperation_internalError;
-	public static String CopyFilesAndFoldersOperation_resourceExists;
-	public static String CopyFilesAndFoldersOperation_overwriteQuestion;
-	public static String CopyFilesAndFoldersOperation_overwriteWithDetailsQuestion;
-	public static String CopyFilesAndFoldersOperation_overwriteMergeQuestion;
-	public static String CopyFilesAndFoldersOperation_overwriteNoMergeLinkQuestion;
-	public static String CopyFilesAndFoldersOperation_overwriteNoMergeNoLinkQuestion;
-	public static String CopyFilesAndFoldersOperation_deepCopyQuestion;
-	public static String CopyFilesAndFoldersOperation_deepMoveQuestion;
-	public static String CopyFilesAndFoldersOperation_copyNameTwoArgs;
-	public static String CopyFilesAndFoldersOperation_copyNameOneArg;
-	public static String CopyFilesAndFoldersOperation_destinationAccessError;
-	public static String CopyFilesAndFoldersOperation_destinationDescendentError;
-	public static String CopyFilesAndFoldersOperation_overwriteProblem;
-	public static String CopyFilesAndFoldersOperation_question;
-	public static String CopyFilesAndFoldersOperation_inputDialogTitle;
-	public static String CopyFilesAndFoldersOperation_inputDialogMessage;
-	public static String CopyFilesAndFoldersOperation_nameExists;
-	public static String CopyFilesAndFoldersOperation_nameMustBeDifferent;
-	public static String CopyFilesAndFoldersOperation_sameSourceAndDest;
-	public static String CopyFilesAndFoldersOperation_importSameSourceAndDest;
-	public static String CopyFilesAndFoldersOperation_resourceDeleted;
-	public static String CopyFilesAndFoldersOperation_missingPathVariable;
-	public static String CopyFilesAndFoldersOperation_missingLinkTarget;
-	public static String CopyFilesAndFoldersOperation_CopyResourcesTask;
-	public static String CopyFilesAndFoldersOperation_parentNotEqual;
-	public static String CopyFilesAndFoldersOperation_infoNotFound;
-
-	public static String MoveFilesAndFoldersOperation_sameSourceAndDest;
-	public static String MoveFilesAndFoldersOperation_moveFailedTitle;
-	public static String MoveFilesAndFoldersOperation_problemMessage;
-	public static String MoveFilesAndFoldersOperation_operationTitle;
-
-	public static String WizardDataTransfer_existsQuestion;
-	public static String WizardDataTransfer_overwriteNameAndPathQuestion;
-	public static String WizardDataTransfer_exceptionMessage;
-	public static String WizardTransferPage_selectTypes;
-	public static String WizardTransferPage_selectAll;
-	public static String WizardTransferPage_deselectAll;
-
-	// --- Import ---
-	public static String WizardImportPage_specifyFolder;
-	public static String WizardImportPage_specifyProject;
-	public static String WizardImportPage_folderMustExist;
-	public static String WizardImportPage_errorDialogTitle;
-	public static String WizardImportPage_folder;
-	public static String WizardImportPage_browseLabel;
-	public static String WizardImportPage_browse2;
-	public static String WizardImportPage_selectFolderLabel;
-	public static String WizardImportPage_selectFolderTitle;
-	public static String WizardImportPage_destinationLabel;
-	public static String WizardImportPage_options;
-	public static String WizardImportPage_projectNotExist;
-	public static String WizardImportPage_importOnReceiver;
-	public static String WizardImportPage_noOpenProjects;
-	public static String WizardImportPage_undefinedPathVariable;
-	public static String WizardImportPage_containerNotExist;
-
-	// --- Export ---
-	public static String WizardExportPage_errorDialogTitle;
-	public static String WizardExportPage_mustExistMessage;
-	public static String WizardExportPage_mustBeAccessibleMessage;
-	public static String WizardExportPage_detailsMessage;
-	public static String WizardExportPage_whatLabel;
-	public static String WizardExportPage_whereLabel;
-	public static String WizardExportPage_options;
-	public static String WizardExportPage_selectionDialogMessage;
-	public static String WizardExportPage_resourceTypeDialog;
-	public static String WizardExportPage_folder;
-	public static String WizardExportPage_browse;
-	public static String WizardExportPage_allTypes;
-	public static String WizardExportPage_specificTypes;
-	public static String WizardExportPage_edit;
-	public static String WizardExportPage_details;
-	public static String WizardExportPage_selectResourcesTitle;
-	public static String WizardExportPage_oneResourceSelected;
-	public static String WizardExportPage_selectResourcesToExport;
-	public static String WizardExportPage_internalErrorTitle;
-	public static String WizardExportPage_resourceCountMessage;
-
-	// --- New Example ---
-	public static String NewExample_title;
-
-	public static String WizardNewProjectCreationPage_projectNameEmpty;
-	public static String WizardNewProjectCreationPage_projectLocationEmpty;
-	public static String WizardNewProjectCreationPage_projectExistsMessage;
-	public static String WizardNewProjectCreationPage_nameLabel;
-	public static String WizardNewProjectReferences_title;
-
-	// --- New Folder ---
-	public static String WizardNewFolderMainPage_folderName;
-	public static String WizardNewFolderMainPage_folderLabel;
-	public static String WizardNewFolderMainPage_description;
-	public static String WizardNewFolderCreationPage_progress;
-	public static String WizardNewFolderCreationPage_errorTitle;
-	public static String WizardNewFolderCreationPage_internalErrorTitle;
-	public static String WizardNewFolder_internalError;
-
-	// --- New File ---
-	public static String WizardNewFileCreationPage_progress;
-	public static String WizardNewFileCreationPage_errorTitle;
-	public static String WizardNewFileCreationPage_fileLabel;
-	public static String WizardNewFileCreationPage_file;
-	public static String WizardNewFileCreationPage_internalErrorTitle;
-	public static String WizardNewFileCreationPage_internalErrorMessage;
-
-	// --- Linked Resource ---
-	public static String WizardNewLinkPage_linkFileButton;
-	public static String WizardNewLinkPage_linkFolderButton;
-	public static String WizardNewLinkPage_browseButton;
-	public static String WizardNewLinkPage_variablesButton;
-	public static String WizardNewLinkPage_targetSelectionLabel;
-	public static String WizardNewLinkPage_linkTargetEmpty;
-	public static String WizardNewLinkPage_linkTargetInvalid;
-	public static String WizardNewLinkPage_linkTargetLocationInvalid;
-	public static String WizardNewLinkPage_linkTargetNonExistent;
-	public static String WizardNewLinkPage_linkTargetNotFile;
-	public static String WizardNewLinkPage_linkTargetNotFolder;
-
-	// ==============================================================================
-	// Preference Pages
-	// ==============================================================================
-	public static String Preference_note;
-
-	// --- Workbench ---
-	public static String WorkbenchPreference_encoding;
-	public static String WorkbenchPreference_defaultEncoding;
-	public static String WorkbenchPreference_otherEncoding;
-	public static String WorkbenchPreference_unsupportedEncoding;
-	public static String WorkbenchPreference_encoding_encodingMessage;
-	
-	// ---workspace ---
-	public static String IDEWorkspacePreference_autobuild;
-	public static String IDEWorkspacePreference_autobuildToolTip;
-	public static String IDEWorkspacePreference_savePriorToBuilding;
-	public static String IDEWorkspacePreference_savePriorToBuildingToolTip;
-	public static String IDEWorkspacePreference_RefreshButtonText;
-	public static String IDEWorkspacePreference_RefreshButtonToolTip;
-	public static String IDEWorkspacePreference_fileLineDelimiter;
-	public static String IDEWorkspacePreference_defaultLineDelim;
-	public static String IDEWorkspacePreference_defaultLineDelimProj;
-	public static String IDEWorkspacePreference_otherLineDelim;
-	public static String IDEWorkspacePreference_relatedLink;
-	public static String IDEWorkspacePreference_openReferencedProjects;
-
-	// --- Linked Resources ---
-	public static String LinkedResourcesPreference_explanation;
-	public static String LinkedResourcesPreference_enableLinkedResources;
-	public static String LinkedResourcesPreference_linkedResourcesWarningTitle;
-	public static String LinkedResourcesPreference_linkedResourcesWarningMessage;
-
-	// The following six keys are marked as unused by the NLS search, but they are indirectly used
-	// and should be removed.
-	public static String PathVariableDialog_shellTitle_newVariable;
-	public static String PathVariableDialog_shellTitle_existingVariable;
-	public static String PathVariableDialog_dialogTitle_newVariable;
-	public static String PathVariableDialog_dialogTitle_existingVariable;
-	public static String PathVariableDialog_message_newVariable;
-	public static String PathVariableDialog_message_existingVariable;
-
-	public static String PathVariableDialog_variableName;
-	public static String PathVariableDialog_variableValue;
-	public static String PathVariableDialog_variableNameEmptyMessage;
-	public static String PathVariableDialog_variableValueEmptyMessage;
-	public static String PathVariableDialog_variableValueInvalidMessage;
-	public static String PathVariableDialog_file;
-	public static String PathVariableDialog_folder;
-	public static String PathVariableDialog_selectFileTitle;
-	public static String PathVariableDialog_selectFolderTitle;
-	public static String PathVariableDialog_selectFolderMessage;
-	public static String PathVariableDialog_variableAlreadyExistsMessage;
-	public static String PathVariableDialog_pathIsRelativeMessage;
-	public static String PathVariableDialog_pathDoesNotExistMessage;
-
-	// --- Local History ---
-	public static String FileHistory_longevity;
-	public static String FileHistory_entries;
-	public static String FileHistory_diskSpace;
-	public static String FileHistory_mustBePositive;
-	public static String FileHistory_invalid;
-	public static String FileHistory_exceptionSaving;
-	public static String FileHistory_aboveMaxEntries;
-	public static String FileHistory_aboveMaxFileSize;
-	public static String FileHistory_restartNote;
-
-	// --- Perspectives ---
-	public static String ProjectSwitchPerspectiveMode_optionsTitle;
-	public static String ProjectSwitchPerspectiveMode_always;
-	public static String ProjectSwitchPerspectiveMode_never;
-	public static String ProjectSwitchPerspectiveMode_prompt;
-
-	// --- Build Order ---
-	public static String BuildOrderPreference_up;
-	public static String BuildOrderPreference_down;
-	public static String BuildOrderPreference_add;
-	public static String BuildOrderPreference_remove;
-	public static String BuildOrderPreference_selectOtherProjects;
-	public static String BuildOrderPreference_useDefaults;
-	public static String BuildOrderPreference_projectBuildOrder;
-	public static String BuildOrderPreference_removeNote;
-	public static String BuildOrderPreference_maxIterationsLabel;
-
-	// --- Startup preferences ---
-	public static String StartupPreferencePage_refreshButton;
-	public static String StartupPreferencePage_launchPromptButton;
-	public static String StartupPreferencePage_exitPromptButton;
-
-	// --- Info ---
-	public static String ResourceInfo_readOnly;
-	public static String ResourceInfo_executable;
-	public static String ResourceInfo_archive;
-	public static String ResourceInfo_derived;
-	public static String ResourceInfo_type;
-	public static String ResourceInfo_location;
-	public static String ResourceInfo_resolvedLocation;
-	public static String ResourceInfo_size;
-	public static String ResourceInfo_bytes;
-	public static String ResourceInfo_file;
-	public static String ResourceInfo_fileTypeFormat;
-	public static String ResourceInfo_folder;
-	public static String ResourceInfo_project;
-	public static String ResourceInfo_linkedFile;
-	public static String ResourceInfo_linkedFolder;
-	public static String ResourceInfo_unknown;
-	public static String ResourceInfo_notLocal;
-	public static String ResourceInfo_undefinedPathVariable;
-	public static String ResourceInfo_notExist;
-	public static String ResourceInfo_fileNotExist;
-	public static String ResourceInfo_path;
-	public static String ResourceInfo_lastModified;
-	public static String ResourceInfo_fileEncodingTitle;
-	public static String ResourceInfo_fileContentEncodingFormat;
-	public static String ResourceInfo_fileContainerEncodingFormat;
-	public static String ResourceInfo_containerEncodingFormat;
-	public static String ResourceInfo_exWarning;
-
-	// --- Project References ---
-	public static String ProjectReferencesPage_label;
-
-	// ==============================================================================
-	// Editors
-	// ==============================================================================
-	public static String DefaultEditorDescription_name;
-
-	public static String WelcomeEditor_accessException;
-	public static String WelcomeEditor_readFileError;
-	public static String WelcomeEditor_title;
-	public static String WelcomeEditor_toolTip;
-	public static String WelcomeEditor_copy_text;
-
-	public static String WelcomeItem_unableToLoadClass;
-	public static String WelcomeParser_parseError;
-	public static String WelcomeParser_parseException;
-	public static String Workbench_openEditorErrorDialogTitle;
-	public static String Workbench_openEditorErrorDialogMessage;
-	public static String QuickStartAction_openEditorException;
-
-	// ==============================================================================
-	// Dialogs
-	// ==============================================================================
-	public static String Question;
-	public static String Always;
-	public static String Never;
-	public static String Prompt;
-
-	public static String ContainerSelectionDialog_title;
-	public static String ContainerSelectionDialog_message;
-
-	public static String ContainerGroup_message;
-	public static String ContainerGroup_selectFolder;
-
-	public static String ContainerGenerator_progressMessage;
-	public static String ContainerGenerator_pathOccupied;
-
-	public static String ResourceGroup_resource;
-	public static String ResourceGroup_nameExists;
-	public static String ResourceGroup_folderEmpty;
-	public static String ResourceGroup_noProject;
-	public static String ResourceGroup_emptyName;
-	public static String ResourceGroup_invalidFilename;
-	public static String ResourceGroup_pathOccupied;
-
-	public static String FileSelectionDialog_title;
-	public static String FileSelectionDialog_message;
-
-	public static String ProjectLocationSelectionDialog_nameLabel;
-	public static String ProjectLocationSelectionDialog_locationLabel;
-	public static String ProjectLocationSelectionDialog_browseLabel;
-	public static String ProjectLocationSelectionDialog_directoryLabel;
-	public static String ProjectLocationSelectionDialog_locationError;
-	public static String ProjectLocationSelectionDialog_selectionTitle;
-	public static String ProjectLocationSelectionDialog_useDefaultLabel;
-
-	public static String ResourceSelectionDialog_title;
-	public static String ResourceSelectionDialog_message;
-
-	public static String MarkerResolutionSelectionDialog_title;
-	public static String MarkerResolutionSelectionDialog_messageLabel;
-
-	public static String ResourceSearchDialog_showDerivedResourcesAction;
-	
-	public static String ResourceSelectionDialog_label;
-	public static String ResourceSelectionDialog_matching;
-	public static String ResourceSelectionDialog_folders;
-	public static String ResourceSelectionDialog_showDerived;
-
-	public static String OpenResourceDialog_title;
-
-	public static String NewFolderDialog_title;
-	public static String NewFolderDialog_nameLabel;
-	public static String NewFolderDialog_alreadyExists;
-	public static String NewFolderDialog_folderNameEmpty;
-	public static String NewFolderDialog_progress;
-	public static String NewFolderDialog_errorTitle;
-	public static String NewFolderDialog_internalError;
-
-	public static String CreateLinkedResourceGroup_linkFileButton;
-	public static String CreateLinkedResourceGroup_linkFolderButton;
-	public static String CreateLinkedResourceGroup_browseButton;
-	public static String CreateLinkedResourceGroup_variablesButton;
-	public static String CreateLinkedResourceGroup_resolvedPathLabel;
-	public static String CreateLinkedResourceGroup_targetSelectionLabel;
-	public static String CreateLinkedResourceGroup_linkTargetNotFile;
-	public static String CreateLinkedResourceGroup_linkTargetNotFolder;
-	public static String CreateLinkedResourceGroup_linkTargetNonExistent;
-	public static String CreateLinkedResourceGroup_unableToValidateLinkTarget;
-
-	public static String PathVariablesBlock_variablesLabel;
-	public static String PathVariablesBlock_addVariableButton;
-	public static String PathVariablesBlock_editVariableButton;
-	public static String PathVariablesBlock_removeVariableButton;
-
-	public static String PathVariableSelectionDialog_title;
-	public static String PathVariableSelectionDialog_extendButton;
-	public static String PathVariableSelectionDialog_ExtensionDialog_title;
-	public static String PathVariableSelectionDialog_ExtensionDialog_description;
-
-	// ==============================================================================
-	// Editor Framework
-	// ==============================================================================
-	public static String EditorManager_saveResourcesMessage;
-	public static String EditorManager_saveResourcesTitle;
-
-	public static String OpenSystemEditorAction_dialogTitle;
-	public static String OpenSystemEditorAction_text;
-	public static String OpenSystemEditorAction_toolTip;
-
-	// ==============================================================================
-	// Workspace
-	// ==============================================================================
-	public static String WorkspaceAction_problemsTitle;
-	public static String WorkspaceAction_logTitle;
-	public static String WorkbenchAction_problemsMessage;
-	public static String WorkbenchAction_internalError;
-	public static String Workspace;
-
-
-	// ==============================================================================
-	// Workbench
-	// ==============================================================================
-	public static String WorkbenchWindow_shellTitle;
-
-	public static String Internal_error;
-	public static String InternalError;
-	public static String InternalErrorNoArg;
-	public static String InternalErrorOneArg;
-
-	public static String FatalError_RecursiveError;
-	public static String FatalError_OutOfMemoryError;
-	public static String FatalError_StackOverflowError;
-	public static String FatalError_VirtualMachineError;
-	public static String FatalError_SWTError;
-	public static String FatalError;
-
-	public static String ProblemSavingWorkbench;
-	public static String ProblemsSavingWorkspace;
-
-	public static String Problems_Opening_Page;
-
-	public static String Workspace_refreshing;
-
-
-	// ==============================================================================
-	// Keys with references but don't show in the UI
-	// ==============================================================================
-	public static String CreateFileAction_text;
-	public static String CreateFileAction_toolTip;
-	public static String CreateFileAction_title;
-
-	public static String CreateFolderAction_text;
-	public static String CreateFolderAction_toolTip;
-	public static String CreateFolderAction_title;
-
-	public static String ScrubLocalAction_problemsMessage;
-	public static String ScrubLocalAction_text;
-	public static String ScrubLocalAction_toolTip;
-	public static String ScrubLocalAction_problemsTitle;
-	public static String ScrubLocalAction_progress;
-
-	public static String TextAction_selectAll;
-	public static String Cut;
-	public static String Copy;
-	public static String Paste;
-	public static String Delete;
-
-	// ==============================================================================
-	// Keys used in the reuse editor which is released as experimental.
-	// ==============================================================================
-	public static String WorkbenchPreference_saveInterval;
-	public static String WorkbenchPreference_saveIntervalError;
-
-	// ==============================================================================
-	// Working Set Framework.
-	// ==============================================================================
-	public static String ResourceWorkingSetPage_title;
-	public static String ResourceWorkingSetPage_description;
-	public static String ResourceWorkingSetPage_message;
-	public static String ResourceWorkingSetPage_label_tree;
-	public static String ResourceWorkingSetPage_warning_nameMustNotBeEmpty;
-	public static String ResourceWorkingSetPage_warning_nameWhitespace;
-	public static String ResourceWorkingSetPage_warning_workingSetExists;
-	public static String ResourceWorkingSetPage_warning_resourceMustBeChecked;
-	public static String ResourceWorkingSetPage_error;
-	public static String ResourceWorkingSetPage_error_updateCheckedState;
-	public static String ResourceWorkingSetPage_selectAll_label;
-	public static String ResourceWorkingSetPage_selectAll_toolTip;
-	public static String ResourceWorkingSetPage_deselectAll_label;
-	public static String ResourceWorkingSetPage_deselectAll_toolTip;
-	
-	public static String ResourceEncodingFieldEditor_ErrorLoadingMessage;
-	public static String ResourceEncodingFieldEditor_ErrorStoringMessage;
-	public static String ResourceEncodingFieldEditor_EncodingConflictTitle;
-	public static String ResourceEncodingFieldEditor_EncodingConflictMessage;
-
-	public static String ChooseWorkspaceDialog_dialogName;
-	public static String ChooseWorkspaceDialog_dialogTitle;
-	public static String ChooseWorkspaceDialog_dialogMessage;
-	public static String ChooseWorkspaceDialog_defaultProductName;
-	public static String ChooseWorkspaceDialog_workspaceEntryLabel;
-	public static String ChooseWorkspaceDialog_browseLabel;
-	public static String ChooseWorkspaceDialog_directoryBrowserTitle;
-	public static String ChooseWorkspaceDialog_directoryBrowserMessage;
-	public static String ChooseWorkspaceDialog_useDefaultMessage;
-	public static String IDEApplication_workspaceMandatoryTitle;
-	public static String IDEApplication_workspaceMandatoryMessage;
-	public static String IDEApplication_workspaceInUseTitle;
-	public static String IDEApplication_workspaceInUseMessage;
-	public static String IDEApplication_workspaceEmptyTitle;
-	public static String IDEApplication_workspaceEmptyMessage;
-	public static String IDEApplication_workspaceInvalidTitle;
-	public static String IDEApplication_workspaceInvalidMessage;
-	public static String IDEApplication_workspaceCannotBeSetTitle;
-	public static String IDEApplication_workspaceCannotBeSetMessage;
-	public static String IDEApplication_workspaceCannotLockTitle;
-	public static String IDEApplication_workspaceCannotLockMessage;
-	public static String IDEApplication_versionTitle;
-	public static String IDEApplication_versionMessage;
-	public static String GlobalBuildAction_BuildRunningTitle;
-	public static String GlobalBuildAction_BuildRunningMessage;
-	public static String CleanDialog_buildCleanAuto;
-	public static String CleanDialog_buildCleanManual;
-	public static String CleanDialog_title;
-	public static String CleanDialog_cleanAllButton;
-	public static String CleanDialog_cleanSelectedButton;
-	public static String CleanDialog_buildNowButton;
-	public static String CleanDialog_taskName;
-	public static String IDEEncoding_EncodingJob;
-	public static String IDEEditorsPreferencePage_WorkbenchPreference_viewsRelatedLink;
-	public static String IDEEditorsPreferencePage_WorkbenchPreference_FileEditorsRelatedLink;
-    public static String IDEEditorsPreferencePage_WorkbenchPreference_contentTypesRelatedLink;
-	public static String WorkbenchEncoding_invalidCharset;
-	public static String CopyProjectAction_confirm;
-	public static String CopyProjectAction_warning;
-	public static String DeleteResourceAction_confirm;
-	public static String DeleteResourceAction_warning;
-	public static String CopyFilesAndFoldersOperation_confirmMove;
-	public static String CopyFilesAndFoldersOperation_warningMove;
-	public static String CopyFilesAndFoldersOperation_confirmCopy;
-	public static String CopyFilesAndFoldersOperation_warningCopy;
-	public static String RenameResourceAction_confirm;
-	public static String RenameResourceAction_warning;
-
-	public static String IDE_sideEffectWarning;
-
-	public static String IDE_areYouSure;
-	
-	public static String IDEIdleHelper_backgroundGC;
-	
-	public static String SystemSettingsChange_title;
-	public static String SystemSettingsChange_message;
-	public static String SystemSettingsChange_yes;
-	public static String SystemSettingsChange_no;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, IDEWorkbenchMessages.class);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchPlugin.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchPlugin.java
deleted file mode 100644
index 93bbcae..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchPlugin.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-
-import com.ibm.icu.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.core.runtime.IBundleGroupProvider;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.ui.internal.ide.registry.MarkerImageProviderRegistry;
-import org.eclipse.ui.internal.ide.registry.ProjectImageRegistry;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * This internal class represents the top of the IDE workbench.
- *
- * This class is responsible for tracking various registries
- * font, preference, graphics, dialog store.
- *
- * This class is explicitly referenced by the 
- * IDE workbench plug-in's  "plugin.xml"
- * 
- * @since 3.0
- */
-public class IDEWorkbenchPlugin extends AbstractUIPlugin {
-    // Default instance of the receiver
-    private static IDEWorkbenchPlugin inst;
-
-    // Global workbench ui plugin flag. Only workbench implementation is allowed to use this flag
-    // All other plugins, examples, or test cases must *not* use this flag.
-    public static boolean DEBUG = false;
-
-    /**
-     * The IDE workbench plugin ID.
-     */
-    public static final String IDE_WORKBENCH = "org.eclipse.ui.ide"; //$NON-NLS-1$
-
-    /**
-     * The ID of the default text editor.
-     * This must correspond to EditorsUI.DEFAULT_TEXT_EDITOR_ID.
-     */
-    public static final String DEFAULT_TEXT_EDITOR_ID = "org.eclipse.ui.DefaultTextEditor"; //$NON-NLS-1$
-
-    // IDE workbench extension point names
-    public static final String PL_MARKER_IMAGE_PROVIDER = "markerImageProviders"; //$NON-NLS-1$
-
-    public static final String PL_MARKER_HELP = "markerHelp"; //$NON-NLS-1$
-
-    public static final String PL_MARKER_RESOLUTION = "markerResolution"; //$NON-NLS-1$
-
-    public static final String PL_CAPABILITIES = "capabilities"; //$NON-NLS-1$
-
-    public static final String PL_PROJECT_NATURE_IMAGES = "projectNatureImages"; //$NON-NLS-1$
-	
-	private final static String ICONS_PATH = "$nl$/icons/full/";//$NON-NLS-1$
-
-    /**
-     * Project image registry; lazily initialized.
-     */
-    private ProjectImageRegistry projectImageRegistry = null;
-
-    /**
-     * Marker image registry; lazily initialized.
-     */
-    private MarkerImageProviderRegistry markerImageProviderRegistry = null;
-
-	/**
-	 * Create an instance of the receiver.
-	 */
-	public IDEWorkbenchPlugin() {
-		super();
-		inst = this;
-	}
-    /**
-     * Creates an extension.  If the extension plugin has not
-     * been loaded a busy cursor will be activated during the duration of
-     * the load.
-     *
-     * @param element the config element defining the extension
-     * @param classAttribute the name of the attribute carrying the class
-     * @return Object the extension object
-     * @throws CoreException
-     */
-    public static Object createExtension(final IConfigurationElement element,
-			final String classAttribute) throws CoreException {
-		// If plugin has been loaded create extension.
-		// Otherwise, show busy cursor then create extension.
-		Bundle plugin = Platform.getBundle(element.getNamespace());
-		if (plugin.getState() == Bundle.ACTIVE) {
-			return element.createExecutableExtension(classAttribute);
-		} else {
-            final Object[] ret = new Object[1];
-            final CoreException[] exc = new CoreException[1];
-            BusyIndicator.showWhile(null, new Runnable() {
-                public void run() {
-                    try {
-                        ret[0] = element
-                                .createExecutableExtension(classAttribute);
-                    } catch (CoreException e) {
-                        exc[0] = e;
-                    }
-                }
-            });
-            if (exc[0] != null) {
-				throw exc[0];
-			} else {
-				return ret[0];
-			}
-        }
-    }
-
-    /* Return the default instance of the receiver. This represents the runtime plugin.
-     *
-     * @see AbstractPlugin for the typical implementation pattern for plugin classes.
-     */
-    public static IDEWorkbenchPlugin getDefault() {
-        return inst;
-    }
-
-    /**
-     * Return the workspace used by the workbench
-     *
-     * This method is internal to the workbench and must not be called
-     * by any plugins.
-     */
-    public static IWorkspace getPluginWorkspace() {
-        return ResourcesPlugin.getWorkspace();
-    }
-
-    /**
-     * Logs the given message to the platform log.
-     * 
-     * If you have an exception in hand, call log(String, Throwable) instead.
-     * 
-     * If you have a status object in hand call log(String, IStatus) instead.
-     * 
-     * This convenience method is for internal use by the IDE Workbench only and
-     * must not be called outside the IDE Workbench.
-     * 
-     * @param message
-     *            A high level UI message describing when the problem happened.
-     */
-    public static void log(String message) {
-        getDefault().getLog().log(
-                StatusUtil.newStatus(IStatus.ERROR, message, null));
-    }
-
-    /**
-     * Logs the given message and throwable to the platform log.
-     * 
-     * If you have a status object in hand call log(String, IStatus) instead.
-     * 
-     * This convenience method is for internal use by the IDE Workbench only and
-     * must not be called outside the IDE Workbench.
-     * 
-     * @param message
-     *            A high level UI message describing when the problem happened.
-     * @param t
-     *            The throwable from where the problem actually occurred.
-     */
-    public static void log(String message, Throwable t) {
-        IStatus status = StatusUtil.newStatus(IStatus.ERROR, message, t);
-        log(message, status);
-    }
-    
-    /**
-     * Logs the given throwable to the platform log, indicating the class and
-     * method from where it is being logged (this is not necessarily where it
-     * occurred).
-     * 
-     * This convenience method is for internal use by the IDE Workbench only and
-     * must not be called outside the IDE Workbench.
-     * 
-     * @param clazz
-     *            The calling class.
-     * @param methodName
-     *            The calling method name.
-     * @param t
-     *            The throwable from where the problem actually occurred.
-     */
-    public static void log(Class clazz, String methodName, Throwable t) {
-        String msg = MessageFormat.format("Exception in {0}.{1}: {2}", //$NON-NLS-1$
-                new Object[] { clazz.getName(), methodName, t });
-        log(msg, t);
-    }
-    
-    /**
-     * Logs the given message and status to the platform log.
-     * 
-     * This convenience method is for internal use by the IDE Workbench only and
-     * must not be called outside the IDE Workbench.
-     * 
-     * @param message
-     *            A high level UI message describing when the problem happened.
-     *            May be <code>null</code>.
-     * @param status
-     *            The status describing the problem. Must not be null.
-     */
-    public static void log(String message, IStatus status) {
-
-        //1FTUHE0: ITPCORE:ALL - API - Status & logging - loss of semantic info
-
-        if (message != null) {
-            getDefault().getLog().log(
-                    StatusUtil.newStatus(IStatus.ERROR, message, null));
-        }
-
-        getDefault().getLog().log(status);
-    }
-
-    /* (non-javadoc)
-     * Method declared on AbstractUIPlugin
-     */
-    protected void refreshPluginActions() {
-        // do nothing
-    }
-
-
-    /**
-     * Return the manager that maps project nature ids to images.
-     */
-    public ProjectImageRegistry getProjectImageRegistry() {
-        if (projectImageRegistry == null) {
-            projectImageRegistry = new ProjectImageRegistry();
-            projectImageRegistry.load();
-        }
-        return projectImageRegistry;
-    }
-
-    /**
-     * Returns the marker image provider registry for the workbench.
-     *
-     * @return the marker image provider registry
-     */
-    public MarkerImageProviderRegistry getMarkerImageProviderRegistry() {
-        if (markerImageProviderRegistry == null) {
-            markerImageProviderRegistry = new MarkerImageProviderRegistry();
-        }
-        return markerImageProviderRegistry;
-    }
-
-
-    /**
-     * Returns the about information of all known features,
-     * omitting any features which are missing this information.
-     * 
-     * @return a possibly empty list of about infos
-     */
-    public AboutInfo[] getFeatureInfos() {
-        // cannot be cached since bundle groups come and go
-        List infos = new ArrayList();
-
-        // add an entry for each bundle group
-        IBundleGroupProvider[] providers = Platform.getBundleGroupProviders();
-        if (providers != null) {
-			for (int i = 0; i < providers.length; ++i) {
-                IBundleGroup[] bundleGroups = providers[i].getBundleGroups();
-                for (int j = 0; j < bundleGroups.length; ++j) {
-					infos.add(new AboutInfo(bundleGroups[j]));
-				}
-            }
-		}
-
-        return (AboutInfo[]) infos.toArray(new AboutInfo[infos.size()]);
-    }
-
-    /**
-     * Returns the about information of the primary feature.
-     * 
-     * @return info about the primary feature, or <code>null</code> if there 
-     * is no primary feature or if this information is unavailable
-     */
-    public AboutInfo getPrimaryInfo() {
-        IProduct product = Platform.getProduct();
-        return product == null ? null : new AboutInfo(product);
-    }
-	
-	/**
-	 * Get the workbench image with the given path relative to
-	 * ICON_PATH.
-	 * @param relativePath
-	 * @return ImageDescriptor
-	 */
-	public static ImageDescriptor getIDEImageDescriptor(String relativePath){
-		return imageDescriptorFromPlugin(IDE_WORKBENCH, ICONS_PATH + relativePath);
-	}
-	
-	
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchWindowAdvisor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchWindowAdvisor.java
deleted file mode 100644
index bbc4231..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,621 +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.ide;
-
-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.Platform;
-import org.eclipse.jface.action.IAction;
-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.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.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.dialogs.WelcomeEditorInput;
-import org.eclipse.ui.part.EditorInputTransfer;
-import org.eclipse.ui.part.MarkerTransfer;
-import org.eclipse.ui.part.ResourceTransfer;
-import org.eclipse.update.configurator.ConfiguratorUtils;
-import org.eclipse.update.configurator.IPlatformConfiguration;
-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;
-
-    /**
-     * 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(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();
-            }
-
-            public void pageClosed(IWorkbenchPage page) {
-                updateTitle();
-            }
-
-            public void pageOpened(IWorkbenchPage page) {
-                // do nothing
-            }
-        });
-        configurer.getWindow().addPerspectiveListener(
-                new PerspectiveAdapter() {
-                    public void perspectiveActivated(IWorkbenchPage page,
-                            IPerspectiveDescriptor perspective) {
-                        updateTitle();
-                    }
-					public void perspectiveSavedAs(IWorkbenchPage page,IPerspectiveDescriptor oldPerspective,IPerspectiveDescriptor newPerspective){
-						updateTitle();
-					}
-                    public void perspectiveDeactivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
-                        updateTitle();
-                    }
-                });
-        configurer.getWindow().getPartService().addPartListener(
-                new IPartListener2() {
-                    public void partActivated(IWorkbenchPartReference ref) {
-                        if (ref instanceof IEditorReference) {
-                            updateTitle();
-                        }
-                    }
-
-                    public void partBroughtToTop(IWorkbenchPartReference ref) {
-                        if (ref instanceof IEditorReference) {
-                            updateTitle();
-                        }
-                    }
-
-                    public void partClosed(IWorkbenchPartReference ref) {
-						updateTitle();
-                    }
-
-                    public void partDeactivated(IWorkbenchPartReference ref) {
-                        // do nothing
-                    }
-
-                    public void partOpened(IWorkbenchPartReference ref) {
-                        // do nothing
-                    }
-
-                    public void partHidden(IWorkbenchPartReference ref) {
-                        // do nothing
-                    }
-
-                    public void partVisible(IWorkbenchPartReference ref) {
-                        // do nothing
-                    }
-
-                    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 = currentPage.getActiveEditor();
-        }
-        
-        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
-     */
-    private void updateTitle() {
-        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();
-        }
-        
-        // 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();
-                String versionedId = (String) entry.getKey();
-                String featureId = versionedId.substring(0, versionedId
-                        .indexOf(':'));
-                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
-                    IPlatformConfiguration platformConfiguration = ConfiguratorUtils
-                            .getCurrentPlatformConfiguration();
-                    IPlatformConfiguration.IFeatureEntry feature = platformConfiguration
-                            .findConfiguredFeatureEntry(featureId);
-                    if (feature != null) {
-                        String pi = feature.getFeaturePluginIdentifier();
-                        if (pi != null) {
-                            //Start the bundle if there is one
-                            Bundle bundle = Platform.getBundle(pi);
-                            if(bundle != null) {
-								try{
-                                    bundle.start();
-                                }
-                                catch(BundleException exception){
-                                    IDEWorkbenchPlugin.log("Failed to load feature", exception);//$NON-NLS-1$
-                                }
-                                finally {
-                                	try {
-										bundle.stop();
-									} catch (BundleException ex) {
-	                                    IDEWorkbenchPlugin.log("Failed to stop feature", ex);//$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
-        IAction openPerspectiveAction = ActionFactory.OPEN_PERSPECTIVE_DIALOG.create(window);
-        toolBarManager.add(openPerspectiveAction);
-        ToolBar toolBar = toolBarManager.createControl(composite);
-        toolBar.setBackground(bgCol);
-        return composite;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IIDEHelpContextIds.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IIDEHelpContextIds.java
deleted file mode 100644
index 577cf69..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IIDEHelpContextIds.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-
-/**
- * Help context ids for the workbench.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * 
- */
-public interface IIDEHelpContextIds {
-    public static final String PREFIX = IDEWorkbenchPlugin.IDE_WORKBENCH + "."; //$NON-NLS-1$
-
-    // Actions
-    public static final String ADD_BOOKMARK_ACTION = PREFIX
-            + "add_bookmark_action_context"; //$NON-NLS-1$
-
-    public static final String ADD_TASK_ACTION = PREFIX
-            + "add_task_action_context"; //$NON-NLS-1$	
-
-    public static final String INCREMENTAL_BUILD_ACTION = PREFIX
-            + "incremental_build_action_context"; //$NON-NLS-1$
-
-    public static final String FULL_BUILD_ACTION = PREFIX
-            + "full_build_action_context"; //$NON-NLS-1$
-
-    public static final String CLOSE_RESOURCE_ACTION = PREFIX
-            + "close_resource_action_context"; //$NON-NLS-1$
-
-    public static final String CLOSE_UNRELATED_PROJECTS_ACTION = PREFIX
-    + "close_unrelated_projects_action_context"; //$NON-NLS-1$
-
-    public static final String OPEN_RESOURCE_ACTION = PREFIX
-            + "open_resource_action_context"; //$NON-NLS-1$
-
-    public static final String OPEN_FILE_ACTION = PREFIX
-            + "open_file_action_context"; //$NON-NLS-1$
-
-    public static final String OPEN_SYSTEM_EDITOR_ACTION = PREFIX
-            + "open_system_editor_action_context"; //$NON-NLS-1$
-
-    public static final String REFRESH_ACTION = PREFIX
-            + "refresh_action_context"; //$NON-NLS-1$
-
-    public static final String MOVE_RESOURCE_ACTION = PREFIX
-            + "move_resource_action_context"; //$NON-NLS-1$
-
-    public static final String COPY_RESOURCE_ACTION = PREFIX
-            + "copy_resource_action_context"; //$NON-NLS-1$
-
-    public static final String MOVE_PROJECT_ACTION = PREFIX
-            + "move_project_action_context"; //$NON-NLS-1$
-
-    public static final String COPY_PROJECT_ACTION = PREFIX
-            + "copy_project_action_context"; //$NON-NLS-1$
-
-    public static final String RENAME_RESOURCE_ACTION = PREFIX
-            + "rename_resource_action_context"; //$NON-NLS-1$
-
-    public static final String DELETE_RESOURCE_ACTION = PREFIX
-            + "delete_resource_action_context"; //$NON-NLS-1$
-
-    public static final String PROJECT_PROPERTY_DIALOG_ACTION = PREFIX
-            + "project_property_dialog_action_context"; //$NON-NLS-1$
-
-    public static final String CREATE_FOLDER_ACTION = PREFIX
-            + "create_folder_action_context"; //$NON-NLS-1$
-
-    public static final String CREATE_FILE_ACTION = PREFIX
-            + "create_file_action_context"; //$NON-NLS-1$
-
-    public static final String SCRUB_LOCAL_ACTION = PREFIX
-            + "scrub_local_action_context"; //$NON-NLS-1$
-
-    public static final String GLOBAL_INCREMENTAL_BUILD_ACTION = PREFIX
-            + "global_incremental_build_action_context"; //$NON-NLS-1$
-
-    public static final String GLOBAL_FULL_BUILD_ACTION = PREFIX
-            + "global_full_build_action_context"; //$NON-NLS-1$
-
-    public static final String QUICK_START_ACTION = PREFIX
-            + "quick_start_action_context"; //$NON-NLS-1$
-
-    public static final String TIPS_AND_TRICKS_ACTION = PREFIX
-            + "tips_and_tricks_action_context"; //$NON-NLS-1$
-
-    public static final String TEXT_CUT_ACTION = PREFIX
-            + "text_cut_action_context"; //$NON-NLS-1$
-
-    public static final String TEXT_COPY_ACTION = PREFIX
-            + "text_copy_action_context"; //$NON-NLS-1$
-
-    public static final String TEXT_PASTE_ACTION = PREFIX
-            + "text_paste_action_context"; //$NON-NLS-1$
-
-    public static final String TEXT_DELETE_ACTION = PREFIX
-            + "text_delete_action_context"; //$NON-NLS-1$
-
-    public static final String TEXT_SELECT_ALL_ACTION = PREFIX
-            + "text_select_all_action_context"; //$NON-NLS-1$
-
-    public static final String OPEN_WORKSPACE_FILE_ACTION = PREFIX
-            + "open_workspace_file_action_context"; //$NON-NLS-1$
-
-    // Dialogs
-   public static final String PROJECT_LOCATION_SELECTION_DIALOG = PREFIX
-            + "project_location_selection_dialog_context"; //$NON-NLS-1$
-
-    public static final String CONTAINER_SELECTION_DIALOG = PREFIX
-            + "container_selection_dialog_context"; //$NON-NLS-1$
-
-    public static final String FILE_SELECTION_DIALOG = PREFIX
-            + "file_selection_dialog_context"; //$NON-NLS-1$
-
-    public static final String RESOURCE_SELECTION_DIALOG = PREFIX
-            + "resource_selection_dialog_context"; //$NON-NLS-1$
-
-    public static final String DELETE_PROJECT_DIALOG = PREFIX
-            + "delete_project_dialog_context"; //$NON-NLS-1$
-
-    public static final String MARKER_RESOLUTION_SELECTION_DIALOG = PREFIX
-            + "marker_resolution_selection_dialog_context"; //$NON-NLS-1$
-
-     public static final String WELCOME_PAGE_SELECTION_DIALOG = PREFIX
-            + "welcome_page_selection_dialog"; //$NON-NLS-1$
-
-    public static final String TIPS_AND_TRICKS_PAGE_SELECTION_DIALOG = PREFIX
-            + "tips_and_tricks_page_selection_dialog"; //$NON-NLS-1$
-
-    public static final String OPEN_RESOURCE_DIALOG = PREFIX
-            + "open_resource_dialog"; //$NON-NLS-1$
-
-    public static final String NEW_FOLDER_DIALOG = PREFIX + "new_folder_dialog"; //$NON-NLS-1$
-
-    public static final String PATH_VARIABLE_SELECTION_DIALOG = PREFIX
-            + "path_variable_selection_dialog"; //$NON-NLS-1$
-
-    public static final String SAVE_AS_DIALOG = PREFIX
-    + "save_as_dialog_context"; //$NON-NLS-1$
-
-
-    // Editors
-    public static final String WELCOME_EDITOR = PREFIX
-            + "welcome_editor_context"; //$NON-NLS-1$
-
-    // Preference pages
-    public static final String BUILD_ORDER_PREFERENCE_PAGE = PREFIX
-            + "build_order_preference_page_context"; //$NON-NLS-1$
-
-    public static final String FILE_STATES_PREFERENCE_PAGE = PREFIX
-            + "file_states_preference_page_context"; //$NON-NLS-1$
-
-    public static final String LINKED_RESOURCE_PREFERENCE_PAGE = PREFIX
-            + "linked_resource_preference_page_context"; //$NON-NLS-1$
-
-    // Property pages
-    public static final String PROJECT_REFERENCE_PROPERTY_PAGE = PREFIX
-            + "project_reference_property_page_context"; //$NON-NLS-1$
-
-    public static final String RESOURCE_INFO_PROPERTY_PAGE = PREFIX
-            + "resource_info_property_page_context"; //$NON-NLS-1$
-
-    // Wizard pages
-    public static final String NEW_PROJECT_WIZARD_PAGE = PREFIX
-            + "new_project_wizard_page_context"; //$NON-NLS-1$
-
-    public static final String NEW_PROJECT_REFERENCE_WIZARD_PAGE = PREFIX
-            + "new_project_reference_wizard_page_context"; //$NON-NLS-1$
-
-    public static final String NEW_FOLDER_WIZARD_PAGE = PREFIX
-            + "new_folder_wizard_page_context"; //$NON-NLS-1$
-
-    public static final String NEW_FILE_WIZARD_PAGE = PREFIX
-            + "new_file_wizard_page_context"; //$NON-NLS-1$
-
-   public static final String NEW_LINK_WIZARD_PAGE = PREFIX
-            + "new_link_wizard_page_context"; //$NON-NLS-1$
-
-   public static final String WORKING_SET_RESOURCE_PAGE = PREFIX
-   			+ "working_set_resource_page"; //$NON-NLS-1$	
-
-   public static final String WORKSPACE_PREFERENCE_PAGE = PREFIX
-   			+ "workspace_preference_page_context"; //$NON-NLS-1$
-
-    // Wizards
-   
-   public static final String NEW_FILE_WIZARD = PREFIX
-   + "new_file_wizard_context"; //$NON-NLS-1$
-
-   public static final String NEW_FOLDER_WIZARD = PREFIX
-   	+ "new_folder_wizard_context"; //$NON-NLS-1$
-
-   public static final String NEW_PROJECT_WIZARD = PREFIX
-   	+ "new_project_wizard_context"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IMarkerImageProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IMarkerImageProvider.java
deleted file mode 100644
index 8493725..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IMarkerImageProvider.java
+++ /dev/null
@@ -1,52 +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.ide;
-
-import org.eclipse.core.resources.IMarker;
-
-/**
- * Clients should implement this interface when creating an
- * extension to define images for marker dynamically.
- * <p>
- * The name of the class should be specified in the extension contributed 
- * to the workbench's maker image provider extension point 
- * (named <code>"org.eclipse.ui.makerImageProvider"</code>).
- * For example, the plug-in's XML markup might contain:
- * <pre>
- * &LT;extension point="org.eclipse.ui.makerImageProvider"&GT;
- *      &LT;imageprovider 
- *		   id="com.example.myplugin.myprofiderID"
- *         makertype="com.example.myMarkerType"
- *         icon="icons/basic/view16/myGIF.gif"/&GT;
- * &LT;/extension&GT;
- * </pre>
- * It can also define the image provider using the tag <code>class</code>
- * instead of icon.
- * </p>
- * Either the image path specified by the tag <code>icon</code> or
- * the path returned from <code>getImagePath</code> will be used
- * to create the image when the following code is executed:
- * <p><code>myMarker.getAdapter(IWorkbenchAdapter).getImageDescriptor(myMarker);</code></p>
- */
-public interface IMarkerImageProvider {
-    /**
-     * Returns the relative path for the image
-     * to be used for displaying an marker in the workbench.
-     * This path is relative to the plugin location
-     *
-     * Returns <code>null</code> if there is no appropriate image.
-     *
-     * @param marker The marker to get an image path for.
-     * @return String
-     *
-     */
-    public String getImagePath(IMarker marker);
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/LineDelimiterEditor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/LineDelimiterEditor.java
deleted file mode 100644
index 6173c08..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/LineDelimiterEditor.java
+++ /dev/null
@@ -1,294 +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.ide;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-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.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.osgi.service.prefs.BackingStoreException;
-
-/**
- * A class to handle editing of the Line delimiter preferences in core.
- * 
- * @since 3.1
- */
-public class LineDelimiterEditor {
-
-	private Button defaultButton;
-
-	private Button otherButton;
-
-	private Combo choiceCombo;
-
-	/*
-	 * The project whose preferences should be set. In some cases this class
-	 * will be used to edit project preferences.
-	 */
-	private IProject project;
-
-	private Group group;
-
-	/**
-	 * Creates a new encoding field editor with the given preference name, label
-	 * and parent.
-	 * 
-	 * @param composite
-	 *            the parent of the field editor's control
-	 */
-	public LineDelimiterEditor(Composite composite) {
-		this(composite, null);
-	}
-
-	/**
-	 * Creates a new encoding field editor with the given preference name, label
-	 * and parent.
-	 * 
-	 * @param composite
-	 *            the parent of the field editor's control
-	 * @param project
-	 *            the project to set preferences on
-	 * 
-	 */
-	public LineDelimiterEditor(Composite composite, IProject project) {
-		this.project = project;
-		createControl(composite);
-	}
-
-	/**
-	 * Creates this field editor's main control containing all of its basic
-	 * controls.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 */
-	protected void createControl(Composite parent) {
-		Font font = parent.getFont();
-		group = new Group(parent, SWT.NONE);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		group.setLayoutData(data);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		group.setLayout(layout);
-		group.setText(IDEWorkbenchMessages.IDEWorkspacePreference_fileLineDelimiter);
-		group.setFont(font);
-
-		SelectionAdapter buttonListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (e.widget.equals(defaultButton)) {
-					updateState(true);
-				} else {
-					updateState(false);
-				}
-			}
-		};
-
-		defaultButton = new Button(group, SWT.RADIO);
-		if (project == null) {
-			defaultButton.setText(IDEWorkbenchMessages.IDEWorkspacePreference_defaultLineDelim);
-		} else {
-			defaultButton.setText(IDEWorkbenchMessages.IDEWorkspacePreference_defaultLineDelimProj);
-		}
-		
-		data = new GridData();
-		data.horizontalSpan = 2;
-		defaultButton.setLayoutData(data);
-		defaultButton.addSelectionListener(buttonListener);
-		defaultButton.setFont(font);
-
-		otherButton = new Button(group, SWT.RADIO);
-		otherButton
-				.setText(IDEWorkbenchMessages.IDEWorkspacePreference_otherLineDelim);
-		otherButton.addSelectionListener(buttonListener);
-		otherButton.setFont(font);
-
-		choiceCombo = new Combo(group, SWT.NONE | SWT.READ_ONLY);
-		data = new GridData();
-		choiceCombo.setFont(font);
-		choiceCombo.setLayoutData(data);
-		populateChoiceCombo(getChoices());
-	}
-
-	/**
-	 * Load the list items from core and update the state of the buttons to
-	 * match what the preference is currently set to.
-	 */
-	public void doLoad() {
-		if (choiceCombo != null) {
-			populateChoiceCombo(getChoices());
-			String resourcePreference = getStoredValue();
-			updateState(resourcePreference == null);
-		}
-	}
-
-	/**
-	 * Initializes this field editor with the preference value from the
-	 * preference store.
-	 */
-	public void loadDefault() {
-		doLoad();
-	}
-
-	/**
-	 * Returns the value that is currently stored for the encoding.
-	 * 
-	 * @return the currently stored encoding
-	 */
-	public String getStoredValue() {
-		IScopeContext[] scopeContext = new IScopeContext[] { getScopeContext() };
-		IEclipsePreferences node = scopeContext[0].getNode(Platform.PI_RUNTIME);
-		return node.get(Platform.PREF_LINE_SEPARATOR, null);
-	}
-
-	/**
-	 * Answer the <code>IScopeContext</code> for the receiver, this will be a
-	 * project scope if the receiver is editing project preferences, otherwise
-	 * instance scope.
-	 * 
-	 * @return the scope context
-	 */
-	private IScopeContext getScopeContext() {
-		if (project != null) {
-			return new ProjectScope(project);
-		}
-
-		return new InstanceScope();
-	}
-
-	/**
-	 * Returns the default setting for the object being shown.
-	 * 
-	 * @return the default setting for the object being shown
-	 */
-	protected String[] getChoices() {
-		Set keys = Platform.knownPlatformLineSeparators().keySet();
-		String[] keyArray = new String[keys.size()];
-		keys.toArray(keyArray);
-		return keyArray;
-	}
-
-	/**
-	 * Populates the list of choices combo.
-	 */
-	private void populateChoiceCombo(String[] items) {
-		choiceCombo.setItems(items);
-
-		if (getStoredValue() == null) {
-			choiceCombo.setText(""); //$NON-NLS-1$
-		} else {
-			selectChoice();
-		}
-	}
-
-	private void updateState(boolean useDefault) {
-		if (useDefault) {
-			defaultButton.setSelection(true);
-			otherButton.setSelection(false);
-			choiceCombo.setEnabled(false);
-		} else {
-			defaultButton.setSelection(false);
-			otherButton.setSelection(true);
-			choiceCombo.setEnabled(true);
-			selectChoice();
-		}
-	}
-
-	/**
-	 * Select the item in the combo that matches the current preferences
-	 * setting. NOTE: not handling the case where two platform line separators
-	 * are defined with the same value. Assumption is that they are unique and
-	 * the key will be modified to represent that. E.g. a key might be Mac OS
-	 * 10/Linux if the same value is required for two platforms.
-	 */
-	private void selectChoice() {
-		String selection = null;
-		Map knownValues = Platform.knownPlatformLineSeparators();
-		Set keys = knownValues.keySet();
-		String current = getStoredValue();
-		if (current != null) {
-			for (Iterator iter = keys.iterator(); iter.hasNext();) {
-				String element = (String) iter.next();
-				if (knownValues.get(element).equals(current)) {
-					selection = element;
-					break;
-				}
-			}
-		}
-		String[] items = choiceCombo.getItems();
-		for (int i = 0; i < items.length; i++) {
-			String item = items[i];
-			if (item.equals(selection)) {
-				choiceCombo.select(i);
-				break;
-			}
-		}
-	}
-
-	/**
-	 * Store the currently selected line delimiter value in the preference
-	 * store.
-	 */
-	public void store() {
-		String val;
-		if (defaultButton.getSelection() || choiceCombo.getText().equals("")) { //$NON-NLS-1$
-			val = null;
-		} else {
-			Map lineSeparators = Platform.knownPlatformLineSeparators();
-			val = (String) lineSeparators.get(choiceCombo.getText());
-		}
-
-		IEclipsePreferences node = getScopeContext().getNode(
-				Platform.PI_RUNTIME);
-		if (val == null) {
-			node.remove(Platform.PREF_LINE_SEPARATOR);
-		} else {
-			node.put(Platform.PREF_LINE_SEPARATOR, val);
-		}
-		try {
-			node.flush();
-		} catch (BackingStoreException e) {
-			IDEWorkbenchPlugin.log(e.getMessage(), e);
-		}
-
-	}
-
-	 /**
-     * Set whether or not the controls in the field editor
-     * are enabled.
-     * @param enabled The enabled state.
-     */
-    public void setEnabled(boolean enabled) {
-        group.setEnabled(enabled);
-        Control [] children = group.getChildren();
-        for (int i = 0; i < children.length; i++) {
-			children[i].setEnabled(enabled);
-			
-		}
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/LinkedResourceDecorator.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/LinkedResourceDecorator.java
deleted file mode 100644
index 859983a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/LinkedResourceDecorator.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.internal.ide;
-
-import java.net.URI;
-
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.resources.IResource;
-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.ui.internal.ide.dialogs.IDEResourceInfoUtils;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * A LinkedResourceDecorator decorates an element's image with a linked 
- * resource overlay. 
- * 
- * @since 2.1
- */
-public class LinkedResourceDecorator implements ILightweightLabelDecorator {
-    private static final ImageDescriptor LINK;
-
-    private static final ImageDescriptor LINK_WARNING;
-
-    static {
-        LINK = AbstractUIPlugin.imageDescriptorFromPlugin(
-                IDEWorkbenchPlugin.IDE_WORKBENCH,
-                "$nl$/icons/full/ovr16/link_ovr.gif"); //$NON-NLS-1$
-        LINK_WARNING = AbstractUIPlugin.imageDescriptorFromPlugin(
-                IDEWorkbenchPlugin.IDE_WORKBENCH,
-                "$nl$/icons/full/ovr16/linkwarn_ovr.gif"); //$NON-NLS-1$
-    }
-
-    /**
-     * Creates a new <code>LinkedResourceDecorator</code>.
-     */
-    public LinkedResourceDecorator() {
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(ILabelProviderListener)
-     */
-    public void addListener(ILabelProviderListener listener) {
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-     */
-    public void dispose() {
-        // no resources to dispose
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
-     */
-    public boolean isLabelProperty(Object element, String property) {
-        return false;
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(ILabelProviderListener)
-     */
-    public void removeListener(ILabelProviderListener listener) {
-    }
-
-    /**
-     * Adds the linked resource overlay if the given element is a linked
-     * resource.
-     * 
-     * @param element element to decorate
-     * @param decoration  The decoration we are adding to
-     * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(Object, IDecoration)
-     */
-    public void decorate(Object element, IDecoration decoration) {
-
-        if (element instanceof IResource == false) {
-			return;
-		}
-        IResource resource = (IResource) element;
-        if (resource.isLinked()) {
-			IFileInfo fileInfo = null;
-			URI location = resource.getLocationURI();
-			if (location != null) {
-				fileInfo = IDEResourceInfoUtils.getFileInfo(location);
-			}
-			if (fileInfo != null && fileInfo.exists()) {
-				decoration.addOverlay(LINK);
-			} else {
-				decoration.addOverlay(LINK_WARNING);
-			}
-		}
-
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/Policy.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/Policy.java
deleted file mode 100644
index 4a896f3..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/Policy.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.ide;
-
-import org.eclipse.core.runtime.Platform;
-
-public class Policy {
-    public static final boolean DEFAULT = false;
-
-    public static boolean DEBUG_OPEN_ERROR_DIALOG = DEFAULT;
-    public static boolean DEBUG_GC = DEFAULT;
-    public static boolean DEBUG_UNDOMONITOR = DEFAULT;
-
-    static {
-        if (getDebugOption("/debug")) { //$NON-NLS-1$
-            DEBUG_OPEN_ERROR_DIALOG = getDebugOption("/debug/internalerror/openDialog"); //$NON-NLS-1$
-            DEBUG_GC = getDebugOption("/debug/gc"); //$NON-NLS-1$
-            DEBUG_UNDOMONITOR = getDebugOption("/debug/undomonitor"); //$NON-NLS-1$
-        }
-    }
-
-    private static boolean getDebugOption(String option) {
-        return "true".equalsIgnoreCase(Platform.getDebugOption(IDEWorkbenchPlugin.IDE_WORKBENCH + option)); //$NON-NLS-1$
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ProblemImageProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ProblemImageProvider.java
deleted file mode 100644
index 8301517..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ProblemImageProvider.java
+++ /dev/null
@@ -1,64 +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.ide;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Implementation of IMarkerImageProvider to provide the image
- * path names for problem markers.
- */
-public class ProblemImageProvider implements IMarkerImageProvider {
-    /**
-     * TaskImageProvider constructor comment.
-     */
-    public ProblemImageProvider() {
-        super();
-    }
-
-    /**
-     * Returns the relative path for the image
-     * to be used for displaying an marker in the workbench.
-     * This path is relative to the plugin location
-     *
-     * Returns <code>null</code> if there is no appropriate image.
-     *
-     * @param marker The marker to get an image path for.
-     *
-     */
-    public String getImagePath(IMarker marker) {
-        String iconPath = "/icons/full/";//$NON-NLS-1$		
-        if (isMarkerType(marker, IMarker.PROBLEM)) {
-            switch (marker.getAttribute(IMarker.SEVERITY,
-                    IMarker.SEVERITY_WARNING)) {
-            case IMarker.SEVERITY_ERROR:
-                return iconPath + "obj16/error_tsk.gif";//$NON-NLS-1$
-            case IMarker.SEVERITY_WARNING:
-                return iconPath + "obj16/warn_tsk.gif";//$NON-NLS-1$
-            case IMarker.SEVERITY_INFO:
-                return iconPath + "obj16/info_tsk.gif";//$NON-NLS-1$
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns whether the given marker is of the given type (either directly or indirectly).
-     */
-    private boolean isMarkerType(IMarker marker, String type) {
-        try {
-            return marker.isSubtypeOf(type);
-        } catch (CoreException e) {
-            return false;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ResourcePerspective.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ResourcePerspective.java
deleted file mode 100644
index 4abb421..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ResourcePerspective.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.internal.ide;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- */
-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("org.eclipse.ui.wizards.new.folder");//$NON-NLS-1$
-        layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.file");//$NON-NLS-1$
-
-        // Add "show views".
-        layout.addShowViewShortcut(IPageLayout.ID_RES_NAV);
-        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(IPageLayout.ID_RES_NAV);
-        topLeft.addPlaceholder(IPageLayout.ID_BOOKMARKS);
-
-        // 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/src/org/eclipse/ui/internal/ide/ResourceWorkingSetUpdater.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ResourceWorkingSetUpdater.java
deleted file mode 100644
index 2d8261d..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ResourceWorkingSetUpdater.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-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.IAdaptable;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetUpdater;
-
-/**
- * A working set updater that updates resource working sets on resource deltas
- * 
- * @since 3.2
- */
-public class ResourceWorkingSetUpdater implements IWorkingSetUpdater,
-		IResourceChangeListener {
-
-	/**
-	 * Utility class used to help process incoming resource deltas.
-	 */
-	private static class WorkingSetDelta {
-		private IWorkingSet fWorkingSet;
-
-		private List fElements;
-
-		private boolean fChanged;
-
-		/**
-		 * Create a new instance of this class.
-		 * 
-		 * @param workingSet
-		 *            the working set to track.
-		 */
-		public WorkingSetDelta(IWorkingSet workingSet) {
-			fWorkingSet = workingSet;
-			fElements = new ArrayList(Arrays.asList(workingSet.getElements()));
-		}
-
-		/**
-		 * Returns the index of this element in the list of known elements.
-		 * 
-		 * @param element
-		 *            the element to search for
-		 * @return the index, or -1 if unknown.
-		 */
-		public int indexOf(Object element) {
-			return fElements.indexOf(element);
-		}
-
-		/**
-		 * Add a new element to the list of known elements.
-		 * 
-		 * @param index
-		 *            the index at which to place the element
-		 * @param element
-		 *            the element to set
-		 */
-		public void set(int index, Object element) {
-			fElements.set(index, element);
-			fChanged = true;
-		}
-
-		/**
-		 * Remove an element from the list of known elements.
-		 * 
-		 * @param index
-		 *            the index of the element to remove
-		 */
-		public void remove(int index) {
-			if (fElements.remove(index) != null) {
-				fChanged = true;
-			}
-		}
-
-		/**
-		 * Process the changes to this delta and update the working set if
-		 * necessary.
-		 */
-		public void process() {
-			if (fChanged) {
-				fWorkingSet.setElements((IAdaptable[]) fElements
-						.toArray(new IAdaptable[fElements.size()]));
-			}
-		}
-	}
-
-	private List fWorkingSets;
-
-	/**
-	 * Create a new instance of this updater.
-	 */
-	public ResourceWorkingSetUpdater() {
-		fWorkingSets = new ArrayList();
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(this,
-				IResourceChangeEvent.POST_CHANGE);
-	}
-
-	public void add(IWorkingSet workingSet) {
-		checkElementExistence(workingSet);
-		synchronized (fWorkingSets) {
-			fWorkingSets.add(workingSet);
-		}
-	}
-
-	public boolean remove(IWorkingSet workingSet) {
-		boolean result;
-		synchronized (fWorkingSets) {
-			result = fWorkingSets.remove(workingSet);
-		}
-
-		return result;
-	}
-
-	public boolean contains(IWorkingSet workingSet) {
-		synchronized (fWorkingSets) {
-			return fWorkingSets.contains(workingSet);
-		}
-	}
-
-	public void dispose() {
-		synchronized (fWorkingSets) {
-			fWorkingSets.clear();
-		}
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
-	}
-
-	public void resourceChanged(IResourceChangeEvent event) {
-		IResourceDelta delta = event.getDelta();
-		if (delta == null) {
-			return;
-		}
-		IWorkingSet[] workingSets;
-		synchronized (fWorkingSets) {
-			workingSets = (IWorkingSet[]) fWorkingSets
-					.toArray(new IWorkingSet[fWorkingSets.size()]);
-		}
-		for (int w = 0; w < workingSets.length; w++) {
-			WorkingSetDelta workingSetDelta = new WorkingSetDelta(
-					workingSets[w]);
-			processResourceDelta(workingSetDelta, delta);
-			workingSetDelta.process();
-		}
-	}
-
-	private void processResourceDelta(WorkingSetDelta result,
-			IResourceDelta delta) {
-		IResource resource = delta.getResource();
-		int type = resource.getType();
-		int index = result.indexOf(resource);
-		int kind = delta.getKind();
-		int flags = delta.getFlags();
-		if (kind == IResourceDelta.CHANGED && type == IResource.PROJECT
-				&& index != -1) {
-			if ((flags & IResourceDelta.OPEN) != 0) {
-				result.set(index, resource);
-			}
-		}
-		if (index != -1 && kind == IResourceDelta.REMOVED) {
-			if ((flags & IResourceDelta.MOVED_TO) != 0) {
-				result.set(index, ResourcesPlugin.getWorkspace().getRoot()
-						.findMember(delta.getMovedToPath()));
-			} else {
-				result.remove(index);
-			}
-		}
-
-		// Don't dive into closed or opened projects
-		if (projectGotClosedOrOpened(resource, kind, flags)) {
-			return;
-		}
-
-		IResourceDelta[] children = delta.getAffectedChildren();
-		for (int i = 0; i < children.length; i++) {
-			processResourceDelta(result, children[i]);
-		}
-	}
-
-	private boolean projectGotClosedOrOpened(IResource resource, int kind,
-			int flags) {
-		return resource.getType() == IResource.PROJECT
-				&& kind == IResourceDelta.CHANGED
-				&& (flags & IResourceDelta.OPEN) != 0;
-	}
-
-	private void checkElementExistence(IWorkingSet workingSet) {
-		List elements = new ArrayList(Arrays.asList(workingSet.getElements()));
-		boolean changed = false;
-		for (Iterator iter = elements.iterator(); iter.hasNext();) {
-			IAdaptable element = (IAdaptable) iter.next();
-			boolean remove = false;
-			if (element instanceof IResource) {
-				IResource resource = (IResource) element;
-				IProject project = resource.getProject();
-				remove = (project != null ? project.isOpen() : true)
-						&& !resource.exists();
-			}
-			if (remove) {
-				iter.remove();
-				changed = true;
-			}
-		}
-		if (changed) {
-			workingSet.setElements((IAdaptable[]) elements
-					.toArray(new IAdaptable[elements.size()]));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/StatusUtil.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/StatusUtil.java
deleted file mode 100644
index 285c448..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/StatusUtil.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.internal.ide;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * Utility class to create status objects.
- *
- * PRIVATE
- *   This class is an internal implementation class and should
- *   not be referenced or subclassed outside of the workbench
- *
- * @since 3.0
- */
-public class StatusUtil {
-
-    /**
-     *	Answer a flat collection of the passed status and its recursive children
-     */
-    protected static List flatten(IStatus aStatus) {
-        List result = new ArrayList();
-
-        if (aStatus.isMultiStatus()) {
-            IStatus[] children = aStatus.getChildren();
-            for (int i = 0; i < children.length; i++) {
-                IStatus currentChild = children[i];
-                if (currentChild.isMultiStatus()) {
-                    Iterator childStatiiEnum = flatten(currentChild).iterator();
-                    while (childStatiiEnum.hasNext()) {
-						result.add(childStatiiEnum.next());
-					}
-                } else {
-					result.add(currentChild);
-				}
-            }
-        } else {
-			result.add(aStatus);
-		}
-
-        return result;
-    }
-
-    /**
-     * This method must not be called outside the workbench.
-     *
-     * Utility method for creating status.
-     */
-    protected static IStatus newStatus(IStatus[] stati, String message,
-            Throwable exception) {
-
-        if (message == null || message.trim().length() == 0) {
-            throw new IllegalArgumentException();
-        }
-        return new MultiStatus(IDEWorkbenchPlugin.IDE_WORKBENCH, IStatus.ERROR,
-                stati, message, exception);
-    }
-
-    /**
-     * This method must not be called outside the workbench.
-     *
-     * Utility method for creating status.
-     */
-    public static IStatus newStatus(int severity, String message,
-            Throwable exception) {
-
-        String statusMessage = message;
-        if (message == null || message.trim().length() == 0) {
-            if (exception.getMessage() == null) {
-				statusMessage = exception.toString();
-			} else {
-				statusMessage = exception.getMessage();
-			}
-        }
-
-        return new Status(severity, IDEWorkbenchPlugin.IDE_WORKBENCH, severity,
-                statusMessage, exception);
-    }
-
-    /**
-     * This method must not be called outside the workbench.
-     *
-     * Utility method for creating status.
-     */
-    public static IStatus newStatus(List children, String message,
-            Throwable exception) {
-
-        List flatStatusCollection = new ArrayList();
-        Iterator iter = children.iterator();
-        while (iter.hasNext()) {
-            IStatus currentStatus = (IStatus) iter.next();
-            Iterator childrenIter = flatten(currentStatus).iterator();
-            while (childrenIter.hasNext()) {
-				flatStatusCollection.add(childrenIter.next());
-			}
-        }
-
-        IStatus[] stati = new IStatus[flatStatusCollection.size()];
-        flatStatusCollection.toArray(stati);
-        return newStatus(stati, message, exception);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/StringMatcher.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/StringMatcher.java
deleted file mode 100644
index 2a4baa9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/StringMatcher.java
+++ /dev/null
@@ -1,448 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-
-import java.util.Vector;
-
-/**
- * A string pattern matcher suppporting &#39;*&#39; and &#39;&#63;&#39; wildcards.
- */
-public class StringMatcher {
-    protected String fPattern;
-
-    protected int fLength; // pattern length
-
-    protected boolean fIgnoreWildCards;
-
-    protected boolean fIgnoreCase;
-
-    protected boolean fHasLeadingStar;
-
-    protected boolean fHasTrailingStar;
-
-    protected String fSegments[]; //the given pattern is split into * separated segments
-
-    /* boundary value beyond which we don't need to search in the text */
-    protected int fBound = 0;
-
-    protected static final char fSingleWildCard = '\u0000';
-
-    public static class Position {
-        int start; //inclusive
-
-        int end; //exclusive
-
-        public Position(int start, int end) {
-            this.start = start;
-            this.end = end;
-        }
-
-        public int getStart() {
-            return start;
-        }
-
-        public int getEnd() {
-            return end;
-        }
-    }
-
-    /**
-     * StringMatcher constructor takes in a String object that is a simple 
-     * pattern which may contain &#39*&#39 for 0 and many characters and
-     * &#39;&#63;&#39; for exactly one character.  
-     *
-     * Literal &#39;*&#39; and &#39;*&#39; characters must be escaped in the pattern 
-     * e.g. &quot;&#92;*&quot; means literal &quot;*&quot;, etc.
-     *
-     * Escaping any other character (including the escape character itself), 
-     * just results in that character in the pattern.
-     * e.g. &quot;&#92;a&quot; means &quot;a&quot; and &quot;&#92;&#92;&quot; means &quot;&#92;&quot;
-     *
-     * If invoking the StringMatcher with string literals in Java, don't forget
-     * escape characters are represented by &quot;&#92;&#92;&quot;.
-     *
-     * @param pattern the pattern to match text against
-     * @param ignoreCase if true, case is ignored
-     * @param ignoreWildCards if true, wild cards and their escape sequences are ignored
-     * 		  (everything is taken literally).
-     */
-    public StringMatcher(String pattern, boolean ignoreCase,
-            boolean ignoreWildCards) {
-        if (pattern == null) {
-			throw new IllegalArgumentException();
-		}
-        fIgnoreCase = ignoreCase;
-        fIgnoreWildCards = ignoreWildCards;
-        fPattern = pattern;
-        fLength = pattern.length();
-
-        if (fIgnoreWildCards) {
-            parseNoWildCards();
-        } else {
-            parseWildCards();
-        }
-    }
-
-    /**
-     * Find the first occurrence of the pattern between <code>start</code)(inclusive) 
-     * and <code>end</code>(exclusive).  
-     * @param text  the String object to search in 
-     * @param start  the starting index of the search range, inclusive
-     * @param end  the ending index of the search range, exclusive
-     * @return an <code>StringMatcher.Position</code> object that keeps the starting 
-     * (inclusive) and ending positions (exclusive) of the first occurrence of the 
-     * pattern in the specified range of the text; return null if not found or subtext
-     * is empty (start==end). A pair of zeros is returned if pattern is empty string
-     * Note that for pattern like &quot;*abc*&quot; with leading and trailing stars, position of &quot;abc&quot;
-     * is returned. For a pattern like&quot;*&#63;&#63;*&quot; in text &quot;abcdf&quot;, (1,3) is returned
-     */
-    public StringMatcher.Position find(String text, int start, int end) {
-        if (text == null) {
-			throw new IllegalArgumentException();
-		}
-
-        int tlen = text.length();
-        if (start < 0) {
-			start = 0;
-		}
-        if (end > tlen) {
-			end = tlen;
-		}
-        if (end < 0 || start >= end) {
-			return null;
-		}
-        if (fLength == 0) {
-			return new Position(start, start);
-		}
-        if (fIgnoreWildCards) {
-            int x = posIn(text, start, end);
-            if (x < 0) {
-				return null;
-			}
-            return new Position(x, x + fLength);
-        }
-
-        int segCount = fSegments.length;
-        if (segCount == 0) {
-			return new Position(start, end);
-		}
-
-        int curPos = start;
-        int matchStart = -1;
-        int i;
-        for (i = 0; i < segCount && curPos < end; ++i) {
-            String current = fSegments[i];
-            int nextMatch = regExpPosIn(text, curPos, end, current);
-            if (nextMatch < 0) {
-				return null;
-			}
-            if (i == 0) {
-				matchStart = nextMatch;
-			}
-            curPos = nextMatch + current.length();
-        }
-        if (i < segCount) {
-			return null;
-		}
-        return new Position(matchStart, curPos);
-    }
-
-    /**
-     * match the given <code>text</code> with the pattern 
-     * @return true if matched eitherwise false
-     * @param text  a String object 
-     */
-    public boolean match(String text) {
-        return match(text, 0, text.length());
-    }
-
-    /**
-     * Given the starting (inclusive) and the ending (exclusive) positions in the   
-     * <code>text</code>, determine if the given substring matches with aPattern  
-     * @return true if the specified portion of the text matches the pattern
-     * @param text  a <code>String</code> object that contains the substring to match 
-     * @param start  marks the starting position (inclusive) of the substring
-     * @param end  marks the ending index (exclusive) of the substring 
-     */
-    public boolean match(String text, int start, int end) {
-        if (null == text) {
-			throw new IllegalArgumentException();
-		}
-
-        if (start > end) {
-			return false;
-		}
-
-        if (fIgnoreWildCards) {
-			return (end - start == fLength)
-                    && fPattern.regionMatches(fIgnoreCase, 0, text, start,
-                            fLength);
-		}
-        int segCount = fSegments.length;
-        if (segCount == 0 && (fHasLeadingStar || fHasTrailingStar)) {
-			return true;
-		}
-        if (start == end) {
-			return fLength == 0;
-		}
-        if (fLength == 0) {
-			return start == end;
-		}
-
-        int tlen = text.length();
-        if (start < 0) {
-			start = 0;
-		}
-        if (end > tlen) {
-			end = tlen;
-		}
-
-        int tCurPos = start;
-        int bound = end - fBound;
-        if (bound < 0) {
-			return false;
-		}
-        int i = 0;
-        String current = fSegments[i];
-        int segLength = current.length();
-
-        /* process first segment */
-        if (!fHasLeadingStar) {
-            if (!regExpRegionMatches(text, start, current, 0, segLength)) {
-                return false;
-            } else {
-                ++i;
-                tCurPos = tCurPos + segLength;
-            }
-        }
-        if ((fSegments.length == 1) && (!fHasLeadingStar)
-                && (!fHasTrailingStar)) {
-            // only one segment to match, no wildcards specified
-            return tCurPos == end;
-        }
-        /* process middle segments */
-        while (i < segCount) {
-            current = fSegments[i];
-            int currentMatch;
-            int k = current.indexOf(fSingleWildCard);
-            if (k < 0) {
-                currentMatch = textPosIn(text, tCurPos, end, current);
-                if (currentMatch < 0) {
-					return false;
-				}
-            } else {
-                currentMatch = regExpPosIn(text, tCurPos, end, current);
-                if (currentMatch < 0) {
-					return false;
-				}
-            }
-            tCurPos = currentMatch + current.length();
-            i++;
-        }
-
-        /* process final segment */
-        if (!fHasTrailingStar && tCurPos != end) {
-            int clen = current.length();
-            return regExpRegionMatches(text, end - clen, current, 0, clen);
-        }
-        return i == segCount;
-    }
-
-    /**
-     * This method parses the given pattern into segments seperated by wildcard '*' characters.
-     * Since wildcards are not being used in this case, the pattern consists of a single segment.
-     */
-    private void parseNoWildCards() {
-        fSegments = new String[1];
-        fSegments[0] = fPattern;
-        fBound = fLength;
-    }
-
-    /**
-     * Parses the given pattern into segments seperated by wildcard &#39;*&#39; characters.
-     * @param p, a String object that is a simple regular expression with ?*? and/or &#39;&#63;&#39;
-     */
-    private void parseWildCards() {
-        if (fPattern.startsWith("*")) { //$NON-NLS-1$
-			fHasLeadingStar = true;
-		}
-        if (fPattern.endsWith("*")) {//$NON-NLS-1$
-            /* make sure it's not an escaped wildcard */
-            if (fLength > 1 && fPattern.charAt(fLength - 2) != '\\') {
-                fHasTrailingStar = true;
-            }
-        }
-
-        Vector temp = new Vector();
-
-        int pos = 0;
-        StringBuffer buf = new StringBuffer();
-        while (pos < fLength) {
-            char c = fPattern.charAt(pos++);
-            switch (c) {
-            case '\\':
-                if (pos >= fLength) {
-                    buf.append(c);
-                } else {
-                    char next = fPattern.charAt(pos++);
-                    /* if it's an escape sequence */
-                    if (next == '*' || next == '?' || next == '\\') {
-                        buf.append(next);
-                    } else {
-                        /* not an escape sequence, just insert literally */
-                        buf.append(c);
-                        buf.append(next);
-                    }
-                }
-                break;
-            case '*':
-                if (buf.length() > 0) {
-                    /* new segment */
-                    temp.addElement(buf.toString());
-                    fBound += buf.length();
-                    buf.setLength(0);
-                }
-                break;
-            case '?':
-                /* append special character representing single match wildcard */
-                buf.append(fSingleWildCard);
-                break;
-            default:
-                buf.append(c);
-            }
-        }
-
-        /* add last buffer to segment list */
-        if (buf.length() > 0) {
-            temp.addElement(buf.toString());
-            fBound += buf.length();
-        }
-
-        fSegments = new String[temp.size()];
-        temp.copyInto(fSegments);
-    }
-
-    /** 
-     * @param text  a string which contains no wildcard
-     * @param start  the starting index in the text for search, inclusive
-     * @param end  the stopping point of search, exclusive
-     * @return the starting index in the text of the pattern , or -1 if not found 
-     */
-    protected int posIn(String text, int start, int end) {//no wild card in pattern
-        int max = end - fLength;
-
-        if (!fIgnoreCase) {
-            int i = text.indexOf(fPattern, start);
-            if (i == -1 || i > max) {
-				return -1;
-			}
-            return i;
-        }
-
-        for (int i = start; i <= max; ++i) {
-            if (text.regionMatches(true, i, fPattern, 0, fLength)) {
-				return i;
-			}
-        }
-
-        return -1;
-    }
-
-    /** 
-     * @param text  a simple regular expression that may only contain '&#63;'(s)
-     * @param start  the starting index in the text for search, inclusive
-     * @param end  the stopping point of search, exclusive
-     * @param p  a simple regular expression that may contains '&#63;'
-     * @return the starting index in the text of the pattern , or -1 if not found 
-     */
-    protected int regExpPosIn(String text, int start, int end, String p) {
-        int plen = p.length();
-
-        int max = end - plen;
-        for (int i = start; i <= max; ++i) {
-            if (regExpRegionMatches(text, i, p, 0, plen)) {
-				return i;
-			}
-        }
-        return -1;
-    }
-
-    /**
-     * 
-     * @return boolean
-     * @param  text  a String to match
-     * @param tStart  int that indicates the starting index of match, inclusive
-     * @param p  String,  String, a simple regular expression that may contain '&#63;'
-     * @param pStart
-     * @param plen 	
-     */
-    protected boolean regExpRegionMatches(String text, int tStart, String p,
-            int pStart, int plen) {
-        while (plen-- > 0) {
-            char tchar = text.charAt(tStart++);
-            char pchar = p.charAt(pStart++);
-
-            /* process wild cards */
-            if (!fIgnoreWildCards) {
-                /* skip single wild cards */
-                if (pchar == fSingleWildCard) {
-                    continue;
-                }
-            }
-            if (pchar == tchar) {
-				continue;
-			}
-            if (fIgnoreCase) {
-                if (Character.toUpperCase(tchar) == Character
-                        .toUpperCase(pchar)) {
-					continue;
-				}
-                // comparing after converting to upper case doesn't handle all cases;
-                // also compare after converting to lower case
-                if (Character.toLowerCase(tchar) == Character
-                        .toLowerCase(pchar)) {
-					continue;
-				}
-            }
-            return false;
-        }
-        return true;
-    }
-
-    /** 
-     * @param text  the string to match
-     * @param start  the starting index in the text for search, inclusive
-     * @param end  the stopping point of search, exclusive
-     * @param p  a string that has no wildcard
-     * @return the starting index in the text of the pattern , or -1 if not found 
-     */
-    protected int textPosIn(String text, int start, int end, String p) {
-
-        int plen = p.length();
-        int max = end - plen;
-
-        if (!fIgnoreCase) {
-            int i = text.indexOf(p, start);
-            if (i == -1 || i > max) {
-				return -1;
-			}
-            return i;
-        }
-
-        for (int i = start; i <= max; ++i) {
-            if (text.regionMatches(true, i, p, 0, plen)) {
-				return i;
-			}
-        }
-
-        return -1;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/TipsAndTricksAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/TipsAndTricksAction.java
deleted file mode 100644
index 939e2cb..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/TipsAndTricksAction.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.internal.ide;
-
-import java.util.ArrayList;
-
-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.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.PartEventAction;
-
-/**
- * Launch the tips and tricks action.
- */
-public class TipsAndTricksAction extends PartEventAction implements
-        ActionFactory.IWorkbenchAction {
-
-    /**
-     * The workbench window this action is registered with.
-     */
-    private IWorkbenchWindow workbenchWindow;
-
-    /**
-     * Create an instance of this class.
-     * 
-     * @param window the window
-     */
-    public TipsAndTricksAction(IWorkbenchWindow window) {
-        super(IDEWorkbenchMessages.TipsAndTricks_text);
-        if (window == null) {
-            throw new IllegalArgumentException();
-        }
-        this.workbenchWindow = window;
-        setToolTipText(IDEWorkbenchMessages.TipsAndTricks_toolTip);
-        window.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.TIPS_AND_TRICKS_ACTION);
-        setActionDefinitionId("org.eclipse.ui.help.tipsAndTricksAction"); //$NON-NLS-1$
-        workbenchWindow.getPartService().addPartListener(this);
-    }
-
-    /**
-     *	The user has invoked this action
-     */
-    public void run() {
-        if (workbenchWindow == null) {
-            // action has been disposed
-            return;
-        }
-        // Ask the user to select a feature
-        AboutInfo[] featureInfos = IDEWorkbenchPlugin.getDefault()
-                .getFeatureInfos();
-        ArrayList tipsAndTricksFeatures = new ArrayList(featureInfos.length);
-        for (int i = 0; i < featureInfos.length; i++) {
-            if (featureInfos[i].getTipsAndTricksHref() != null) {
-				tipsAndTricksFeatures.add(featureInfos[i]);
-			}
-        }
-
-        Shell shell = workbenchWindow.getShell();
-
-        if (tipsAndTricksFeatures.size() == 0) {
-            MessageDialog.openInformation(shell, IDEWorkbenchMessages.TipsAndTricksMessageDialog_title,
-                    IDEWorkbenchMessages.TipsAndTricksMessageDialog_message);
-            return;
-        }
-
-        AboutInfo[] features = new AboutInfo[tipsAndTricksFeatures.size()];
-        tipsAndTricksFeatures.toArray(features);
-
-        IProduct product = Platform.getProduct();
-        FeatureSelectionDialog d = new FeatureSelectionDialog(shell, features,
-                product == null ? null : product.getId(), IDEWorkbenchMessages.TipsAndTricksPageSelectionDialog_title,
-                IDEWorkbenchMessages.TipsAndTricksPageSelectionDialog_message,
-                IIDEHelpContextIds.TIPS_AND_TRICKS_PAGE_SELECTION_DIALOG);
-
-        if (d.open() != Window.OK || d.getResult().length != 1) {
-			return;
-		}
-
-        AboutInfo feature = (AboutInfo) d.getResult()[0];
-
-        /**
-         * Open the tips and trick help topic
-         */
-        if (feature != null) {
-            final String href = feature.getTipsAndTricksHref();
-            if (href != null) {
-                BusyIndicator.showWhile(shell.getDisplay(), new Runnable() {
-                    public void run() {
-                        workbenchWindow.getWorkbench().getHelpSystem()
-								.displayHelpResource(href);
-                    }
-                });
-            } else {
-                IStatus status = new Status(
-                        IStatus.ERROR,
-                        IDEWorkbenchPlugin.IDE_WORKBENCH,
-                        1,
-                        IDEWorkbenchMessages.TipsAndTricksErrorDialog_noHref, null);
-                ErrorDialog.openError(shell, IDEWorkbenchMessages.TipsAndTricksErrorDialog_title,
-                        IDEWorkbenchMessages.TipsAndTricksErrorDialog_noHref,
-                        status);
-            }
-        } else {
-            IStatus status = new Status(IStatus.ERROR,
-                    IDEWorkbenchPlugin.IDE_WORKBENCH, 1, IDEWorkbenchMessages.TipsAndTricksErrorDialog_noHref, null);
-            ErrorDialog.openError(shell, IDEWorkbenchMessages.TipsAndTricksErrorDialog_title,
-                    IDEWorkbenchMessages.TipsAndTricksErrorDialog_noFeatures, 
-                    status);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ActionFactory.IWorkbenchAction.
-     */
-    public void dispose() {
-        if (workbenchWindow == null) {
-            // action has already been disposed
-            return;
-        }
-        workbenchWindow.getPartService().removePartListener(this);
-        workbenchWindow = null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/WorkbenchActionBuilder.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/WorkbenchActionBuilder.java
deleted file mode 100644
index 837c33c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/WorkbenchActionBuilder.java
+++ /dev/null
@@ -1,1667 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-
-import org.eclipse.core.resources.IProject;
-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.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-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.ICoolBarManager;
-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.internal.provisional.action.IToolBarContributionItem;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IPageListener;
-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.actions.BuildAction;
-import org.eclipse.ui.actions.ContributionItemFactory;
-import org.eclipse.ui.actions.NewWizardMenu;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.ide.IIDEActionConstants;
-import org.eclipse.ui.internal.IPreferenceConstants;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.ide.actions.BuildSetMenu;
-import org.eclipse.ui.internal.ide.actions.BuildUtilities;
-import org.eclipse.ui.internal.ide.actions.QuickMenuAction;
-import org.eclipse.ui.internal.ide.actions.RetargetActionWithDefault;
-import org.eclipse.ui.internal.provisional.application.IActionBarConfigurer2;
-import org.eclipse.ui.internal.util.StatusLineContributionItem;
-
-/**
- * Adds actions to a workbench window.
- */
-public final class WorkbenchActionBuilder extends ActionBarAdvisor {
-    private final IWorkbenchWindow window;
-
-    // generic actions
-    private IWorkbenchAction closeAction;
-
-    private IWorkbenchAction closeAllAction;
-    
-    private IWorkbenchAction closeOthersAction;
-
-    private IWorkbenchAction closeAllSavedAction;
-
-    private IWorkbenchAction saveAction;
-
-    private IWorkbenchAction saveAllAction;
-
-    private IWorkbenchAction newWindowAction;
-    
-    private IWorkbenchAction newEditorAction;
-
-    private IWorkbenchAction helpContentsAction;
-
-    private IWorkbenchAction helpSearchAction;
-	
-    private IWorkbenchAction dynamicHelpAction;
-    
-    private IWorkbenchAction aboutAction;
-
-    private IWorkbenchAction openPreferencesAction;
-
-    private IWorkbenchAction saveAsAction;
-
-    private IWorkbenchAction hideShowEditorAction;
-
-    private IWorkbenchAction savePerspectiveAction;
-
-    private IWorkbenchAction resetPerspectiveAction;
-
-    private IWorkbenchAction editActionSetAction;
-
-    private IWorkbenchAction closePerspAction;
-
-    private IWorkbenchAction lockToolBarAction;
-
-    private IWorkbenchAction closeAllPerspsAction;
-
-    private IWorkbenchAction showViewMenuAction;
-
-    private IWorkbenchAction showPartPaneMenuAction;
-
-    private IWorkbenchAction nextPartAction;
-
-    private IWorkbenchAction prevPartAction;
-
-    private IWorkbenchAction nextEditorAction;
-
-    private IWorkbenchAction prevEditorAction;
-
-    private IWorkbenchAction nextPerspectiveAction;
-
-    private IWorkbenchAction prevPerspectiveAction;
-
-    private IWorkbenchAction activateEditorAction;
-
-    private IWorkbenchAction maximizePartAction;
-    
-    private IWorkbenchAction minimizePartAction;
-
-    private IWorkbenchAction switchToEditorAction;
-
-    private IWorkbenchAction quickAccessAction;
-
-    private IWorkbenchAction backwardHistoryAction;
-
-    private IWorkbenchAction forwardHistoryAction;
-
-    // generic retarget actions
-    private IWorkbenchAction undoAction;
-
-    private IWorkbenchAction redoAction;
-
-    private IWorkbenchAction cutAction;
-
-    private IWorkbenchAction copyAction;
-
-    private IWorkbenchAction pasteAction;
-
-    private IWorkbenchAction deleteAction;
-
-    private IWorkbenchAction selectAllAction;
-
-    private IWorkbenchAction findAction;
-
-    private IWorkbenchAction printAction;
-
-    private IWorkbenchAction revertAction;
-
-    private IWorkbenchAction refreshAction;
-
-    private IWorkbenchAction propertiesAction;
-
-    private IWorkbenchAction quitAction;
-
-    private IWorkbenchAction moveAction;
-
-    private IWorkbenchAction renameAction;
-
-    private IWorkbenchAction goIntoAction;
-
-    private IWorkbenchAction backAction;
-
-    private IWorkbenchAction forwardAction;
-
-    private IWorkbenchAction upAction;
-
-    private IWorkbenchAction nextAction;
-
-    private IWorkbenchAction previousAction;
-
-    // IDE-specific actions
-    private IWorkbenchAction openWorkspaceAction;
-
-    private IWorkbenchAction projectPropertyDialogAction;
-
-    private IWorkbenchAction newWizardAction;
-
-    private IWorkbenchAction newWizardDropDownAction;
-
-    private IWorkbenchAction importResourcesAction;
-    
-    private IWorkbenchAction exportResourcesAction;
-
-    IWorkbenchAction buildAllAction; // Incremental workspace build
-
-    private IWorkbenchAction cleanAction;
-
-    private IWorkbenchAction toggleAutoBuildAction;
-
-    MenuManager buildWorkingSetMenu;
-
-    private IWorkbenchAction quickStartAction;
-
-    private IWorkbenchAction tipsAndTricksAction;
-
-    private QuickMenuAction showInQuickMenu;
-
-    private QuickMenuAction newQuickMenu;
-
-    private IWorkbenchAction introAction;
-
-    // IDE-specific retarget actions
-    private IWorkbenchAction addBookmarkAction;
-
-    private IWorkbenchAction addTaskAction;
-
-    IWorkbenchAction buildProjectAction;
-
-    private IWorkbenchAction openProjectAction;
-
-    private IWorkbenchAction closeProjectAction;
-    
-    private IWorkbenchAction toggleCoolbarAction;
-
-    // contribution items
-    // @issue should obtain from ContributionItemFactory
-    private NewWizardMenu newWizardMenu;
-
-    private IContributionItem pinEditorContributionItem;
-
-//    private IContributionItem searchComboItem;
-    
-    // @issue class is workbench internal
-    private StatusLineContributionItem statusLineItem;
-
-    private Preferences.IPropertyChangeListener prefListener;
-
-    // listener for the "close editors automatically"
-    // preference change
-    private IPropertyChangeListener propPrefListener;
-
-    private IPageListener pageListener;
-
-    private IResourceChangeListener resourceListener;
-    
-    /**
-     * Indicates if the action builder has been disposed
-     */
-    private boolean isDisposed = false;
-    
-    /**
-     * Constructs a new action builder which contributes actions
-     * to the given window.
-     * 
-     * @param configurer the action bar configurer for the window
-     */
-    public WorkbenchActionBuilder(IActionBarConfigurer configurer) {
-        super(configurer);
-        window = configurer.getWindowConfigurer().getWindow();
-    }
-
-    /**
-     * Returns the window to which this action builder is contributing.
-     */
-    private IWorkbenchWindow getWindow() {
-        return window;
-    }
-
-    /**
-     * Hooks listeners on the preference store and the window's page, perspective and selection services.
-     */
-    private void hookListeners() {
-
-        pageListener = new IPageListener() {
-            public void pageActivated(IWorkbenchPage page) {
-                // do nothing
-            }
-
-            public void pageClosed(IWorkbenchPage page) {
-                // do nothing
-            }
-
-            public void pageOpened(IWorkbenchPage page) {
-                // set default build handler -- can't be done until the shell is available
-                IAction buildHandler = new BuildAction(page.getWorkbenchWindow().getShell(), IncrementalProjectBuilder.INCREMENTAL_BUILD);
-            	((RetargetActionWithDefault)buildProjectAction).setDefaultHandler(buildHandler);
-            }
-        };
-        getWindow().addPageListener(pageListener);
-
-        prefListener = new Preferences.IPropertyChangeListener() {
-            public void propertyChange(Preferences.PropertyChangeEvent event) {
-                if (event.getProperty().equals(
-                        ResourcesPlugin.PREF_AUTO_BUILDING)) {
-                   	updateBuildActions(false);
-                }
-            }
-        };
-        ResourcesPlugin.getPlugin().getPluginPreferences()
-                .addPropertyChangeListener(prefListener);
-
-        // listener for the "close editors automatically"
-        // preference change
-        propPrefListener = new IPropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent event) {
-                if (event.getProperty().equals(
-                        IPreferenceConstants.REUSE_EDITORS_BOOLEAN)) {
-                    if (window.getShell() != null
-                            && !window.getShell().isDisposed()) {
-                        // this property change notification could be from a non-ui thread
-                        window.getShell().getDisplay().syncExec(new Runnable() {
-                            public void run() {
-                                updatePinActionToolbar();
-                            }
-                        });
-                    }
-                }
-            }
-        };
-        /*
-         * In order to ensure that the pin action toolbar sets its size 
-         * correctly, the pin action should set its visiblity before we call updatePinActionToolbar().
-         * 
-         * In other words we always want the PinActionContributionItem to be notified before the 
-         * WorkbenchActionBuilder.
-         */
-        WorkbenchPlugin.getDefault().getPreferenceStore()
-                .addPropertyChangeListener(propPrefListener);
-        //listen for project description changes, which can affect enablement of build actions
-        resourceListener = new IResourceChangeListener() {
-			public void resourceChanged(IResourceChangeEvent event) {
-				IResourceDelta delta = event.getDelta();
-				if (delta == null) {
-					return;
-				}
-				IResourceDelta[] projectDeltas = delta.getAffectedChildren();
-				for (int i = 0; i < projectDeltas.length; i++) {
-					int kind = projectDeltas[i].getKind();
-					//affected by projects being opened/closed or description changes
-					boolean changed = (projectDeltas[i].getFlags() & (IResourceDelta.DESCRIPTION | IResourceDelta.OPEN)) != 0;
-					if (kind != IResourceDelta.CHANGED || changed) {
-						updateBuildActions(false);
-						return;
-					}
-				}
-			}
-		};
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceListener, IResourceChangeEvent.POST_CHANGE);
-    }
-
-    public void fillActionBars(int flags) {
-        super.fillActionBars(flags);
-        if ((flags & FILL_PROXY) == 0) {
-            updateBuildActions(true);
-            hookListeners();
-        }
-    }
-
-    /**
-     * Fills the coolbar with the workbench actions.
-     */
-    protected void fillCoolBar(ICoolBarManager coolBar) {
-
-    	IActionBarConfigurer2 actionBarConfigurer = (IActionBarConfigurer2) getActionBarConfigurer();
-        { // Set up the context Menu
-            IMenuManager popUpMenu = new MenuManager();
-            popUpMenu.add(new ActionContributionItem(lockToolBarAction));
-            popUpMenu.add(new ActionContributionItem(editActionSetAction));
-            popUpMenu.add(new ActionContributionItem(toggleCoolbarAction));
-            coolBar.setContextMenuManager(popUpMenu);
-        }
-        coolBar.add(new GroupMarker(IIDEActionConstants.GROUP_FILE));
-        { // File Group
-            IToolBarManager fileToolBar = actionBarConfigurer.createToolBarManager();
-            fileToolBar.add(new Separator(IWorkbenchActionConstants.NEW_GROUP));
-            fileToolBar.add(newWizardDropDownAction);
-            fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.NEW_EXT));
-            fileToolBar.add(new GroupMarker(
-                    IWorkbenchActionConstants.SAVE_GROUP));
-            fileToolBar.add(saveAction);
-            fileToolBar
-                    .add(new GroupMarker(IWorkbenchActionConstants.SAVE_EXT));
-            fileToolBar.add(printAction);
-            fileToolBar
-                    .add(new GroupMarker(IWorkbenchActionConstants.PRINT_EXT));
-
-            fileToolBar
-                    .add(new Separator(IWorkbenchActionConstants.BUILD_GROUP));
-            fileToolBar
-                    .add(new GroupMarker(IWorkbenchActionConstants.BUILD_EXT));
-            fileToolBar.add(new Separator(
-                    IWorkbenchActionConstants.MB_ADDITIONS));
-
-            // Add to the cool bar manager
-            coolBar.add(actionBarConfigurer.createToolBarContributionItem(fileToolBar,
-                    IWorkbenchActionConstants.TOOLBAR_FILE));
-        }
-
-        coolBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-
-        coolBar.add(new GroupMarker(IIDEActionConstants.GROUP_NAV));
-        { // Navigate group
-            IToolBarManager navToolBar = actionBarConfigurer.createToolBarManager();
-            navToolBar.add(new Separator(
-                    IWorkbenchActionConstants.HISTORY_GROUP));
-            navToolBar
-                    .add(new GroupMarker(IWorkbenchActionConstants.GROUP_APP));
-            navToolBar.add(backwardHistoryAction);
-            navToolBar.add(forwardHistoryAction);
-            navToolBar.add(new Separator(IWorkbenchActionConstants.PIN_GROUP));
-            navToolBar.add(pinEditorContributionItem);
-
-            // Add to the cool bar manager
-            coolBar.add(actionBarConfigurer.createToolBarContributionItem(navToolBar,
-                    IWorkbenchActionConstants.TOOLBAR_NAVIGATE));
-        }
-
-        coolBar.add(new GroupMarker(IWorkbenchActionConstants.GROUP_EDITOR));
-     
-        coolBar.add(new GroupMarker(IWorkbenchActionConstants.GROUP_HELP));
-        
-        { // Help group
-            IToolBarManager helpToolBar = actionBarConfigurer.createToolBarManager();
-            helpToolBar.add(new Separator(IWorkbenchActionConstants.GROUP_HELP));
-//            helpToolBar.add(searchComboItem);
-              // Add the group for applications to contribute
-            helpToolBar.add(new GroupMarker(IWorkbenchActionConstants.GROUP_APP));              
-            // Add to the cool bar manager
-            coolBar.add(actionBarConfigurer.createToolBarContributionItem(helpToolBar,
-                    IWorkbenchActionConstants.TOOLBAR_HELP));
-        }        
-
-    }
-
-    /**
-     * Fills the menu bar with the workbench actions.
-     */
-    protected void fillMenuBar(IMenuManager menuBar) {
-        menuBar.add(createFileMenu());
-        menuBar.add(createEditMenu());
-        menuBar.add(createNavigateMenu());
-        menuBar.add(createProjectMenu());
-        menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuBar.add(createWindowMenu());
-        menuBar.add(createHelpMenu());
-    }
-
-    /**
-     * Creates and returns the File menu.
-     */
-    private MenuManager createFileMenu() {
-        MenuManager menu = new MenuManager(IDEWorkbenchMessages.Workbench_file, IWorkbenchActionConstants.M_FILE);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_START));
-        {
-            // create the New submenu, using the same id for it as the New action
-            String newText = IDEWorkbenchMessages.Workbench_new;
-            String newId = ActionFactory.NEW.getId();
-            MenuManager newMenu = new MenuManager(newText, newId) {
-                public String getMenuText() {
-                    String result = super.getMenuText();
-                    if (newQuickMenu == null) {
-						return result;
-					}
-                    String shortCut = newQuickMenu.getShortCutString();
-                    if (shortCut == null) {
-						return result;
-					}
-                    return result + "\t" + shortCut; //$NON-NLS-1$
-                }
-            };
-            newMenu.add(new Separator(newId));
-            this.newWizardMenu = new NewWizardMenu(getWindow());
-            newMenu.add(this.newWizardMenu);
-            newMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-            menu.add(newMenu);
-        }
-
-        menu.add(new GroupMarker(IWorkbenchActionConstants.NEW_EXT));
-        menu.add(new Separator());
-
-        menu.add(closeAction);
-        menu.add(closeAllAction);
-        //		menu.add(closeAllSavedAction);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.CLOSE_EXT));
-        menu.add(new Separator());
-        menu.add(saveAction);
-        menu.add(saveAsAction);
-        menu.add(saveAllAction);
-        menu.add(revertAction);
-        menu.add(new Separator());
-        menu.add(moveAction);
-        menu.add(renameAction);
-        menu.add(refreshAction);
-
-        menu.add(new GroupMarker(IWorkbenchActionConstants.SAVE_EXT));
-        menu.add(new Separator());
-        menu.add(printAction);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.PRINT_EXT));
-        menu.add(new Separator());
-        menu.add(openWorkspaceAction);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.OPEN_EXT));
-        menu.add(new Separator());
-        menu.add(importResourcesAction);
-        menu.add(exportResourcesAction);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.IMPORT_EXT));
-        menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-
-        menu.add(new Separator());
-        menu.add(propertiesAction);
-
-        menu.add(ContributionItemFactory.REOPEN_EDITORS.create(getWindow()));
-        menu.add(new GroupMarker(IWorkbenchActionConstants.MRU));
-        menu.add(new Separator());
-        
-        // If we're on OS X we shouldn't show this command in the File menu. It
-		// should be invisible to the user. However, we should not remove it -
-		// the carbon UI code will do a search through our menu structure
-		// looking for it when Cmd-Q is invoked (or Quit is chosen from the
-		// application menu.
-		ActionContributionItem quitItem = new ActionContributionItem(quitAction);
-		quitItem.setVisible(!"carbon".equals(SWT.getPlatform())); //$NON-NLS-1$
-		menu.add(quitItem);
-		menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_END));
-		return menu;
-    }
-
-    /**
-	 * Creates and returns the Edit menu.
-	 */
-    private MenuManager createEditMenu() {
-        MenuManager menu = new MenuManager(IDEWorkbenchMessages.Workbench_edit, IWorkbenchActionConstants.M_EDIT);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_START));
-
-        menu.add(undoAction);
-        menu.add(redoAction);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.UNDO_EXT));
-        menu.add(new Separator());
-
-        menu.add(cutAction);
-        menu.add(copyAction);
-        menu.add(pasteAction);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.CUT_EXT));
-        menu.add(new Separator());
-
-        menu.add(deleteAction);
-        menu.add(selectAllAction);
-        menu.add(new Separator());
-
-        menu.add(findAction);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.FIND_EXT));
-        menu.add(new Separator());
-
-        menu.add(addBookmarkAction);
-        menu.add(addTaskAction);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.ADD_EXT));
-
-        menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_END));
-        menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-        return menu;
-    }
-
-    /**
-     * Creates and returns the Navigate menu.
-     */
-    private MenuManager createNavigateMenu() {
-        MenuManager menu = new MenuManager(
-                IDEWorkbenchMessages.Workbench_navigate, IWorkbenchActionConstants.M_NAVIGATE);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.NAV_START));
-        menu.add(goIntoAction);
-
-        MenuManager goToSubMenu = new MenuManager(IDEWorkbenchMessages.Workbench_goTo, IWorkbenchActionConstants.GO_TO);
-        menu.add(goToSubMenu);
-        goToSubMenu.add(backAction);
-        goToSubMenu.add(forwardAction);
-        goToSubMenu.add(upAction);
-        goToSubMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-
-        menu.add(new Separator(IWorkbenchActionConstants.OPEN_EXT));
-        for (int i = 2; i < 5; ++i) {
-            menu.add(new Separator(IWorkbenchActionConstants.OPEN_EXT + i));
-        }
-        menu.add(new Separator(IWorkbenchActionConstants.SHOW_EXT));
-        {
-
-            MenuManager showInSubMenu = new MenuManager(IDEWorkbenchMessages.Workbench_showIn, "showIn") { //$NON-NLS-1$
-                public String getMenuText() {
-                    String result = super.getMenuText();
-                    if (showInQuickMenu == null) {
-						return null;
-					}
-                    String shortCut = showInQuickMenu.getShortCutString();
-                    if (shortCut == null) {
-						return result;
-					}
-                    return result + "\t" + shortCut; //$NON-NLS-1$
-                }
-            };
-            showInSubMenu.add(ContributionItemFactory.VIEWS_SHOW_IN
-                    .create(getWindow()));
-            menu.add(showInSubMenu);
-        }
-        for (int i = 2; i < 5; ++i) {
-            menu.add(new Separator(IWorkbenchActionConstants.SHOW_EXT + i));
-        }
-        menu.add(new Separator());
-        menu.add(nextAction);
-        menu.add(previousAction);
-        menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-        menu.add(new GroupMarker(IWorkbenchActionConstants.NAV_END));
-
-        //TBD: Location of this actions
-        menu.add(new Separator());
-        menu.add(backwardHistoryAction);
-        menu.add(forwardHistoryAction);
-        return menu;
-    }
-
-    /**
-     * Creates and returns the Project menu.
-     */
-    private MenuManager createProjectMenu() {
-        MenuManager menu = new MenuManager(
-                IDEWorkbenchMessages.Workbench_project, IWorkbenchActionConstants.M_PROJECT);
-        menu.add(new Separator(IWorkbenchActionConstants.PROJ_START));
-
-        menu.add(openProjectAction);
-        menu.add(closeProjectAction);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.OPEN_EXT));
-        menu.add(new Separator());
-        menu.add(buildAllAction);
-        menu.add(buildProjectAction);
-        addWorkingSetBuildActions(menu);
-        menu.add(cleanAction);
-        menu.add(toggleAutoBuildAction);
-        menu.add(new GroupMarker(IWorkbenchActionConstants.BUILD_EXT));
-        menu.add(new Separator());
-
-        menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        menu.add(new GroupMarker(IWorkbenchActionConstants.PROJ_END));
-        menu.add(new Separator());
-        menu.add(projectPropertyDialogAction);
-        return menu;
-    }
-
-    /**
-     * Creates and returns the Window menu.
-     */
-    private MenuManager createWindowMenu() {
-        MenuManager menu = new MenuManager(
-                IDEWorkbenchMessages.Workbench_window, IWorkbenchActionConstants.M_WINDOW);
-
-        menu.add(newWindowAction);
-		menu.add(newEditorAction);
-		menu.add(toggleCoolbarAction);
-        menu.add(new Separator());
-        addPerspectiveActions(menu);
-        menu.add(new Separator());
-        addKeyboardShortcuts(menu);
-        menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-        
-        // See the comment for quit in createFileMenu
-        ActionContributionItem openPreferencesItem = new ActionContributionItem(openPreferencesAction);
-        openPreferencesItem.setVisible(!"carbon".equals(SWT.getPlatform())); //$NON-NLS-1$
-        menu.add(openPreferencesItem);
-
-        menu.add(ContributionItemFactory.OPEN_WINDOWS.create(getWindow()));
-        return menu;
-    }
-
-    /**
-     * Adds the perspective actions to the specified menu.
-     */
-    private void addPerspectiveActions(MenuManager menu) {
-        {
-            String openText = IDEWorkbenchMessages.Workbench_openPerspective;
-            MenuManager changePerspMenuMgr = new MenuManager(openText,
-                    "openPerspective"); //$NON-NLS-1$
-            IContributionItem changePerspMenuItem = ContributionItemFactory.PERSPECTIVES_SHORTLIST
-                    .create(getWindow());
-            changePerspMenuMgr.add(changePerspMenuItem);
-            menu.add(changePerspMenuMgr);
-        }
-        {
-            MenuManager showViewMenuMgr = new MenuManager(IDEWorkbenchMessages.Workbench_showView, "showView"); //$NON-NLS-1$
-            IContributionItem showViewMenu = ContributionItemFactory.VIEWS_SHORTLIST
-                    .create(getWindow());
-            showViewMenuMgr.add(showViewMenu);
-            menu.add(showViewMenuMgr);
-        }
-        menu.add(new Separator());
-        menu.add(editActionSetAction);
-        menu.add(savePerspectiveAction);
-        menu.add(resetPerspectiveAction);
-        menu.add(closePerspAction);
-        menu.add(closeAllPerspsAction);
-    }
-
-    /**
-     * Adds the keyboard navigation submenu to the specified menu.
-     */
-    private void addWorkingSetBuildActions(MenuManager menu) {
-        buildWorkingSetMenu = new MenuManager(IDEWorkbenchMessages.Workbench_buildSet);
-        IContributionItem workingSetBuilds = new BuildSetMenu(window,
-                getActionBarConfigurer());
-        buildWorkingSetMenu.add(workingSetBuilds);
-        menu.add(buildWorkingSetMenu);
-    }
-
-    /**
-     * Adds the keyboard navigation submenu to the specified menu.
-     */
-    private void addKeyboardShortcuts(MenuManager menu) {
-        MenuManager subMenu = new MenuManager(IDEWorkbenchMessages.Workbench_shortcuts, "shortcuts"); //$NON-NLS-1$
-        menu.add(subMenu);
-        subMenu.add(showPartPaneMenuAction);
-        subMenu.add(showViewMenuAction);
-        subMenu.add(quickAccessAction);
-        subMenu.add(new Separator());
-        subMenu.add(maximizePartAction);
-        subMenu.add(minimizePartAction);
-        subMenu.add(new Separator());
-        subMenu.add(activateEditorAction);
-        subMenu.add(nextEditorAction);
-        subMenu.add(prevEditorAction);
-        subMenu.add(switchToEditorAction);
-        subMenu.add(new Separator());
-        subMenu.add(nextPartAction);
-        subMenu.add(prevPartAction);
-        subMenu.add(new Separator());
-        subMenu.add(nextPerspectiveAction);
-        subMenu.add(prevPerspectiveAction);
-    }
-
-    /**
-	 * Creates and returns the Help menu.
-	 */
-	private MenuManager createHelpMenu() {
-		MenuManager menu = new MenuManager(IDEWorkbenchMessages.Workbench_help, IWorkbenchActionConstants.M_HELP);
-		addSeparatorOrGroupMarker(menu, "group.intro"); //$NON-NLS-1$
-		// See if a welcome or intro page is specified
-		if (introAction != null) {
-			menu.add(introAction);
-		} else if (quickStartAction != null) {
-			menu.add(quickStartAction);
-		}
-		menu.add(new GroupMarker("group.intro.ext")); //$NON-NLS-1$
-		addSeparatorOrGroupMarker(menu, "group.main"); //$NON-NLS-1$
-		menu.add(helpContentsAction);
-        menu.add(helpSearchAction);
-		menu.add(dynamicHelpAction);
-		addSeparatorOrGroupMarker(menu, "group.assist"); //$NON-NLS-1$
-		// See if a tips and tricks page is specified
-		if (tipsAndTricksAction != null) {
-			menu.add(tipsAndTricksAction);
-		}
-		// HELP_START should really be the first item, but it was after
-		// quickStartAction and tipsAndTricksAction in 2.1.
-		menu.add(new GroupMarker(IWorkbenchActionConstants.HELP_START));
-		menu.add(new GroupMarker("group.main.ext")); //$NON-NLS-1$
-		addSeparatorOrGroupMarker(menu, "group.tutorials"); //$NON-NLS-1$
-		addSeparatorOrGroupMarker(menu, "group.tools"); //$NON-NLS-1$
-		addSeparatorOrGroupMarker(menu, "group.updates"); //$NON-NLS-1$
-		menu.add(new GroupMarker(IWorkbenchActionConstants.HELP_END));
-		addSeparatorOrGroupMarker(menu, IWorkbenchActionConstants.MB_ADDITIONS);
-		// about should always be at the bottom
-		menu.add(new Separator("group.about")); //$NON-NLS-1$
-		
-		ActionContributionItem aboutItem = new ActionContributionItem(aboutAction);
-		aboutItem.setVisible(!"carbon".equals(SWT.getPlatform())); //$NON-NLS-1$
-        menu.add(aboutItem);
-		menu.add(new GroupMarker("group.about.ext")); //$NON-NLS-1$
-
-        /*		
-         final IMutableContextActivationService contextActivationServiceA = ContextActivationServiceFactory.getMutableContextActivationService();
-         contextActivationServiceA.setActiveContextIds(new HashSet(Collections.singletonList("A")));
-
-         final IMutableContextActivationService contextActivationServiceB = ContextActivationServiceFactory.getMutableContextActivationService();
-         contextActivationServiceB.setActiveContextIds(new HashSet(Collections.singletonList("B")));				
-         
-         menu.add(new Separator());
-         
-         menu.add(new Action("Add context A to the workbench") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchContextSupport workbenchContextSupport = (IWorkbenchContextSupport) workbench.getContextSupport();
-         workbenchContextSupport.getCompoundContextActivationService().addContextActivationService(contextActivationServiceA);
-         }
-         });
-
-         menu.add(new Action("Remove context A from the workbench") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchContextSupport workbenchContextSupport = (IWorkbenchContextSupport) workbench.getContextSupport();
-         workbenchContextSupport.getCompoundContextActivationService().removeContextActivationService(contextActivationServiceA);
-         }
-         });
-         
-         menu.add(new Action("Add context B to the workbench") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchContextSupport workbenchContextSupport = (IWorkbenchContextSupport) workbench.getContextSupport();
-         workbenchContextSupport.getCompoundContextActivationService().addContextActivationService(contextActivationServiceB);
-         }
-         });
-
-         menu.add(new Action("Remove context B from the workbench") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchContextSupport workbenchContextSupport = (IWorkbenchContextSupport) workbench.getContextSupport();
-         workbenchContextSupport.getCompoundContextActivationService().removeContextActivationService(contextActivationServiceB);
-         }
-         });
-         
-         menu.add(new Separator());
-         
-         menu.add(new Action("Add context A to the workbench page") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-
-         if (workbenchWindow != null) {
-         IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-         
-         if (workbenchPage != null) {					
-         IWorkbenchPageContextSupport workbenchPageContextSupport = (IWorkbenchPageContextSupport) workbenchPage.getContextSupport();
-         workbenchPageContextSupport.getCompoundContextActivationService().addContextActivationService(contextActivationServiceA);
-         }
-         }
-         }
-         });
-         
-         menu.add(new Action("Remove context A from the workbench page") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-
-         if (workbenchWindow != null) {
-         IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-         
-         if (workbenchPage != null) {					
-         IWorkbenchPageContextSupport workbenchPageContextSupport = (IWorkbenchPageContextSupport) workbenchPage.getContextSupport();
-         workbenchPageContextSupport.getCompoundContextActivationService().removeContextActivationService(contextActivationServiceA);
-         }
-         }
-         }
-         });		
-         
-         menu.add(new Action("Add context B to the workbench page") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-
-         if (workbenchWindow != null) {
-         IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-         
-         if (workbenchPage != null) {					
-         IWorkbenchPageContextSupport workbenchPageContextSupport = (IWorkbenchPageContextSupport) workbenchPage.getContextSupport();
-         workbenchPageContextSupport.getCompoundContextActivationService().addContextActivationService(contextActivationServiceB);
-         }
-         }
-         }
-         });
-
-         menu.add(new Action("Remove context B from the workbench page") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-
-         if (workbenchWindow != null) {
-         IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-         
-         if (workbenchPage != null) {					
-         IWorkbenchPageContextSupport workbenchPageContextSupport = (IWorkbenchPageContextSupport) workbenchPage.getContextSupport();
-         workbenchPageContextSupport.getCompoundContextActivationService().removeContextActivationService(contextActivationServiceB);
-         }
-         }
-         }
-         });
-         
-         IHandler handlerA = new IHandler() {
-         public void execute() {
-         }
-         
-         public void execute(Event event) {
-         }
-         
-         public boolean isEnabled() {
-         return false;
-         }
-         };
-         
-         IHandler handlerB = new IHandler() {
-         public void execute() {
-         }
-         
-         public void execute(Event event) {
-         }
-         
-         public boolean isEnabled() {
-         return false;
-         }
-         };		
-         
-         final IMutableCommandHandlerService commandHandlerServiceA = CommandHandlerServiceFactory.getMutableCommandHandlerService();
-         commandHandlerServiceA.setHandlersByCommandId(new HashMap(Collections.singletonMap("command", handlerA)));
-
-         final IMutableCommandHandlerService commandHandlerServiceB = CommandHandlerServiceFactory.getMutableCommandHandlerService();
-         commandHandlerServiceB.setHandlersByCommandId(new HashMap(Collections.singletonMap("command", handlerB)));				
-         
-         menu.add(new Separator());
-         
-         menu.add(new Action("Add handler A to the workbench") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchCommandSupport workbenchCommandSupport = (IWorkbenchCommandSupport) workbench.getCommandSupport();
-         workbenchCommandSupport.getCompoundCommandHandlerService().addCommandHandlerService(commandHandlerServiceA);
-         }
-         });
-
-         menu.add(new Action("Remove handler A from the workbench") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchCommandSupport workbenchCommandSupport = (IWorkbenchCommandSupport) workbench.getCommandSupport();
-         workbenchCommandSupport.getCompoundCommandHandlerService().removeCommandHandlerService(commandHandlerServiceA);
-         }
-         });
-         
-         menu.add(new Action("Add handler B to the workbench") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchCommandSupport workbenchCommandSupport = (IWorkbenchCommandSupport) workbench.getCommandSupport();
-         workbenchCommandSupport.getCompoundCommandHandlerService().addCommandHandlerService(commandHandlerServiceB);
-         }
-         });
-
-         menu.add(new Action("Remove handler B from the workbench") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchCommandSupport workbenchCommandSupport = (IWorkbenchCommandSupport) workbench.getCommandSupport();
-         workbenchCommandSupport.getCompoundCommandHandlerService().removeCommandHandlerService(commandHandlerServiceB);
-         }
-         });
-
-         menu.add(new Separator());
-         
-         menu.add(new Action("Add handler A to the workbench page") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-
-         if (workbenchWindow != null) {
-         IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-         
-         if (workbenchPage != null) {					
-         IWorkbenchPageCommandSupport workbenchPageCommandSupport = (IWorkbenchPageCommandSupport) workbenchPage.getCommandSupport();
-         workbenchPageCommandSupport.getCompoundCommandHandlerService().addCommandHandlerService(commandHandlerServiceA);
-         }
-         }
-         }
-         });
-
-         menu.add(new Action("Remove handler A from the workbench page") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-
-         if (workbenchWindow != null) {
-         IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-         
-         if (workbenchPage != null) {					
-         IWorkbenchPageCommandSupport workbenchPageCommandSupport = (IWorkbenchPageCommandSupport) workbenchPage.getCommandSupport();
-         workbenchPageCommandSupport.getCompoundCommandHandlerService().removeCommandHandlerService(commandHandlerServiceA);
-         }
-         }
-         }
-         });
-         
-         menu.add(new Action("Add handler B to the workbench page") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-
-         if (workbenchWindow != null) {
-         IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-         
-         if (workbenchPage != null) {					
-         IWorkbenchPageCommandSupport workbenchPageCommandSupport = (IWorkbenchPageCommandSupport) workbenchPage.getCommandSupport();
-         workbenchPageCommandSupport.getCompoundCommandHandlerService().addCommandHandlerService(commandHandlerServiceB);
-         }
-         }
-         }
-         });
-
-         menu.add(new Action("Remove handler B from the workbench page") {
-         public void run() {
-         IWorkbench workbench = PlatformUI.getWorkbench();
-         IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-
-         if (workbenchWindow != null) {
-         IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-         
-         if (workbenchPage != null) {					
-         IWorkbenchPageCommandSupport workbenchPageCommandSupport = (IWorkbenchPageCommandSupport) workbenchPage.getCommandSupport();
-         workbenchPageCommandSupport.getCompoundCommandHandlerService().removeCommandHandlerService(commandHandlerServiceB);
-         }
-         }
-         }
-         });
-         */
-
-        return menu;
-    }
-
-    /**
-	 * Adds a <code>GroupMarker</code> or <code>Separator</code> to a menu.
-	 * The test for whether a separator should be added is done by checking for
-	 * the existence of a preference matching the string
-	 * useSeparator.MENUID.GROUPID that is set to <code>true</code>.
-	 * 
-	 * @param menu
-	 *            the menu to add to
-	 * @param groupId
-	 *            the group id for the added separator or group marker
-	 */
-	private void addSeparatorOrGroupMarker(MenuManager menu, String groupId) {
-		String prefId = "useSeparator." + menu.getId() + "." + groupId; //$NON-NLS-1$ //$NON-NLS-2$
-		boolean addExtraSeparators = IDEWorkbenchPlugin.getDefault()
-				.getPreferenceStore().getBoolean(prefId);
-		if (addExtraSeparators) {
-			menu.add(new Separator(groupId));
-		} else {
-			menu.add(new GroupMarker(groupId));
-		}
-	}
-    
-    /**
-     * Disposes any resources and unhooks any listeners that are no longer needed.
-     * Called when the window is closed.
-     */
-    public void dispose() {
-        if (isDisposed) {
-			return;
-		}
-    	isDisposed = true;
-        getActionBarConfigurer().getStatusLineManager().remove(statusLineItem);
-        if (pageListener != null) {
-            window.removePageListener(pageListener);
-            pageListener = null;
-        }
-        if (prefListener != null) {
-            ResourcesPlugin.getPlugin().getPluginPreferences()
-                    .removePropertyChangeListener(prefListener);
-            prefListener = null;
-        }
-        if (propPrefListener != null) {
-            WorkbenchPlugin.getDefault().getPreferenceStore()
-                    .removePropertyChangeListener(propPrefListener);
-            propPrefListener = null;
-        }
-        if (resourceListener != null) {
-            ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceListener);
-            resourceListener = null;
-        }
-
-        pinEditorContributionItem.dispose();
-        showInQuickMenu.dispose();
-        newQuickMenu.dispose();
-//        searchComboItem.dispose();
-        
-        // null out actions to make leak debugging easier
-        closeAction = null;
-        closeAllAction = null;
-        closeAllSavedAction = null;
-        closeOthersAction = null;
-        saveAction = null;
-        saveAllAction = null;
-        newWindowAction = null;
-		newEditorAction = null;
-        helpContentsAction = null;
-        helpSearchAction = null;
-		dynamicHelpAction = null;
-        aboutAction = null;
-        openPreferencesAction = null;
-        saveAsAction = null;
-        hideShowEditorAction = null;
-        savePerspectiveAction = null;
-        resetPerspectiveAction = null;
-        editActionSetAction = null;
-        closePerspAction = null;
-        lockToolBarAction = null;
-        closeAllPerspsAction = null;
-        showViewMenuAction = null;
-        showPartPaneMenuAction = null;
-        nextPartAction = null;
-        prevPartAction = null;
-        nextEditorAction = null;
-        prevEditorAction = null;
-        nextPerspectiveAction = null;
-        prevPerspectiveAction = null;
-        activateEditorAction = null;
-        maximizePartAction = null;
-        minimizePartAction = null;
-        switchToEditorAction = null;
-        quickAccessAction = null;
-        backwardHistoryAction = null;
-        forwardHistoryAction = null;
-        undoAction = null;
-        redoAction = null;
-        cutAction = null;
-        copyAction = null;
-        pasteAction = null;
-        deleteAction = null;
-        selectAllAction = null;
-        findAction = null;
-        printAction = null;
-        revertAction = null;
-        refreshAction = null;
-        propertiesAction = null;
-        quitAction = null;
-        moveAction = null;
-        renameAction = null;
-        goIntoAction = null;
-        backAction = null;
-        forwardAction = null;
-        upAction = null;
-        nextAction = null;
-        previousAction = null;
-        openWorkspaceAction = null;
-        projectPropertyDialogAction = null;
-        newWizardAction = null;
-        newWizardDropDownAction = null;
-        importResourcesAction = null;
-        exportResourcesAction = null;
-        buildAllAction = null;
-        cleanAction = null;
-        toggleAutoBuildAction = null;
-        buildWorkingSetMenu = null;
-        quickStartAction = null;
-        tipsAndTricksAction = null;
-        showInQuickMenu = null;
-        newQuickMenu = null;
-        addBookmarkAction = null;
-        addTaskAction = null;
-        buildProjectAction = null;
-        openProjectAction = null;
-        closeProjectAction = null;
-        newWizardMenu = null;
-        pinEditorContributionItem = null;
-//        searchComboItem = null;
-        statusLineItem = null;
-        prefListener = null;
-        propPrefListener = null;
-        introAction = null;
-        toggleCoolbarAction = null;
-        
-        super.dispose();
-    }
-
-    void updateModeLine(final String text) {
-        statusLineItem.setText(text);
-    }
-
-    /**
-     * Returns true if the menu with the given ID should
-     * be considered as an OLE container menu. Container menus
-     * are preserved in OLE menu merging.
-     */
-    public boolean isApplicationMenu(String menuId) {
-        if (menuId.equals(IWorkbenchActionConstants.M_FILE)) {
-			return true;
-		}
-        if (menuId.equals(IWorkbenchActionConstants.M_WINDOW)) {
-			return true;
-		}
-        return false;
-    }
-
-    /**
-     * Return whether or not given id matches the id of the coolitems that
-     * the workbench creates.
-     */
-    public boolean isWorkbenchCoolItemId(String id) {
-        if (IWorkbenchActionConstants.TOOLBAR_FILE.equalsIgnoreCase(id)) {
-			return true;
-		}
-        if (IWorkbenchActionConstants.TOOLBAR_NAVIGATE.equalsIgnoreCase(id)) {
-			return true;
-		}
-        return false;
-    }
-
-    /**
-     * Fills the status line with the workbench contribution items.
-     */
-    protected void fillStatusLine(IStatusLineManager statusLine) {
-        statusLine.add(statusLineItem);
-    }
-
-    /**
-     * Creates actions (and contribution items) for the menu bar, toolbar and status line.
-     */
-    protected void makeActions(final IWorkbenchWindow window) {
-
-        // @issue should obtain from ConfigurationItemFactory
-        statusLineItem = new StatusLineContributionItem("ModeContributionItem"); //$NON-NLS-1$
-
-        newWizardAction = ActionFactory.NEW.create(window);
-        register(newWizardAction);
-
-        newWizardDropDownAction = IDEActionFactory.NEW_WIZARD_DROP_DOWN
-                .create(window);
-        register(newWizardDropDownAction);
-
-        importResourcesAction = ActionFactory.IMPORT.create(window);
-        register(importResourcesAction);
-
-        exportResourcesAction = ActionFactory.EXPORT.create(window);
-        register(exportResourcesAction);
-        
-        buildAllAction = IDEActionFactory.BUILD.create(window);
-        register(buildAllAction);
-
-        cleanAction = IDEActionFactory.BUILD_CLEAN.create(window);
-        register(cleanAction);
-
-        toggleAutoBuildAction = IDEActionFactory.BUILD_AUTOMATICALLY
-                .create(window);
-        register(toggleAutoBuildAction);
-
-        saveAction = ActionFactory.SAVE.create(window);
-        register(saveAction);
-
-        saveAsAction = ActionFactory.SAVE_AS.create(window);
-        register(saveAsAction);
-
-        saveAllAction = ActionFactory.SAVE_ALL.create(window);
-        register(saveAllAction);
-		
-        newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(getWindow());
-        newWindowAction.setText(IDEWorkbenchMessages.Workbench_openNewWindow);
-        register(newWindowAction);
-
-		newEditorAction = ActionFactory.NEW_EDITOR.create(window);
-		register(newEditorAction);
-
-        undoAction = ActionFactory.UNDO.create(window);
-        register(undoAction);
-
-        redoAction = ActionFactory.REDO.create(window);
-        register(redoAction);
-
-        cutAction = ActionFactory.CUT.create(window);
-        register(cutAction);
-
-        copyAction = ActionFactory.COPY.create(window);
-        register(copyAction);
-
-        pasteAction = ActionFactory.PASTE.create(window);
-        register(pasteAction);
-
-        printAction = ActionFactory.PRINT.create(window);
-        register(printAction);
-
-        selectAllAction = ActionFactory.SELECT_ALL.create(window);
-        register(selectAllAction);
-
-        findAction = ActionFactory.FIND.create(window);
-        register(findAction);
-
-        closeAction = ActionFactory.CLOSE.create(window);
-        register(closeAction);
-
-        closeAllAction = ActionFactory.CLOSE_ALL.create(window);
-        register(closeAllAction);
-
-        closeOthersAction = ActionFactory.CLOSE_OTHERS.create(window);
-        register(closeOthersAction);
-
-        closeAllSavedAction = ActionFactory.CLOSE_ALL_SAVED.create(window);
-        register(closeAllSavedAction);
-
-        helpContentsAction = ActionFactory.HELP_CONTENTS.create(window);
-        register(helpContentsAction);
-
-        helpSearchAction = ActionFactory.HELP_SEARCH.create(window);
-        register(helpSearchAction);
-		
-        dynamicHelpAction = ActionFactory.DYNAMIC_HELP.create(window);
-        register(dynamicHelpAction);
-        
-        aboutAction = ActionFactory.ABOUT.create(window);
-        aboutAction
-                .setImageDescriptor(IDEInternalWorkbenchImages
-                        .getImageDescriptor(IDEInternalWorkbenchImages.IMG_OBJS_DEFAULT_PROD));
-        register(aboutAction);
-
-        openPreferencesAction = ActionFactory.PREFERENCES.create(window);
-        register(openPreferencesAction);
-
-        addBookmarkAction = IDEActionFactory.BOOKMARK.create(window);
-        register(addBookmarkAction);
-
-        addTaskAction = IDEActionFactory.ADD_TASK.create(window);
-        register(addTaskAction);
-
-        deleteAction = ActionFactory.DELETE.create(window);
-        register(deleteAction);
-
-        makeFeatureDependentActions(window);
-
-        // Actions for invisible accelerators
-        showViewMenuAction = ActionFactory.SHOW_VIEW_MENU.create(window);
-        register(showViewMenuAction);
-
-        showPartPaneMenuAction = ActionFactory.SHOW_PART_PANE_MENU
-                .create(window);
-        register(showPartPaneMenuAction);
-
-        nextEditorAction = ActionFactory.NEXT_EDITOR.create(window);
-        register(nextEditorAction);
-        prevEditorAction = ActionFactory.PREVIOUS_EDITOR.create(window);
-        register(prevEditorAction);
-        ActionFactory.linkCycleActionPair(nextEditorAction, prevEditorAction);
-
-        nextPartAction = ActionFactory.NEXT_PART.create(window);
-        register(nextPartAction);
-        prevPartAction = ActionFactory.PREVIOUS_PART.create(window);
-        register(prevPartAction);
-        ActionFactory.linkCycleActionPair(nextPartAction, prevPartAction);
-
-        nextPerspectiveAction = ActionFactory.NEXT_PERSPECTIVE
-                .create(window);
-        register(nextPerspectiveAction);
-        prevPerspectiveAction = ActionFactory.PREVIOUS_PERSPECTIVE
-                .create(window);
-        register(prevPerspectiveAction);
-        ActionFactory.linkCycleActionPair(nextPerspectiveAction,
-                prevPerspectiveAction);
-
-        activateEditorAction = ActionFactory.ACTIVATE_EDITOR
-                .create(window);
-        register(activateEditorAction);
-
-        maximizePartAction = ActionFactory.MAXIMIZE.create(window);
-        register(maximizePartAction);
-
-		minimizePartAction = ActionFactory.MINIMIZE.create(window);
-		register(minimizePartAction);
-        
-        switchToEditorAction = ActionFactory.SHOW_OPEN_EDITORS
-                .create(window);
-        register(switchToEditorAction);
-
-        quickAccessAction = ActionFactory.SHOW_QUICK_ACCESS
-        	.create(window);
-
-        hideShowEditorAction = ActionFactory.SHOW_EDITOR.create(window);
-        register(hideShowEditorAction);
-        savePerspectiveAction = ActionFactory.SAVE_PERSPECTIVE
-                .create(window);
-        register(savePerspectiveAction);
-        editActionSetAction = ActionFactory.EDIT_ACTION_SETS
-                .create(window);
-        register(editActionSetAction);
-        lockToolBarAction = ActionFactory.LOCK_TOOL_BAR.create(window);
-        register(lockToolBarAction);
-        resetPerspectiveAction = ActionFactory.RESET_PERSPECTIVE
-                .create(window);
-        register(resetPerspectiveAction);
-        closePerspAction = ActionFactory.CLOSE_PERSPECTIVE.create(window);
-        register(closePerspAction);
-        closeAllPerspsAction = ActionFactory.CLOSE_ALL_PERSPECTIVES
-                .create(window);
-        register(closeAllPerspsAction);
-
-        forwardHistoryAction = ActionFactory.FORWARD_HISTORY
-                .create(window);
-        register(forwardHistoryAction);
-
-        backwardHistoryAction = ActionFactory.BACKWARD_HISTORY
-                .create(window);
-        register(backwardHistoryAction);
-
-        revertAction = ActionFactory.REVERT.create(window);
-        register(revertAction);
-
-        refreshAction = ActionFactory.REFRESH.create(window);
-        register(refreshAction);
-
-        propertiesAction = ActionFactory.PROPERTIES.create(window);
-        register(propertiesAction);
-
-        quitAction = ActionFactory.QUIT.create(window);
-        register(quitAction);
-
-        moveAction = ActionFactory.MOVE.create(window);
-        register(moveAction);
-
-        renameAction = ActionFactory.RENAME.create(window);
-        register(renameAction);
-
-        goIntoAction = ActionFactory.GO_INTO.create(window);
-        register(goIntoAction);
-
-        backAction = ActionFactory.BACK.create(window);
-        register(backAction);
-
-        forwardAction = ActionFactory.FORWARD.create(window);
-        register(forwardAction);
-
-        upAction = ActionFactory.UP.create(window);
-        register(upAction);
-
-        nextAction = ActionFactory.NEXT.create(window);
-        nextAction
-                .setImageDescriptor(IDEInternalWorkbenchImages
-                        .getImageDescriptor(IDEInternalWorkbenchImages.IMG_ETOOL_NEXT_NAV));
-        register(nextAction);
-
-        previousAction = ActionFactory.PREVIOUS.create(window);
-        previousAction
-                .setImageDescriptor(IDEInternalWorkbenchImages
-                        .getImageDescriptor(IDEInternalWorkbenchImages.IMG_ETOOL_PREVIOUS_NAV));
-        register(previousAction);
-
-        buildProjectAction = IDEActionFactory.BUILD_PROJECT.create(window);
-        register(buildProjectAction);
-
-        openProjectAction = IDEActionFactory.OPEN_PROJECT.create(window);
-        register(openProjectAction);
-
-        closeProjectAction = IDEActionFactory.CLOSE_PROJECT.create(window);
-        register(closeProjectAction);
-
-        openWorkspaceAction = IDEActionFactory.OPEN_WORKSPACE
-                .create(window);
-        register(openWorkspaceAction);
-
-        projectPropertyDialogAction = IDEActionFactory.OPEN_PROJECT_PROPERTIES
-                .create(window);
-        register(projectPropertyDialogAction);
-
-        if (window.getWorkbench().getIntroManager().hasIntro()) {
-            introAction = ActionFactory.INTRO.create(window);
-            register(introAction);
-        }
-
-        String showInQuickMenuId = "org.eclipse.ui.navigate.showInQuickMenu"; //$NON-NLS-1$
-        showInQuickMenu = new QuickMenuAction(showInQuickMenuId) {
-            protected void fillMenu(IMenuManager menu) {
-                menu.add(ContributionItemFactory.VIEWS_SHOW_IN
-                        .create(window));
-            }
-        };
-        register(showInQuickMenu);
-
-        final String newQuickMenuId = "org.eclipse.ui.file.newQuickMenu"; //$NON-NLS-1$
-        newQuickMenu = new QuickMenuAction(newQuickMenuId) {
-            protected void fillMenu(IMenuManager menu) {
-                menu.add(new NewWizardMenu(window));
-            }
-        };
-        register(newQuickMenu);
-
-        pinEditorContributionItem = ContributionItemFactory.PIN_EDITOR
-                .create(window);
-        
-        toggleCoolbarAction = ActionFactory.TOGGLE_COOLBAR.create(window);
-        register(toggleCoolbarAction);
-        
-//        searchComboItem = ContributionItemFactory.HELP_SEARCH.create(window);
-    }
-
-    /**
-     * Creates the feature-dependent actions for the menu bar.
-     */
-    private void makeFeatureDependentActions(IWorkbenchWindow window) {
-        AboutInfo[] infos = null;
-        
-        IPreferenceStore prefs = IDEWorkbenchPlugin.getDefault().getPreferenceStore();
-
-        // Optimization: avoid obtaining the about infos if the platform state is
-        // unchanged from last time.  See bug 75130 for details.
-        String stateKey = "platformState"; //$NON-NLS-1$
-        String prevState = prefs.getString(stateKey);
-        String currentState = String.valueOf(Platform.getStateStamp());
-        boolean sameState = currentState.equals(prevState);
-        if (!sameState) {
-        	prefs.putValue(stateKey, currentState);
-        }
-        
-        // See if a welcome page is specified.
-        // Optimization: if welcome pages were found on a previous run, then just add the action.
-        String quickStartKey = IDEActionFactory.QUICK_START.getId(); 
-        String showQuickStart = prefs.getString(quickStartKey);
-        if (sameState && "true".equals(showQuickStart)) { //$NON-NLS-1$
-            quickStartAction = IDEActionFactory.QUICK_START.create(window);
-			register(quickStartAction);
-        }
-        else if (sameState && "false".equals(showQuickStart)) { //$NON-NLS-1$
-        	// do nothing
-        }
-        else {
-        	// do the work
-    		infos = IDEWorkbenchPlugin.getDefault().getFeatureInfos();
-        	boolean found = hasWelcomePage(infos);
-            prefs.setValue(quickStartKey, found);
-            if (found) {
-                quickStartAction = IDEActionFactory.QUICK_START.create(window);
-                register(quickStartAction);
-	        }
-        }
-        
-        // See if a tips and tricks page is specified.
-        // Optimization: if tips and tricks were found on a previous run, then just add the action.
-        String tipsAndTricksKey = IDEActionFactory.TIPS_AND_TRICKS.getId();
-        String showTipsAndTricks = prefs.getString(tipsAndTricksKey);
-        if (sameState && "true".equals(showTipsAndTricks)) { //$NON-NLS-1$
-            tipsAndTricksAction = IDEActionFactory.TIPS_AND_TRICKS
-					.create(window);
-			register(tipsAndTricksAction);
-        }
-        else if (sameState && "false".equals(showTipsAndTricks)) { //$NON-NLS-1$
-        	// do nothing
-        }
-        else {
-        	// do the work
-	    	if (infos == null) {
-	    		infos = IDEWorkbenchPlugin.getDefault().getFeatureInfos();
-	    	}
-	    	boolean found = hasTipsAndTricks(infos);
-	    	prefs.setValue(tipsAndTricksKey, found);
-	    	if (found) {
-	            tipsAndTricksAction = IDEActionFactory.TIPS_AND_TRICKS
-						.create(window);
-				register(tipsAndTricksAction);
-		    }
-        }
-    }
-
-    /**
-     * Returns whether any of the given infos have a welcome page.
-     * 
-     * @param infos the infos
-     * @return <code>true</code> if a welcome page was found, <code>false</code> if not
-     */
-    private boolean hasWelcomePage(AboutInfo[] infos) {
-        for (int i = 0; i < infos.length; i++) {
-            if (infos[i].getWelcomePageURL() != null) {
-            	return true;
-            }
-        }
-        return false;
-	}
-
-    /**
-     * Returns whether any of the given infos have tips and tricks.
-     * 
-     * @param infos the infos
-     * @return <code>true</code> if tips and tricks were found, <code>false</code> if not
-     */
-    private boolean hasTipsAndTricks(AboutInfo[] infos) {
-        for (int i = 0; i < infos.length; i++) {
-            if (infos[i].getTipsAndTricksHref() != null) {
-            	return true;
-            }
-        }
-        return false;
-	}
-
-	/**
-	 * Update the build actions on the toolbar and menu bar based on the current
-	 * state of autobuild. This method can be called from any thread.
-	 * 
-	 * @param immediately
-	 *            <code>true</code> to update the actions immediately,
-	 *            <code>false</code> to queue the update to be run in the
-	 *            event loop
-	 */
-    void updateBuildActions(boolean immediately) {
-        // this can be triggered by property or resource change notifications
-        Runnable update = new Runnable() {
-            public void run() {
-                if (isDisposed) {
-					return;
-				}
-		    	IWorkspace workspace = ResourcesPlugin.getWorkspace();
-				IProject[] projects = workspace.getRoot().getProjects();
-		    	boolean enabled = BuildUtilities.isEnabled(projects, IncrementalProjectBuilder.INCREMENTAL_BUILD);
-		        //update menu bar actions in project menu
-		        buildAllAction.setEnabled(enabled);
-		        buildProjectAction.setEnabled(enabled);
-		        toggleAutoBuildAction.setChecked(workspace.isAutoBuilding());
-		        cleanAction.setEnabled(BuildUtilities.isEnabled(projects, IncrementalProjectBuilder.CLEAN_BUILD));
-		
-		        //update the cool bar build button
-		        ICoolBarManager coolBarManager = getActionBarConfigurer()
-		                .getCoolBarManager();
-		        IContributionItem cbItem = coolBarManager
-		                .find(IWorkbenchActionConstants.TOOLBAR_FILE);
-		        if (!(cbItem instanceof IToolBarContributionItem)) {
-		            // This should not happen
-		            IDEWorkbenchPlugin.log("File toolbar contribution item is missing"); //$NON-NLS-1$
-		            return;
-		        }
-		        IToolBarContributionItem toolBarItem = (IToolBarContributionItem) cbItem;
-		        IToolBarManager toolBarManager = toolBarItem.getToolBarManager();
-		        if (toolBarManager == null) {
-		            // error if this happens, file toolbar assumed to always exist
-		            IDEWorkbenchPlugin.log("File toolbar is missing"); //$NON-NLS-1$
-		            return;
-		        }
-		        //add the build button if build actions are enabled, and remove it otherwise
-		        boolean found = toolBarManager.find(buildAllAction.getId()) != null;
-		        if (enabled && !found) {
-		            toolBarManager.appendToGroup(IWorkbenchActionConstants.BUILD_GROUP,
-		                    buildAllAction);
-		            toolBarManager.update(false);
-		            toolBarItem.update(ICoolBarManager.SIZE);
-		        } else if (buildAllAction != null && found && !enabled) {
-		            toolBarManager.remove(buildAllAction.getId());
-		            toolBarManager.update(false);
-		            toolBarItem.update(ICoolBarManager.SIZE);
-		        }
-            }
-        };
-        if (immediately) {
-        	update.run();
-        }
-        else {
-	        // Dispatch the update to be run later in the UI thread.
-	        // This helps to reduce flicker if autobuild is being temporarily disabled programmatically.
-	        Shell shell = window.getShell();
-	        if (shell != null && !shell.isDisposed()) {
-        		shell.getDisplay().asyncExec(update);
-	        }
-        }
-    }
-
-	/**
-     * Update the pin action's tool bar
-     */
-    void updatePinActionToolbar() {
-
-        ICoolBarManager coolBarManager = getActionBarConfigurer()
-                .getCoolBarManager();
-        IContributionItem cbItem = coolBarManager
-                .find(IWorkbenchActionConstants.TOOLBAR_NAVIGATE);
-        if (!(cbItem instanceof IToolBarContributionItem)) {
-            // This should not happen
-            IDEWorkbenchPlugin
-                    .log("Navigation toolbar contribution item is missing"); //$NON-NLS-1$
-            return;
-        }
-        IToolBarContributionItem toolBarItem = (IToolBarContributionItem) cbItem;
-        IToolBarManager toolBarManager = toolBarItem.getToolBarManager();
-        if (toolBarManager == null) {
-            // error if this happens, navigation toolbar assumed to always exist
-            IDEWorkbenchPlugin.log("Navigate toolbar is missing"); //$NON-NLS-1$
-            return;
-        }
-
-        toolBarManager.update(false);
-        toolBarItem.update(ICoolBarManager.SIZE);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildCleanAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildCleanAction.java
deleted file mode 100644
index caf14fc..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildCleanAction.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 - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.actions;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.dialogs.CleanDialog;
-
-/**
- * The clean action replaces the rebuild actions. Clean will discard all built
- * state for all projects in the workspace, and deletes all problem markers.
- * The next time a build is run, projects will have to be built from scratch.
- * Technically this is only necessary if an incremental builder misbehaves.
- * 
- * @since 3.0
- */
-public class BuildCleanAction extends Action implements ActionFactory.IWorkbenchAction {
-	private IWorkbenchWindow window;
-
-	/**
-	 * Creates a new BuildCleanAction
-	 * 
-	 * @param window The window for parenting this action
-	 */
-	public BuildCleanAction(IWorkbenchWindow window) {
-		super(IDEWorkbenchMessages.Workbench_buildClean);
-		setActionDefinitionId("org.eclipse.ui.project.cleanAction"); //$NON-NLS-1$
-		this.window = window;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
-	 */
-	public void dispose() {
-		//nothing to dispose
-	}
-
-	public void run() {
-		IProject[] selected = BuildUtilities.findSelectedProjects(window);
-		new CleanDialog(window, selected).open();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildSetAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildSetAction.java
deleted file mode 100644
index 02d3e6a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildSetAction.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 - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.actions;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.actions.BuildAction;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * This class will perform an incremental build on a working set.
- * 
- * @since 3.0
- */
-public class BuildSetAction extends Action {
-	public static BuildSetAction lastBuilt;
-
-	private IWorkingSet workingSet;
-
-	private IWorkbenchWindow window;
-
-	private IActionBarConfigurer actionBars;
-
-	/**
-	 * Creates a new action that builds the provided working set when run
-	 */
-	public BuildSetAction(IWorkingSet set, IWorkbenchWindow window, IActionBarConfigurer actionBars) {
-		super(set == null ? "" : set.getLabel(), AS_RADIO_BUTTON); //$NON-NLS-1$
-		this.window = window;
-		this.actionBars = actionBars;
-		this.workingSet = set;
-	}
-
-	/**
-	 * Returns the working set that this instance is building
-	 */
-	public IWorkingSet getWorkingSet() {
-		return workingSet;
-	}
-
-	public void run() {
-		//register this action instance as the global handler for the build last action
-		setActionDefinitionId("org.eclipse.ui.project.buildLast"); //$NON-NLS-1$
-		actionBars.registerGlobalAction(this);
-
-		window.getWorkbench().getWorkingSetManager().addRecentWorkingSet(workingSet);
-		IProject[] projects = BuildUtilities.extractProjects(workingSet.getElements());
-		if (projects.length == 0) {
-			MessageDialog.openInformation(window.getShell(), 
-					IDEWorkbenchMessages.BuildSetAction_noBuildTitle, 
-					IDEWorkbenchMessages.BuildSetAction_noProjects);
-			return;
-		}
-		lastBuilt = this;
-		BuildAction build = new BuildAction(window.getShell(), IncrementalProjectBuilder.INCREMENTAL_BUILD);
-		build.selectionChanged(new StructuredSelection(projects));
-		build.run();
-	}
-
-	public void runWithEvent(Event event) {
-		//radio buttons receive an event when they become unselected,
-		//so we must not run the action in this case
-		if (event.widget instanceof MenuItem) {
-			if (!((MenuItem) event.widget).getSelection()) {
-				return;
-			}
-		}
-		run();
-	}
-
-	/* (non-Javadoc)
-	 * For debugging purposes only.
-	 */
-	public String toString() {
-		return "BuildSetAction(" + workingSet.getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildSetMenu.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildSetMenu.java
deleted file mode 100644
index 9f31abe..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildSetMenu.java
+++ /dev/null
@@ -1,158 +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
- * hzhou@actuate.com - Fix for  Bug 71695 - 
- * [WorkingSets]Removed Working Set is still shown under the menu item 
- * when it is the recently used working set
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.actions;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IAction;
-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.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * Sub-menu off project menu for showing MRU list of working set builds.
- * 
- * @since 3.0
- */
-public class BuildSetMenu extends ContributionItem {
-    private IActionBarConfigurer actionBars;
-
-    boolean dirty = true;
-
-    private IMenuListener menuListener = new IMenuListener() {
-        public void menuAboutToShow(IMenuManager manager) {
-            manager.markDirty();
-            dirty = true;
-        }
-    };
-
-    private IAction selectBuildWorkingSetAction;
-
-    private IWorkbenchWindow window;
-
-    /**
-     * Create a new instance of the receiver.
-     * @param window
-     * @param actionBars
-     */
-    public BuildSetMenu(IWorkbenchWindow window, IActionBarConfigurer actionBars) {
-        this.window = window;
-        this.actionBars = actionBars;
-        selectBuildWorkingSetAction = new SelectBuildWorkingSetAction(window,
-                actionBars);
-    }
-
-    /**
-     * Adds a mnemonic accelerator to actions in the MRU list of
-     * recently built working sets.
-     * @param action the action to add
-     * @param index the index to add it at
-     */
-    private void addMnemonic(BuildSetAction action, int index) {
-        StringBuffer label = new StringBuffer();
-        //add the numerical accelerator
-        if (index < 9) {
-            label.append('&');
-            label.append(index);
-            label.append(' ');
-        }
-        label.append(action.getWorkingSet().getLabel());
-        action.setText(label.toString());
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.Menu, int)
-     */
-    public void fill(Menu menu, int index) {
-        if (getParent() instanceof MenuManager) {
-			((MenuManager) getParent()).addMenuListener(menuListener);
-		}
-        if (!dirty) {
-			return;
-		}
-        fillMenu(menu);
-        dirty = false;
-    }
-
-    /**
-     * Fills the menu with Show View actions.
-     * @param menu The menu being filled.
-     */
-    private void fillMenu(Menu menu) {
-        boolean isAutoBuilding = ResourcesPlugin.getWorkspace()
-                .isAutoBuilding();
-
-        //build MRU list of recently built working sets:
-        IWorkingSet[] sets = window.getWorkbench().getWorkingSetManager()
-                .getRecentWorkingSets();
-        BuildSetAction last = BuildSetAction.lastBuilt;
-        IWorkingSet lastSet = null;
-        //add build action for the last working set that was built
-        int accel = 1;
-        if (last != null) {
-			// add it only if it has not been removed
-			boolean found = false;
-			for (int i = 0; i < sets.length; i++) {
-				if (sets[i].equals(last.getWorkingSet())){
-					found = true;
-					break;
-				}
-			}
-			if (found) {
-	            last.setChecked(true);
-	            last.setEnabled(!isAutoBuilding);
-	            last.setActionDefinitionId("org.eclipse.ui.project.buildLast"); //$NON-NLS-1$
-	            addMnemonic(last, accel++);
-	            new ActionContributionItem(last).fill(menu, -1);
-	            lastSet = last.getWorkingSet();
-			} else {
-				BuildSetAction.lastBuilt = null;
-			}
-        }
-        //add build actions for the most recently used working sets
-        for (int i = 0; i < sets.length; i++) {
-            if (lastSet != null && lastSet.equals(sets[i])) {
-				continue;
-			}
-            BuildSetAction action = new BuildSetAction(sets[i], window,
-                    actionBars);
-            addMnemonic(action, accel++);
-            action.setEnabled(!isAutoBuilding);
-            new ActionContributionItem(action).fill(menu, -1);
-        }
-        //add the action to select a different working set
-        if (sets.length > 0) {
-			new Separator().fill(menu, -1);
-		}
-        selectBuildWorkingSetAction.setEnabled(!isAutoBuilding);
-        new ActionContributionItem(selectBuildWorkingSetAction).fill(menu, -1);
-    }
-
-    public boolean isDirty() {
-        return dirty;
-    }
-
-    /**
-     * Overridden to always return true and force dynamic menu building.
-     */
-    public boolean isDynamic() {
-        return true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildUtilities.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildUtilities.java
deleted file mode 100644
index d948eb9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/BuildUtilities.java
+++ /dev/null
@@ -1,186 +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.internal.ide.actions;
-
-import java.util.Collection;
-import java.util.HashSet;
-
-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.IResource;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.BuildAction;
-import org.eclipse.ui.ide.ResourceUtil;
-
-/**
- * This class contains convenience methods used by the various build commands
- * to determine enablement.  These utilities cannot be factored into a common
- * class because some build actions are API and some are not.
- * 
- * @since 3.1
- */
-public class BuildUtilities {
-	/**
-	 * Extracts the selected projects from a selection.
-	 * 
-	 * @param selection The selection to analyze
-	 * @return The selected projects
-	 */
-	public static IProject[] extractProjects(Object[] selection) {
-		HashSet projects = new HashSet();
-		for (int i = 0; i < selection.length; i++) {
-			IResource resource = ResourceUtil.getResource(selection[i]);
-			if (resource != null) {
-				projects.add(resource.getProject());
-			} else {
-				ResourceMapping mapping = ResourceUtil.getResourceMapping(selection[i]);
-				if (mapping != null) {
-					IProject[] theProjects = mapping.getProjects();					
-					for(int j=0; j < theProjects.length; j++) {
-						   projects.add(theProjects[j]);						
-					}
-				}
-			}
-		}
-		return (IProject[]) projects.toArray(new IProject[projects.size()]);
-	}
-
-	/**
-	 * Finds and returns the selected projects in the given window
-	 * 
-	 * @param window The window to find the selection in
-	 * @return The selected projects, or an empty array if no selection could be found.
-	 */
-	public static IProject[] findSelectedProjects(IWorkbenchWindow window) {
-		if (window == null) {
-			return new IProject[0];
-		}
-		ISelection selection = window.getSelectionService().getSelection();
-		IProject[] selected = null;
-		if (selection != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
-			selected = extractProjects(((IStructuredSelection) selection).toArray());
-		} else {
-			//see if we can extract a selected project from the active editor
-			IWorkbenchPart part = window.getPartService().getActivePart();
-			if (part instanceof IEditorPart) {
-				IEditorPart editor = (IEditorPart) part;
-				IFile file = ResourceUtil.getFile(editor.getEditorInput());
-				if (file != null) {
-					selected = new IProject[] {file.getProject()};
-				}
-			}
-		}
-		if (selected == null) {
-			selected = new IProject[0];
-		}
-		return selected;
-	}
-
-	/**
-	 * Returns whether a build command with the given trigger should
-	 * be enabled for the given selection.
-	 * @param projects The projects to use to determine enablement
-	 * @param trigger The build trigger (<code>IncrementalProjectBuilder.*_BUILD</code> constants).
-	 * @return <code>true</code> if the action should be enabled, and
-	 * <code>false</code> otherwise.
-	 */
-	public static boolean isEnabled(IProject[] projects, int trigger) {
-		//incremental build is only enabled if all projects are not autobuilding
-		if (trigger == IncrementalProjectBuilder.INCREMENTAL_BUILD && ResourcesPlugin.getWorkspace().isAutoBuilding()) {
-			if (!matchingTrigger(projects, IncrementalProjectBuilder.AUTO_BUILD, false)) {
-				return false;
-			}
-		}
-		//finally we are building only if there is a builder that accepts the trigger
-		return matchingTrigger(projects, trigger, true);
-	}
-
-	/**
-	 * Returns whether one of the projects has a builder whose trigger setting
-	 * for the given trigger matches the given value.
-	 * 
-	 * @param projects The projects to check
-	 * @param trigger The trigger to look for
-	 * @param value The trigger value to look for
-	 * @return <code>true</code> if one of the projects has a builder whose
-	 * trigger activation matches the provided value, and <code>false</code> otherwise.
-	 */
-	private static boolean matchingTrigger(IProject[] projects, int trigger, boolean value) {
-		for (int i = 0; i < projects.length; i++) {
-			if (!projects[i].isAccessible()) {
-				continue;
-			}
-			try {
-				IProjectDescription description = projects[i].getDescription();
-				ICommand[] buildSpec = description.getBuildSpec();
-				for (int j = 0; j < buildSpec.length; j++) {
-					if (buildSpec[j].isBuilding(trigger) == value) {
-						return true;
-					}
-				}
-			} catch (CoreException e) {
-				//ignore projects that are not available
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Causes all editors to save any modified resources in the provided collection
-	 * of projects depending on the user's preference.
-	 * @param projects The projects in which to save editors, or <code>null</code>
-	 * to save editors in all projects.
-	 */
-	public static void saveEditors(Collection projects) {
-		if (!BuildAction.isSaveAllSet()) {
-			return;
-		}
-		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++) {
-				IWorkbenchPage page = pages[j];
-				if (projects == null) {
-					page.saveAllEditors(false);
-				} else {
-					IEditorPart[] editors = page.getDirtyEditors();
-					for (int k = 0; k < editors.length; k++) {
-						IEditorPart editor = editors[k];
-						IFile inputFile = ResourceUtil.getFile(editor.getEditorInput());
-						if (inputFile != null) {
-							if (projects.contains(inputFile.getProject())) {
-								page.saveEditor(editor, false);
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Doesn't need to be instantiated
-	 */
-	private BuildUtilities() {
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/CloseUnrelatedProjectsAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/CloseUnrelatedProjectsAction.java
deleted file mode 100644
index 299d92a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/CloseUnrelatedProjectsAction.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.internal.ide.actions;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CloseResourceAction;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.misc.DisjointSet;
-
-/**
- * This action closes all projects that are unrelated to the selected projects. A
- * project is unrelated if it is not directly or transitively referenced by one 
- * of the selected projects, and does not directly or transitively reference
- * one of the selected projects.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @see IDEActionFactory#CLOSE_UNRELATED_PROJECTS
- * @since 3.2
- */
-public class CloseUnrelatedProjectsAction extends CloseResourceAction {
-	/**
-	 * The id of this action.
-	 */
-	public static final String ID = PlatformUI.PLUGIN_ID + ".CloseUnrelatedProjectsAction"; //$NON-NLS-1$
-
-	private final List projectsToClose = new ArrayList();
-
-	private boolean selectionDirty = true;
-
-	private List oldSelection = Collections.EMPTY_LIST;
-
-	/**
-	 * Builds the connected component set for the input projects.
-	 * The result is a DisjointSet where all related projects belong
-	 * to the same set.
-	 */
-	static DisjointSet buildConnectedComponents(IProject[] projects) {
-		//initially each vertex is in a set by itself
-		DisjointSet set = new DisjointSet();
-		for (int i = 0; i < projects.length; i++) {
-			set.makeSet(projects[i]);
-		}
-		for (int i = 0; i < projects.length; i++) {
-			try {
-				IProject[] references = projects[i].getReferencedProjects();
-				//each reference represents an edge in the project reference
-				//digraph from projects[i] -> references[j]
-				for (int j = 0; j < references.length; j++) {
-					Object setOne = set.findSet(projects[i]);
-					//note that referenced projects may not exist in the workspace
-					Object setTwo = set.findSet(references[j]);
-					//these two projects are related, so join their sets
-					if (setOne != null && setTwo != null && setOne != setTwo)
-						set.union(setOne, setTwo);
-				}
-			} catch (CoreException e) {
-				//assume inaccessible projects have no references
-			}
-		}
-		return set;
-	}
-
-	/**
-	 * Creates this action.
-	 * 
-	 * @param shell
-	 *            The shell to use for parenting any dialogs created by this
-	 *            action.
-	 */
-	public CloseUnrelatedProjectsAction(Shell shell) {
-		super(shell, IDEWorkbenchMessages.CloseUnrelatedProjectsAction_text);
-		setId(ID);
-		setToolTipText(IDEWorkbenchMessages.CloseUnrelatedProjectsAction_toolTip);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IIDEHelpContextIds.CLOSE_UNRELATED_PROJECTS_ACTION);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionListenerAction#clearCache()
-	 */
-	protected void clearCache() {
-		super.clearCache();
-		oldSelection = Collections.EMPTY_LIST;
-		selectionDirty = true;
-	}
-
-	/**
-	 * Computes the related projects of the selection.
-	 */
-	private void computeRelated(List selection) {
-		//build the connected component set for all projects in the workspace
-		DisjointSet set = buildConnectedComponents(ResourcesPlugin.getWorkspace().getRoot().getProjects());
-		//remove the connected components that the selected projects are in
-		for (Iterator it = selection.iterator(); it.hasNext();)
-			set.removeSet(it.next());
-		//the remainder of the projects in the disjoint set are unrelated to the selection
-		projectsToClose.clear();
-		set.toList(projectsToClose);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionListenerAction#getSelectedResources()
-	 */
-	protected List getSelectedResources() {
-		if (selectionDirty) {
-			List newSelection = super.getSelectedResources();
-			if (!oldSelection.equals(newSelection)) {
-				oldSelection = newSelection;
-				computeRelated(newSelection);
-			}
-			selectionDirty = false;
-		}
-		return projectsToClose;
-	}
-
-	/**
-	 * Handles a resource changed event by updating the enablement
-	 * when projects change.
-	 * <p>
-	 * This method overrides the super-type implementation to update
-	 * the selection when the open state or description of any project changes.
-	 */
-	public void resourceChanged(IResourceChangeEvent event) {
-		// don't bother looking at delta if selection not applicable
-		if (selectionIsOfType(IResource.PROJECT)) {
-			IResourceDelta delta = event.getDelta();
-			if (delta != null) {
-				IResourceDelta[] projDeltas = delta.getAffectedChildren(IResourceDelta.CHANGED);
-				for (int i = 0; i < projDeltas.length; ++i) {
-					IResourceDelta projDelta = projDeltas[i];
-					//changing either the description or the open state can affect enablement
-					if ((projDelta.getFlags() & (IResourceDelta.OPEN | IResourceDelta.DESCRIPTION)) != 0) {
-						selectionChanged(getStructuredSelection());
-						return;
-					}
-				}
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/OpenWorkspaceAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/OpenWorkspaceAction.java
deleted file mode 100644
index 6e32736..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/OpenWorkspaceAction.java
+++ /dev/null
@@ -1,190 +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.ide.actions;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.ide.ChooseWorkspaceData;
-import org.eclipse.ui.internal.ide.ChooseWorkspaceDialog;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * Implements the open workspace action. Opens a dialog prompting for a
- * directory and then restarts the IDE on that workspace.
- * 
- * @since 3.0
- */
-public class OpenWorkspaceAction extends Action implements
-        ActionFactory.IWorkbenchAction {
-
-    private static final String PROP_VM = "eclipse.vm"; //$NON-NLS-1$
-
-    private static final String PROP_VMARGS = "eclipse.vmargs"; //$NON-NLS-1$
-
-    private static final String PROP_COMMANDS = "eclipse.commands"; //$NON-NLS-1$
-
-    private static final String PROP_EXIT_CODE = "eclipse.exitcode"; //$NON-NLS-1$
-
-    private static final String PROP_EXIT_DATA = "eclipse.exitdata"; //$NON-NLS-1$
-
-    private static final String CMD_DATA = "-data"; //$NON-NLS-1$
-
-    private static final String CMD_VMARGS = "-vmargs"; //$NON-NLS-1$
-
-    private static final String NEW_LINE = "\n"; //$NON-NLS-1$
-
-    private IWorkbenchWindow window;
-
-    /**
-     * Set definition for this action and text so that it will be used for
-     * File -&gt; Open Workspace in the argument window.
-     * 
-     * @param window
-     *            the window in which this action should appear
-     */
-    public OpenWorkspaceAction(IWorkbenchWindow window) {
-        super(IDEWorkbenchMessages.OpenWorkspaceAction_text);
-
-        if (window == null) {
-			throw new IllegalArgumentException();
-		}
-
-        // TODO help?
-
-        this.window = window;
-        setToolTipText(IDEWorkbenchMessages.OpenWorkspaceAction_toolTip);
-        setActionDefinitionId("org.eclipse.ui.file.openWorkspace"); //$NON-NLS-1$
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.Action#dispose()
-     */
-    public void run() {
-        String path = promptForWorkspace();
-        if (path == null) {
-			return;
-		}
-
-        String command_line = buildCommandLine(path);
-        if (command_line == null) {
-			return;
-		}
-
-        System.setProperty(PROP_EXIT_CODE, Integer.toString(24));
-        System.setProperty(PROP_EXIT_DATA, command_line);
-        window.getWorkbench().restart();
-    }
-
-    /**
-     * Use the ChooseWorkspaceDialog to get the new workspace from the user.
-     * 
-     * @return a string naming the new workspace and null if cancel was selected
-     */
-    private String promptForWorkspace() {
-        // get the current workspace as the default
-        ChooseWorkspaceData data = new ChooseWorkspaceData(Platform
-                .getInstanceLocation().getURL());
-        ChooseWorkspaceDialog dialog = new ChooseWorkspaceDialog(window
-                .getShell(), data, true, false);
-        dialog.prompt(true);
-
-        // return null if the user changed their mind
-        String selection = data.getSelection();
-        if (selection == null) {
-			return null;
-		}
-
-        // otherwise store the new selection and return the selection
-        data.writePersistedData();
-        return selection;
-    }
-
-    /**
-     * Create and return a string with command line options for eclipse.exe that
-     * will launch a new workbench that is the same as the currently running
-     * one, but using the argument directory as its workspace.
-     * 
-     * @param workspace
-     *            the directory to use as the new workspace
-     * @return a string of command line options or null on error
-     */
-    private String buildCommandLine(String workspace) {
-        String property = System.getProperty(PROP_VM);
-        if (property == null) {
-            MessageDialog
-                    .openError(
-                            window.getShell(),
-                            IDEWorkbenchMessages.OpenWorkspaceAction_errorTitle,
-                            NLS.bind(IDEWorkbenchMessages.OpenWorkspaceAction_errorMessage, PROP_VM));
-            return null;
-        }
-
-        StringBuffer result = new StringBuffer(512);
-        result.append(property);
-        result.append(NEW_LINE);
-
-        // append the vmargs and commands. Assume that these already end in \n
-        String vmargs = System.getProperty(PROP_VMARGS);
-        if (vmargs != null) {
-			result.append(vmargs);
-		}
-
-        // append the rest of the args, replacing or adding -data as required
-        property = System.getProperty(PROP_COMMANDS);
-        if (property == null) {
-            result.append(CMD_DATA);
-            result.append(NEW_LINE);
-            result.append(workspace);
-            result.append(NEW_LINE);
-        } else {
-            // find the index of the arg to replace its value
-            int cmd_data_pos = property.lastIndexOf(CMD_DATA);
-            if (cmd_data_pos != -1) {
-                cmd_data_pos += CMD_DATA.length() + 1;
-                result.append(property.substring(0, cmd_data_pos));
-                result.append(workspace);
-                result.append(property.substring(property.indexOf('\n',
-                        cmd_data_pos)));
-            } else {
-                result.append(CMD_DATA);
-                result.append(NEW_LINE);
-                result.append(workspace);
-                result.append(NEW_LINE);
-                result.append(property);
-            }
-        }
-
-        // put the vmargs back at the very end (the eclipse.commands property
-        // already contains the -vm arg)
-        if (vmargs != null) {
-            result.append(CMD_VMARGS);
-            result.append(NEW_LINE);
-            result.append(vmargs);
-        }
-
-        return result.toString();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.Action#dispose()
-     */
-    public void dispose() {
-        window = null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/ProjectPropertyDialogAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/ProjectPropertyDialogAction.java
deleted file mode 100644
index a34b9b7..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/ProjectPropertyDialogAction.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.ui.internal.ide.actions;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-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.IEditorPart;
-import org.eclipse.ui.INullSelectionListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.PartEventAction;
-import org.eclipse.ui.dialogs.PropertyDialogAction;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-
-/**
- * Implementation for the action Property on the Project menu.
- */
-public class ProjectPropertyDialogAction extends PartEventAction implements
-        INullSelectionListener, ActionFactory.IWorkbenchAction {
-
-    /**
-     * The workbench window; or <code>null</code> if this
-     * action has been <code>dispose</code>d.
-     */
-    private IWorkbenchWindow workbenchWindow;
-
-    /**
-     * Create a new dialog.
-     * 
-     * @param window the window
-     */
-    public ProjectPropertyDialogAction(IWorkbenchWindow window) {
-        super(new String());
-        if (window == null) {
-            throw new IllegalArgumentException();
-        }
-        this.workbenchWindow = window;
-        setText(IDEWorkbenchMessages.Workbench_projectProperties);
-        setToolTipText(IDEWorkbenchMessages.Workbench_projectPropertiesToolTip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                IIDEHelpContextIds.PROJECT_PROPERTY_DIALOG_ACTION);
-        workbenchWindow.getSelectionService().addSelectionListener(this);
-        workbenchWindow.getPartService().addPartListener(this);
-        setActionDefinitionId("org.eclipse.ui.project.properties"); //$NON-NLS-1$
-    }
-
-    /**
-     * Opens the project properties dialog.
-     */
-    public void run() {
-        IProject project = getProject();
-        if (project == null) {
-			return;
-		}
-
-        SelProvider selProvider = new SelProvider();
-        selProvider.projectSelection = new StructuredSelection(project);
-        PropertyDialogAction propAction = new PropertyDialogAction(
-                workbenchWindow.getShell(), selProvider);
-        propAction.run();
-    }
-
-    /**
-     * Update the enablement state when a the selection changes.
-     */
-    public void selectionChanged(IWorkbenchPart part, ISelection sel) {
-        setEnabled(getProject() != null);
-    }
-
-    /**
-     * Update the enablement state when a new part is activated.
-     */
-    public void partActivated(IWorkbenchPart part) {
-        super.partActivated(part);
-        setEnabled(getProject() != null);
-    }
-
-    /**
-     * Returns a project from the selection of the active part.
-     */
-    private IProject getProject() {
-        IWorkbenchPart part = getActivePart();
-        Object selection = null;
-        if (part instanceof IEditorPart) {
-            selection = ((IEditorPart) part).getEditorInput();
-        } else {
-            ISelection sel = workbenchWindow.getSelectionService()
-                    .getSelection();
-            if ((sel != null) && (sel instanceof IStructuredSelection)) {
-				selection = ((IStructuredSelection) sel).getFirstElement();
-			}
-        }
-        if (selection == null) {
-			return null;
-		}
-        if (!(selection instanceof IAdaptable)) {
-			return null;
-		}
-        IResource resource = (IResource) ((IAdaptable) selection)
-                .getAdapter(IResource.class);
-        if (resource == null) {
-			return null;
-		}
-        return resource.getProject();
-    }
-
-    /* (non-javadoc)
-     * Method declared on ActionFactory.IWorkbenchAction
-     */
-    public void dispose() {
-        if (workbenchWindow == null) {
-            // action has already been disposed
-            return;
-        }
-        workbenchWindow.getSelectionService().removeSelectionListener(this);
-        workbenchWindow.getPartService().removePartListener(this);
-        workbenchWindow = null;
-    }
-
-    /*
-     * Helper class to simulate a selection provider
-     */
-    private static final class SelProvider implements ISelectionProvider {
-        protected IStructuredSelection projectSelection = StructuredSelection.EMPTY;
-
-        public void addSelectionChangedListener(
-                ISelectionChangedListener listener) {
-            // do nothing
-        }
-
-        public ISelection getSelection() {
-            return projectSelection;
-        }
-
-        public void removeSelectionChangedListener(
-                ISelectionChangedListener listener) {
-            // do nothing
-        }
-
-        public void setSelection(ISelection selection) {
-            // do nothing
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/QuickMenuAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/QuickMenuAction.java
deleted file mode 100644
index 0ac12ab..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/QuickMenuAction.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.internal.ide.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.QuickMenuCreator;
-import org.eclipse.ui.keys.IBindingService;
-
-/**
- * A quick menu actions provides support to assign short cuts
- * to sub menus.
- * 
- * @since 3.0
- */
-public abstract class QuickMenuAction extends Action {
-
-	private QuickMenuCreator creator = new QuickMenuCreator() {
-		protected void fillMenu(IMenuManager menu) {
-			QuickMenuAction.this.fillMenu(menu);
-		}
-	};
-
-    /**
-     * Creates a new quick menu action with the given command id.
-     * 
-     * @param commandId the command id of the short cut used to open
-     *  the sub menu 
-     */
-    public QuickMenuAction(String commandId) {
-        setId(commandId);
-        setActionDefinitionId(commandId);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public void run() {
-    	creator.createMenu();
-    }
-    
-    /**
-     * Dispose of this menu action.
-     */
-    public void dispose() {
-        if (creator != null) {
-            creator.dispose();
-            creator = null;
-        }
-    }
-
-    /**
-     * Hook to fill a menu manager with the items of the sub menu.
-     * 
-     * @param menu the sub menu to fill
-     */
-    protected abstract void fillMenu(IMenuManager menu);
-    
-    /**
-     * Returns the short cut assigned to the sub menu or <code>null</code> if
-     * no short cut is assigned.
-     * 
-     * @return the short cut as a human readable string or <code>null</code>
-     */
-    public String getShortCutString() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IBindingService bindingService = (IBindingService) workbench
-				.getAdapter(IBindingService.class);
-		final TriggerSequence[] activeBindings = bindingService
-				.getActiveBindingsFor(getActionDefinitionId());
-		if (activeBindings.length > 0) {
-			return activeBindings[0].format();
-		}
-
-		return null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/RetargetActionWithDefault.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/RetargetActionWithDefault.java
deleted file mode 100644
index 2edece1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/RetargetActionWithDefault.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 - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.actions.RetargetAction;
-
-/**
- * A specialization of RetargetAction that allows for specification of a default
- * handler when the active part does not supply one.  Enablement of this
- * action is based on enablement of the handler, or enablement of the default
- * handler if no explicit handler is available.
- * 
- * @since 3.1
- */
-public class RetargetActionWithDefault extends RetargetAction {
-
-	private IAction defaultHandler;
-
-	/**
-	 * Constructs a RetargetActionWithDefault with the given action id and text.
-	 * 
-	 * @param actionID the retargetable action id
-	 * @param text the action's text, or <code>null</code> if there is no text
-	 */
-	public RetargetActionWithDefault(String actionID, String text) {
-		super(actionID, text);
-	}
-
-	/* (non-Javadoc)
-	 * Method declared on RetargetAction.
-	 */
-	protected void setActionHandler(IAction newHandler) {
-		super.setActionHandler(newHandler);
-		// Only set the default handler after clearing the old handler above.
-		// This triggers enablement updating on the default handler which 
-		// might be needed since the active part has changed.
-		if (newHandler == null) {
-			super.setActionHandler(defaultHandler);
-		}
-	}
-
-	/**
-	 * Sets the default handler for this action.
-	 * @param handler An action handler, or <code>null</code>
-	 */
-	public void setDefaultHandler(IAction handler) {
-		this.defaultHandler = handler;
-		if (getActionHandler() == null && handler != null) {
-			super.setActionHandler(handler);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/SelectBuildWorkingSetAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/SelectBuildWorkingSetAction.java
deleted file mode 100644
index cb15a92..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/SelectBuildWorkingSetAction.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 - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.dialogs.IWorkingSetSelectionDialog;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * This action asks the user to select a working set, and then creates
- * and runs a corresponding BuildSetAction.
- * 
- * @since 3.0
- */
-public class SelectBuildWorkingSetAction extends Action implements
-        ActionFactory.IWorkbenchAction {
-    private IWorkbenchWindow window;
-
-    private IActionBarConfigurer actionBars;
-
-    public SelectBuildWorkingSetAction(IWorkbenchWindow window,
-            IActionBarConfigurer actionBars) {
-        super(IDEWorkbenchMessages.SelectWorkingSetAction_text);
-        this.window = window;
-        this.actionBars = actionBars;
-    }
-
-    private IWorkingSet queryForWorkingSet() {
-        IWorkingSetManager manager = window.getWorkbench()
-                .getWorkingSetManager();
-        IWorkingSetSelectionDialog dialog = manager
-                .createWorkingSetSelectionDialog(window.getShell(), false);
-        dialog.open();
-        IWorkingSet[] sets = dialog.getSelection();
-        //check for cancel
-        if (sets == null || sets.length == 0) {
-			return null;
-		}
-        return sets[0];
-    }
-
-    public void run() {
-        IWorkingSet set = queryForWorkingSet();
-        if (set != null) {
-            new BuildSetAction(set, window, actionBars).run();
-        }
-    }
-
-    public void dispose() {
-    }
-
-    public void setActionBars(IActionBarConfigurer actionBars) {
-        this.actionBars = actionBars;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/ToggleAutoBuildAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/ToggleAutoBuildAction.java
deleted file mode 100644
index b150780..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/ToggleAutoBuildAction.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 - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.actions;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * Action for toggling autobuild on or off.
- */
-public class ToggleAutoBuildAction extends Action implements
-        ActionFactory.IWorkbenchAction {
-    private IWorkbenchWindow window;
-
-    /**
-     * Creates a new ToggleAutoBuildAction
-     * @param window The window for parenting dialogs associated with this action
-     */
-    public ToggleAutoBuildAction(IWorkbenchWindow window) {
-        super(IDEWorkbenchMessages.Workbench_buildAutomatically);
-        this.window = window;
-        setChecked(ResourcesPlugin.getWorkspace().isAutoBuilding());
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
-     */
-    public void dispose() {
-        //nothing to dispose
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IAction#run()
-     */
-    public void run() {
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        IWorkspaceDescription description = workspace.getDescription();
-        description.setAutoBuilding(!description.isAutoBuilding());
-        try {
-            workspace.setDescription(description);
-        } catch (CoreException e) {
-            ErrorDialog.openError(window.getShell(), null, null, e.getStatus());
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/commands/ResourcePathConverter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/commands/ResourcePathConverter.java
deleted file mode 100644
index 2e269e6..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/commands/ResourcePathConverter.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.internal.ide.commands;
-
-import org.eclipse.core.commands.AbstractParameterValueConverter;
-import org.eclipse.core.commands.ParameterValueConversionException;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-
-/**
- * A command parameter value converter to convert between IResources and strings
- * encoding the path of a resource.
- * 
- * @since 3.2
- */
-public final class ResourcePathConverter extends
-		AbstractParameterValueConverter {
-
-	public final Object convertToObject(final String parameterValue)
-			throws ParameterValueConversionException {
-		final Path path = new Path(parameterValue);
-		final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace()
-				.getRoot();
-		final IResource resource = workspaceRoot.findMember(path);
-
-		if ((resource == null) || (!resource.exists())) {
-			throw new ParameterValueConversionException(
-					"parameterValue must be the path of an existing resource"); //$NON-NLS-1$
-		}
-
-		return resource;
-	}
-
-	public final String convertToString(final Object parameterValue)
-			throws ParameterValueConversionException {
-		if (!(parameterValue instanceof IResource)) {
-			throw new ParameterValueConversionException(
-					"parameterValue must be an IResource"); //$NON-NLS-1$
-		}
-		final IResource resource = (IResource) parameterValue;
-		return resource.getFullPath().toString();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/BuildOrderPreferencePage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/BuildOrderPreferencePage.java
deleted file mode 100644
index 4f50b92..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/BuildOrderPreferencePage.java
+++ /dev/null
@@ -1,631 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.dialogs;
-
-import java.util.TreeSet;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.preference.FieldEditor;
-import org.eclipse.jface.preference.IntegerFieldEditor;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-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.events.SelectionListener;
-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.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.GlobalBuildAction;
-import org.eclipse.ui.dialogs.ListSelectionDialog;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.util.PrefUtil;
-
-/**	
- * Page used to determine what order projects will be built in 
- * by the workspace.
- */
-public class BuildOrderPreferencePage extends PreferencePage implements
-        IWorkbenchPreferencePage {
-
-    private IWorkbench workbench;
-
-    private Button defaultOrderButton;
-
-    private Label buildLabel;
-
-    private List buildList;
-
-    private Composite buttonComposite;
-
-    private IntegerFieldEditor maxItersField;
-
-    private String[] defaultBuildOrder;
-
-    private String[] customBuildOrder;
-
-    //Boolean to indicate if we have looked it up
-    private boolean notCheckedBuildOrder = true;
-
-    private final String UP_LABEL = IDEWorkbenchMessages.BuildOrderPreference_up;
-
-    private final String DOWN_LABEL = IDEWorkbenchMessages.BuildOrderPreference_down;
-
-    private final String ADD_LABEL = IDEWorkbenchMessages.BuildOrderPreference_add;
-
-    private final String REMOVE_LABEL = IDEWorkbenchMessages.BuildOrderPreference_remove;
-
-    private final String PROJECT_SELECTION_MESSAGE = IDEWorkbenchMessages.BuildOrderPreference_selectOtherProjects;
-
-    private final String DEFAULTS_LABEL = IDEWorkbenchMessages.BuildOrderPreference_useDefaults;
-
-    private final String LIST_LABEL = IDEWorkbenchMessages.BuildOrderPreference_projectBuildOrder;
-
-    private final String NOTE_LABEL = IDEWorkbenchMessages.Preference_note;
-
-    private final String REMOVE_MESSAGE = IDEWorkbenchMessages.BuildOrderPreference_removeNote;
-
-    // whether or not the use defaults option was selected when Apply (or OK) was last pressed
-    // (or when the preference page was opened). This represents the most recent applied state.
-    private boolean defaultOrderInitiallySelected;
-
-    private IPropertyChangeListener validityChangeListener = new IPropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent event) {
-            if (event.getProperty().equals(FieldEditor.IS_VALID)) {
-				updateValidState();
-			}
-        }
-    };
-
-    /**
-     * Add another project to the list at the end.
-     */
-    private void addProject() {
-
-        String[] currentItems = this.buildList.getItems();
-
-        IProject[] allProjects = getWorkspace().getRoot().getProjects();
-
-        ILabelProvider labelProvider = new LabelProvider() {
-            public String getText(Object element) {
-                return (String) element;
-            }
-        };
-
-        SimpleListContentProvider contentsProvider = new SimpleListContentProvider();
-        contentsProvider
-                .setElements(sortedDifference(allProjects, currentItems));
-
-        ListSelectionDialog dialog = new ListSelectionDialog(this.getShell(),
-                this, contentsProvider, labelProvider,
-                PROJECT_SELECTION_MESSAGE);
-
-        if (dialog.open() != Window.OK) {
-			return;
-		}
-
-        Object[] result = dialog.getResult();
-
-        int currentItemsLength = currentItems.length;
-        int resultLength = result.length;
-        String[] newItems = new String[currentItemsLength + resultLength];
-
-        System.arraycopy(currentItems, 0, newItems, 0, currentItemsLength);
-        System
-                .arraycopy(result, 0, newItems, currentItemsLength,
-                        result.length);
-        this.buildList.setItems(newItems);
-    }
-
-    /**
-     * Updates the valid state of the page.
-     */
-    private void updateValidState() {
-        setValid(maxItersField.isValid());
-    }
-
-    /**
-     * Create the list of build paths. If the current build order is empty make the list empty
-     * and disable it.
-     * @param composite - the parent to create the list in
-     * @param enabled - the boolean that indcates if the list will be sensitive initially or not
-     */
-    private void createBuildOrderList(Composite composite, boolean enabled) {
-
-        Font font = composite.getFont();
-
-        this.buildLabel = new Label(composite, SWT.NONE);
-        this.buildLabel.setText(LIST_LABEL);
-        this.buildLabel.setEnabled(enabled);
-        GridData gridData = new GridData();
-        gridData.horizontalAlignment = GridData.FILL;
-        gridData.horizontalSpan = 2;
-        this.buildLabel.setLayoutData(gridData);
-        this.buildLabel.setFont(font);
-
-        this.buildList = new List(composite, SWT.BORDER | SWT.MULTI
-                | SWT.H_SCROLL | SWT.V_SCROLL);
-        this.buildList.setEnabled(enabled);
-        GridData data = new GridData();
-        //Set heightHint with a small value so the list size will be defined by 
-        //the space available in the dialog instead of resizing the dialog to
-        //fit all the items in the list.
-        data.heightHint = buildList.getItemHeight();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        data.grabExcessHorizontalSpace = true;
-        data.grabExcessVerticalSpace = true;
-        this.buildList.setLayoutData(data);
-        this.buildList.setFont(font);
-    }
-
-    /**
-     * Create the widgets that are used to determine the build order.
-     *
-     * @param parent the parent composite
-     * @return the new control
-     */
-    protected Control createContents(Composite parent) {
-
-    	PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-                IIDEHelpContextIds.BUILD_ORDER_PREFERENCE_PAGE);
-
-        Font font = parent.getFont();
-
-        //The main composite
-        Composite composite = new Composite(parent, SWT.NULL);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        composite.setLayout(layout);
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        composite.setLayoutData(data);
-        composite.setFont(font);
-
-        String[] buildOrder = getCurrentBuildOrder();
-        boolean useDefault = (buildOrder == null);
-
-        createDefaultPathButton(composite, useDefault);
-        // List always enabled so user can scroll list.
-        // Only the buttons need to be disabled.
-        createBuildOrderList(composite, true);
-        createListButtons(composite, !useDefault);
-
-        Composite noteComposite = createNoteComposite(font, composite,
-                NOTE_LABEL, REMOVE_MESSAGE);
-        GridData noteData = new GridData();
-        noteData.horizontalSpan = 2;
-        noteComposite.setLayoutData(noteData);
-
-        createSpacer(composite);
-
-        createMaxIterationsField(composite);
-
-        createSpacer(composite);
-
-        if (useDefault) {
-            this.buildList.setItems(getDefaultProjectOrder());
-        } else {
-            this.buildList.setItems(buildOrder);
-        }
-
-        return composite;
-
-    }
-
-    /**
-     * Adds in a spacer.
-     * 
-     * @param composite the parent composite
-     */
-    private void createSpacer(Composite composite) {
-        Label spacer = new Label(composite, SWT.NONE);
-        GridData spacerData = new GridData();
-        spacerData.horizontalSpan = 2;
-        spacer.setLayoutData(spacerData);
-    }
-
-    /**
-     * Create the default path button. Set it to selected based on the current workspace
-     * build path.
-     * @param composite org.eclipse.swt.widgets.Composite
-     * @param selected - the boolean that indicates the buttons initial state
-     */
-    private void createDefaultPathButton(Composite composite, boolean selected) {
-
-        defaultOrderInitiallySelected = selected;
-
-        this.defaultOrderButton = new Button(composite, SWT.LEFT | SWT.CHECK);
-        this.defaultOrderButton.setSelection(selected);
-        this.defaultOrderButton.setText(DEFAULTS_LABEL);
-        SelectionListener listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                defaultsButtonSelected(defaultOrderButton.getSelection());
-            }
-        };
-        this.defaultOrderButton.addSelectionListener(listener);
-
-        GridData gridData = new GridData();
-        gridData.horizontalAlignment = GridData.FILL;
-        gridData.horizontalSpan = 2;
-        this.defaultOrderButton.setLayoutData(gridData);
-        this.defaultOrderButton.setFont(composite.getFont());
-    }
-
-    /**
-     * Create the buttons used to manipulate the list. These Add, Remove and Move Up or Down
-     * the list items.
-     * @param composite the parent of the buttons
-     * @param enableComposite - boolean that indicates if a composite should be enabled
-     */
-    private void createListButtons(Composite composite, boolean enableComposite) {
-
-        Font font = composite.getFont();
-
-        //Create an intermeditate composite to keep the buttons in the same column
-        this.buttonComposite = new Composite(composite, SWT.RIGHT);
-        GridLayout layout = new GridLayout();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        this.buttonComposite.setLayout(layout);
-        GridData gridData = new GridData();
-        gridData.verticalAlignment = GridData.FILL;
-        gridData.horizontalAlignment = GridData.FILL;
-        this.buttonComposite.setLayoutData(gridData);
-        this.buttonComposite.setFont(font);
-
-        Button upButton = new Button(this.buttonComposite, SWT.CENTER
-                | SWT.PUSH);
-        upButton.setText(UP_LABEL);
-        upButton.setEnabled(enableComposite);
-        upButton.setFont(font);
-        setButtonLayoutData(upButton);
-
-        SelectionListener listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                moveSelectionUp();
-            }
-        };
-        upButton.addSelectionListener(listener);
-
-        Button downButton = new Button(this.buttonComposite, SWT.CENTER
-                | SWT.PUSH);
-        downButton.setText(DOWN_LABEL);
-        downButton.setEnabled(enableComposite);
-        listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                moveSelectionDown();
-            }
-        };
-        downButton.addSelectionListener(listener);
-        downButton.setFont(font);
-        setButtonLayoutData(downButton);
-
-        Button addButton = new Button(this.buttonComposite, SWT.CENTER
-                | SWT.PUSH);
-        addButton.setText(ADD_LABEL);
-        listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                addProject();
-            }
-        };
-        addButton.addSelectionListener(listener);
-        addButton.setEnabled(enableComposite);
-        addButton.setFont(font);
-        setButtonLayoutData(addButton);
-
-        Button removeButton = new Button(this.buttonComposite, SWT.CENTER
-                | SWT.PUSH);
-        removeButton.setText(REMOVE_LABEL);
-        listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                removeSelection();
-            }
-        };
-        removeButton.addSelectionListener(listener);
-        removeButton.setEnabled(enableComposite);
-        removeButton.setFont(font);
-        setButtonLayoutData(removeButton);
-
-    }
-
-    /**
-     * Create the field for the maximum number of iterations in the presence
-     * of cycles. 
-     */
-    private void createMaxIterationsField(Composite composite) {
-        Composite maxItersComposite = new Composite(composite, SWT.NONE);
-        GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-        maxItersComposite.setLayoutData(gd);
-        maxItersComposite.setFont(composite.getFont());
-
-        maxItersField = new IntegerFieldEditor(
-                "", IDEWorkbenchMessages.BuildOrderPreference_maxIterationsLabel, maxItersComposite) { //$NON-NLS-1$
-            protected void doLoad() {
-                Text text = getTextControl();
-                if (text != null) {
-                    int value = getWorkspace().getDescription()
-                            .getMaxBuildIterations();
-                    text.setText(Integer.toString(value));
-                }
-            }
-
-            protected void doLoadDefault() {
-                Text text = getTextControl();
-                if (text != null) {
-                    int value = ResourcesPlugin.getPlugin()
-                            .getPluginPreferences().getDefaultInt(
-                                    ResourcesPlugin.PREF_MAX_BUILD_ITERATIONS);
-                    text.setText(Integer.toString(value));
-                }
-                valueChanged();
-            }
-
-            protected void doStore() {
-                // handled specially in performOK()
-                throw new UnsupportedOperationException();
-            }
-        };
-        maxItersField.setValidRange(1, Integer.MAX_VALUE);
-        maxItersField.setPage(this);
-        maxItersField.setPreferenceStore(getPreferenceStore());
-        maxItersField.setPropertyChangeListener(validityChangeListener);
-        maxItersField.load();
-    }
-
-    /**
-     * The defaults button has been selected - update the other widgets as required.
-     * @param selected - whether or not the defaults button got selected
-     */
-    private void defaultsButtonSelected(boolean selected) {
-        if (selected) {
-            setBuildOrderWidgetsEnablement(false);
-            //Cache the current value as the custom order
-            customBuildOrder = buildList.getItems();
-            buildList.setItems(getDefaultProjectOrder());
-
-        } else {
-            setBuildOrderWidgetsEnablement(true);
-            String[] buildOrder = getCurrentBuildOrder();
-            if (buildOrder == null) {
-				buildList.setItems(getDefaultProjectOrder());
-			} else {
-				buildList.setItems(buildOrder);
-			}
-        }
-    }
-
-    /**
-     * Get the project names for the current custom build
-     * order stored in the workspace description.
-     * 
-     * @return java.lang.String[] or null if there is no setting
-     */
-    private String[] getCurrentBuildOrder() {
-        if (notCheckedBuildOrder) {
-            customBuildOrder = getWorkspace().getDescription().getBuildOrder();
-            notCheckedBuildOrder = false;
-        }
-
-        return customBuildOrder;
-    }
-
-    /**
-     * Get the project names in the default build order
-     * based on the current Workspace settings.
-     * 
-     * @return java.lang.String[]
-     */
-    private String[] getDefaultProjectOrder() {
-        if (defaultBuildOrder == null) {
-            IWorkspace workspace = getWorkspace();
-            IWorkspace.ProjectOrder projectOrder = getWorkspace()
-                    .computeProjectOrder(workspace.getRoot().getProjects());
-            IProject[] foundProjects = projectOrder.projects;
-            defaultBuildOrder = new String[foundProjects.length];
-            int foundSize = foundProjects.length;
-            for (int i = 0; i < foundSize; i++) {
-                defaultBuildOrder[i] = foundProjects[i].getName();
-            }
-        }
-
-        return defaultBuildOrder;
-    }
-
-    /**
-     * Return the Workspace the build order is from.
-     * @return org.eclipse.core.resources.IWorkspace
-     */
-    private IWorkspace getWorkspace() {
-        return ResourcesPlugin.getWorkspace();
-    }
-
-    /**
-     * Return whether or not searchElement is in testArray.
-     */
-    private boolean includes(String[] testArray, String searchElement) {
-
-        for (int i = 0; i < testArray.length; i++) {
-            if (searchElement.equals(testArray[i])) {
-				return true;
-			}
-        }
-        return false;
-
-    }
-
-    /**
-     * See IWorkbenchPreferencePage. This class does nothing with he Workbench.
-     */
-    public void init(IWorkbench workbench) {
-        this.workbench = workbench;
-        setPreferenceStore(PrefUtil.getInternalPreferenceStore());
-    }
-
-    /**
-     * Move the current selection in the build list down.
-     */
-    private void moveSelectionDown() {
-
-        //Only do this operation on a single selection
-        if (this.buildList.getSelectionCount() == 1) {
-            int currentIndex = this.buildList.getSelectionIndex();
-            if (currentIndex < this.buildList.getItemCount() - 1) {
-                String elementToMove = this.buildList.getItem(currentIndex);
-                this.buildList.remove(currentIndex);
-                this.buildList.add(elementToMove, currentIndex + 1);
-                this.buildList.select(currentIndex + 1);
-            }
-        }
-    }
-
-    /**
-     * Move the current selection in the build list up.
-     */
-    private void moveSelectionUp() {
-
-        int currentIndex = this.buildList.getSelectionIndex();
-
-        //Only do this operation on a single selection
-        if (currentIndex > 0 && this.buildList.getSelectionCount() == 1) {
-            String elementToMove = this.buildList.getItem(currentIndex);
-            this.buildList.remove(currentIndex);
-            this.buildList.add(elementToMove, currentIndex - 1);
-            this.buildList.select(currentIndex - 1);
-        }
-    }
-
-    /**
-     * Performs special processing when this page's Defaults button has been pressed.
-     * In this case change the defaultOrderButton to have it's selection set to true.
-     */
-    protected void performDefaults() {
-        this.defaultOrderButton.setSelection(true);
-        defaultsButtonSelected(true);
-        maxItersField.loadDefault();
-        super.performDefaults();
-    }
-
-    /** 
-     * OK has been pressed. If the defualt button is pressed then reset the build order to false;
-     * otherwise set it to the contents of the list.
-     */
-    public boolean performOk() {
-
-        String[] buildOrder = null;
-        boolean useDefault = defaultOrderButton.getSelection();
-
-        // if use defaults is turned off
-        if (!useDefault) {
-			buildOrder = buildList.getItems();
-		}
-
-        //Get a copy of the description from the workspace, set the build order and then
-        //apply it to the workspace.
-        IWorkspaceDescription description = getWorkspace().getDescription();
-        description.setBuildOrder(buildOrder);
-        description.setMaxBuildIterations(maxItersField.getIntValue());
-        try {
-            getWorkspace().setDescription(description);
-        } catch (CoreException exception) {
-            //failed - return false
-            return false;
-        }
-
-        // Perform auto-build if use default is off (because
-        // order could have changed) or if use default setting
-        // was changed.
-        if (!useDefault || (useDefault != defaultOrderInitiallySelected)) {
-            defaultOrderInitiallySelected = useDefault;
-            // If auto build is turned on, then do a global incremental
-            // build on all the projects.
-            if (ResourcesPlugin.getWorkspace().isAutoBuilding()) {
-                GlobalBuildAction action = new GlobalBuildAction(workbench
-                        .getActiveWorkbenchWindow(),
-                        IncrementalProjectBuilder.INCREMENTAL_BUILD);
-                action.doBuild();
-            }
-        }
-
-        // Clear the custom build order cache
-        customBuildOrder = null;
-
-        return true;
-    }
-
-    /**
-     * Remove the current selection in the build list.
-     */
-    private void removeSelection() {
-
-        this.buildList.remove(this.buildList.getSelectionIndices());
-    }
-
-    /**
-     * Set the widgets that select build order to be enabled or diabled.
-     * @param value boolean
-     */
-    private void setBuildOrderWidgetsEnablement(boolean value) {
-
-        // Only change enablement of buttons. Leave list alone
-        // because you can't scroll it when disabled.
-        Control[] children = this.buttonComposite.getChildren();
-        for (int i = 0; i < children.length; i++) {
-            children[i].setEnabled(value);
-        }
-    }
-
-    /**
-     * Return a sorted array of the names of the projects that are already in the currently 
-     * displayed names.
-     * @return String[]
-     * @param allProjects - all of the projects in the workspace 
-     * @param currentlyDisplayed - the names of the projects already being displayed
-     */
-    private String[] sortedDifference(IProject[] allProjects,
-            String[] currentlyDisplayed) {
-
-        TreeSet difference = new TreeSet();
-
-        for (int i = 0; i < allProjects.length; i++) {
-            if (!includes(currentlyDisplayed, allProjects[i].getName())) {
-				difference.add(allProjects[i].getName());
-			}
-        }
-
-        String[] returnValue = new String[difference.size()];
-        difference.toArray(returnValue);
-        return returnValue;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CleanDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CleanDialog.java
deleted file mode 100644
index 6adede1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CleanDialog.java
+++ /dev/null
@@ -1,357 +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.internal.ide.dialogs;
-
-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.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.SubProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.Viewer;
-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.events.SelectionListener;
-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.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.GlobalBuildAction;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.actions.BuildUtilities;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Dialog that asks the user to confirm a clean operation, and to configure
- * settings in relation to the clean. Clicking ok in the dialog will perform the
- * clean operation.
- * 
- * @since 3.0
- */
-public class CleanDialog extends MessageDialog {
-    
-    private static final String DIALOG_SETTINGS_SECTION = "CleanDialogSettings"; //$NON-NLS-1$
-    private static final String DIALOG_ORIGIN_X = "DIALOG_X_ORIGIN"; //$NON-NLS-1$
-    private static final String DIALOG_ORIGIN_Y = "DIALOG_Y_ORIGIN"; //$NON-NLS-1$
-    private static final String DIALOG_WIDTH = "DIALOG_WIDTH"; //$NON-NLS-1$
-    private static final String DIALOG_HEIGHT = "DIALOG_HEIGHT"; //$NON-NLS-1$
-    private static final String TOGGLE_SELECTED = "TOGGLE_SELECTED"; //$NON-NLS-1$
-    private static final String BUILD_NOW = "BUILD_NOW"; //$NON-NLS-1$
-    
-    private Button allButton, selectedButton, buildNowButton;
-
-    private CheckboxTableViewer projectNames;
-
-    private Object[] selection;
-
-    private IWorkbenchWindow window;
-
-    /**
-     * Gets the text of the clean dialog, depending on whether the
-     * workspace is currently in autobuild mode.
-     * @return String the question the user will be asked.
-     */
-    private static String getQuestion() {
-        boolean autoBuilding = ResourcesPlugin.getWorkspace().isAutoBuilding();
-        if (autoBuilding) {
-			return IDEWorkbenchMessages.CleanDialog_buildCleanAuto;
-		}
-        return IDEWorkbenchMessages.CleanDialog_buildCleanManual;
-    }
-
-    /**
-     * Creates a new clean dialog.
-     * 
-     * @param window the window to create it in
-     * @param selection the currently selected projects (may be empty)
-     */
-    public CleanDialog(IWorkbenchWindow window, IProject[] selection) {
-        super(
-                window.getShell(),
-                IDEWorkbenchMessages.CleanDialog_title, null, getQuestion(), QUESTION, new String[] {
-                IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL }, 0);
-        this.window = window;
-        this.selection = selection;
-        if (this.selection == null) {
-			this.selection = new Object[0];
-		}
-        setShellStyle(SWT.RESIZE | getShellStyle());
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
-     */
-    protected void buttonPressed(int buttonId) {
-        final boolean cleanAll = allButton.getSelection();
-        final boolean buildAll = buildNowButton != null
-                && buildNowButton.getSelection();
-        super.buttonPressed(buttonId);
-        if (buttonId != IDialogConstants.OK_ID) {
-			return;
-		}
-        //save all dirty editors
-        BuildUtilities.saveEditors(null);
-        //batching changes ensures that autobuild runs after cleaning
-    	WorkspaceJob cleanJob = new WorkspaceJob(IDEWorkbenchMessages.CleanDialog_taskName) {
-    		public boolean belongsTo(Object family) {
-    			return ResourcesPlugin.FAMILY_MANUAL_BUILD.equals(family);
-    		}
-			public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
-                doClean(cleanAll, monitor);
-                //see if a build was requested
-                if (buildAll) {
-                    //start an immediate workspace build
-                    GlobalBuildAction build = new GlobalBuildAction(window,
-                            IncrementalProjectBuilder.INCREMENTAL_BUILD);
-                    build.doBuild();
-                }
-                return Status.OK_STATUS;
-    		}
-    	};
-        cleanJob.setRule(ResourcesPlugin.getWorkspace().getRuleFactory()
-                .buildRule());
-        cleanJob.setUser(true);
-        cleanJob.schedule();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.MessageDialog#createCustomArea(org.eclipse.swt.widgets.Composite)
-     */
-    protected Control createCustomArea(Composite parent) {
-        Composite area = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.marginWidth = layout.marginHeight = 0;
-        layout.numColumns = 2;
-        layout.makeColumnsEqualWidth = true;
-        area.setLayout(layout);
-        area.setLayoutData(new GridData(GridData.FILL_BOTH));
-        SelectionListener updateEnablement = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                updateEnablement();
-            }
-        };
-
-        IDialogSettings settings = getDialogSettings(DIALOG_SETTINGS_SECTION);
-        boolean selectSelectedButton= settings.getBoolean(TOGGLE_SELECTED);
-        //first row
-        allButton = new Button(area, SWT.RADIO);
-        allButton.setText(IDEWorkbenchMessages.CleanDialog_cleanAllButton);
-        allButton.setSelection(!selectSelectedButton);
-        allButton.addSelectionListener(updateEnablement);
-        selectedButton = new Button(area, SWT.RADIO);
-        selectedButton.setText(IDEWorkbenchMessages.CleanDialog_cleanSelectedButton);
-        selectedButton.setSelection(selectSelectedButton);
-        selectedButton.addSelectionListener(updateEnablement);
-
-        //second row
-        createProjectSelectionTable(area);
-        
-        //third row
-        //only prompt for immediate build if autobuild is off
-        if (!ResourcesPlugin.getWorkspace().isAutoBuilding()) {
-            buildNowButton = new Button(parent, SWT.CHECK);
-            buildNowButton.setText(IDEWorkbenchMessages.CleanDialog_buildNowButton);
-            String buildNow = settings.get(BUILD_NOW);
-            buildNowButton.setSelection(buildNow == null || Boolean.valueOf(buildNow).booleanValue());
-            buildNowButton.setLayoutData(new GridData(
-                    GridData.HORIZONTAL_ALIGN_BEGINNING));
-        }
-        projectNames.getTable().setEnabled(selectSelectedButton);
-        return area;
-    }
-
-    private void createProjectSelectionTable(Composite radioGroup) {
-    	projectNames = CheckboxTableViewer.newCheckList(radioGroup, SWT.BORDER);
-    	projectNames.setContentProvider(new WorkbenchContentProvider());
-    	projectNames.setLabelProvider(new WorkbenchLabelProvider());
-    	projectNames.setComparator(new ResourceComparator(ResourceComparator.NAME));
-    	projectNames.addFilter(new ViewerFilter() {
-    		private final IProject[] projectHolder = new IProject[1];
-			public boolean select(Viewer viewer, Object parentElement, Object element) {
-				if (!(element instanceof IProject)) {
-					return false;
-				}
-				IProject project = (IProject) element;
-				if (!project.isAccessible()) {
-					return false;
-				}
-				projectHolder[0] = project;
-				return BuildUtilities.isEnabled(projectHolder, IncrementalProjectBuilder.CLEAN_BUILD);
-			}
-		});
-    	projectNames.setInput(ResourcesPlugin.getWorkspace().getRoot());
-    	GridData data = new GridData(GridData.FILL_BOTH);
-    	data.horizontalSpan = 2;
-    	data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-    	data.heightHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-    	projectNames.getTable().setLayoutData(data);
-    	projectNames.setCheckedElements(selection);
-    	//table is disabled to start because all button is selected
-    	projectNames.getTable().setEnabled(selectedButton.getSelection());
-    	projectNames.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent event) {
-				selection = projectNames.getCheckedElements();
-				updateEnablement();
-			}
-		});
-	}
-
-	/**
-	 * Performs the actual clean operation.
-	 * @param cleanAll if <code>true</true> clean all projects
-	 * @param monitor The monitor that the build will report to
-	 * @throws CoreException thrown if there is a problem from the
-	 * core builder.
-	 */
-	protected void doClean(boolean cleanAll, IProgressMonitor monitor)
-	        throws CoreException {
-	    if (cleanAll) {
-			ResourcesPlugin.getWorkspace().build(
-	                IncrementalProjectBuilder.CLEAN_BUILD, monitor);
-		} else {
-	        try {
-	            monitor.beginTask(IDEWorkbenchMessages.CleanDialog_taskName, selection.length);
-	            for (int i = 0; i < selection.length; i++) {
-					((IProject) selection[i]).build(
-	                        IncrementalProjectBuilder.CLEAN_BUILD,
-	                        new SubProgressMonitor(monitor, 1));
-				}
-	        } finally {
-	            monitor.done();
-	        }
-	    }
-	}
-
-    /**
-     * Updates the enablement of the dialog's ok button based
-     * on the current choices in the dialog.
-     */
-    protected void updateEnablement() {
-    	projectNames.getTable().setEnabled(selectedButton.getSelection());
-        boolean enabled = allButton.getSelection() || selection.length > 0;
-        getButton(OK).setEnabled(enabled);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.window.Window#close()
-     */
-    public boolean close() {
-        persistDialogSettings(getShell(), DIALOG_SETTINGS_SECTION);
-        return super.close();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.window.Window#getInitialLocation(org.eclipse.swt.graphics.Point)
-     */
-    protected Point getInitialLocation(Point initialSize) {
-        Point p = getInitialLocation(DIALOG_SETTINGS_SECTION);
-        return p != null ? p : super.getInitialLocation(initialSize);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.window.Window#getInitialSize()
-     */
-    protected Point getInitialSize() {
-        Point p = super.getInitialSize();
-        return getInitialSize(DIALOG_SETTINGS_SECTION, p);
-    }
-    
-    /**
-     * Returns the initial location which is persisted in the Ant UI Plugin dialog settings
-     * under the provided dialog setttings section name.
-     * If location is not persisted in the settings, the <code>null</code> is returned. 
-     * 
-     * @param dialogSettingsSectionName The name of the dialog settings section
-     * @return The initial location or <code>null</code>
-     */
-    public Point getInitialLocation(String dialogSettingsSectionName) {
-        IDialogSettings settings = getDialogSettings(dialogSettingsSectionName);
-        try {
-            int x= settings.getInt(DIALOG_ORIGIN_X);
-            int y= settings.getInt(DIALOG_ORIGIN_Y);
-            return new Point(x,y);
-        } catch (NumberFormatException e) {
-        }
-        return null;
-    }
-    
-    private IDialogSettings getDialogSettings(String dialogSettingsSectionName) {
-        IDialogSettings settings = IDEWorkbenchPlugin.getDefault().getDialogSettings();
-        IDialogSettings section = settings.getSection(dialogSettingsSectionName);
-        if (section == null) {
-            section = settings.addNewSection(dialogSettingsSectionName);
-        } 
-        return section;
-    }
-    
-    /**
-     * Persists the location and dimensions of the shell and other user settings in the
-     * plugin's dialog settings under the provided dialog settings section name
-     * 
-     * @param shell The shell whose geometry is to be stored
-     * @param dialogSettingsSectionName The name of the dialog settings section
-     */
-    private void persistDialogSettings(Shell shell, String dialogSettingsSectionName) {
-        Point shellLocation = shell.getLocation();
-        Point shellSize = shell.getSize();
-        IDialogSettings settings = getDialogSettings(dialogSettingsSectionName);
-        settings.put(DIALOG_ORIGIN_X, shellLocation.x);
-        settings.put(DIALOG_ORIGIN_Y, shellLocation.y);
-        settings.put(DIALOG_WIDTH, shellSize.x);
-        settings.put(DIALOG_HEIGHT, shellSize.y);
-        
-        if (buildNowButton != null) {
-            settings.put(BUILD_NOW, buildNowButton.getSelection());
-        }
-        settings.put(TOGGLE_SELECTED, selectedButton.getSelection());
-    }
-    
-    /**
-     * Returns the initial size which is the larger of the <code>initialSize</code> or
-     * the size persisted in the Ant UI Plugin dialog settings under the provided dialog setttings section name.
-     * If no size is persisted in the settings, the <code>initialSize</code> is returned. 
-     * 
-     * @param initialSize The initialSize to compare against
-     * @param dialogSettingsSectionName The name of the dialog settings section
-     * @return the initial size
-     */
-    private Point getInitialSize(String dialogSettingsSectionName, Point initialSize) {
-        IDialogSettings settings = getDialogSettings(dialogSettingsSectionName);
-        try {
-            int x, y;
-            x = settings.getInt(DIALOG_WIDTH);
-            y = settings.getInt(DIALOG_HEIGHT);
-            return new Point(Math.max(x, initialSize.x), Math.max(y, initialSize.y));
-        } catch (NumberFormatException e) {
-        }
-        return initialSize;
-    }
-    
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ConfigurationLogUpdateSection.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ConfigurationLogUpdateSection.java
deleted file mode 100644
index f7f21ce..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ConfigurationLogUpdateSection.java
+++ /dev/null
@@ -1,60 +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.ide.dialogs;
-
-import java.io.PrintWriter;
-import java.net.URL;
-import com.ibm.icu.text.DateFormat;
-import java.util.Date;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.about.ISystemSummarySection;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.update.configurator.ConfiguratorUtils;
-import org.eclipse.update.configurator.IPlatformConfiguration;
-import org.eclipse.update.configurator.IPlatformConfiguration.IFeatureEntry;
-import org.eclipse.update.configurator.IPlatformConfiguration.ISiteEntry;
-
-/**
- * Writes information about the update configurer into the system summary.
- * 
- * @since 3.0
- */
-public class ConfigurationLogUpdateSection implements ISystemSummarySection {
-    public void write(PrintWriter writer) {
-    	
-    	IPlatformConfiguration platformConf = ConfiguratorUtils.getCurrentPlatformConfiguration();
-    	writer.println(IDEWorkbenchMessages.ConfigurationLogUpdateSection_installConfiguration); 
-    	writer.println(" " + NLS.bind( IDEWorkbenchMessages.ConfigurationLogUpdateSection_lastChangedOn, DateFormat.getDateInstance().format(new Date(platformConf.getChangeStamp())))); //$NON-NLS-1$
-       	writer.println(" " + NLS.bind( IDEWorkbenchMessages.ConfigurationLogUpdateSection_location, platformConf.getConfigurationLocation()));  //$NON-NLS-1$
-       	
-       	ISiteEntry[] sites = platformConf.getConfiguredSites();
-       	writer.println();
-       	writer.println(" " + IDEWorkbenchMessages.ConfigurationLogUpdateSection_configurationSites);   //$NON-NLS-1$
-       	for(int i = 0; i < sites.length; i++){
-       		writer.println("  " + sites[i].getURL().toExternalForm()); //$NON-NLS-1$
-       	}
-       	
-       	writer.println();
-       	writer.println(" " + IDEWorkbenchMessages.ConfigurationLogUpdateSection_configurationFeatures);  //$NON-NLS-1$
-       	IFeatureEntry[] features = platformConf.getConfiguredFeatureEntries();     
-       	for(int i = 0; i < features.length; i++){
-       		writer.println("  " + NLS.bind( IDEWorkbenchMessages.ConfigurationLogUpdateSection_featureIdAndVersion, features[i].getFeaturePluginIdentifier(), features[i].getFeaturePluginVersion())); //$NON-NLS-1$ 
-       	}
-       	
-       	writer.println();
-  		URL[] urls = platformConf.getPluginPath();
-  		writer.println(" " + IDEWorkbenchMessages.ConfigurationLogUpdateSection_plugins); //$NON-NLS-1$
-   		for(int j = 0; j < urls.length; j++){
-   			writer.println("  " + urls[j].toExternalForm()); //$NON-NLS-1$
-   		}
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CreateLinkedResourceGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CreateLinkedResourceGroup.java
deleted file mode 100644
index f59afac..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CreateLinkedResourceGroup.java
+++ /dev/null
@@ -1,619 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.dialogs;
-
-import java.net.URI;
-
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.resources.IPathVariableManager;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.fieldassist.FieldAssistColors;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.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.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.ide.dialogs.PathVariableSelectionDialog;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.filesystem.FileSystemConfiguration;
-import org.eclipse.ui.internal.ide.filesystem.FileSystemSupportRegistry;
-
-/**
- * Widget group for specifying a linked file or folder target.
- * 
- * @since 2.1
- */
-public class CreateLinkedResourceGroup {
-	private Listener listener;
-
-	private String linkTarget = ""; //$NON-NLS-1$
-
-	private int type;
-
-	private boolean createLink = false;
-
-	// used to compute layout sizes
-	private FontMetrics fontMetrics;
-
-	// widgets
-	private Composite groupComposite;
-
-	private Text linkTargetField;
-
-	private Button browseButton;
-
-	private Button variablesButton;
-
-	private Label resolvedPathLabelText;
-
-	private Label resolvedPathLabelData;
-
-	private final IStringValue updatableResourceName;
-
-	/**
-	 * Helper interface intended for updating a string value based on the
-	 * currently selected link target.
-	 * 
-	 * @since 3.2
-	 */
-	public static interface IStringValue {
-		/**
-		 * Sets the String value.
-		 * 
-		 * @param string
-		 *            a non-null String
-		 */
-		void setValue(String string);
-
-		/**
-		 * Gets the String value.
-		 * 
-		 * @return the current value, or <code>null</code>
-		 */
-		String getValue();
-	}
-
-	private String lastUpdatedValue;
-
-	private FileSystemSelectionArea fileSystemSelectionArea;
-
-	/**
-	 * Creates a link target group
-	 * 
-	 * @param type
-	 *            specifies the type of resource to link to.
-	 *            <code>IResource.FILE</code> or <code>IResource.FOLDER</code>
-	 * @param listener
-	 *            listener to notify when one of the widgets' value is changed.
-	 * @param updatableResourceName
-	 *            an updatable string value that will be updated to reflect the
-	 *            link target's last segment, or <code>null</code>. Updating
-	 *            will only happen if the current value of that string is null
-	 *            or the empty string, or if it has not been changed since the
-	 *            last time it was updated.
-	 */
-	public CreateLinkedResourceGroup(int type, Listener listener,
-			IStringValue updatableResourceName) {
-		this.type = type;
-		this.listener = listener;
-		this.updatableResourceName = updatableResourceName;
-		if (updatableResourceName != null) {
-			lastUpdatedValue = updatableResourceName.getValue();
-		}
-	}
-
-	/**
-	 * Creates the widgets
-	 * 
-	 * @param parent
-	 *            parent composite of the widget group
-	 * @return the widget group
-	 */
-	public Composite createContents(Composite parent) {
-		Font font = parent.getFont();
-		initializeDialogUnits(parent);
-		// top level group
-		groupComposite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		groupComposite.setLayout(layout);
-		groupComposite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
-				| GridData.FILL_HORIZONTAL));
-		groupComposite.setFont(font);
-
-		final Button createLinkButton = new Button(groupComposite, SWT.CHECK);
-		if (type == IResource.FILE) {
-			createLinkButton
-					.setText(IDEWorkbenchMessages.CreateLinkedResourceGroup_linkFileButton);
-		} else {
-			createLinkButton
-					.setText(IDEWorkbenchMessages.CreateLinkedResourceGroup_linkFolderButton);
-		}
-		createLinkButton.setSelection(createLink);
-		createLinkButton.setFont(font);
-		SelectionListener selectionListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				createLink = createLinkButton.getSelection();
-				browseButton.setEnabled(createLink);
-				variablesButton.setEnabled(createLink);
-				// Set the required field color if the field is enabled
-				if (createLink) {
-					linkTargetField.setBackground(FieldAssistColors
-							.getRequiredFieldBackgroundColor(linkTargetField));
-				} else {
-					linkTargetField.setBackground(null);
-				}
-				linkTargetField.setEnabled(createLink);
-				if (fileSystemSelectionArea != null)
-					fileSystemSelectionArea.setEnabled(createLink);
-
-				if (listener != null) {
-					listener.handleEvent(new Event());
-				}
-			}
-		};
-		createLinkButton.addSelectionListener(selectionListener);
-
-		createLinkLocationGroup(groupComposite, createLink);
-		return groupComposite;
-	}
-
-	/**
-	 * Creates the link target location widgets.
-	 * 
-	 * @param locationGroup
-	 *            the parent composite
-	 * @param enabled
-	 *            sets the initial enabled state of the widgets
-	 */
-	private void createLinkLocationGroup(Composite locationGroup,
-			boolean enabled) {
-		Button button = new Button(locationGroup, SWT.CHECK);
-		int indent = button.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
-
-		button.dispose();
-
-		// linkTargetGroup is necessary to decouple layout from
-		// resolvedPathGroup layout
-		Composite linkTargetGroup = new Composite(locationGroup, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 4;
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		linkTargetGroup.setLayout(layout);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalIndent = indent;
-		linkTargetGroup.setLayoutData(data);
-
-		// link target location entry field
-		linkTargetField = new Text(linkTargetGroup, SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		data.horizontalSpan = 2;
-		linkTargetField.setLayoutData(data);
-		linkTargetField.setEnabled(enabled);
-		if (enabled) {
-			linkTargetField.setBackground(FieldAssistColors
-					.getRequiredFieldBackgroundColor(linkTargetField));
-		}
-		linkTargetField.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				linkTarget = linkTargetField.getText();
-				resolveVariable();
-				if (updatableResourceName != null) {
-					String value = updatableResourceName.getValue();
-					if (value == null
-							|| value.equals("") || value.equals(lastUpdatedValue)) { //$NON-NLS-1$
-						IPath linkTargetPath = new Path(linkTarget);
-						String lastSegment = linkTargetPath.lastSegment();
-						if (lastSegment != null) {
-							lastUpdatedValue = lastSegment;
-							updatableResourceName.setValue(lastSegment);
-						}
-					}
-				}
-				if (listener != null) {
-					listener.handleEvent(new Event());
-				}
-			}
-		});
-
-		// browse button
-		browseButton = new Button(linkTargetGroup, SWT.PUSH);
-		browseButton
-				.setText(IDEWorkbenchMessages.CreateLinkedResourceGroup_browseButton);
-		browseButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				handleLinkTargetBrowseButtonPressed();
-			}
-		});
-		browseButton.setEnabled(enabled);
-		setButtonLayoutData(browseButton);
-
-		// variables button
-		variablesButton = new Button(linkTargetGroup, SWT.PUSH);
-		variablesButton
-				.setText(IDEWorkbenchMessages.CreateLinkedResourceGroup_variablesButton);
-		variablesButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				handleVariablesButtonPressed();
-			}
-		});
-		variablesButton.setEnabled(enabled);
-		setButtonLayoutData(variablesButton);
-
-		createFileSystemSelection(linkTargetGroup, enabled);
-
-		createResolvedPathGroup(locationGroup, indent);
-
-		if (linkTarget != null) {
-			linkTargetField.setText(linkTarget);
-		}
-	}
-
-	/**
-	 * Create the file system selection area.
-	 * 
-	 * @param composite
-	 * @param enabled
-	 *            the initial enablement state.
-	 */
-	private void createFileSystemSelection(Composite composite, boolean enabled) {
-
-		// Always use the default if that is all there is.
-		if (FileSystemSupportRegistry.getInstance().hasOneFileSystem()) {
-			return;
-		}
-
-		fileSystemSelectionArea = new FileSystemSelectionArea();
-		fileSystemSelectionArea.createContents(composite);
-		fileSystemSelectionArea.setEnabled(enabled);
-	}
-
-	/**
-	 * Create the composite for the resolved path.
-	 * 
-	 * @param locationGroup
-	 * @param indent
-	 */
-	private void createResolvedPathGroup(Composite locationGroup, int indent) {
-		GridLayout layout;
-		GridData data;
-		Composite resolvedPathGroup = new Composite(locationGroup, SWT.NONE);
-		layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		resolvedPathGroup.setLayout(layout);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalIndent = indent;
-		resolvedPathGroup.setLayoutData(data);
-
-		resolvedPathLabelText = new Label(resolvedPathGroup, SWT.SINGLE);
-		resolvedPathLabelText
-				.setText(IDEWorkbenchMessages.CreateLinkedResourceGroup_resolvedPathLabel);
-		resolvedPathLabelText.setVisible(false);
-
-		resolvedPathLabelData = new Label(resolvedPathGroup, SWT.SINGLE);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		resolvedPathLabelData.setLayoutData(data);
-		resolvedPathLabelData.setVisible(false);
-	}
-
-	/**
-	 * Returns a new status object with the given severity and message.
-	 * 
-	 * @return a new status object with the given severity and message.
-	 */
-	private IStatus createStatus(int severity, String message) {
-		return new Status(severity, IDEWorkbenchPlugin.getDefault().getBundle()
-				.getSymbolicName(), severity, message, null);
-	}
-
-	/**
-	 * Disposes the group's widgets.
-	 */
-	public void dispose() {
-		if (groupComposite != null && groupComposite.isDisposed() == false) {
-			groupComposite.dispose();
-		}
-	}
-
-	/**
-	 * Returns the link target location entered by the user.
-	 * 
-	 * @return the link target location entered by the user. null if the user
-	 *         chose not to create a link.
-	 */
-	public String getLinkTarget() {
-		if (createLink) {
-			return linkTarget;
-		}
-
-		return null;
-	}
-
-	/**
-	 * Opens a file or directory browser depending on the link type.
-	 */
-	private void handleLinkTargetBrowseButtonPressed() {
-		IFileStore store = null;
-		String selection = null;
-		FileSystemConfiguration config = getSelectedConfiguration();
-		boolean isDefault = config == null
-				|| (FileSystemSupportRegistry.getInstance()
-						.getDefaultConfiguration()).equals(config);
-
-		if (linkTarget.length() > 0) {
-			store = IDEResourceInfoUtils.getFileStore(linkTarget);
-			if (!store.fetchInfo().exists()) {
-				store = null;
-			}
-		}
-		if (type == IResource.FILE) {
-			if (isDefault) {
-				FileDialog dialog = new FileDialog(linkTargetField.getShell());
-				if (store != null) {
-					if (store.fetchInfo().isDirectory()) {
-						dialog.setFilterPath(linkTarget);
-					} else {
-						dialog.setFileName(linkTarget);
-					}
-				}
-				selection = dialog.open();
-			} else {
-				URI uri = config.getContributor().browseFileSystem(linkTarget,
-						linkTargetField.getShell());
-				if (uri != null)
-					selection = uri.toString();
-			}
-		} else {
-			String filterPath = null;
-			if (store != null) {
-				IFileStore path = store;
-				if (!store.fetchInfo().isDirectory()) {
-					path = store.getParent();
-				}
-				if (path != null) {
-					filterPath = store.toString();
-				}
-			}
-
-			if (isDefault) {
-				DirectoryDialog dialog = new DirectoryDialog(linkTargetField
-						.getShell());
-				dialog
-						.setMessage(IDEWorkbenchMessages.CreateLinkedResourceGroup_targetSelectionLabel);
-				if (filterPath != null)
-					dialog.setFilterPath(filterPath);
-				selection = dialog.open();
-			} else {
-				String initialPath = IDEResourceInfoUtils.EMPTY_STRING;
-				if (filterPath != null)
-					initialPath = filterPath;
-				URI uri = config.getContributor().browseFileSystem(initialPath,
-						linkTargetField.getShell());
-				if (uri != null)
-					selection = uri.toString();
-			}
-		}
-		if (selection != null) {
-			linkTargetField.setText(selection);
-		}
-	}
-
-	/**
-	 * Return the selected configuration or <code>null</code>
-	 * if there is not one selected.
-	 * @return FileSystemConfiguration or <code>null</code>
-	 */
-	private FileSystemConfiguration getSelectedConfiguration() {
-		if(fileSystemSelectionArea == null)
-			return null;
-		return fileSystemSelectionArea.getSelectedConfiguration();
-	}
-
-	/**
-	 * Opens a path variable selection dialog
-	 */
-	private void handleVariablesButtonPressed() {
-		int variableTypes = IResource.FOLDER;
-
-		// allow selecting file and folder variables when creating a
-		// linked file
-		if (type == IResource.FILE) {
-			variableTypes |= IResource.FILE;
-		}
-
-		PathVariableSelectionDialog dialog = new PathVariableSelectionDialog(
-				linkTargetField.getShell(), variableTypes);
-		if (dialog.open() == IDialogConstants.OK_ID) {
-			String[] variableNames = (String[]) dialog.getResult();
-			if (variableNames != null && variableNames.length == 1) {
-				linkTargetField.setText(variableNames[0]);
-			}
-		}
-	}
-
-	/**
-	 * Initializes the computation of horizontal and vertical dialog units based
-	 * on the size of current font.
-	 * <p>
-	 * This method must be called before <code>setButtonLayoutData</code> is
-	 * 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(control.getFont());
-		fontMetrics = gc.getFontMetrics();
-		gc.dispose();
-	}
-
-	/**
-	 * Tries to resolve the value entered in the link target field as a
-	 * variable, if the value is a relative path. Displays the resolved value if
-	 * the entered value is a variable.
-	 */
-	private void resolveVariable() {
-		IPathVariableManager pathVariableManager = ResourcesPlugin
-				.getWorkspace().getPathVariableManager();
-		IPath path = new Path(linkTarget);
-		IPath resolvedPath = pathVariableManager.resolvePath(path);
-
-		if (path.equals(resolvedPath)) {
-			resolvedPathLabelText.setVisible(false);
-			resolvedPathLabelData.setVisible(false);
-		} else {
-			resolvedPathLabelText.setVisible(true);
-			resolvedPathLabelData.setVisible(true);
-		}
-		resolvedPathLabelData.setText(resolvedPath.toOSString());
-	}
-
-	/**
-	 * 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
-	 */
-	private GridData setButtonLayoutData(Button button) {
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics,
-				IDialogConstants.BUTTON_WIDTH);
-		data.widthHint = Math.max(widthHint, button.computeSize(SWT.DEFAULT,
-				SWT.DEFAULT, true).x);
-		button.setLayoutData(data);
-		return data;
-	}
-
-	/**
-	 * Sets the value of the link target field
-	 * 
-	 * @param target
-	 *            the value of the link target field
-	 */
-	public void setLinkTarget(String target) {
-		linkTarget = target;
-		if (linkTargetField != null && linkTargetField.isDisposed() == false) {
-			linkTargetField.setText(target);
-		}
-	}
-
-	/**
-	 * Validates the type of the given file against the link type specified in
-	 * the constructor.
-	 * 
-	 * @param linkTargetFile
-	 *            file to validate
-	 * @return IStatus indicating the validation result. IStatus.OK if the given
-	 *         file is valid.
-	 */
-	private IStatus validateFileType(IFileInfo linkTargetFile) {
-		if (type == IResource.FILE && linkTargetFile.isDirectory()) {
-			return createStatus(
-					IStatus.ERROR,
-					IDEWorkbenchMessages.CreateLinkedResourceGroup_linkTargetNotFile);
-		} else if (type == IResource.FOLDER && !linkTargetFile.isDirectory()) {
-			return createStatus(
-					IStatus.ERROR,
-					IDEWorkbenchMessages.CreateLinkedResourceGroup_linkTargetNotFolder);
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Validates this page's controls.
-	 * 
-	 * @param linkHandle
-	 *            The target to check
-	 * 
-	 * @return IStatus indicating the validation result. IStatus.OK if the
-	 *         specified link target is valid given the linkHandle.
-	 */
-	public IStatus validateLinkLocation(IResource linkHandle) {
-		if (linkTargetField == null || linkTargetField.isDisposed()) {
-			return createStatus(IStatus.OK, ""); //$NON-NLS-1$
-		}
-
-		IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-		IPath path = new Path(linkTarget);
-
-		if (createLink == false) {
-			return createStatus(IStatus.OK, ""); //$NON-NLS-1$
-		}
-
-		if (path.isUNC()) {
-			// print that path is not valid, but don't do core validation. See
-			// bug 90825.
-			return createStatus(
-					IStatus.WARNING,
-					IDEWorkbenchMessages.CreateLinkedResourceGroup_unableToValidateLinkTarget);
-		}
-
-		IStatus locationStatus = workspace.validateLinkLocation(linkHandle,
-				path);
-		if (locationStatus.getSeverity() == IStatus.ERROR) {
-			return locationStatus;
-		}
-
-		// use the resolved link target name
-		String resolvedLinkTarget = resolvedPathLabelData.getText();
-		path = new Path(resolvedLinkTarget);
-		IFileInfo linkTargetFile = IDEResourceInfoUtils
-				.getFileInfo(resolvedLinkTarget);
-		if (linkTargetFile != null && linkTargetFile.exists()) {
-			IStatus fileTypeStatus = validateFileType(linkTargetFile);
-			if (fileTypeStatus.isOK() == false) {
-				return fileTypeStatus;
-			}
-		} else if (locationStatus.getSeverity() == IStatus.OK) {
-			// locationStatus takes precedence over missing location warning.
-			return createStatus(
-					IStatus.WARNING,
-					IDEWorkbenchMessages.CreateLinkedResourceGroup_linkTargetNonExistent);
-		}
-		return locationStatus;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileFolderSelectionDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileFolderSelectionDialog.java
deleted file mode 100644
index 4ce7e00..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileFolderSelectionDialog.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.dialogs;
-
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
-import org.eclipse.ui.dialogs.ISelectionStatusValidator;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * Selection dialog to select files and/or folders on the file system. Use
- * setInput to set input to an IFileStore that points to a folder.
- * 
- * @since 2.1
- */
-public class FileFolderSelectionDialog extends ElementTreeSelectionDialog {
-
-	/**
-	 * Label provider for IFileStore objects.
-	 */
-	private static class FileLabelProvider extends LabelProvider {
-		private static final Image IMG_FOLDER = PlatformUI.getWorkbench()
-				.getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
-
-		private static final Image IMG_FILE = PlatformUI.getWorkbench()
-				.getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
-		 */
-		public Image getImage(Object element) {
-			if (element instanceof IFileStore) {
-				IFileStore curr = (IFileStore) element;
-				if (curr.fetchInfo().isDirectory()) {
-					return IMG_FOLDER;
-				}
-				return IMG_FILE;
-			}
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-		 */
-		public String getText(Object element) {
-			if (element instanceof IFileStore) {
-				return ((IFileStore) element).getName();
-			}
-			return super.getText(element);
-		}
-	}
-
-	/**
-	 * Content provider for IFileStore objects.
-	 */
-	private static class FileContentProvider implements ITreeContentProvider {
-		private static final Object[] EMPTY = new Object[0];
-
-		private IFileStoreFilter fileFilter;
-
-		/**
-		 * Creates a new instance of the receiver.
-		 * 
-		 * @param showFiles
-		 *            <code>true</code> files and folders are returned by the
-		 *            receiver. <code>false</code> only folders are returned.
-		 */
-		public FileContentProvider(final boolean showFiles) {
-			fileFilter = new IFileStoreFilter() {
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.ui.internal.ide.dialogs.IFileStoreFilter#accept(org.eclipse.core.filesystem.IFileStore)
-				 */
-				public boolean accept(IFileStore file) {
-					if (!file.fetchInfo().isDirectory() && showFiles == false) {
-						return false;
-					}
-					return true;
-				}
-			};
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement instanceof IFileStore) {
-				IFileStore[] children = IDEResourceInfoUtils.listFileStores(
-						(IFileStore) parentElement, fileFilter,
-						new NullProgressMonitor());
-				if (children != null) {
-					return children;
-				}
-			}
-			return EMPTY;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element instanceof IFileStore) {
-				return ((IFileStore) element).getParent();
-			}
-			return null;
-		}
-
-		public boolean hasChildren(Object element) {
-			return getChildren(element).length > 0;
-		}
-
-		public Object[] getElements(Object element) {
-			return getChildren(element);
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-
-	/**
-	 * Viewer sorter that places folders first, then files.
-	 */
-	private static class FileViewerSorter extends ViewerComparator {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ViewerSorter#category(java.lang.Object)
-		 */
-		public int category(Object element) {
-			if (element instanceof IFileStore
-					&& !((IFileStore) element).fetchInfo().isDirectory()) {
-				return 1;
-			}
-			return 0;
-		}
-	}
-
-	/**
-	 * Validates the selection based on the multi select and folder setting.
-	 */
-	private static class FileSelectionValidator implements
-			ISelectionStatusValidator {
-		private boolean multiSelect;
-
-		private boolean acceptFolders;
-
-		/**
-		 * Creates a new instance of the receiver.
-		 * 
-		 * @param multiSelect
-		 *            <code>true</code> if multi selection is allowed.
-		 *            <code>false</code> if only single selection is allowed.
-		 * @param acceptFolders
-		 *            <code>true</code> if folders can be selected in the
-		 *            dialog. <code>false</code> only files and be selected.
-		 */
-		public FileSelectionValidator(boolean multiSelect, boolean acceptFolders) {
-			this.multiSelect = multiSelect;
-			this.acceptFolders = acceptFolders;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.dialogs.ISelectionStatusValidator#validate(java.lang.Object[])
-		 */
-		public IStatus validate(Object[] selection) {
-			int nSelected = selection.length;
-			String pluginId = IDEWorkbenchPlugin.IDE_WORKBENCH;
-
-			if (nSelected == 0 || (nSelected > 1 && multiSelect == false)) {
-				return new Status(IStatus.ERROR, pluginId, IStatus.ERROR,
-						IDEResourceInfoUtils.EMPTY_STRING, null);
-			}
-			for (int i = 0; i < selection.length; i++) {
-				Object curr = selection[i];
-				if (curr instanceof IFileStore) {
-					IFileStore file = (IFileStore) curr;
-					if (acceptFolders == false
-							&& file.fetchInfo().isDirectory()) {
-						return new Status(IStatus.ERROR, pluginId,
-								IStatus.ERROR,
-								IDEResourceInfoUtils.EMPTY_STRING, null);
-					}
-
-				}
-			}
-			return Status.OK_STATUS;
-		}
-	}
-
-	/**
-	 * Creates a new instance of the receiver.
-	 * 
-	 * @param parent
-	 * @param multiSelect
-	 *            <code>true</code> if multi selection is allowed.
-	 *            <code>false</code> if only single selection is allowed.
-	 * @param type
-	 *            one or both of <code>IResource.FILE</code> and
-	 *            <code>IResource.FOLDER</code>, ORed together. If
-	 *            <code>IResource.FILE</code> is specified files and folders
-	 *            are displayed in the dialog. Otherwise only folders are
-	 *            displayed. If <code>IResource.FOLDER</code> is specified
-	 *            folders can be selected in addition to files.
-	 */
-	public FileFolderSelectionDialog(Shell parent, boolean multiSelect, int type) {
-		super(parent, new FileLabelProvider(), new FileContentProvider(
-				(type & IResource.FILE) != 0));
-		setComparator(new FileViewerSorter());
-		setValidator(new FileSelectionValidator(multiSelect,
-				(type & IResource.FOLDER) != 0));
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileStatesPage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileStatesPage.java
deleted file mode 100644
index 36a0667..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileStatesPage.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.ui.internal.ide.dialogs;
-
-import com.ibm.icu.text.MessageFormat;
-
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.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.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-
-/**
- * The FileStatesPage is the page used to set the file states sizes for the workbench.
- */
-public class FileStatesPage extends PreferencePage implements
-        IWorkbenchPreferencePage, Listener {
-
-	private static final int FAILED_VALUE = -1;
-
-    //Set the length of the day as we have to convert back and forth
-    private static final long DAY_LENGTH = 86400000;
-
-    private static final long MEGABYTES = 1024 * 1024;
-
-    private Text longevityText;
-
-    private Text maxStatesText;
-
-    private Text maxStateSizeText;
-
-    //Choose a maximum to prevent OutOfMemoryErrors
-    private int FILE_STATES_MAXIMUM = 10000;
-
-    private long STATE_SIZE_MAXIMUM = 100;
-
-    /**
-     * This method takes the string for the title of a text field and the value for the
-     * text of the field.
-     * @return org.eclipse.swt.widgets.Text
-     * @param labelString java.lang.String
-     * @param textValue java.lang.String
-     * @param parent Composite 
-     */
-    private Text addLabelAndText(String labelString, String textValue,
-            Composite parent) {
-        Label label = new Label(parent, SWT.LEFT);
-        label.setText(labelString);
-
-        Text text = new Text(parent, SWT.LEFT | SWT.BORDER);
-        GridData data = new GridData();
-        text.addListener(SWT.Modify, this);
-        data.horizontalAlignment = GridData.FILL;
-        data.grabExcessHorizontalSpace = true;
-        data.verticalAlignment = GridData.CENTER;
-        data.grabExcessVerticalSpace = false;
-        text.setLayoutData(data);
-        text.setText(textValue);
-        return text;
-    }
-
-    /**
-     * Recomputes the page's error state by validating all
-     * the fields.
-     */
-    private void checkState() {
-        // Assume invalid if the controls not created yet
-        if (longevityText == null || maxStatesText == null
-                || maxStateSizeText == null) {
-            setValid(false);
-            return;
-        }
-
-        if (validateLongTextEntry(longevityText) == FAILED_VALUE) {
-            setValid(false);
-            return;
-        }
-
-        if (validateMaxFileStates() == FAILED_VALUE) {
-            setValid(false);
-            return;
-        }
-
-        if (validateMaxFileStateSize() == FAILED_VALUE) {
-            setValid(false);
-            return;
-        }
-
-        setValid(true);
-        setErrorMessage(null);
-    }
-
-    /* 
-     * Create the contents control for the workspace file states.
-     * @returns Control
-     * @param parent Composite
-     */
-    protected Control createContents(Composite parent) {
-
-    	PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-                IIDEHelpContextIds.FILE_STATES_PREFERENCE_PAGE);
-
-        // button group
-        Composite composite = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        composite.setLayout(layout);
-
-        IWorkspaceDescription description = getWorkspaceDescription();
-
-        //Get the current value and make sure we get at least one day out of it.
-        long days = description.getFileStateLongevity() / DAY_LENGTH;
-        if (days < 1) {
-			days = 1;
-		}
-
-        long megabytes = description.getMaxFileStateSize() / MEGABYTES;
-        if (megabytes < 1) {
-			megabytes = 1;
-		}
-
-        this.longevityText = addLabelAndText(IDEWorkbenchMessages.FileHistory_longevity, String
-                .valueOf(days), composite);
-        this.maxStatesText = addLabelAndText(IDEWorkbenchMessages.FileHistory_entries, String
-                .valueOf(description.getMaxFileStates()), composite);
-        this.maxStateSizeText = addLabelAndText(IDEWorkbenchMessages.FileHistory_diskSpace,
-                String.valueOf(megabytes), composite);
-
-        checkState();
-
-        //Create a spacing label to breakup the note from the fields
-        Label spacer = new Label(composite, SWT.NONE);
-        GridData spacerData = new GridData();
-        spacerData.horizontalSpan = 2;
-        spacer.setLayoutData(spacerData);
-
-        Composite noteComposite = createNoteComposite(parent.getFont(),
-                composite, IDEWorkbenchMessages.Preference_note, IDEWorkbenchMessages.FileHistory_restartNote);
-        GridData noteData = new GridData();
-        noteData.horizontalSpan = 2;
-        noteComposite.setLayoutData(noteData);
-
-        applyDialogFont(composite);
-
-        return composite;
-    }
-
-    /**
-     * Get the Workspace Description this page is operating on.
-     * @return org.eclipse.core.resources.IWorkspaceDescription
-     */
-    private IWorkspaceDescription getWorkspaceDescription() {
-        return ResourcesPlugin.getWorkspace().getDescription();
-    }
-
-    /**
-     * Sent when an event that the receiver has registered for occurs.
-     *
-     * @param event the event which occurred
-     */
-    public void handleEvent(Event event) {
-        checkState();
-    }
-
-    /**
-     * Initializes this preference page for the given workbench.
-     * <p>
-     * This method is called automatically as the preference page is being created
-     * and initialized. Clients must not call this method.
-     * </p>
-     *
-     * @param workbench the workbench
-     */
-    public void init(org.eclipse.ui.IWorkbench workbench) {
-    }
-
-    /**
-     * Performs special processing when this page's Defaults button has been pressed.
-     * Reset the entries to thier default values.
-     */
-    protected void performDefaults() {
-        super.performDefaults();
-
-        Preferences prefs = ResourcesPlugin.getPlugin().getPluginPreferences();
-
-        long days = prefs
-                .getDefaultLong(ResourcesPlugin.PREF_FILE_STATE_LONGEVITY)
-                / DAY_LENGTH;
-        long megabytes = prefs
-                .getDefaultLong(ResourcesPlugin.PREF_MAX_FILE_STATE_SIZE)
-                / MEGABYTES;
-        this.longevityText.setText(String.valueOf(days));
-        this.maxStatesText.setText(prefs
-                .getDefaultString(ResourcesPlugin.PREF_MAX_FILE_STATES));
-        this.maxStateSizeText.setText(String.valueOf(megabytes));
-        checkState();
-    }
-
-    /** 
-     * Perform the result of the OK from the receiver.
-     */
-    public boolean performOk() {
-
-        long longevityValue = validateLongTextEntry(longevityText);
-        int maxFileStates = validateMaxFileStates();
-        long maxStateSize = validateMaxFileStateSize();
-        if (longevityValue == FAILED_VALUE || maxFileStates == FAILED_VALUE
-                || maxStateSize == FAILED_VALUE) {
-			return false;
-		}
-
-        IWorkspaceDescription description = getWorkspaceDescription();
-        description.setFileStateLongevity(longevityValue * DAY_LENGTH);
-        description.setMaxFileStates(maxFileStates);
-        description.setMaxFileStateSize(maxStateSize * MEGABYTES);
-
-        try {
-            //As it is only a copy save it back in
-            ResourcesPlugin.getWorkspace().setDescription(description);
-        } catch (CoreException exception) {
-            ErrorDialog.openError(getShell(), IDEWorkbenchMessages.FileHistory_exceptionSaving, exception
-                    .getMessage(), exception.getStatus());
-            return false;
-        }
-
-        return true;
-
-    }
-
-    /**
-     * Validate a text entry for an integer field. Return the result if there are
-     * no errors, otherwise return -1 and set the entry field error. 
-     * @return int
-     */
-    private int validateIntegerTextEntry(Text text) {
-
-        int value;
-
-        try {
-            value = Integer.parseInt(text.getText());
-
-        } catch (NumberFormatException exception) {
-            setErrorMessage(MessageFormat.format(IDEWorkbenchMessages.FileHistory_invalid,
-                    new Object[] { exception.getLocalizedMessage() }));
-            return FAILED_VALUE;
-        }
-
-        //Be sure all values are non zero and positive
-        if (value <= 0) {
-            setErrorMessage(IDEWorkbenchMessages.FileHistory_mustBePositive);
-            return FAILED_VALUE;
-        }
-
-        return value;
-    }
-
-    /**
-     * Validate a text entry for a long field. Return the result if there are
-     * no errors, otherwise return -1 and set the entry field error. 
-     * @return long
-     */
-    private long validateLongTextEntry(Text text) {
-
-        long value;
-
-        try {
-            value = Long.parseLong(text.getText());
-
-        } catch (NumberFormatException exception) {
-            setErrorMessage(MessageFormat.format(IDEWorkbenchMessages.FileHistory_invalid,
-                    new Object[] { exception.getLocalizedMessage() }));
-            return FAILED_VALUE;
-        }
-
-        //Be sure all values are non zero and positive
-        if (value <= 0) {
-            setErrorMessage(IDEWorkbenchMessages.FileHistory_mustBePositive);
-            return FAILED_VALUE;
-        }
-
-        return value;
-    }
-
-    /**
-     * Validate the maximum file states.
-     * Return the value if successful, otherwise
-     * return FAILED_VALUE.
-     * Set the error message if it fails.
-     * @return int
-     */
-    private int validateMaxFileStates() {
-        int maxFileStates = validateIntegerTextEntry(this.maxStatesText);
-        if (maxFileStates == FAILED_VALUE) {
-			return maxFileStates;
-		}
-
-        if (maxFileStates > FILE_STATES_MAXIMUM) {
-            setErrorMessage(NLS.bind(IDEWorkbenchMessages.FileHistory_aboveMaxEntries, String.valueOf(FILE_STATES_MAXIMUM)));
-            return FAILED_VALUE;
-        }
-
-        return maxFileStates;
-    }
-
-    /**
-     * Validate the maximum file state size.
-     * Return the value if successful, otherwise
-     * return FAILED_VALUE.
-     * Set the error message if it fails.
-     * @return long
-     */
-    private long validateMaxFileStateSize() {
-        long maxFileStateSize = validateLongTextEntry(this.maxStateSizeText);
-        if (maxFileStateSize == FAILED_VALUE) {
-			return maxFileStateSize;
-		}
-
-        if (maxFileStateSize > STATE_SIZE_MAXIMUM) {
-            setErrorMessage(NLS.bind(IDEWorkbenchMessages.FileHistory_aboveMaxFileSize, String.valueOf(STATE_SIZE_MAXIMUM)));
-            return FAILED_VALUE;
-        }
-
-        return maxFileStateSize;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileSystemSelectionArea.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileSystemSelectionArea.java
deleted file mode 100644
index 4b79c33..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/FileSystemSelectionArea.java
+++ /dev/null
@@ -1,139 +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.ide.dialogs;
-
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-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.Label;
-import org.eclipse.ui.internal.ide.filesystem.FileSystemConfiguration;
-import org.eclipse.ui.internal.ide.filesystem.FileSystemMessages;
-import org.eclipse.ui.internal.ide.filesystem.FileSystemSupportRegistry;
-
-/**
- * FileSystemSelectionArea is the area used to select the file system.
- * @since 3.2
- * 
- */
-
-public class FileSystemSelectionArea {
-
-	private Label fileSystemTitle;
-	private ComboViewer fileSystems;
-	
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public FileSystemSelectionArea(){
-		
-	}
-
-	/**
-	 * Create the contents of the receiver in composite.
-	 * @param composite
-	 */
-	public void createContents(Composite composite) {
-
-		fileSystemTitle = new Label(composite, SWT.NONE);
-		fileSystemTitle.setText(FileSystemMessages.FileSystemSelection_title);
-
-		fileSystems = new ComboViewer(composite, SWT.READ_ONLY);
-
-		fileSystems.getControl().setLayoutData(
-				new GridData(GridData.FILL_HORIZONTAL
-						| GridData.GRAB_HORIZONTAL));
-
-		fileSystems.setLabelProvider(new LabelProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-			 */
-			public String getText(Object element) {
-				return ((FileSystemConfiguration) element).getLabel();
-			}
-		});
-
-		fileSystems.setContentProvider(new IStructuredContentProvider() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-			 */
-			public void dispose() {
-				// Nothing to do
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				return FileSystemSupportRegistry.getInstance()
-						.getConfigurations();
-			}
-
-			/*
-			 * (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) {
-				// Nothing to do
-			}
-
-		});
-
-		fileSystems.setInput(this);
-		fileSystems.setSelection(new StructuredSelection(
-				FileSystemSupportRegistry.getInstance()
-						.getDefaultConfiguration()));
-	}
-
-	/**
-	 * Return the selected configuration.
-	 * @return FileSystemConfiguration or <code>null</code> if nothing
-	 * is selected.
-	 */
-	public FileSystemConfiguration getSelectedConfiguration() {
-		ISelection selection = fileSystems.getSelection();
-		
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection structured = (IStructuredSelection) selection;
-			if (structured.size() == 1) {
-				return (FileSystemConfiguration) structured.getFirstElement();
-			}
-		}
-		
-		return null;
-	}
-
-	/**
-	 * Set the enablement state of the widget.
-	 * @param enabled
-	 */
-	public void setEnabled(boolean enabled) {
-		fileSystemTitle.setEnabled(enabled);
-		fileSystems.getControl().setEnabled(enabled);
-		
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEEditorsPreferencePage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEEditorsPreferencePage.java
deleted file mode 100644
index 5c86a73..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEEditorsPreferencePage.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.internal.ide.dialogs;
-
-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.ui.dialogs.PreferenceLinkArea;
-import org.eclipse.ui.internal.dialogs.EditorsPreferencePage;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-
-/**
- * Extends the Editors preference page with IDE-specific settings.
- * 
- * Note: want IDE settings to appear in main Editors preference page (via
- * subclassing), however the superclass, EditorsPreferencePage, is internal
- */
-public class IDEEditorsPreferencePage extends EditorsPreferencePage {
-
-	protected Control createContents(Composite parent) {
-		Composite composite = createComposite(parent);
-        
-		PreferenceLinkArea fileEditorsArea = new PreferenceLinkArea(composite, SWT.NONE,
-				"org.eclipse.ui.preferencePages.FileEditors", IDEWorkbenchMessages.IDEEditorsPreferencePage_WorkbenchPreference_FileEditorsRelatedLink,//$NON-NLS-1$
-				(IWorkbenchPreferenceContainer) getContainer(),null);
-
-		GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
-		fileEditorsArea.getControl().setLayoutData(data);
-
-        PreferenceLinkArea contentTypeArea = new PreferenceLinkArea(composite, SWT.NONE,
-                "org.eclipse.ui.preferencePages.ContentTypes", IDEWorkbenchMessages.IDEEditorsPreferencePage_WorkbenchPreference_contentTypesRelatedLink,//$NON-NLS-1$
-                (IWorkbenchPreferenceContainer) getContainer(),null);
-        
-        data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
-        contentTypeArea.getControl().setLayoutData(data);
-        
-		PreferenceLinkArea appearanceArea = new PreferenceLinkArea(composite, SWT.NONE,
-				"org.eclipse.ui.preferencePages.Views", IDEWorkbenchMessages.IDEEditorsPreferencePage_WorkbenchPreference_viewsRelatedLink,//$NON-NLS-1$
-				(IWorkbenchPreferenceContainer) getContainer(),null);
-
-		data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
-		appearanceArea.getControl().setLayoutData(data);
-			
-		createEditorHistoryGroup(composite);
-
-		createSpace(composite);
-		createShowMultipleEditorTabsPref(composite);
-		createEditorReuseGroup(composite);
-
-		applyDialogFont(composite);
-		
-        super.setHelpContext(parent);
-        
-		return composite;
-	}
-	
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEPerspectivesPreferencePage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEPerspectivesPreferencePage.java
deleted file mode 100644
index c7e02bd..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEPerspectivesPreferencePage.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.dialogs;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.RadioGroupFieldEditor;
-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.ui.PlatformUI;
-import org.eclipse.ui.internal.dialogs.PerspectivesPreferencePage;
-import org.eclipse.ui.internal.ide.IDEInternalPreferences;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * Extends the Perspectives preference page with IDE-specific settings.
- * 
- * Note: want IDE settings to appear in main Perspectives preference page (via
- * subclassing), however the superclass, PerspectivesPreferencePage, is
- * internal
- */
-public class IDEPerspectivesPreferencePage extends PerspectivesPreferencePage {
-    private final String PROJECT_SWITCH_PERSP_MODE_TITLE = IDEWorkbenchMessages.ProjectSwitchPerspectiveMode_optionsTitle;
-
-    private final String PSPM_ALWAYS_TEXT = IDEWorkbenchMessages.ProjectSwitchPerspectiveMode_always;
-
-    private final String PSPM_NEVER_TEXT = IDEWorkbenchMessages.ProjectSwitchPerspectiveMode_never;
-
-    private final String PSPM_PROMPT_TEXT = IDEWorkbenchMessages.ProjectSwitchPerspectiveMode_prompt;
-
-    private RadioGroupFieldEditor projectSwitchField;
-
-    /**
-     * Creates the page's UI content.
-     */
-    protected Control createContents(Composite parent) {
-        // @issue if the product subclasses this page, then it should provide
-        // the help content
-    	PlatformUI
-				.getWorkbench()
-				.getHelpSystem()
-				.setHelp(
-						parent,
-						org.eclipse.ui.internal.IWorkbenchHelpContextIds.PERSPECTIVES_PREFERENCE_PAGE);
-
-        Composite composite = createComposite(parent);
-
-        createOpenPerspButtonGroup(composite);
-        createOpenViewButtonGroup(composite);
-        createProjectPerspectiveGroup(composite);
-        createCustomizePerspective(composite);
-
-        return composite;
-    }
-
-    /**
-     * Creates a composite that contains buttons for selecting the preference
-     * opening new project selections.
-     */
-    private void createProjectPerspectiveGroup(Composite composite) {
-
-        Composite projectComposite = new Composite(composite, SWT.NONE);
-        projectComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        projectComposite.setFont(composite.getFont());
-
-        String[][] namesAndValues = {
-                { PSPM_ALWAYS_TEXT, IDEInternalPreferences.PSPM_ALWAYS },
-                { PSPM_NEVER_TEXT, IDEInternalPreferences.PSPM_NEVER },
-                { PSPM_PROMPT_TEXT, IDEInternalPreferences.PSPM_PROMPT } };
-        projectSwitchField = new RadioGroupFieldEditor(
-                IDEInternalPreferences.PROJECT_SWITCH_PERSP_MODE,
-                PROJECT_SWITCH_PERSP_MODE_TITLE, namesAndValues.length,
-                namesAndValues, projectComposite, true);
-        projectSwitchField.setPreferenceStore(getIDEPreferenceStore());
-        projectSwitchField.setPage(this);
-        projectSwitchField.load();
-    }
-
-    /**
-     * Returns the IDE preference store.
-     */
-    protected IPreferenceStore getIDEPreferenceStore() {
-        return IDEWorkbenchPlugin.getDefault().getPreferenceStore();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.dialogs.PerspectivesPreferencePage#performDefaults()
-     */
-    protected void performDefaults() {
-        projectSwitchField.loadDefault();
-        super.performDefaults();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.dialogs.PerspectivesPreferencePage#performOk()
-     */
-    public boolean performOk() {
-        projectSwitchField.store();
-        IDEWorkbenchPlugin.getDefault().savePluginPreferences();
-        return super.performOk();
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEResourceInfoUtils.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEResourceInfoUtils.java
deleted file mode 100644
index 54eb802..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEResourceInfoUtils.java
+++ /dev/null
@@ -1,419 +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.ide.dialogs;
-
-import com.ibm.icu.text.DateFormat;
-import com.ibm.icu.text.MessageFormat;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Date;
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.filesystem.IFileStore;
-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.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * Utility class supporting common information required from resources.
- * 
- * @since 3.2
- * 
- */
-public class IDEResourceInfoUtils {
-
-	private static String BYTES_LABEL = IDEWorkbenchMessages.ResourceInfo_bytes;
-
-	/**
-	 * An empty string to reuse.
-	 */
-	public static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
-	private static String FILE_LABEL = IDEWorkbenchMessages.ResourceInfo_file;
-
-	private static String FILE_NOT_EXIST_TEXT = IDEWorkbenchMessages.ResourceInfo_fileNotExist;
-
-	private static String FILE_TYPE_FORMAT = IDEWorkbenchMessages.ResourceInfo_fileTypeFormat;
-
-	private static String FOLDER_LABEL = IDEWorkbenchMessages.ResourceInfo_folder;
-
-	private static String LINKED_FILE_LABEL = IDEWorkbenchMessages.ResourceInfo_linkedFile;
-
-	private static String LINKED_FOLDER_LABEL = IDEWorkbenchMessages.ResourceInfo_linkedFolder;
-
-	private static String MISSING_PATH_VARIABLE_TEXT = IDEWorkbenchMessages.ResourceInfo_undefinedPathVariable;
-
-	private static String NOT_EXIST_TEXT = IDEWorkbenchMessages.ResourceInfo_notExist;
-
-	private static String NOT_LOCAL_TEXT = IDEWorkbenchMessages.ResourceInfo_notLocal;
-
-	private static String PROJECT_LABEL = IDEWorkbenchMessages.ResourceInfo_project;
-
-	private static String UNKNOWN_LABEL = IDEWorkbenchMessages.ResourceInfo_unknown;
-
-	/**
-	 * Return whether or not the file called pathName exists.
-	 * @param pathName
-	 * @return boolean <code>true</code> if the file exists.
-	 * @see IFileInfo#exists()
-	 */
-	public static boolean exists(String pathName) {
-		IFileInfo info = getFileInfo(pathName);
-		if (info == null) {
-			return false;
-		}
-		return info.exists();
-	}
-
-	private static String getContentTypeString(IContentDescription description) {
-		if (description != null) {
-			IContentType contentType = description.getContentType();
-			if (contentType != null) {
-				return contentType.getName();
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Return the value for the date String for the timestamp of the supplied
-	 * resource.
-	 * 
-	 * @param resource
-	 *            The resource to query
-	 * @return String
-	 */
-	public static String getDateStringValue(IResource resource) {
-		if (!resource.isLocal(IResource.DEPTH_ZERO)) {
-			return NOT_LOCAL_TEXT;
-		}
-
-		//don't access the file system for closed projects (bug 151089)
-		if (!isProjectAccessible(resource)) {
-			return UNKNOWN_LABEL;
-		}
-
-		URI location = resource.getLocationURI();
-		if (location == null) {
-			if (resource.isLinked()) {
-				return MISSING_PATH_VARIABLE_TEXT;
-			}
-			return NOT_EXIST_TEXT;
-		}
-
-		IFileInfo info = getFileInfo(location);
-		if (info == null) {
-			return UNKNOWN_LABEL;
-		}
-
-		if (info.exists()) {
-			DateFormat format = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.MEDIUM);
-			return format.format(new Date(info.getLastModified()));
-		}
-		return NOT_EXIST_TEXT;
-	}
-
-	/**
-	 * Return the fileInfo at pathName or <code>null</code> if the format is
-	 * invalid or if the file info cannot be determined.
-	 * 
-	 * @param pathName
-	 * @return IFileInfo or <code>null</code>
-	 */
-	public static IFileInfo getFileInfo(IPath pathName) {
-		IFileStore store = getFileStore(pathName.toFile().toURI());
-		if (store == null) {
-			return null;
-		}
-		return store.fetchInfo();
-	}
-
-	/**
-	 * Return the fileInfo at pathName or <code>null</code> if the format is
-	 * invalid or if the file info cannot be determined.
-	 * 
-	 * @param pathName
-	 * @return IFileInfo or <code>null</code>
-	 */
-	public static IFileInfo getFileInfo(String pathName) {
-		IFileStore store = getFileStore(pathName);
-		if (store == null) {
-			return null;
-		}
-		return store.fetchInfo();
-	}
-
-	/**
-	 * Return the fileInfo for location. Return <code>null</code> if there is
-	 * a CoreException looking it up
-	 * 
-	 * @param location
-	 * @return String or <code>null</code>
-	 */
-	public static IFileInfo getFileInfo(URI location) {
-		IFileStore store = getFileStore(location);
-		if (store == null) {
-			return null;
-		}
-		return store.fetchInfo();
-	}
-
-	/**
-	 * Get the file store for the string.
-	 * @param string
-	 * @return IFileStore or <code>null</code> if there is a
-	 * {@link CoreException}.
-	 */
-	public static IFileStore getFileStore(String string) {
-		return getFileStore(new Path(string).toFile().toURI());
-	}
-
-	/**
-	 * Get the file store for the URI.
-	 * @param uri
-	 * @return IFileStore or <code>null</code> if there is a
-	 * {@link CoreException}.
-	 */
-	public static IFileStore getFileStore(URI uri) {
-		try {
-			return EFS.getStore(uri);
-		} catch (CoreException e) {
-			log(e);
-			return null;
-		}
-	}
-
-	/**
-	 * Get the location of a resource
-	 * 
-	 * @param resource
-	 * @return String the text to display the location
-	 */
-	public static String getLocationText(IResource resource) {
-		if (!resource.isLocal(IResource.DEPTH_ZERO)) {
-			return NOT_LOCAL_TEXT;
-		}
-
-		URI resolvedLocation = resource.getLocationURI();
-		URI location = resolvedLocation;
-		if (resource.isLinked()) {
-			location = resource.getRawLocationURI();
-		}
-		if (location == null) {
-			return NOT_EXIST_TEXT;
-		}
-
-		IFileStore store = getFileStore(location);
-		//don't access the file system for closed projects (bug 151089)
-		if (isProjectAccessible(resource) && resolvedLocation != null && !isPathVariable(resource)) {
-			// No path variable used. Display the file not exist message
-			// in the location. Fixes bug 33318.
-			if (store == null) {
-				return UNKNOWN_LABEL;
-			}
-			if (!store.fetchInfo().exists()) {
-				return NLS.bind(FILE_NOT_EXIST_TEXT, location.toString());
-			}
-		}
-		if (store != null) {
-			return store.toString();
-		}
-		return location.toString();
-	}
-
-	/**
-	 * Get the resolved location of a resource. This resolves path variables if
-	 * present in the resource path.
-	 * 
-	 * @param resource
-	 * @return String
-	 */
-	public static String getResolvedLocationText(IResource resource) {
-		if (!resource.isLocal(IResource.DEPTH_ZERO)) {
-			return NOT_LOCAL_TEXT;
-		}
-
-		URI location = resource.getLocationURI();
-		if (location == null) {
-			if (resource.isLinked()) {
-				return MISSING_PATH_VARIABLE_TEXT;
-			}
-
-			return NOT_EXIST_TEXT;
-		}
-
-		IFileStore store = getFileStore(location);
-		if (store == null) {
-			return UNKNOWN_LABEL;
-		}
-
-		//don't access the file system for closed projects (bug 151089)
-		if (isProjectAccessible(resource) && !store.fetchInfo().exists()) {
-			return NLS.bind(FILE_NOT_EXIST_TEXT, store.toString());
-		}
-
-		return store.toString();
-	}
-
-	/**
-	 * Return a String that indicates the size of the supplied file.
-	 * 
-	 * @param resource
-	 * @return String
-	 */
-	public static String getSizeString(IResource resource) {
-		if (resource.getType() != IResource.FILE) {
-			return ""; //$NON-NLS-1$
-		}
-
-		IFile file = (IFile) resource;
-		if (!file.isLocal(IResource.DEPTH_ZERO)) {
-			return NOT_LOCAL_TEXT;
-		}
-
-		URI location = file.getLocationURI();
-		if (location == null) {
-			if (file.isLinked()) {
-				return MISSING_PATH_VARIABLE_TEXT;
-			}
-
-			return NOT_EXIST_TEXT;
-		}
-
-		IFileInfo info = getFileInfo(location);
-		if (info == null) {
-			return UNKNOWN_LABEL;
-		}
-
-		if (info.exists()) {
-			return NLS.bind(BYTES_LABEL, Long.toString(info.getLength()));
-		}
-
-		return NOT_EXIST_TEXT;
-	}
-
-	/**
-	 * Get the string that identifies the type of this resource.
-	 * 
-	 * @param resource
-	 * @param description
-	 * @return String
-	 */
-	public static String getTypeString(IResource resource, IContentDescription description) {
-
-		if (resource.getType() == IResource.FILE) {
-			if (resource.isLinked()) {
-				return LINKED_FILE_LABEL;
-			}
-
-			if (resource instanceof IFile) {
-				String contentType = getContentTypeString(description);
-				if (contentType != null) {
-					return MessageFormat.format(FILE_TYPE_FORMAT, new String[] {contentType});
-				}
-			}
-			return FILE_LABEL;
-		}
-
-		if (resource.getType() == IResource.FOLDER) {
-			if (resource.isLinked()) {
-				return LINKED_FOLDER_LABEL;
-			}
-
-			return FOLDER_LABEL;
-		}
-
-		if (resource.getType() == IResource.PROJECT) {
-			return PROJECT_LABEL;
-		}
-
-		// Should not be possible
-		return UNKNOWN_LABEL;
-	}
-
-	/**
-	 * Returns whether the given resource is a linked resource bound to a path
-	 * variable.
-	 * 
-	 * @param resource
-	 *            resource to test
-	 * @return boolean <code>true</code> the given resource is a linked
-	 *         resource bound to a path variable. <code>false</code> the given
-	 *         resource is either not a linked resource or it is not using a
-	 *         path variable.
-	 */
-	private static boolean isPathVariable(IResource resource) {
-		if (!resource.isLinked()) {
-			return false;
-		}
-
-		URI resolvedLocation = resource.getLocationURI();
-		if (resolvedLocation == null) {
-			// missing path variable
-			return true;
-		}
-		URI rawLocation = resource.getRawLocationURI();
-		if (resolvedLocation.equals(rawLocation)) {
-			return false;
-		}
-
-		return true;
-	}
-
-	/**
-	 * Returns whether the resource's project is available
-	 */
-	private static boolean isProjectAccessible(IResource resource) {
-		IProject project = resource.getProject();
-		return project != null && project.isAccessible();
-	}
-
-	/**
-	 * Return the file stores that are a child of store that the filter 
-	 * accepts.
-	 * @param store
-	 * @param fileFilter
-	 * @param monitor
-	 * @return IFileStore[]
-	 */
-	public static IFileStore[] listFileStores(IFileStore store, IFileStoreFilter fileFilter, IProgressMonitor monitor) {
-		ArrayList result = new ArrayList();
-		IFileStore[] children;
-		try {
-			children = store.childStores(EFS.NONE, monitor);
-		} catch (CoreException e) {
-			log(e);
-			return new IFileStore[0];
-		}
-		for (int i = 0; i < children.length; i++) {
-			if (fileFilter.accept(children[i])) {
-				result.add(children[i]);
-			}
-		}
-		IFileStore[] stores = new IFileStore[result.size()];
-		result.toArray(stores);
-		return stores;
-	}
-
-	private static void log(CoreException e) {
-		IDEWorkbenchPlugin.log(e.getMessage(), e.getStatus());
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEStartupPreferencePage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEStartupPreferencePage.java
deleted file mode 100644
index 7f6798f..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEStartupPreferencePage.java
+++ /dev/null
@@ -1,150 +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.ide.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.ChooseWorkspaceData;
-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 launchPromptButton;
-
-    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);
-
-        createLaunchPromptPref(composite);
-        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();
-
-        launchPromptButton.setSelection(true);
-
-        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());
-
-        // TODO: This should get the value from the configuration preference
-        //       area, but dj said we shouldn't use it yet; some final details are
-        //       being worked out. Hopefully it will be available soon, at which time
-        //       the entire recentWorkspaces.xml file can be removed. But until then,
-        //       this preference reads/writes the file each time.
-        ChooseWorkspaceData.setShowDialogValue(launchPromptButton
-                .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 createLaunchPromptPref(Composite composite) {
-        launchPromptButton = new Button(composite, SWT.CHECK);
-        launchPromptButton.setText(IDEWorkbenchMessages.StartupPreferencePage_launchPromptButton);
-        launchPromptButton.setFont(composite.getFont());
-
-        // TODO: This should get the value from the configuration preference
-        //       area, but dj said we shouldn't use it yet; some final details are
-        //       being worked out. Hopefully it will be available soon, at which time
-        //       the entire recentWorkspaces.xml file can be removed. But until then,
-        //       this preference reads/writes the file each time.
-        launchPromptButton.setSelection(ChooseWorkspaceData
-                .getShowDialogValue());
-    }
-
-    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/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkbenchPreferencePage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkbenchPreferencePage.java
deleted file mode 100644
index 4b571aa..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkbenchPreferencePage.java
+++ /dev/null
@@ -1,76 +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.ide.dialogs;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.dialogs.WorkbenchPreferencePage;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * The IDE workbench main preference page.
- * 
- *Note: want IDE settings to appear in main Workbench preference page (via subclassing),
- *   however the superclass, WorkbenchPreferencePage, is internal
- */
-public class IDEWorkbenchPreferencePage extends WorkbenchPreferencePage
-        implements IWorkbenchPreferencePage {
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.preference.PreferencePage
-     */
-    protected Control createContents(Composite parent) {
-
-    	PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-				IWorkbenchHelpContextIds.WORKBENCH_PREFERENCE_PAGE);
-
-        Composite composite = createComposite(parent);
-
-        createShowUserDialogPref(composite);
-        createStickyCyclePref(composite);
-        createHeapStatusPref(composite);
-        
-        createOpenModeGroup(composite);
-
-        applyDialogFont(composite);
-
-        return composite;
-    }
-
-     /**
-     * Returns the IDE preference store.
-     * @return the preference store.
-     */
-    protected IPreferenceStore getIDEPreferenceStore() {
-        return IDEWorkbenchPlugin.getDefault().getPreferenceStore();
-    }
-
-    /**
-     * The default button has been pressed.
-     */
-    protected void performDefaults() {
-		super.performDefaults();
-    }
-
-    /**
-     * The user has pressed Ok. Store/apply this page's values appropriately.
-     */
-    public boolean performOk() {
-        return super.performOk();
-    }
-   
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkspacePreferencePage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkspacePreferencePage.java
deleted file mode 100644
index 96663e4..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkspacePreferencePage.java
+++ /dev/null
@@ -1,409 +0,0 @@
- /****************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.dialogs;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.preference.FieldEditor;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.IntegerFieldEditor;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.preference.RadioGroupFieldEditor;
-import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-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.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.WorkbenchEncoding;
-import org.eclipse.ui.dialogs.PreferenceLinkArea;
-import org.eclipse.ui.ide.IDEEncoding;
-import org.eclipse.ui.ide.dialogs.ResourceEncodingFieldEditor;
-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.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.LineDelimiterEditor;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-
-/**
- * The IDEWorkspacePreferencePage is the page used to set IDE-specific preferences settings
- * related to workspace.
-
- *Note:This class extends from PreferencePage,and there's no WorkspacePreferencePage class.
- *Hence when the IDE settings doesn't appear in this preference page, this page will be empty.
- */
-public class IDEWorkspacePreferencePage extends PreferencePage
-        implements IWorkbenchPreferencePage{
-
-	private Button autoBuildButton;
-
-    private Button autoSaveAllButton;
-
-    private IntegerFieldEditor saveInterval;
-
-    private Button autoRefreshButton;
-    
-    private ResourceEncodingFieldEditor encodingEditor;
-
-	private LineDelimiterEditor lineSeparatorEditor;
-	
-    //A boolean to indicate if the user settings were cleared.
-	private boolean clearUserSettings = false;
-
-	private RadioGroupFieldEditor openReferencesEditor;
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.preference.PreferencePage
-     */
-    protected Control createContents(Composite parent) {
-
-    	PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-				IIDEHelpContextIds.WORKSPACE_PREFERENCE_PAGE);
-
-        Composite composite = createComposite(parent);
-
-		PreferenceLinkArea area = new PreferenceLinkArea(composite, SWT.NONE,
-				"org.eclipse.ui.preferencePages.Startup", IDEWorkbenchMessages.IDEWorkspacePreference_relatedLink,//$NON-NLS-1$
-				(IWorkbenchPreferenceContainer) getContainer(),null);
-
-		GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
-		area.getControl().setLayoutData(data);
-        
-		Label space = new Label(composite,SWT.NONE);
-		space.setLayoutData(new GridData());
-		
-        createAutoBuildPref(composite);
-        createAutoRefreshControls(composite);
-        createSaveAllBeforeBuildPref(composite);
-        
-        createSpace(composite);
-        createSaveIntervalGroup(composite);
-		createSpace(composite);
-		
-		createOpenPrefControls(composite);
-		
-		Composite lower = new Composite(composite,SWT.NONE);
-		GridLayout lowerLayout = new GridLayout();
-		lowerLayout.numColumns = 2;
-		lowerLayout.makeColumnsEqualWidth = true;
-		lower.setLayout(lowerLayout);
-		
-		lower.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-		
-		createEncodingEditorControls(lower);
-		createLineSeparatorEditorControls(lower);
-		applyDialogFont(composite);
-
-        return composite;
-    }
-
-    /**
-     * Creates controls for the preference to open required projects when
-     * opening a project.
-	 * @param parent The parent control
-	 */
-	private void createOpenPrefControls(Composite parent) {
-		String name = IDEInternalPreferences.OPEN_REQUIRED_PROJECTS;
-		String label = IDEWorkbenchMessages.IDEWorkspacePreference_openReferencedProjects;
-        String[][] namesAndValues = {
-                { IDEWorkbenchMessages.Always, IDEInternalPreferences.PSPM_ALWAYS },
-                { IDEWorkbenchMessages.Never, IDEInternalPreferences.PSPM_NEVER },
-                { IDEWorkbenchMessages.Prompt, IDEInternalPreferences.PSPM_PROMPT } };
-		openReferencesEditor = new RadioGroupFieldEditor(name, label, 3, namesAndValues, parent, true);
-		openReferencesEditor.setPreferenceStore(getIDEPreferenceStore());
-		openReferencesEditor.setPage(this);
-		openReferencesEditor.load();
-	}
-
-	protected void createSaveAllBeforeBuildPref(Composite composite) {
-        autoSaveAllButton = new Button(composite, SWT.CHECK);
-        autoSaveAllButton.setText(IDEWorkbenchMessages.IDEWorkspacePreference_savePriorToBuilding);
-        autoSaveAllButton.setToolTipText(IDEWorkbenchMessages.IDEWorkspacePreference_savePriorToBuildingToolTip);
-        autoSaveAllButton.setSelection(getIDEPreferenceStore().getBoolean(
-                IDEInternalPreferences.SAVE_ALL_BEFORE_BUILD));
-    }
-
-    protected void createAutoBuildPref(Composite composite) {
-        autoBuildButton = new Button(composite, SWT.CHECK);
-        autoBuildButton.setText(IDEWorkbenchMessages.IDEWorkspacePreference_autobuild);
-        autoBuildButton.setToolTipText(IDEWorkbenchMessages.IDEWorkspacePreference_autobuildToolTip);
-        autoBuildButton.setSelection(ResourcesPlugin.getWorkspace()
-                .isAutoBuilding());
-    }
-
-    /**
-     * Create a composite that contains entry fields specifying save interval
-     * preference.
-     * 
-     * @param composite the Composite the group is created in.
-     */
-    private void createSaveIntervalGroup(Composite composite) {
-        Composite groupComposite = new Composite(composite, SWT.LEFT);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        groupComposite.setLayout(layout);
-        GridData gd = new GridData();
-        gd.horizontalAlignment = GridData.FILL;
-        gd.grabExcessHorizontalSpace = true;
-        groupComposite.setLayoutData(gd);
-
-        saveInterval = new IntegerFieldEditor(
-                IDEInternalPreferences.SAVE_INTERVAL, IDEWorkbenchMessages.WorkbenchPreference_saveInterval,
-                groupComposite);
-
-        // @issue we should drop our preference constant and let clients use
-        // core's pref. ours is not up-to-date anyway if someone changes this
-        // interval directly thru core api.
-        saveInterval.setPreferenceStore(getIDEPreferenceStore());
-        saveInterval.setPage(this);
-        saveInterval.setTextLimit(Integer.toString(
-                IDEInternalPreferences.MAX_SAVE_INTERVAL).length());
-        saveInterval.setErrorMessage(NLS.bind(IDEWorkbenchMessages.WorkbenchPreference_saveIntervalError, new Integer(IDEInternalPreferences.MAX_SAVE_INTERVAL)));
-        saveInterval
-                .setValidateStrategy(StringFieldEditor.VALIDATE_ON_KEY_STROKE);
-        saveInterval.setValidRange(1, IDEInternalPreferences.MAX_SAVE_INTERVAL);
-
-        IWorkspaceDescription description = ResourcesPlugin.getWorkspace()
-                .getDescription();
-        long interval = description.getSnapshotInterval() / 60000;
-        saveInterval.setStringValue(Long.toString(interval));
-
-        saveInterval.setPropertyChangeListener(new IPropertyChangeListener() {
-
-            public void propertyChange(PropertyChangeEvent event) {
-                if (event.getProperty().equals(FieldEditor.IS_VALID)) {
-					setValid(saveInterval.isValid());
-				}
-            }
-        });
-
-    }
-	
-	/**
-     * Create the Refresh controls
-     * 
-     * @param parent
-     */
-    private void createAutoRefreshControls(Composite parent) {
-
-        this.autoRefreshButton = new Button(parent, SWT.CHECK);
-        this.autoRefreshButton.setText(IDEWorkbenchMessages.IDEWorkspacePreference_RefreshButtonText);
-        this.autoRefreshButton.setToolTipText(IDEWorkbenchMessages.IDEWorkspacePreference_RefreshButtonToolTip);
-
-        boolean autoRefresh = ResourcesPlugin.getPlugin()
-                .getPluginPreferences().getBoolean(
-                        ResourcesPlugin.PREF_AUTO_REFRESH);
-        this.autoRefreshButton.setSelection(autoRefresh);
-    }
-
-    /**
-     * Create a composite that contains the encoding controls
-     * 
-     * @param parent
-     */
-    private void createEncodingEditorControls(Composite parent){    			
-		Composite encodingComposite = new Composite(parent,SWT.NONE);
-		encodingComposite.setLayout(new GridLayout());
-		encodingComposite.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-		
-		encodingEditor = new ResourceEncodingFieldEditor(IDEWorkbenchMessages.WorkbenchPreference_encoding, encodingComposite, ResourcesPlugin
-				.getWorkspace().getRoot());
-
-		encodingEditor.setPage(this);
-		encodingEditor.load();
-		encodingEditor.setPropertyChangeListener(new IPropertyChangeListener() {
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-			 */
-			public void propertyChange(PropertyChangeEvent event) {
-				if (event.getProperty().equals(FieldEditor.IS_VALID)) {
-					setValid(encodingEditor.isValid());
-				}
-
-			}
-		});
-    }
-    
-    /**
-     * Create a composite that contains the line delimiter controls
-     * 
-     * @param parent
-     */
-    private void createLineSeparatorEditorControls(Composite parent){
-    	Composite lineComposite = new Composite(parent,SWT.NONE);
-		lineComposite.setLayout(new GridLayout());
-		lineComposite.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-		
-		lineSeparatorEditor = new LineDelimiterEditor(lineComposite);
-		lineSeparatorEditor.doLoad();
-    }
-    /**
-     * Returns the IDE preference store.
-     * @return the preference store.
-     */
-    protected IPreferenceStore getIDEPreferenceStore() {
-        return IDEWorkbenchPlugin.getDefault().getPreferenceStore();
-    }
-	
-	/**
-     * Creates a tab of one horizontal spans.
-     * 
-     * @param parent
-     *            the parent in which the tab should be created
-     */
-    protected static void createSpace(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);
-    }
-
-	/**
-     * Creates the composite which will contain all the preference controls for
-     * this page.
-     * 
-     * @param parent
-     *            the parent composite
-     * @return the composite for this page
-     */
-    protected Composite createComposite(Composite parent) {
-        Composite composite = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        composite.setLayout(layout);
-        composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-        return composite;
-    }
-	
-	public void init(org.eclipse.ui.IWorkbench workbench) {
-        //no-op
-    }
-    
-    /**
-     * The default button has been pressed.
-     */
-    protected void performDefaults() {
-
-        // core holds onto this preference.
-        boolean autoBuild = ResourcesPlugin.getPlugin().getPluginPreferences()
-                .getDefaultBoolean(ResourcesPlugin.PREF_AUTO_BUILDING);
-        autoBuildButton.setSelection(autoBuild);
-
-        IPreferenceStore store = getIDEPreferenceStore();
-        autoSaveAllButton
-                .setSelection(store
-                        .getDefaultBoolean(IDEInternalPreferences.SAVE_ALL_BEFORE_BUILD));
-        saveInterval.loadDefault();
-
-		
-        boolean autoRefresh = ResourcesPlugin.getPlugin()
-                .getPluginPreferences().getDefaultBoolean(
-                        ResourcesPlugin.PREF_AUTO_REFRESH);
-        autoRefreshButton.setSelection(autoRefresh);
-        
-        clearUserSettings = true;
-
-		List encodings = WorkbenchEncoding.getDefinedEncodings();
-		Collections.sort(encodings);
-        encodingEditor.loadDefault();
-		lineSeparatorEditor.loadDefault();
-		openReferencesEditor.loadDefault();
-
-        super.performDefaults();
-    }
-
-    /**
-     * The user has pressed Ok. Store/apply this page's values appropriately.
-     */
-    public boolean performOk() {
-        // set the workspace auto-build flag
-        IWorkspaceDescription description = ResourcesPlugin.getWorkspace()
-                .getDescription();
-        if (autoBuildButton.getSelection() != ResourcesPlugin.getWorkspace()
-                .isAutoBuilding()) {
-            try {
-                description.setAutoBuilding(autoBuildButton.getSelection());
-                ResourcesPlugin.getWorkspace().setDescription(description);
-            } catch (CoreException e) {
-                IDEWorkbenchPlugin.log(
-                        "Error changing auto build workspace setting.", e//$NON-NLS-1$
-                                .getStatus());
-            }
-        }
-
-        IPreferenceStore store = getIDEPreferenceStore();
-
-        // store the save all prior to build setting
-        store.setValue(IDEInternalPreferences.SAVE_ALL_BEFORE_BUILD,
-                autoSaveAllButton.getSelection());
-
-        // store the workspace save interval
-        // @issue we should drop our preference constant and let clients use
-        // core's pref. ours is not up-to-date anyway if someone changes this
-        // interval directly thru core api.
-        long oldSaveInterval = description.getSnapshotInterval() / 60000;
-        long newSaveInterval = new Long(saveInterval.getStringValue())
-                .longValue();
-        if (oldSaveInterval != newSaveInterval) {
-            try {
-                description.setSnapshotInterval(newSaveInterval * 60000);
-                ResourcesPlugin.getWorkspace().setDescription(description);
-                store.firePropertyChangeEvent(
-                        IDEInternalPreferences.SAVE_INTERVAL, new Integer(
-                                (int) oldSaveInterval), new Integer(
-                                (int) newSaveInterval));
-            } catch (CoreException e) {
-                IDEWorkbenchPlugin.log(
-                        "Error changing save interval preference", e //$NON-NLS-1$
-                                .getStatus());
-            }
-        }
-        
-        Preferences preferences = ResourcesPlugin.getPlugin()
-                .getPluginPreferences();
-
-        boolean autoRefresh = autoRefreshButton.getSelection();
-        preferences.setValue(ResourcesPlugin.PREF_AUTO_REFRESH, autoRefresh);
-        
-        if (clearUserSettings) {
-			IDEEncoding.clearUserEncodings();
-		}
-        encodingEditor.store();
-		lineSeparatorEditor.store();
-		openReferencesEditor.store();
-        return super.performOk();
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IElementFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IElementFilter.java
deleted file mode 100644
index 41ac34e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IElementFilter.java
+++ /dev/null
@@ -1,34 +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.ide.dialogs;
-
-import java.util.Collection;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * The IElementFilter is a interface that defines 
- * the api for filtering the current selection of 
- * a ResourceTreeAndListGroup in order to find a 
- * subset to update as the result of a type filtering.
- * This is meant as an internal class and is used exlcusively
- * by the import dialog.
- */
-
-public interface IElementFilter {
-
-    public void filterElements(Collection elements, IProgressMonitor monitor)
-            throws InterruptedException;
-
-    public void filterElements(Object[] elements, IProgressMonitor monitor)
-            throws InterruptedException;
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IFileStoreFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IFileStoreFilter.java
deleted file mode 100644
index fdb6336..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IFileStoreFilter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.ide.dialogs;
-
-import org.eclipse.core.filesystem.IFileStore;
-
-/**
- * IFileStoreFilter is an interface that defines a filter on file
- * stores.
- * @since 3.2
- *
- */
-public interface IFileStoreFilter {
-	
-	/**
-	 * Return whether or not this store is accepted by the receiver.
-	 * @param store IFileStore
-	 * @return boolean <code>true</code> if this store is accepted.
-	 */
-	public abstract boolean accept(IFileStore store);
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/InternalErrorDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/InternalErrorDialog.java
deleted file mode 100644
index c37f675..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/InternalErrorDialog.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.ui.internal.ide.dialogs;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-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.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Added a Details button to the MessageDialog to show the exception
- * stack trace.
- */
-public class InternalErrorDialog extends MessageDialog {
-
-    private Throwable detail;
-
-    private int detailButtonID = -1;
-
-    private Text text;
-
-    //Workaround. SWT does not seem to set the default button if 
-    //there is not control with focus. Bug: 14668
-    private int defaultButtonIndex = 0;
-
-    /**
-     * Size of the text in lines.
-     */
-    private static final int TEXT_LINE_COUNT = 15;
-
-    /**
-     * Create a new dialog.
-     * 
-     * @param parentShell the parent shell
-     * @param dialogTitle the  title
-     * @param dialogTitleImage the title image
-     * @param dialogMessage the message
-     * @param detail the error to display
-     * @param dialogImageType the type of image
-     * @param dialogButtonLabels the button labels
-     * @param defaultIndex the default selected button index
-     */
-    public InternalErrorDialog(Shell parentShell, String dialogTitle,
-            Image dialogTitleImage, String dialogMessage, Throwable detail,
-            int dialogImageType, String[] dialogButtonLabels, int defaultIndex) {
-        super(parentShell, dialogTitle, dialogTitleImage, dialogMessage,
-                dialogImageType, dialogButtonLabels, defaultIndex);
-        defaultButtonIndex = defaultIndex;
-        this.detail = detail;
-        setShellStyle(getShellStyle() | SWT.APPLICATION_MODAL);
-    }
-
-    //Workaround. SWT does not seem to set rigth the default button if 
-    //there is not control with focus. Bug: 14668
-    public int open() {
-        create();
-        Button b = getButton(defaultButtonIndex);
-        b.setFocus();
-        b.getShell().setDefaultButton(b);
-        return super.open();
-    }
-
-    /**
-     * Set the detail button;
-     * @param index the detail button index
-     */
-    public void setDetailButton(int index) {
-        detailButtonID = index;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected void buttonPressed(int buttonId) {
-        if (buttonId == detailButtonID) {
-            toggleDetailsArea();
-        } else {
-            setReturnCode(buttonId);
-            close();
-        }
-    }
-
-    /**
-     * 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 = getContents().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-
-        if (text != null) {
-            text.dispose();
-            text = null;
-            getButton(detailButtonID).setText(
-                    IDialogConstants.SHOW_DETAILS_LABEL);
-        } else {
-            createDropDownText((Composite) getContents());
-            getButton(detailButtonID).setText(
-                    IDialogConstants.HIDE_DETAILS_LABEL);
-        }
-
-        Point newSize = getContents().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        getShell()
-                .setSize(
-                        new Point(windowSize.x, windowSize.y
-                                + (newSize.y - oldSize.y)));
-    }
-
-    /**
-     * Create this dialog's drop-down list component.
-     *
-     * @param parent the parent composite
-     */
-    protected void createDropDownText(Composite parent) {
-        // create the list
-        text = new Text(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-        text.setFont(parent.getFont());
-
-        // print the stacktrace in the text field
-        try {
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            PrintStream ps = new PrintStream(baos);
-            detail.printStackTrace(ps);
-            ps.flush();
-            baos.flush();
-            text.setText(baos.toString());
-        } catch (IOException e) {
-        }
-
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL
-                | GridData.GRAB_VERTICAL);
-        data.heightHint = text.getLineHeight() * TEXT_LINE_COUNT;
-        data.horizontalSpan = 2;
-        text.setLayoutData(data);
-    }
-
-    /** 
-     * 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 detail the error 
-     * @param defaultIndex the default index of the button to select
-     * @return <code>true</code> if the user presses the OK button,
-     *    <code>false</code> otherwise
-     */
-    public static boolean openQuestion(Shell parent, String title,
-            String message, Throwable detail, int defaultIndex) {
-        String[] labels;
-        if (detail == null) {
-			labels = new String[] { IDialogConstants.YES_LABEL,
-                    IDialogConstants.NO_LABEL };
-		} else {
-			labels = new String[] { IDialogConstants.YES_LABEL,
-                    IDialogConstants.NO_LABEL,
-                    IDialogConstants.SHOW_DETAILS_LABEL };
-		}
-
-        InternalErrorDialog dialog = new InternalErrorDialog(parent, title,
-                null, // accept the default window icon
-                message, detail, QUESTION, labels, defaultIndex);
-        if (detail != null) {
-			dialog.setDetailButton(2);
-		}
-        return dialog.open() == 0;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/LinkedResourcesPreferencePage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/LinkedResourcesPreferencePage.java
deleted file mode 100644
index 979efc9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/LinkedResourcesPreferencePage.java
+++ /dev/null
@@ -1,182 +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.ide.dialogs;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.dialogs.MessageDialog;
-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.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.Label;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-
-/**
- * Preference page for linked resources. 
- * This preference page allows enabling and disabling the workbench linked 
- * resource support.
- * It also shows all path variables currently defined in the workspace's path 
- * variable manager. The user may add, edit and remove path variables. 
- *  
- * @see org.eclipse.ui.internal.ide.dialogs.PathVariableDialog
- */
-public class LinkedResourcesPreferencePage extends PreferencePage implements
-        IWorkbenchPreferencePage {
-    private Label topLabel;
-
-    private PathVariablesGroup pathVariablesGroup;
-
-    /**
-     * Constructs a preference page of path variables.
-     * Omits "Restore Defaults"/"Apply Changes" buttons.
-     */
-    public LinkedResourcesPreferencePage() {
-        pathVariablesGroup = new PathVariablesGroup(true, IResource.FILE
-                | IResource.FOLDER);
-
-        this.noDefaultAndApplyButton();
-    }
-
-    /**
-     * Resets this page's internal state and creates its UI contents.
-     * 
-     * @see PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-     */
-    protected Control createContents(Composite parent) {
-        Font font = parent.getFont();
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-                IIDEHelpContextIds.LINKED_RESOURCE_PREFERENCE_PAGE);
-        // define container & its gridding
-        Composite pageComponent = new Composite(parent, SWT.NULL);
-        GridLayout layout = new GridLayout();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        pageComponent.setLayout(layout);
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        pageComponent.setLayoutData(data);
-        pageComponent.setFont(font);
-
-        final Button enableLinkedResourcesButton = new Button(pageComponent,
-                SWT.CHECK);
-        enableLinkedResourcesButton.setText(IDEWorkbenchMessages.LinkedResourcesPreference_enableLinkedResources);
-        enableLinkedResourcesButton.setFont(font);
-        enableLinkedResourcesButton
-                .addSelectionListener(new SelectionAdapter() {
-                    public void widgetSelected(SelectionEvent e) {
-                        boolean enabled = enableLinkedResourcesButton
-                                .getSelection();
-                        Preferences preferences = ResourcesPlugin.getPlugin()
-                                .getPluginPreferences();
-                        preferences.setValue(
-                                ResourcesPlugin.PREF_DISABLE_LINKING, !enabled);
-
-                        updateWidgetState(enabled);
-                        if (enabled) {
-                            MessageDialog
-                                    .openWarning(
-                                            getShell(),
-                                            IDEWorkbenchMessages.LinkedResourcesPreference_linkedResourcesWarningTitle,
-                                            IDEWorkbenchMessages.LinkedResourcesPreference_linkedResourcesWarningMessage);
-                        }
-                    }
-                });
-
-        createSpace(pageComponent);
-
-        topLabel = new Label(pageComponent, SWT.NONE);
-        topLabel.setText(IDEWorkbenchMessages.LinkedResourcesPreference_explanation);
-        data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        topLabel.setLayoutData(data);
-        topLabel.setFont(font);
-
-        pathVariablesGroup.createContents(pageComponent);
-
-        Preferences preferences = ResourcesPlugin.getPlugin()
-                .getPluginPreferences();
-        boolean enableLinking = !preferences
-                .getBoolean(ResourcesPlugin.PREF_DISABLE_LINKING);
-        enableLinkedResourcesButton.setSelection(enableLinking);
-        updateWidgetState(enableLinking);
-        return pageComponent;
-    }
-
-    /**
-     * Creates a tab of one horizontal spans.
-     *
-     * @param parent  the parent in which the tab should be created
-     */
-    protected static void createSpace(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);
-    }
-
-    /**
-     * Disposes the path variables group.
-     * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
-     */
-    public void dispose() {
-        pathVariablesGroup.dispose();
-        super.dispose();
-    }
-
-    /**
-     * Empty implementation. This page does not use the workbench.
-     * 
-     * @see IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-     */
-    public void init(IWorkbench workbench) {
-    }
-
-    /**
-     * Commits the temporary state to the path variable manager in response to user
-     * confirmation.
-     * 
-     * @see PreferencePage#performOk()
-     * @see PathVariablesGroup#performOk()
-     */
-    public boolean performOk() {
-        return pathVariablesGroup.performOk();
-    }
-
-    /**
-     * Set the widget enabled state
-     * 
-     * @param enableLinking the new widget enabled state
-     */
-    protected void updateWidgetState(boolean enableLinking) {
-        topLabel.setEnabled(enableLinking);
-        pathVariablesGroup.setEnabled(enableLinking);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/OpenResourceDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/OpenResourceDialog.java
deleted file mode 100644
index 61eac6e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/OpenResourceDialog.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.dialogs;
-
-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.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-
-/**
- * Shows a list of resources to the user with a text entry field for a string
- * pattern used to filter the list of resources.
- * 
- * @since 2.1
- */
-public class OpenResourceDialog extends FilteredResourcesSelectionDialog {
-
-	/**
-	 * Creates a new instance of the class.
-	 * 
-	 * @param parentShell
-	 *            the parent shell
-	 * @param container
-	 *            the container
-	 * @param typesMask
-	 *            the types mask
-	 */
-	public OpenResourceDialog(Shell parentShell, IContainer container,
-			int typesMask) {
-		super(parentShell, true, container, typesMask);
-		setTitle(IDEWorkbenchMessages.OpenResourceDialog_title);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parentShell,
-				IIDEHelpContextIds.OPEN_RESOURCE_DIALOG);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariableDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariableDialog.java
deleted file mode 100644
index f1c54d3..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariableDialog.java
+++ /dev/null
@@ -1,598 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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> - 19346, 42056
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.dialogs;
-
-import java.util.Set;
-
-import org.eclipse.core.resources.IPathVariableManager;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-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.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-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.DirectoryDialog;
-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.internal.ide.IDEWorkbenchMessages;
-
-/**
- * Dialog that prompts the user for defining a variable's name and value. It
- * supports creating a new variable or editing an existing one. The difference
- * between the two uses is just a matter of which messages to present to the
- * user and whether the "Ok" button starts enabled or not.
- */
-public class PathVariableDialog extends TitleAreaDialog {
-
-    // UI widgets
-    private Button okButton;
-
-    private Label variableNameLabel;
-
-    private Label variableValueLabel;
-
-    private Text variableNameField;
-
-    private Text variableValueField;
-
-    private Button fileButton;
-
-    private Button folderButton;
-
-    /**
-     * This dialog type: <code>NEW_VARIABLE</code> or
-     * <code>EXISTING_VARIABLE</code>.
-     */
-    private int type;
-
-    /**
-     * The type of variable that can be edited in this dialog.
-     * <code>IResource.FILE</code> or <code>IResource.FOLDER</code>
-     */
-    private int variableType;
-
-    /**
-     * The name of the variable being edited.
-     */
-    private String variableName;
-
-    /**
-     * The value of the variable being edited.
-     */
-    private String variableValue;
-
-    /**
-     * The original name of the variable being edited. It is used when testing
-     * if the current variable's name is already in use.
-     */
-    private String originalName;
-
-    /**
-     * Used to select the proper message depending on the current mode
-     * (new/existing variable).
-     */
-    private boolean newVariable;
-
-    /**
-     * Reference to the path variable manager. It is used for validating
-     * variable names.
-     */
-    private IPathVariableManager pathVariableManager;
-
-    /**
-     * Set of variable names currently in use. Used when warning the user that
-     * the currently selected name is already in use by another variable.
-     */
-    private Set namesInUse;
-
-    /**
-     * The current validation status. Its value can be one of the following:<ul>
-     * <li><code>IMessageProvider.NONE</code> (default);</li>
-     * <li><code>IMessageProvider.WARNING</code>;</li>
-     * <li><code>IMessageProvider.ERROR</code>;</li>
-     * </ul>
-     * Used when validating the user input.
-     */
-    private int validationStatus;
-
-    /**
-     * The current validation message generated by the last
-     * call to a <code>validate</code> method.
-     */
-    private String validationMessage;
-
-    /**
-     * Whether a variable name has been entered.  
-     */
-    private boolean nameEntered = false;
-
-    /**
-     * Whether a variable location has been entered.  
-     */
-    private boolean locationEntered = false;
-
-    /**
-     * The standard message to be shown when there are no problems being
-     * reported.
-     */
-    final private String standardMessage;
-
-    /**
-     * Constant for defining this dialog as intended to create a new variable
-     * (value = 1).
-     */
-    public final static int NEW_VARIABLE = 1;
-
-    /**
-     * Constant for defining this dialog as intended to edit an existing
-     * variable (value = 2).
-     */
-    public final static int EXISTING_VARIABLE = 2;
-
-    /**
-     * Constructs a dialog for editing a new/existing path variable.
-     * 
-     * @param parentShell the parent shell
-     * @param type the dialog type: <code>NEW_VARIABLE</code> or
-     * 	<code>EXISTING_VARIABLE</code>
-     * @param variableType the type of variable that can be edited in 
-     * 	this dialog. <code>IResource.FILE</code> or <code>IResource.FOLDER</code>
-     * @param pathVariableManager a reference to the path variable manager
-     * @param namesInUse a set of variable names currently in use 
-     */
-    public PathVariableDialog(Shell parentShell, int type, int variableType,
-            IPathVariableManager pathVariableManager, Set namesInUse) {
-        super(parentShell);
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-        this.type = type;
-        this.newVariable = type == NEW_VARIABLE;
-        this.variableName = ""; //$NON-NLS-1$
-        this.variableValue = ""; //$NON-NLS-1$
-        this.variableType = variableType;
-        this.pathVariableManager = pathVariableManager;
-        this.namesInUse = namesInUse;
-
-        if (newVariable) {
-			this.standardMessage = IDEWorkbenchMessages.PathVariableDialog_message_newVariable;
-		} else {
-			this.standardMessage = IDEWorkbenchMessages.PathVariableDialog_message_existingVariable;
-		}
-    }
-
-    /**
-     * Configures this dialog's shell, setting the shell's text.
-     * 
-     * @see org.eclipse.jface.window.Window#configureShell(Shell)
-     */
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        if (newVariable) {
-			shell.setText(IDEWorkbenchMessages.PathVariableDialog_shellTitle_newVariable);
-		} else {
-			shell
-                    .setText(IDEWorkbenchMessages.PathVariableDialog_shellTitle_existingVariable);
-		}
-    }
-
-    /**
-     * Creates and returns the contents of this dialog (except for the button bar).
-     * 
-     * @see org.eclipse.jface.dialogs.TitleAreaDialog#createDialogArea
-     */
-    protected Control createDialogArea(Composite parent) {
-        // top level composite
-        Composite parentComposite = (Composite) super.createDialogArea(parent);
-
-        initializeDialogUnits(parentComposite);
-        
-        // creates dialog area composite
-        Composite contents = createComposite(parentComposite);
-
-        // creates and lay outs dialog area widgets 
-        createWidgets(contents);
-
-        // validate possibly already incorrect variable definitions
-        if (type == EXISTING_VARIABLE) {
-            nameEntered = locationEntered = true;
-            validateVariableValue();
-        }
-
-        Dialog.applyDialogFont(parentComposite);
-        
-        return contents;
-    }
-
-    /**
-     * Creates and configures this dialog's main composite.
-     * 
-     * @param parentComposite parent's composite
-     * @return this dialog's main composite
-     */
-    private Composite createComposite(Composite parentComposite) {
-        // creates a composite with standard margins and spacing
-        Composite contents = new Composite(parentComposite, SWT.NONE);
-
-        FormLayout layout = new FormLayout();
-
-        contents.setLayout(layout);
-        contents.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-        if (newVariable) {
-			setTitle(IDEWorkbenchMessages.PathVariableDialog_dialogTitle_newVariable);
-		} else {
-			setTitle(IDEWorkbenchMessages.PathVariableDialog_dialogTitle_existingVariable);
-		}
-        setMessage(standardMessage);
-        return contents;
-    }
-
-    /**
-     * Creates widgets for this dialog.
-     * 
-     * @param contents the parent composite where to create widgets
-     */
-    private void createWidgets(Composite contents) {
-        FormData data;
-
-        String nameLabelText = IDEWorkbenchMessages.PathVariableDialog_variableName;
-        String valueLabelText = IDEWorkbenchMessages.PathVariableDialog_variableValue;
-
-        // variable name label
-        variableNameLabel = new Label(contents, SWT.LEFT);
-        variableNameLabel.setText(nameLabelText);
-
-        data = new FormData();
-        data.top = new FormAttachment(0,
-        		convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN));
-        data.left = new FormAttachment(0,
-        		convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN));
-        variableNameLabel.setLayoutData(data);
-     
-        // variable name field.  Attachments done after all widgets created.
-        variableNameField = new Text(contents, SWT.SINGLE | SWT.BORDER);
-        variableNameField.setText(variableName);
-        variableNameField.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent event) {
-                variableNameModified();
-            }
-        });
-        
-        // variable value label
-        variableValueLabel = new Label(contents, SWT.LEFT);
-        variableValueLabel.setText(valueLabelText);
-
-        data = new FormData();
-        data.left = new FormAttachment(0,
-        		convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN));
-        data.top = new FormAttachment(variableNameLabel,
-                convertVerticalDLUsToPixels(5));
-        variableValueLabel.setLayoutData(data);
-
-        // variable value field.  Attachments done after all widgets created.
-        variableValueField = new Text(contents, SWT.SINGLE | SWT.BORDER);
-        variableValueField.setText(variableValue);
-        variableValueField.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent event) {
-                variableValueModified();
-            }
-        });
-
-        // select file path button
-        fileButton = new Button(contents, SWT.PUSH);
-        fileButton.setText(IDEWorkbenchMessages.PathVariableDialog_file);
-        if ((variableType & IResource.FILE) == 0) {
-			fileButton.setEnabled(false);
-		}
-
-        data = setButtonFormLayoutData(fileButton);
-        data.top = new FormAttachment(variableValueLabel, 0, SWT.CENTER);
-        data.right = new FormAttachment(100,
-        		-convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN));        
-        fileButton.setLayoutData(data);
-
-        fileButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                selectFile();
-            }
-        });
-
-        // select folder path button
-        folderButton = new Button(contents, SWT.PUSH);
-        folderButton.setText(IDEWorkbenchMessages.PathVariableDialog_folder);
-        if ((variableType & IResource.FOLDER) == 0) {
-			folderButton.setEnabled(false);
-		}
-
-        data = setButtonFormLayoutData(folderButton);
-        data.top = new FormAttachment(fileButton, convertVerticalDLUsToPixels(2));
-        data.right = new FormAttachment(100,
-        		-convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN));
-        folderButton.setLayoutData(data);
-
-        folderButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                selectFolder();
-            }
-        });
-        
-        // Attaching variable name and value fields to file and folder buttons,
-        // so do this now that those buttons have been created.
-        
-        // the larger label will be used in the left attachments for the fields  
-        Label largerLabel = nameLabelText.length() > valueLabelText.length() ? variableNameLabel
-                : variableValueLabel;
- 
-        data = new FormData();
-        data.left = new FormAttachment(largerLabel,
-                convertHorizontalDLUsToPixels(5));
-        data.right = new FormAttachment(fileButton, -convertHorizontalDLUsToPixels(5));
-        data.top = new FormAttachment(variableNameLabel,
-                convertVerticalDLUsToPixels(5), SWT.CENTER);
-        variableNameField.setLayoutData(data);
-        
-
-        data = new FormData();
-        data.left = new FormAttachment(largerLabel,
-                convertHorizontalDLUsToPixels(5));
-        data.right = new FormAttachment(fileButton, -convertHorizontalDLUsToPixels(5));
-        data.top = new FormAttachment(variableValueLabel, 0, SWT.CENTER);
-        variableValueField.setLayoutData(data);
-
-  
- 
-    }
-
-    /**
-     * Sets the <code>FormData</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>FormData</code>
-     * @return the <code>FormData</code> set on the specified button
-     */
-    private FormData setButtonFormLayoutData(Button button) {
-        FormData data = new FormData();
-        int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-        data.width = Math.max(widthHint, button.computeSize(SWT.DEFAULT,
-                SWT.DEFAULT, true).x);
-        button.setLayoutData(data);
-        return data;
-    }
-
-    /**
-     * Fires validations (variable name first) and updates enabled state for the
-     * "Ok" button accordingly.
-     */
-    private void variableNameModified() {
-        // updates and validates the variable name
-        variableName = variableNameField.getText();
-        validationStatus = IMessageProvider.NONE;
-        okButton.setEnabled(validateVariableName() && validateVariableValue());
-        nameEntered = true;
-    }
-
-    /**
-     * Fires validations (variable value first) and updates enabled state for the
-     * "Ok" button accordingly.
-     */
-    private void variableValueModified() {
-        // updates and validates the variable value
-        variableValue = variableValueField.getText().trim();
-        validationStatus = IMessageProvider.NONE;
-        okButton.setEnabled(validateVariableValue() && validateVariableName());
-        locationEntered = true;
-    }
-
-    /**
-     * Opens a dialog where the user can select a folder path.
-     */
-    private void selectFolder() {
-        DirectoryDialog dialog = new DirectoryDialog(getShell());
-        dialog.setText(IDEWorkbenchMessages.PathVariableDialog_selectFolderTitle);
-        dialog.setMessage(IDEWorkbenchMessages.PathVariableDialog_selectFolderMessage);
-        dialog.setFilterPath(variableValue);
-        String res = dialog.open();
-        if (res != null) {
-            variableValue = new Path(res).makeAbsolute().toOSString();
-            variableValueField.setText(variableValue);
-        }
-    }
-
-    /**
-     * Opens a dialog where the user can select a file path.
-     */
-    private void selectFile() {
-        FileDialog dialog = new FileDialog(getShell());
-        dialog.setText(IDEWorkbenchMessages.PathVariableDialog_selectFileTitle);
-        dialog.setFilterPath(variableValue);
-        String res = dialog.open();
-        if (res != null) {
-            variableValue = new Path(res).makeAbsolute().toOSString();
-            variableValueField.setText(variableValue);
-        }
-    }
-
-    /**
-     * Adds buttons to this dialog's button bar.
-     * 
-     * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar
-     */
-    protected void createButtonsForButtonBar(Composite parent) {
-        okButton = createButton(parent, IDialogConstants.OK_ID,
-                IDialogConstants.OK_LABEL, true);
-        okButton.setEnabled(type == EXISTING_VARIABLE);
-
-        createButton(parent, IDialogConstants.CANCEL_ID,
-                IDialogConstants.CANCEL_LABEL, false);
-    }
-
-    /**
-     * Validates the current variable name, and updates this dialog's message.
-     * 
-     * @return true if the name is valid, false otherwise
-     */
-    private boolean validateVariableName() {
-        boolean allowFinish = false;
-
-        // if the current validationStatus is ERROR, no additional validation applies
-        if (validationStatus == IMessageProvider.ERROR) {
-			return false;
-		}
-
-        // assumes everything will be ok
-        String message = standardMessage;
-        int newValidationStatus = IMessageProvider.NONE;
-
-        if (variableName.length() == 0) {
-            // the variable name is empty
-            if (nameEntered) {
-                // a name was entered before and is now empty
-                newValidationStatus = IMessageProvider.ERROR;
-                message = IDEWorkbenchMessages.PathVariableDialog_variableNameEmptyMessage;
-            }
-        } else {
-            IStatus status = pathVariableManager.validateName(variableName);
-            if (!status.isOK()) {
-                // the variable name is not valid
-                newValidationStatus = IMessageProvider.ERROR;
-                message = status.getMessage();
-            } else if (namesInUse.contains(variableName)
-                    && !variableName.equals(originalName)) {
-                // the variable name is already in use
-                message = IDEWorkbenchMessages.PathVariableDialog_variableAlreadyExistsMessage;
-                newValidationStatus = IMessageProvider.ERROR;
-            } else {
-                allowFinish = true;
-            }
-        }
-
-        // overwrite the current validation status / message only if everything is ok (clearing them)
-        // or if we have a more serious problem than the current one
-        if (validationStatus == IMessageProvider.NONE
-                || newValidationStatus == IMessageProvider.ERROR) {
-            validationStatus = newValidationStatus;
-            validationMessage = message;
-        }
-        // only set the message here if it is not going to be set in 
-        // validateVariableValue to avoid flashing.
-        if (allowFinish == false) {
-			setMessage(validationMessage, validationStatus);
-		}
-        return allowFinish;
-    }
-
-    /**
-     * Validates the current variable value, and updates this dialog's message.
-     * 
-     * @return true if the value is valid, false otherwise
-     */
-    private boolean validateVariableValue() {
-        boolean allowFinish = false;
-
-        // if the current validationStatus is ERROR, no additional validation applies
-        if (validationStatus == IMessageProvider.ERROR) {
-			return false;
-		}
-
-        // assumes everything will be ok
-        String message = standardMessage;
-        int newValidationStatus = IMessageProvider.NONE;
-
-        if (variableValue.length() == 0) {
-            // the variable value is empty
-            if (locationEntered) {
-                // a location value was entered before and is now empty
-                newValidationStatus = IMessageProvider.ERROR;
-                message = IDEWorkbenchMessages.PathVariableDialog_variableValueEmptyMessage;
-            }
-        } else if (!Path.EMPTY.isValidPath(variableValue)) {
-            // the variable value is an invalid path
-            message = IDEWorkbenchMessages.PathVariableDialog_variableValueInvalidMessage;
-            newValidationStatus = IMessageProvider.ERROR;
-        } else if (!new Path(variableValue).isAbsolute()) {
-            // the variable value is a relative path
-            message = IDEWorkbenchMessages.PathVariableDialog_pathIsRelativeMessage;
-            newValidationStatus = IMessageProvider.ERROR;
-        } else if (!IDEResourceInfoUtils.exists(variableValue)) {
-            // the path does not exist (warning)
-            message = IDEWorkbenchMessages.PathVariableDialog_pathDoesNotExistMessage;
-            newValidationStatus = IMessageProvider.WARNING;
-            allowFinish = true;
-        } else {
-            allowFinish = true;
-        }
-
-        // overwrite the current validation status / message only if everything is ok (clearing them)
-        // or if we have a more serious problem than the current one
-        if (validationStatus == IMessageProvider.NONE
-                || newValidationStatus > validationStatus) {
-            validationStatus = newValidationStatus;
-            validationMessage = message;
-        }
-        setMessage(validationMessage, validationStatus);
-        return allowFinish;
-    }
-
-    /**
-     * Returns the variable name.
-     * 
-     * @return the variable name
-     */
-    public String getVariableName() {
-        return variableName;
-    }
-
-    /**
-     * Returns the variable value.
-     * 
-     * @return the variable value
-     */
-    public String getVariableValue() {
-        return variableValue;
-    }
-
-    /**
-     * Sets the variable name.
-     * 
-     * @param variableName the new variable name
-     */
-    public void setVariableName(String variableName) {
-        this.variableName = variableName.trim();
-        this.originalName = this.variableName;
-    }
-
-    /**
-     * Sets the variable value.
-     * 
-     * @param variableValue the new variable value
-     */
-    public void setVariableValue(String variableValue) {
-        this.variableValue = variableValue;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariablesGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariablesGroup.java
deleted file mode 100644
index 60a167a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariablesGroup.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.ui.internal.ide.dialogs;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.resources.IPathVariableManager;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-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.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-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.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.TableItem;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * A widget group that displays path variables. 
- * Includes buttons to edit, remove existing variables and create new ones.
- * 
- * @since 2.1
- */
-public class PathVariablesGroup {
-    /**
-     * Simple data structure that holds a path variable name/value pair.
-     */
-    public static class PathVariableElement {
-        /**
-         * The name of the element.
-         */
-        public String name;
-
-        /**
-         * The path of the element.
-         */
-        public IPath path;
-    }
-
-    // sizing constants
-    private static final int SIZING_SELECTION_PANE_WIDTH = 400;
-
-    // parent shell
-    private Shell shell;
-
-    private Label variableLabel;
-
-    private Table variableTable;
-
-    private Button addButton;
-
-    private Button editButton;
-
-    private Button removeButton;
-
-    // used to compute layout sizes
-    private FontMetrics fontMetrics;
-
-    // create a multi select table
-    private boolean multiSelect;
-
-    // IResource.FILE and/or IResource.FOLDER
-    private int variableType;
-
-    // External listener called when the table selection changes
-    private Listener selectionListener;
-
-    // temporary collection for keeping currently defined variables
-    private SortedMap tempPathVariables;
-
-    // set of removed variables' names
-    private Set removedVariableNames;
-
-    // reference to the workspace's path variable manager
-    private IPathVariableManager pathVariableManager;
-
-    // file image
-    private final Image FILE_IMG = PlatformUI.getWorkbench().getSharedImages()
-            .getImage(ISharedImages.IMG_OBJ_FILE);
-
-    // folder image
-    private final Image FOLDER_IMG = PlatformUI.getWorkbench()
-            .getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
-
-    // unknown (non-existent) image. created locally, dispose locally
-    private Image imageUnkown;
-
-    /**
-     * Creates a new PathVariablesGroup.
-     *
-     * @param multiSelect create a multi select tree
-     * @param variableType the type of variables that are displayed in 
-     * 	the widget group. <code>IResource.FILE</code> and/or <code>IResource.FOLDER</code>
-     * 	logically ORed together.
-     */
-    public PathVariablesGroup(boolean multiSelect, int variableType) {
-        this.multiSelect = multiSelect;
-        this.variableType = variableType;
-        pathVariableManager = ResourcesPlugin.getWorkspace()
-                .getPathVariableManager();
-        removedVariableNames = new HashSet();
-        tempPathVariables = new TreeMap();
-        // initialize internal model
-        initTemporaryState();
-    }
-
-    /**
-     * Creates a new PathVariablesGroup.
-     *
-     * @param multiSelect create a multi select tree
-     * @param variableType the type of variables that are displayed in 
-     * 	the widget group. <code>IResource.FILE</code> and/or <code>IResource.FOLDER</code>
-     * 	logically ORed together.
-     * @param selectionListener listener notified when the selection changes
-     * 	in the variables list.
-     */
-    public PathVariablesGroup(boolean multiSelect, int variableType,
-            Listener selectionListener) {
-        this(multiSelect, variableType);
-        this.selectionListener = selectionListener;
-    }
-
-    /**
-     * Opens a dialog for creating a new variable.
-     */
-    private void addNewVariable() {
-        // constructs a dialog for editing the new variable's current name and value
-        PathVariableDialog dialog = new PathVariableDialog(shell,
-                PathVariableDialog.NEW_VARIABLE, variableType,
-                pathVariableManager, tempPathVariables.keySet());
-
-        // opens the dialog - just returns if the user cancels it
-        if (dialog.open() == Window.CANCEL) {
-			return;
-		}
-
-        // otherwise, adds the new variable (or updates an existing one) in the
-        // temporary collection of currently defined variables
-        String newVariableName = dialog.getVariableName();
-        IPath newVariableValue = new Path(dialog.getVariableValue());
-        tempPathVariables.put(newVariableName, newVariableValue);
-
-        // the UI must be updated
-        updateWidgetState(newVariableName);
-    }
-
-    /**
-     * Creates the widget group.
-     * Callers must call <code>dispose</code> when the group is no 
-     * longer needed.
-     * 
-     * @param parent the widget parent
-     * @return container of the widgets 
-     */
-    public Control createContents(Composite parent) {
-        Font font = parent.getFont();
-
-        if (imageUnkown == null) {
-            ImageDescriptor descriptor = AbstractUIPlugin
-                    .imageDescriptorFromPlugin(
-                            IDEWorkbenchPlugin.IDE_WORKBENCH,
-                            "$nl$/icons/full/obj16/warning.gif"); //$NON-NLS-1$
-            imageUnkown = descriptor.createImage();
-        }
-        initializeDialogUnits(parent);
-        shell = parent.getShell();
-
-        // define container & its layout
-        Composite pageComponent = new Composite(parent, SWT.NULL);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        pageComponent.setLayout(layout);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        data.widthHint = SIZING_SELECTION_PANE_WIDTH;
-        pageComponent.setLayoutData(data);
-        pageComponent.setFont(font);
-
-        // layout the table & its buttons
-        variableLabel = new Label(pageComponent, SWT.LEFT);
-        variableLabel.setText(IDEWorkbenchMessages.PathVariablesBlock_variablesLabel);
-        data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        data.horizontalSpan = 2;
-        variableLabel.setLayoutData(data);
-        variableLabel.setFont(font);
-
-        int tableStyle = SWT.BORDER | SWT.FULL_SELECTION;
-        if (multiSelect) {
-            tableStyle |= SWT.MULTI;
-        }
-        variableTable = new Table(pageComponent, tableStyle);
-        variableTable.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                updateEnabledState();
-                if (selectionListener != null) {
-					selectionListener.handleEvent(new Event());
-				}
-            }
-        });
-        data = new GridData(GridData.FILL_BOTH);
-        data.heightHint = variableTable.getItemHeight() * 7;
-        variableTable.setLayoutData(data);
-        variableTable.setFont(font);
-
-        createButtonGroup(pageComponent);
-        // populate table with current internal state and set buttons' initial state
-        updateWidgetState(null);
-
-        return pageComponent;
-    }
-
-    /**
-     * Disposes the group's resources. 
-     */
-    public void dispose() {
-        if (imageUnkown != null) {
-            imageUnkown.dispose();
-            imageUnkown = null;
-        }
-    }
-
-    /**
-     * Opens a dialog for editing an existing variable.
-     *
-     * @see PathVariableDialog
-     */
-    private void editSelectedVariable() {
-        // retrieves the name and value for the currently selected variable
-        TableItem item = variableTable.getItem(variableTable
-                .getSelectionIndex());
-        String variableName = (String) item.getData();
-        IPath variableValue = (IPath) tempPathVariables.get(variableName);
-
-        // constructs a dialog for editing the variable's current name and value
-        PathVariableDialog dialog = new PathVariableDialog(shell,
-                PathVariableDialog.EXISTING_VARIABLE, variableType,
-                pathVariableManager, tempPathVariables.keySet());
-        dialog.setVariableName(variableName);
-        dialog.setVariableValue(variableValue.toOSString());
-
-        // opens the dialog - just returns if the user cancels it
-        if (dialog.open() == Window.CANCEL) {
-			return;
-		}
-
-        // the name can be changed, so we remove the current variable definition...
-        removedVariableNames.add(variableName);
-        tempPathVariables.remove(variableName);
-
-        String newVariableName = dialog.getVariableName();
-        IPath newVariableValue = new Path(dialog.getVariableValue());
-
-        // and add it again (maybe with a different name)
-        tempPathVariables.put(newVariableName, newVariableValue);
-
-        // now we must refresh the UI state
-        updateWidgetState(newVariableName);
-
-    }
-
-    /**
-     * Returns the enabled state of the group's widgets.
-     * Returns <code>true</code> if called prior to calling 
-     * <code>createContents</code>.
-     * 
-     * @return boolean the enabled state of the group's widgets.
-     * 	 <code>true</code> if called prior to calling <code>createContents</code>.
-     */
-    public boolean getEnabled() {
-        if (variableTable != null && !variableTable.isDisposed()) {
-            return variableTable.getEnabled();
-        }
-        return true;
-    }
-
-    /**
-     * Returns the selected variables.
-     *  
-     * @return the selected variables. Returns an empty array if 
-     * 	the widget group has not been created yet by calling 
-     * 	<code>createContents</code>
-     */
-    public PathVariableElement[] getSelection() {
-        if (variableTable == null) {
-            return new PathVariableElement[0];
-        }
-        TableItem[] items = variableTable.getSelection();
-        PathVariableElement[] selection = new PathVariableElement[items.length];
-
-        for (int i = 0; i < items.length; i++) {
-            String name = (String) items[i].getData();
-            selection[i] = new PathVariableElement();
-            selection[i].name = name;
-            selection[i].path = (IPath) tempPathVariables.get(name);
-        }
-        return selection;
-    }
-
-    /**
-     * Creates the add/edit/remove buttons
-     * 
-     * @param parent the widget parent
-     */
-    private void createButtonGroup(Composite parent) {
-        Font font = parent.getFont();
-        Composite groupComponent = new Composite(parent, SWT.NULL);
-        GridLayout groupLayout = new GridLayout();
-        groupLayout.marginWidth = 0;
-        groupLayout.marginHeight = 0;
-        groupComponent.setLayout(groupLayout);
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        groupComponent.setLayoutData(data);
-        groupComponent.setFont(font);
-
-        addButton = new Button(groupComponent, SWT.PUSH);
-        addButton.setText(IDEWorkbenchMessages.PathVariablesBlock_addVariableButton);
-        addButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                addNewVariable();
-            }
-        });
-        addButton.setFont(font);
-        setButtonLayoutData(addButton);
-
-        editButton = new Button(groupComponent, SWT.PUSH);
-        editButton.setText(IDEWorkbenchMessages.PathVariablesBlock_editVariableButton);
-        editButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                editSelectedVariable();
-            }
-        });
-        editButton.setFont(font);
-        setButtonLayoutData(editButton);
-
-        removeButton = new Button(groupComponent, SWT.PUSH);
-        removeButton.setText(IDEWorkbenchMessages.PathVariablesBlock_removeVariableButton);
-        removeButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                removeSelectedVariables();
-            }
-        });
-        removeButton.setFont(font);
-        setButtonLayoutData(removeButton);
-    }
-
-    /**
-     * Initializes the computation of horizontal and vertical dialog units
-     * based on the size of current font.
-     * <p>
-     * This method must be called before <code>setButtonLayoutData</code> 
-     * is 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(control.getFont());
-        fontMetrics = gc.getFontMetrics();
-        gc.dispose();
-    }
-
-    /**
-     * (Re-)Initialize collections used to mantain temporary variable state.
-     */
-    private void initTemporaryState() {
-        String[] varNames = pathVariableManager.getPathVariableNames();
-
-        tempPathVariables.clear();
-        for (int i = 0; i < varNames.length; i++) {
-            IPath value = pathVariableManager.getValue(varNames[i]);
-
-            // the value may not exist any more
-            if (value != null) {
-                boolean isFile = value.toFile().isFile();
-                if ((isFile && (variableType & IResource.FILE) != 0)
-                        || (isFile == false && (variableType & IResource.FOLDER) != 0)) {
-
-                    tempPathVariables.put(varNames[i], value);
-                }
-            }
-        }
-        removedVariableNames.clear();
-    }
-
-    /**
-     * Updates button enabled state, depending on the number of currently selected
-     * variables in the table.
-     */
-    private void updateEnabledState() {
-        int itemsSelectedCount = variableTable.getSelectionCount();
-        editButton.setEnabled(itemsSelectedCount == 1);
-        removeButton.setEnabled(itemsSelectedCount > 0);
-    }
-
-    /**
-     * Rebuilds table widget state with the current list of variables (reflecting
-     * any changes, additions and removals), and selects the item corresponding to
-     * the given variable name. If the variable name is <code>null</code>, the
-     * first item (if any) will be selected.
-     * 
-     * @param selectedVarName the name for the variable to be selected (may be
-     * <code>null</code>)
-     * @see IPathVariableManager#getPathVariableNames()
-     * @see IPathVariableManager#getValue(String)
-     */
-    private void updateVariableTable(String selectedVarName) {
-        variableTable.removeAll();
-        int selectedVarIndex = 0;
-        for (Iterator varNames = tempPathVariables.keySet().iterator(); varNames
-                .hasNext();) {
-            TableItem item = new TableItem(variableTable, SWT.NONE);
-            String varName = (String) varNames.next();
-            IPath value = (IPath) tempPathVariables.get(varName);
-            IFileInfo file = IDEResourceInfoUtils.getFileInfo(value);
-
-            item.setText(varName + " - " + value.toOSString()); //$NON-NLS-1$ 
-            // the corresponding variable name is stored in each table widget item
-            item.setData(varName);
-            item.setImage(file.exists() ? (file.isDirectory() ? FOLDER_IMG 
-                    : FILE_IMG ) : imageUnkown);
-            if (varName.equals(selectedVarName)) {
-				selectedVarIndex = variableTable.getItemCount() - 1;
-			}
-        }
-        if (variableTable.getItemCount() > selectedVarIndex) {
-            variableTable.setSelection(selectedVarIndex);
-            if (selectionListener != null) {
-				selectionListener.handleEvent(new Event());
-			}
-        } else if (variableTable.getItemCount() == 0
-                && selectionListener != null) {
-			selectionListener.handleEvent(new Event());
-		}
-    }
-
-    /**
-     * Commits the temporary state to the path variable manager in response to user
-     * confirmation.
-     * @return boolean <code>true</code> if there were no problems.
-     * @see IPathVariableManager#setValue(String, IPath)
-     */
-    public boolean performOk() {
-        try {
-            // first process removed variables  
-            for (Iterator removed = removedVariableNames.iterator(); removed
-                    .hasNext();) {
-                String removedVariableName = (String) removed.next();
-                // only removes variables that have not been added again
-                if (!tempPathVariables.containsKey(removedVariableName)) {
-					pathVariableManager.setValue(removedVariableName, null);
-				}
-            }
-
-            // then process the current collection of variables, adding/updating them
-            for (Iterator current = tempPathVariables.entrySet().iterator(); current
-                    .hasNext();) {
-                Map.Entry entry = (Map.Entry) current.next();
-                String variableName = (String) entry.getKey();
-                IPath variableValue = (IPath) entry.getValue();
-                pathVariableManager.setValue(variableName, variableValue);
-            }
-            // re-initialize temporary state
-            initTemporaryState();
-
-            // performOk accepted
-            return true;
-        } catch (CoreException ce) {
-            ErrorDialog.openError(shell, null, null, ce.getStatus());
-        }
-        return false;
-    }
-
-    /**
-     * Removes the currently selected variables.
-     */
-    private void removeSelectedVariables() {
-        // remove each selected element
-        int[] selectedIndices = variableTable.getSelectionIndices();
-        for (int i = 0; i < selectedIndices.length; i++) {
-            TableItem selectedItem = variableTable.getItem(selectedIndices[i]);
-            String varName = (String) selectedItem.getData();
-            removedVariableNames.add(varName);
-            tempPathVariables.remove(varName);
-        }
-        updateWidgetState(null);
-    }
-
-    /**
-     * 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
-     */
-    private GridData setButtonLayoutData(Button button) {
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-        int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics,
-                IDialogConstants.BUTTON_WIDTH);
-        data.widthHint = Math.max(widthHint, button.computeSize(SWT.DEFAULT,
-                SWT.DEFAULT, true).x);
-        button.setLayoutData(data);
-        return data;
-    }
-
-    /**
-     * Sets the enabled state of the group's widgets.
-     * Does nothing if called prior to calling <code>createContents</code>.
-     * 
-     * @param enabled the new enabled state of the group's widgets
-     */
-    public void setEnabled(boolean enabled) {
-        if (variableTable != null && !variableTable.isDisposed()) {
-            variableLabel.setEnabled(enabled);
-            variableTable.setEnabled(enabled);
-            addButton.setEnabled(enabled);
-            if (enabled) {
-				updateEnabledState();
-			} else {
-                editButton.setEnabled(enabled);
-                removeButton.setEnabled(enabled);
-            }
-        }
-    }
-
-    /**
-     * Updates the widget's current state: refreshes the table with the current 
-     * defined variables, selects the item corresponding to the given variable 
-     * (selects the first item if <code>null</code> is provided) and updates 
-     * the enabled state for the Add/Remove/Edit buttons.
-     * 
-     * @param selectedVarName the name of the variable to be selected (may be null)
-     */
-    private void updateWidgetState(String selectedVarName) {
-        updateVariableTable(selectedVarName);
-        updateEnabledState();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectContentsLocationArea.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectContentsLocationArea.java
deleted file mode 100644
index 4217c85..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectContentsLocationArea.java
+++ /dev/null
@@ -1,472 +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.ide.dialogs;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.filesystem.URIUtil;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.TextProcessor;
-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.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.DirectoryDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.filesystem.FileSystemConfiguration;
-import org.eclipse.ui.internal.ide.filesystem.FileSystemSupportRegistry;
-
-/**
- * ProjectContentsLocationArea is a convenience class for area that handle entry
- * of locations using URIs.
- * 
- * @since 3.2
- * 
- */
-public class ProjectContentsLocationArea {
-	/**
-	 * IErrorMessageReporter is an interface for type that allow message
-	 * reporting.
-	 * 
-	 */
-	public interface IErrorMessageReporter {
-		/**
-		 * Report the error message
-		 * 
-		 * @param errorMessage
-		 *            String or <code>null</code>. If the errorMessage is
-		 *            null then clear any error state.
-		 */
-		public void reportError(String errorMessage);
-	}
-
-	private static String BROWSE_LABEL = IDEWorkbenchMessages.ProjectLocationSelectionDialog_browseLabel;
-
-	private static final int SIZING_TEXT_FIELD_WIDTH = 250;
-
-	private static final String FILE_SCHEME = "file"; //$NON-NLS-1$
-
-	private Label locationLabel;
-
-	private Text locationPathField;
-
-	private Button browseButton;
-
-	private IErrorMessageReporter errorReporter;
-
-	private String projectName = IDEResourceInfoUtils.EMPTY_STRING;
-
-	private String userPath = IDEResourceInfoUtils.EMPTY_STRING;
-
-	private Button useDefaultsButton;
-
-	private IProject existingProject;
-
-	private FileSystemSelectionArea fileSystemSelectionArea;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param reporter
-	 * @param composite
-	 * @param startProject
-	 */
-	public ProjectContentsLocationArea(IErrorMessageReporter reporter,
-			Composite composite, IProject startProject) {
-
-		errorReporter = reporter;
-		projectName = startProject.getName();
-		existingProject = startProject;
-
-		boolean defaultEnabled = true;
-		try {
-			defaultEnabled = startProject.getDescription().getLocationURI() == null;
-		} catch (CoreException e1) {
-			// If we get a CoreException assume the default.
-		}
-		createContents(composite, defaultEnabled);
-	}
-
-	/**
-	 * Create a new instance of a ProjectContentsLocationArea.
-	 * 
-	 * @param reporter
-	 * @param composite
-	 */
-	public ProjectContentsLocationArea(IErrorMessageReporter reporter,
-			Composite composite) {
-		errorReporter = reporter;
-
-		// If it is a new project always start enabled
-		createContents(composite, true);
-	}
-
-	/**
-	 * Create the contents of the receiver.
-	 * 
-	 * @param composite
-	 * @param defaultEnabled
-	 */
-	private void createContents(Composite composite, boolean defaultEnabled) {
-
-		int columns = 4;
-
-		// project specification group
-		Composite projectGroup = new Composite(composite, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = columns;
-		projectGroup.setLayout(layout);
-		projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		useDefaultsButton = new Button(projectGroup, SWT.CHECK | SWT.RIGHT);
-		useDefaultsButton
-				.setText(IDEWorkbenchMessages.ProjectLocationSelectionDialog_useDefaultLabel);
-		useDefaultsButton.setSelection(defaultEnabled);
-		GridData buttonData = new GridData();
-		buttonData.horizontalSpan = columns;
-		useDefaultsButton.setLayoutData(buttonData);
-
-		createUserEntryArea(projectGroup, defaultEnabled);
-
-		useDefaultsButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				boolean useDefaults = useDefaultsButton.getSelection();
-
-				if (useDefaults) {
-					userPath = locationPathField.getText();
-					locationPathField.setText(TextProcessor
-							.process(getDefaultPathDisplayString()));
-				} else {
-					locationPathField.setText(TextProcessor.process(userPath));
-				}
-				setUserAreaEnabled(!useDefaults);
-			}
-		});
-		setUserAreaEnabled(!defaultEnabled);
-	}
-
-	/**
-	 * Return whether or not we are currently showing the default location for
-	 * the project.
-	 * 
-	 * @return boolean
-	 */
-	public boolean isDefault() {
-		return useDefaultsButton.getSelection();
-	}
-
-	/**
-	 * Create the area for user entry.
-	 * 
-	 * @param composite
-	 * @param defaultEnabled
-	 */
-	private void createUserEntryArea(Composite composite, boolean defaultEnabled) {
-		// location label
-		locationLabel = new Label(composite, SWT.NONE);
-		locationLabel
-				.setText(IDEWorkbenchMessages.ProjectLocationSelectionDialog_locationLabel);
-
-		// project location entry field
-		locationPathField = new Text(composite, SWT.BORDER);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-		data.horizontalSpan = 2;
-		locationPathField.setLayoutData(data);
-
-		// browse button
-		browseButton = new Button(composite, SWT.PUSH);
-		browseButton.setText(BROWSE_LABEL);
-		browseButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				handleLocationBrowseButtonPressed();
-			}
-		});
-
-		createFileSystemSelection(composite);
-
-		if (defaultEnabled) {
-			locationPathField.setText(TextProcessor
-					.process(getDefaultPathDisplayString()));
-		} else {
-			if (existingProject == null) {
-				locationPathField.setText(IDEResourceInfoUtils.EMPTY_STRING);
-			} else {
-				locationPathField.setText(TextProcessor.process(existingProject
-						.getLocation().toString()));
-			}
-		}
-
-		locationPathField.addModifyListener(new ModifyListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
-			 */
-			public void modifyText(ModifyEvent e) {
-				errorReporter.reportError(checkValidLocation());
-			}
-		});
-	}
-
-	/**
-	 * Create the file system selection area.
-	 * 
-	 * @param composite
-	 */
-	private void createFileSystemSelection(Composite composite) {
-
-		// Always use the default if that is all there is.
-		if (FileSystemSupportRegistry.getInstance().hasOneFileSystem()) {
-			return;
-		}
-
-		new Label(composite, SWT.NONE);
-
-		fileSystemSelectionArea = new FileSystemSelectionArea();
-		fileSystemSelectionArea.createContents(composite);
-	}
-
-	/**
-	 * Return the path we are going to display. If it is a file URI then remove
-	 * the file prefix.
-	 * 
-	 * @return String
-	 */
-	private String getDefaultPathDisplayString() {
-
-		URI defaultURI = null;
-		if (existingProject != null) {
-			defaultURI = existingProject.getLocationURI();
-		}
-
-		// Handle files specially. Assume a file if there is no project to query
-		if (defaultURI == null || defaultURI.getScheme().equals(FILE_SCHEME)) {
-			return Platform.getLocation().append(projectName).toString();
-		}
-		return defaultURI.toString();
-
-	}
-
-	/**
-	 * Set the enablement state of the receiver.
-	 * 
-	 * @param enabled
-	 */
-	private void setUserAreaEnabled(boolean enabled) {
-
-		locationLabel.setEnabled(enabled);
-		locationPathField.setEnabled(enabled);
-		browseButton.setEnabled(enabled);
-		if (fileSystemSelectionArea != null) {
-			fileSystemSelectionArea.setEnabled(enabled);
-		}
-	}
-
-	/**
-	 * Return the browse button. Usually referenced in order to set the layout
-	 * data for a dialog.
-	 * 
-	 * @return Button
-	 */
-	public Button getBrowseButton() {
-		return browseButton;
-	}
-
-	/**
-	 * Open an appropriate directory browser
-	 */
-	private void handleLocationBrowseButtonPressed() {
-
-		String selectedDirectory = null;
-		String dirName = getPathFromLocationField();
-
-		if (!dirName.equals(IDEResourceInfoUtils.EMPTY_STRING)) {
-			IFileInfo info;
-			info = IDEResourceInfoUtils.getFileInfo(dirName);
-
-			if (info == null || !(info.exists()))
-				dirName = IDEResourceInfoUtils.EMPTY_STRING;
-		}
-
-		FileSystemConfiguration config = getSelectedConfiguration();
-		if (config== null || config.equals(
-				FileSystemSupportRegistry.getInstance()
-						.getDefaultConfiguration())) {
-			DirectoryDialog dialog = new DirectoryDialog(locationPathField
-					.getShell());
-			dialog
-					.setMessage(IDEWorkbenchMessages.ProjectLocationSelectionDialog_directoryLabel);
-
-			dialog.setFilterPath(dirName);
-
-			selectedDirectory = dialog.open();
-
-		} else {
-			URI uri = getSelectedConfiguration().getContributor()
-					.browseFileSystem(dirName, browseButton.getShell());
-			if (uri != null)
-				selectedDirectory = uri.toString();
-		}
-
-		if (selectedDirectory != null)
-			updateLocationField(selectedDirectory);
-	}
-
-	/**
-	 * Update the location field based on the selected path.
-	 * 
-	 * @param selectedPath
-	 */
-	private void updateLocationField(String selectedPath) {
-		locationPathField.setText(TextProcessor.process(selectedPath));
-	}
-
-	/**
-	 * Return the path on the location field.
-	 * 
-	 * @return String
-	 */
-	private String getPathFromLocationField() {
-		URI fieldURI;
-		try {
-			fieldURI = new URI(locationPathField.getText());
-		} catch (URISyntaxException e) {
-			return locationPathField.getText();
-		}
-		return fieldURI.getPath();
-	}
-
-	/**
-	 * Check if the entry in the widget location is valid. If it is valid return
-	 * null. Otherwise return a string that indicates the problem.
-	 * 
-	 * @return String
-	 */
-	public String checkValidLocation() {
-
-		if (isDefault()) {
-			return null;
-		}
-
-		String locationFieldContents = locationPathField.getText();
-		if (locationFieldContents.length() == 0) {
-			return (IDEWorkbenchMessages.WizardNewProjectCreationPage_projectLocationEmpty);
-		}
-
-		URI newPath = getProjectLocationURI();
-		if (newPath == null) {
-			return IDEWorkbenchMessages.ProjectLocationSelectionDialog_locationError;
-		}
-
-		//create a dummy project for the purpose of validation if necessary
-		IProject project = existingProject;
-		if (project == null) {
-			String name = new Path(locationFieldContents).lastSegment();
-			if (name != null && Path.EMPTY.isValidSegment(name)){
-				project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
-			}
-			else {
-				return IDEWorkbenchMessages.ProjectLocationSelectionDialog_locationError;
-			}
-		}
-		IStatus locationStatus = project.getWorkspace()
-				.validateProjectLocationURI(project, newPath);
-
-		if (!locationStatus.isOK()) {
-			return locationStatus.getMessage();
-		}
-		if (existingProject != null) {
-			URI projectPath = existingProject.getLocationURI();
-			if (projectPath != null && URIUtil.equals(projectPath, newPath)) {
-				return IDEWorkbenchMessages.ProjectLocationSelectionDialog_locationError;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Get the URI for the location field if possible.
-	 * 
-	 * @return URI or <code>null</code> if it is not valid.
-	 */
-	public URI getProjectLocationURI() {
-
-		FileSystemConfiguration configuration = getSelectedConfiguration();
-		if (configuration == null) {
-			return null;
-		}
-
-		return configuration.getContributor().getURI(
-				locationPathField.getText());
-
-	}
-
-	/**
-	 * Return the selected contributor
-	 * 
-	 * @return FileSystemConfiguration or <code>null</code> if it cannot be
-	 *         determined.
-	 */
-	private FileSystemConfiguration getSelectedConfiguration() {
-		if (fileSystemSelectionArea == null) {
-			return FileSystemSupportRegistry.getInstance()
-					.getDefaultConfiguration();
-		}
-
-		return fileSystemSelectionArea.getSelectedConfiguration();
-	}
-
-	/**
-	 * Set the text to the default or clear it if not using the defaults.
-	 * 
-	 * @param useDefaults
-	 * @param newName
-	 *            the name of the project to use. If <code>null</code> use the
-	 *            existing project name.
-	 */
-	public void updateProjectName(String newName) {
-		projectName = newName;
-		if (isDefault()) {
-			locationPathField.setText(TextProcessor
-					.process(getDefaultPathDisplayString()));
-		}
-
-	}
-
-	/**
-	 * Return the location for the project. If we are using defaults then return
-	 * the workspace root so that core creates it with default values.
-	 * 
-	 * @return String
-	 */
-	public String getProjectLocation() {
-		if (isDefault()) {
-			return Platform.getLocation().toString();
-		}
-		return locationPathField.getText();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectReferencePage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectReferencePage.java
deleted file mode 100644
index 406fd8f..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectReferencePage.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.dialogs;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-
-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.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-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.ICheckStateListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.ui.internal.ide.DialogUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * A property page for viewing and modifying the set
- * of projects referenced by a given project.
- */
-public class ProjectReferencePage extends PropertyPage {
-    private IProject project;
-
-    private boolean modified = false;
-
-    //widgets
-    private CheckboxTableViewer listViewer;
-
-    private static final int PROJECT_LIST_MULTIPLIER = 30;
-
-    /**
-     * Creates a new ProjectReferencePage.
-     */
-    public ProjectReferencePage() {
-        //Do nothing on creation
-    }
-
-    /**
-     * @see PreferencePage#createContents
-     */
-    protected Control createContents(Composite parent) {
-
-    	PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-                IIDEHelpContextIds.PROJECT_REFERENCE_PROPERTY_PAGE);
-        Font font = parent.getFont();
-
-        Composite composite = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        composite.setLayout(layout);
-        composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        composite.setFont(font);
-
-        initialize();
-
-        Label description = createDescriptionLabel(composite);
-        description.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-
-        listViewer = CheckboxTableViewer.newCheckList(composite, SWT.TOP
-                | SWT.BORDER);
-        listViewer.getTable().setFont(font);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        data.grabExcessHorizontalSpace = true;
-        
-        if(!project.isOpen())
-        	listViewer.getControl().setEnabled(false);
-
-        //Only set a height hint if it will not result in a cut off dialog
-        if (DialogUtil.inRegularFontMode(parent)) {
-			data.heightHint = getDefaultFontHeight(listViewer.getTable(),
-                    PROJECT_LIST_MULTIPLIER);
-		}
-        listViewer.getTable().setLayoutData(data);
-        listViewer.getTable().setFont(font);
-
-        listViewer.setLabelProvider(WorkbenchLabelProvider
-                .getDecoratingWorkbenchLabelProvider());
-        listViewer.setContentProvider(getContentProvider(project));
-        listViewer.setComparator(new ViewerComparator());
-        listViewer.setInput(project.getWorkspace());
-        try {
-            listViewer.setCheckedElements(project.getDescription()
-                    .getReferencedProjects());
-        } catch (CoreException e) {
-            //don't initial-check anything
-        }
-
-        //check for initial modification to avoid work if no changes are made
-        listViewer.addCheckStateListener(new ICheckStateListener() {
-            public void checkStateChanged(CheckStateChangedEvent event) {
-                modified = true;
-            }
-        });
-
-        return composite;
-    }
-
-    /**
-     * Returns a content provider for the list dialog. It
-     * will return all projects in the workspace except
-     * the given project, plus any projects referenced
-     * by the given project which do no exist in the
-     * workspace.
-     * @param project the project to provide content for
-     * @return the content provider that shows the project content
-     */
-    protected IStructuredContentProvider getContentProvider(
-            final IProject project) {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object o) {
-                if (!(o instanceof IWorkspace)) {
-                    return new Object[0];
-                }
-
-                // Collect all the projects in the workspace except the given project
-                IProject[] projects = ((IWorkspace) o).getRoot().getProjects();
-                ArrayList referenced = new ArrayList(projects.length);
-                boolean found = false;
-                for (int i = 0; i < projects.length; i++) {
-                    if (!found && projects[i].equals(project)) {
-                        found = true;
-                        continue;
-                    }
-                    referenced.add(projects[i]);
-                }
-
-                // Add any referenced that do not exist in the workspace currently
-                try {
-                    projects = project.getDescription().getReferencedProjects();
-                    for (int i = 0; i < projects.length; i++) {
-                        if (!referenced.contains(projects[i])) {
-							referenced.add(projects[i]);
-						}
-                    }
-                } catch (CoreException e) {
-                    //Ignore core exceptions
-                }
-
-                return referenced.toArray();
-            }
-        };
-    }
-
-    /**
-     * Get the defualt widget height for the supplied control.
-     * @return int
-     * @param control - the control being queried about fonts
-     * @param lines - the number of lines to be shown on the table.
-     */
-    private static int getDefaultFontHeight(Control control, int lines) {
-        FontData[] viewerFontData = control.getFont().getFontData();
-        int fontHeight = 10;
-
-        //If we have no font data use our guess
-        if (viewerFontData.length > 0) {
-			fontHeight = viewerFontData[0].getHeight();
-		}
-        return lines * fontHeight;
-
-    }
-
-    /**
-     * Handle the exception thrown when saving.
-     * @param e the exception
-     */
-    protected void handle(InvocationTargetException e) {
-        IStatus error;
-        Throwable target = e.getTargetException();
-        if (target instanceof CoreException) {
-            error = ((CoreException) target).getStatus();
-        } else {
-            String msg = target.getMessage();
-            if (msg == null) {
-				msg = IDEWorkbenchMessages.Internal_error;
-			}
-            error = new Status(IStatus.ERROR, IDEWorkbenchPlugin.IDE_WORKBENCH,
-                    1, msg, target);
-        }
-        ErrorDialog.openError(getControl().getShell(), null, null, error);
-    }
-
-    /**
-     * Initializes a ProjectReferencePage.
-     */
-    private void initialize() {
-        project = (IProject) getElement().getAdapter(IResource.class);
-        noDefaultAndApplyButton();
-        setDescription(NLS.bind(IDEWorkbenchMessages.ProjectReferencesPage_label, project.getName()));
-    }
-
-    /**
-     * @see PreferencePage#performOk
-     */
-    public boolean performOk() {
-        if (!modified) {
-			return true;
-		}
-        Object[] checked = listViewer.getCheckedElements();
-        final IProject[] refs = new IProject[checked.length];
-        System.arraycopy(checked, 0, refs, 0, checked.length);
-        IRunnableWithProgress runnable = new IRunnableWithProgress() {
-            public void run(IProgressMonitor monitor)
-                    throws InvocationTargetException {
-
-                try {
-                    IProjectDescription description = project.getDescription();
-                    description.setReferencedProjects(refs);
-                    project.setDescription(description, monitor);
-                } catch (CoreException e) {
-                    throw new InvocationTargetException(e);
-                }
-            }
-        };
-        try {
-            new ProgressMonitorJobsDialog(getControl().getShell()).run(true,
-                    true, runnable);
-        } catch (InterruptedException e) {
-            //Ignore interrupted exceptions
-        } catch (InvocationTargetException e) {
-            handle(e);
-            return false;
-        }
-        return true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceComparator.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceComparator.java
deleted file mode 100644
index 6af1a3b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceComparator.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.internal.ide.dialogs;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-
-/**
- * Sorter for viewers that display items of type <code>IResource</code>.
- * The sorter supports two sort criteria:
- * <p>
- * <code>NAME</code>: Folders are given order precedence, followed by files.
- * Within these two groups resources are ordered by name.  All name comparisons
- * are case-insensitive.
- * </p>
- * <p>
- * <code>TYPE</code>: Folders are given order precedence, followed by files.
- * Within these two groups resources are ordered by extension.  All extension
- * comparisons are case-insensitive.
- * </p>
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class ResourceComparator extends ViewerComparator {
-
-    /**
-     * Constructor argument value that indicates to sort items by name.
-     */
-    public final static int NAME = 1;
-
-    /**
-     * Constructor argument value that indicates to sort items by extension.
-     */
-    public final static int TYPE = 2;
-
-    private int criteria;
-
-    /**
-     * Creates a resource sorter that will use the given sort criteria.
-     *
-     * @param criteria the sort criterion to use: one of <code>NAME</code> or 
-     *   <code>TYPE</code>
-     */
-    public ResourceComparator(int criteria) {
-        super();
-        this.criteria = criteria;
-    }
-
-    /**
-     * Returns an integer value representing the relative sort priority of the 
-     * given element based on its class.
-     * <p>
-     * <ul>
-     *   <li>resources (<code>IResource</code>) - 2</li>
-     *   <li>project references (<code>ProjectReference</code>) - 1</li>
-     *   <li>everything else - 0</li>
-     * </ul>
-     * </p>
-     *
-     * @param element the element
-     * @return the sort priority (larger numbers means more important)
-     */
-    protected int classComparison(Object element) {
-        if (element instanceof IResource) {
-            return 2;
-        }
-        return 0;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ViewerSorter.
-     */
-    public int compare(Viewer viewer, Object o1, Object o2) {
-        //have to deal with non-resources in navigator
-        //if one or both objects are not resources, returned a comparison 
-        //based on class.
-        if (!(o1 instanceof IResource && o2 instanceof IResource)) {
-            return compareClass(o1, o2);
-        }
-        IResource r1 = (IResource) o1;
-        IResource r2 = (IResource) o2;
-
-        if (r1 instanceof IContainer && r2 instanceof IContainer) {
-			return compareNames(r1, r2);
-		} else if (r1 instanceof IContainer) {
-			return -1;
-		} else if (r2 instanceof IContainer) {
-			return 1;
-		} else if (criteria == NAME) {
-			return compareNames(r1, r2);
-		} else if (criteria == TYPE) {
-			return compareTypes(r1, r2);
-		} else {
-			return 0;
-		}
-    }
-
-    /**
-     * Returns a number reflecting the collation order of the given elements
-     * based on their class.
-     *
-     * @param element1 the first element to be ordered
-     * @param element2 the second element to be ordered
-     * @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
-     */
-    protected int compareClass(Object element1, Object element2) {
-        return classComparison(element1) - classComparison(element2);
-    }
-
-    /**
-     * Returns a number reflecting the collation order of the given resources
-     * based on their resource names.
-     *
-     * @param resource1 the first resource element to be ordered
-     * @param resource2 the second resource element to be ordered
-     * @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
-     */
-    protected int compareNames(IResource resource1, IResource resource2) {
-        return getComparator().compare(resource1.getName(), resource2.getName());
-    }
-
-    /**
-     * Returns a number reflecting the collation order of the given resources
-     * based on their respective file extensions. Resources with the same file
-     * extension will be collated based on their names.
-     *
-     * @param resource1 the first resource element to be ordered
-     * @param resource2 the second resource element to be ordered
-     * @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
-     */
-    protected int compareTypes(IResource resource1, IResource resource2) {
-        String ext1 = getExtensionFor(resource1);
-        String ext2 = getExtensionFor(resource2);
-
-        // Compare extensions.  If they're different then return a value that
-        // indicates correct extension ordering.  If they're the same then
-        // return a value that indicates the correct NAME ordering.
-        int result = getComparator().compare(ext1, ext2);
-
-        if (result != 0) {
-			return result;
-		}
-
-        return compareNames(resource1, resource2);
-    }
-
-    /**
-     * Returns the sort criteria of this this sorter.
-     *
-     * @return the sort criterion: one of <code>NAME</code> or <code>TYPE</code>
-     */
-    public int getCriteria() {
-        return criteria;
-    }
-
-    /**
-     * Returns the extension portion of the given resource.
-     *
-     * @param resource the resource
-     * @return the file extension, possibily the empty string
-     */
-    private String getExtensionFor(IResource resource) {
-        String ext = resource.getFileExtension();
-        return ext == null ? "" : ext; //$NON-NLS-1$
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceInfoPage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceInfoPage.java
deleted file mode 100644
index 26ff680..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceInfoPage.java
+++ /dev/null
@@ -1,638 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.dialogs;
-
-import java.net.URI;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileSystem;
-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.resources.ResourceAttributes;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.preference.FieldEditor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.osgi.util.TextProcessor;
-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.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.PlatformUI;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.ui.ide.dialogs.ResourceEncodingFieldEditor;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.LineDelimiterEditor;
-
-/**
- * The ResourceInfoPage is the page that shows the basic info about the
- * resource.
- */
-public class ResourceInfoPage extends PropertyPage {
-
-	private Button editableBox;
-
-	private Button executableBox;
-
-	private Button archiveBox;
-
-	private Button derivedBox;
-
-	private boolean previousReadOnlyValue;
-
-	private boolean previousExecutableValue;
-
-	private boolean previousArchiveValue;
-
-	private boolean previousDerivedValue;
-
-	private IContentDescription cachedContentDescription;
-
-	private ResourceEncodingFieldEditor encodingEditor;
-
-	private LineDelimiterEditor lineDelimiterEditor;
-
-	private static String READ_ONLY = IDEWorkbenchMessages.ResourceInfo_readOnly;
-
-	private static String EXECUTABLE = IDEWorkbenchMessages.ResourceInfo_executable;
-
-	private static String ARCHIVE = IDEWorkbenchMessages.ResourceInfo_archive;
-
-	private static String DERIVED = IDEWorkbenchMessages.ResourceInfo_derived;
-
-	private static String TYPE_TITLE = IDEWorkbenchMessages.ResourceInfo_type;
-
-	private static String LOCATION_TITLE = IDEWorkbenchMessages.ResourceInfo_location;
-
-	private static String RESOLVED_LOCATION_TITLE = IDEWorkbenchMessages.ResourceInfo_resolvedLocation;
-
-	private static String SIZE_TITLE = IDEWorkbenchMessages.ResourceInfo_size;
-
-	private static String PATH_TITLE = IDEWorkbenchMessages.ResourceInfo_path;
-
-	private static String TIMESTAMP_TITLE = IDEWorkbenchMessages.ResourceInfo_lastModified;
-
-	private static String FILE_ENCODING_TITLE = IDEWorkbenchMessages.WorkbenchPreference_encoding;
-
-	private static String CONTAINER_ENCODING_TITLE = IDEWorkbenchMessages.ResourceInfo_fileEncodingTitle;
-
-	// Max value width in characters before wrapping
-	private static final int MAX_VALUE_WIDTH = 80;
-
-	/**
-	 * Create the group that shows the name, location, size and type.
-	 * 
-	 * @param parent
-	 *            the composite the group will be created in
-	 * @param resource
-	 *            the resource the information is being taken from.
-	 * @return the composite for the group
-	 */
-	private Composite createBasicInfoGroup(Composite parent, IResource resource) {
-
-		Font font = parent.getFont();
-
-		Composite basicInfoComposite = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		basicInfoComposite.setLayout(layout);
-		GridData data = new GridData();
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		basicInfoComposite.setLayoutData(data);
-		basicInfoComposite.setFont(font);
-
-		// The group for path
-		Label pathLabel = new Label(basicInfoComposite, SWT.NONE);
-		pathLabel.setText(PATH_TITLE);
-		GridData gd = new GridData();
-		gd.verticalAlignment = SWT.TOP;
-		pathLabel.setLayoutData(gd);
-		pathLabel.setFont(font);
-
-		// path value label
-		Text pathValueText = new Text(basicInfoComposite, SWT.WRAP
-				| SWT.READ_ONLY);
-		String pathString = TextProcessor.process(resource.getFullPath()
-				.toString());
-		pathValueText.setText(pathString);
-		gd = new GridData();
-		gd.widthHint = convertWidthInCharsToPixels(MAX_VALUE_WIDTH);
-		gd.grabExcessHorizontalSpace = true;
-		gd.horizontalAlignment = GridData.FILL;
-		pathValueText.setLayoutData(gd);
-		pathValueText.setFont(font);
-		pathValueText.setBackground(pathValueText.getDisplay().getSystemColor(
-				SWT.COLOR_WIDGET_BACKGROUND));
-
-		// The group for types
-		Label typeTitle = new Label(basicInfoComposite, SWT.LEFT);
-		typeTitle.setText(TYPE_TITLE);
-		typeTitle.setFont(font);
-
-		Text typeValue = new Text(basicInfoComposite, SWT.LEFT | SWT.READ_ONLY);
-		typeValue.setText(IDEResourceInfoUtils.getTypeString(resource,
-				getContentDescription(resource)));
-		typeValue.setBackground(typeValue.getDisplay().getSystemColor(
-				SWT.COLOR_WIDGET_BACKGROUND));
-		typeValue.setFont(font);
-
-		// The group for location
-		Label locationTitle = new Label(basicInfoComposite, SWT.LEFT);
-		locationTitle.setText(LOCATION_TITLE);
-		gd = new GridData();
-		gd.verticalAlignment = SWT.TOP;
-		locationTitle.setLayoutData(gd);
-		locationTitle.setFont(font);
-
-		Text locationValue = new Text(basicInfoComposite, SWT.WRAP
-				| SWT.READ_ONLY);
-		String locationStr = TextProcessor.process(IDEResourceInfoUtils
-				.getLocationText(resource));
-		locationValue.setText(locationStr);
-		gd = new GridData();
-		gd.widthHint = convertWidthInCharsToPixels(MAX_VALUE_WIDTH);
-		gd.grabExcessHorizontalSpace = true;
-		gd.horizontalAlignment = GridData.FILL;
-		locationValue.setLayoutData(gd);
-		locationValue.setFont(font);
-		locationValue.setBackground(locationValue.getDisplay().getSystemColor(
-				SWT.COLOR_WIDGET_BACKGROUND));
-
-		if (isPathVariable(resource)) {
-			Label resolvedLocationTitle = new Label(basicInfoComposite,
-					SWT.LEFT);
-			resolvedLocationTitle.setText(RESOLVED_LOCATION_TITLE);
-			gd = new GridData();
-			gd.verticalAlignment = SWT.TOP;
-			resolvedLocationTitle.setLayoutData(gd);
-			resolvedLocationTitle.setFont(font);
-
-			Text resolvedLocationValue = new Text(basicInfoComposite, SWT.WRAP
-					| SWT.READ_ONLY);
-			resolvedLocationValue.setText(IDEResourceInfoUtils
-					.getResolvedLocationText(resource));
-			gd = new GridData();
-			gd.widthHint = convertWidthInCharsToPixels(MAX_VALUE_WIDTH);
-			gd.grabExcessHorizontalSpace = true;
-			gd.horizontalAlignment = GridData.FILL;
-			resolvedLocationValue.setLayoutData(gd);
-			resolvedLocationValue.setFont(font);
-			resolvedLocationValue.setBackground(resolvedLocationValue
-					.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-		}
-		if (resource.getType() == IResource.FILE) {
-			// The group for size
-			Label sizeTitle = new Label(basicInfoComposite, SWT.LEFT);
-			sizeTitle.setText(SIZE_TITLE);
-			sizeTitle.setFont(font);
-
-			Text sizeValue = new Text(basicInfoComposite, SWT.LEFT
-					| SWT.READ_ONLY);
-			sizeValue.setText(IDEResourceInfoUtils.getSizeString(resource));
-			gd = new GridData();
-			gd.widthHint = convertWidthInCharsToPixels(MAX_VALUE_WIDTH);
-			gd.grabExcessHorizontalSpace = true;
-			gd.horizontalAlignment = GridData.FILL;
-			sizeValue.setLayoutData(gd);
-			sizeValue.setFont(font);
-			sizeValue.setBackground(sizeValue.getDisplay().getSystemColor(
-					SWT.COLOR_WIDGET_BACKGROUND));
-		}
-
-		return basicInfoComposite;
-	}
-
-	protected Control createContents(Composite parent) {
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-				IIDEHelpContextIds.RESOURCE_INFO_PROPERTY_PAGE);
-
-		// layout the page
-		IResource resource = (IResource) getElement().getAdapter(
-				IResource.class);
-		
-		if (resource == null) {
-			Label label = new Label(parent, SWT.NONE);
-			label.setText(IDEWorkbenchMessages.ResourceInfoPage_noResource);
-			return label;
-		}
-		
-		if (resource.getType() != IResource.PROJECT) {
-			ResourceAttributes attrs = resource.getResourceAttributes();
-			if (attrs != null) {
-				previousReadOnlyValue = attrs.isReadOnly();
-				previousExecutableValue = attrs.isExecutable();
-				previousArchiveValue = attrs.isArchive();
-			} else {
-				previousReadOnlyValue = previousExecutableValue = previousArchiveValue = false;
-			}
-			previousDerivedValue = resource.isDerived();
-		}
-
-		// top level group
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		GridData data = new GridData(GridData.FILL);
-		data.grabExcessHorizontalSpace = true;
-		composite.setLayoutData(data);
-		composite.setFont(parent.getFont());
-
-		createBasicInfoGroup(composite, resource);
-		createSeparator(composite);
-		createStateGroup(composite, resource);
-		new Label(composite, SWT.NONE); // a vertical spacer
-		encodingEditor = new ResourceEncodingFieldEditor(
-				getFieldEditorLabel(resource), composite, resource);
-		encodingEditor.setPage(this);
-		encodingEditor.load();
-
-		encodingEditor.setPropertyChangeListener(new IPropertyChangeListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-			 */
-			public void propertyChange(PropertyChangeEvent event) {
-				if (event.getProperty().equals(FieldEditor.IS_VALID)) {
-					setValid(encodingEditor.isValid());
-				}
-
-			}
-		});
-
-		
-		if (resource.getType() == IResource.PROJECT) {
-			lineDelimiterEditor = new LineDelimiterEditor(composite, resource
-					.getProject());
-			lineDelimiterEditor.doLoad();
-		}
-		
-		//We can't save the preferences for close
-		if (resource.getType() == IResource.PROJECT && !((IProject)resource).isOpen()){
-			encodingEditor.setEnabled(false, composite);
-			lineDelimiterEditor.setEnabled(false);
-		}
-
-		return composite;
-	}
-
-	/**
-	 * Return the label for the encoding field editor for the resource.
-	 * 
-	 * @param resource -
-	 *            the resource to edit.
-	 * @return String
-	 */
-	private String getFieldEditorLabel(IResource resource) {
-		if (resource instanceof IContainer) {
-			return CONTAINER_ENCODING_TITLE;
-		}
-		return FILE_ENCODING_TITLE;
-	}
-
-	/**
-	 * Create the isEditable button and it's associated label as a child of
-	 * parent using the editableValue of the receiver. The Composite will be the
-	 * parent of the button.
-	 * 
-	 * @param composite
-	 *            the parent of the button
-	 */
-	private void createEditableButton(Composite composite) {
-
-		this.editableBox = new Button(composite, SWT.CHECK | SWT.RIGHT);
-		this.editableBox.setAlignment(SWT.LEFT);
-		this.editableBox.setText(READ_ONLY);
-		this.editableBox.setSelection(this.previousReadOnlyValue);
-		this.editableBox.setFont(composite.getFont());
-		GridData data = new GridData();
-		data.horizontalSpan = 2;
-		this.editableBox.setLayoutData(data);
-	}
-
-	/**
-	 * Create the isExecutable button and it's associated label as a child of
-	 * parent using the editableValue of the receiver. The Composite will be the
-	 * parent of the button.
-	 * 
-	 * @param composite
-	 *            the parent of the button
-	 */
-	private void createExecutableButton(Composite composite) {
-
-		this.executableBox = new Button(composite, SWT.CHECK | SWT.RIGHT);
-		this.executableBox.setAlignment(SWT.LEFT);
-		this.executableBox.setText(EXECUTABLE);
-		this.executableBox.setSelection(this.previousExecutableValue);
-		this.executableBox.setFont(composite.getFont());
-		GridData data = new GridData();
-		data.horizontalSpan = 2;
-		this.executableBox.setLayoutData(data);
-	}
-
-	/**
-	 * Create the isArchive button and it's associated label as a child of
-	 * parent using the editableValue of the receiver. The Composite will be the
-	 * parent of the button.
-	 * 
-	 * @param composite
-	 *            the parent of the button
-	 */
-	private void createArchiveButton(Composite composite) {
-
-		this.archiveBox = new Button(composite, SWT.CHECK | SWT.RIGHT);
-		this.archiveBox.setAlignment(SWT.LEFT);
-		this.archiveBox.setText(ARCHIVE);
-		this.archiveBox.setSelection(this.previousArchiveValue);
-		this.archiveBox.setFont(composite.getFont());
-		GridData data = new GridData();
-		data.horizontalSpan = 2;
-		this.archiveBox.setLayoutData(data);
-	}
-
-	/**
-	 * Create the derived button and it's associated label as a child of parent
-	 * using the derived of the receiver. The Composite will be the parent of
-	 * the button.
-	 * 
-	 * @param composite
-	 *            the parent of the button
-	 */
-	private void createDerivedButton(Composite composite) {
-
-		this.derivedBox = new Button(composite, SWT.CHECK | SWT.RIGHT);
-		this.derivedBox.setAlignment(SWT.LEFT);
-		this.derivedBox.setText(DERIVED);
-		this.derivedBox.setSelection(this.previousDerivedValue);
-		this.derivedBox.setFont(composite.getFont());
-		GridData data = new GridData();
-		data.horizontalSpan = 2;
-		this.derivedBox.setLayoutData(data);
-	}
-
-	/**
-	 * Create a separator that goes across the entire page
-	 * 
-	 * @param composite
-	 *            The parent of the seperator
-	 */
-	private void createSeparator(Composite composite) {
-
-		Label separator = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		separator.setLayoutData(gridData);
-	}
-
-	/**
-	 * Create the group that shows the read only state and the timestamp.
-	 * 
-	 * @param parent
-	 *            the composite the group will be created in
-	 * @param resource
-	 *            the resource the information is being taken from.
-	 */
-	private void createStateGroup(Composite parent, IResource resource) {
-
-		Font font = parent.getFont();
-
-		Composite composite = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		composite.setLayoutData(data);
-		composite.setFont(font);
-
-		Label timeStampLabel = new Label(composite, SWT.NONE);
-		timeStampLabel.setText(TIMESTAMP_TITLE);
-		timeStampLabel.setFont(font);
-
-		// timeStamp value label
-		Text timeStampValue = new Text(composite, SWT.READ_ONLY);
-		timeStampValue.setText(IDEResourceInfoUtils
-				.getDateStringValue(resource));
-		timeStampValue.setFont(font);
-		timeStampValue.setBackground(timeStampValue.getDisplay()
-				.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-		timeStampValue.setLayoutData(new GridData(GridData.FILL_HORIZONTAL
-				| GridData.GRAB_HORIZONTAL));
-
-		// Not relevant to projects
-		if (resource.getType() != IResource.PROJECT) {
-			URI location = resource.getLocationURI();
-			if (location != null && location.getScheme() != null) {
-				try {
-					IFileSystem fs = EFS.getFileSystem(location.getScheme());
-					int attributes = fs.attributes();
-					if ((attributes & EFS.ATTRIBUTE_READ_ONLY) != 0) {
-						createEditableButton(composite);
-					}
-					if ((attributes & EFS.ATTRIBUTE_EXECUTABLE) != 0) {
-						createExecutableButton(composite);
-					}
-					if ((attributes & EFS.ATTRIBUTE_ARCHIVE) != 0) {
-						createArchiveButton(composite);
-					}
-				} catch (CoreException e) {
-					// ignore if we can't access the file system for this
-					// resource
-				}
-			}
-			createDerivedButton(composite);
-			// create warning for executable flag
-			if (executableBox != null && resource.getType() == IResource.FOLDER) {
-				Composite noteComposite = createNoteComposite(font, composite,
-						IDEWorkbenchMessages.Preference_note,
-						IDEWorkbenchMessages.ResourceInfo_exWarning);
-				GridData noteData = new GridData();
-				noteData.horizontalSpan = 2;
-				noteComposite.setLayoutData(noteData);
-			}
-		}
-	}
-
-	private IContentDescription getContentDescription(IResource resource) {
-		if (resource.getType() != IResource.FILE) {
-			return null;
-		}
-
-		if (cachedContentDescription == null) {
-			try {
-				cachedContentDescription = ((IFile) resource)
-						.getContentDescription();
-			} catch (CoreException e) {
-				// silently ignore
-			}
-		}
-		return cachedContentDescription;
-	}
-
-	/**
-	 * Returns whether the given resource is a linked resource bound to a path
-	 * variable.
-	 * 
-	 * @param resource
-	 *            resource to test
-	 * @return boolean <code>true</code> the given resource is a linked
-	 *         resource bound to a path variable. <code>false</code> the given
-	 *         resource is either not a linked resource or it is not using a
-	 *         path variable.
-	 */
-	private boolean isPathVariable(IResource resource) {
-		if (!resource.isLinked()) {
-			return false;
-		}
-
-		IPath resolvedLocation = resource.getLocation();
-		if (resolvedLocation == null) {
-			// missing path variable
-			return true;
-		}
-		IPath rawLocation = resource.getRawLocation();
-		if (resolvedLocation.equals(rawLocation)) {
-			return false;
-		}
-
-		return true;
-	}
-
-	/**
-	 * Reset the editableBox to the false.
-	 */
-	protected void performDefaults() {
-
-		IResource resource = (IResource) getElement().getAdapter(
-				IResource.class);
-		
-		if (resource == null)
-			return;
-
-		// Nothing to update if we never made the box
-		if (this.editableBox != null) {
-			this.editableBox.setSelection(false);
-		}
-
-		// Nothing to update if we never made the box
-		if (this.executableBox != null) {
-			this.executableBox.setSelection(false);
-		}
-
-		// Nothing to update if we never made the box
-		if (this.derivedBox != null) {
-			this.derivedBox.setSelection(false);
-		}
-
-		encodingEditor.loadDefault();
-
-		if (lineDelimiterEditor != null) {
-			lineDelimiterEditor.loadDefault();
-		}
-
-	}
-
-	/**
-	 * Apply the read only state and the encoding to the resource.
-	 */
-	public boolean performOk() {
-
-		IResource resource = (IResource) getElement().getAdapter(
-				IResource.class);
-		
-		if (resource == null)
-			return true;
-
-		encodingEditor.store();
-
-		if (lineDelimiterEditor != null) {
-			lineDelimiterEditor.store();
-		}
-
-		try {
-			ResourceAttributes attrs = resource.getResourceAttributes();
-			if (attrs != null) {
-				boolean hasChange = false;
-				// Nothing to update if we never made the box
-				if (editableBox != null
-						&& editableBox.getSelection() != previousReadOnlyValue) {
-					attrs.setReadOnly(editableBox.getSelection());
-					hasChange = true;
-				}
-				if (executableBox != null
-						&& executableBox.getSelection() != previousExecutableValue) {
-					attrs.setExecutable(executableBox.getSelection());
-					hasChange = true;
-				}
-				if (archiveBox != null
-						&& archiveBox.getSelection() != previousArchiveValue) {
-					attrs.setArchive(archiveBox.getSelection());
-					hasChange = true;
-				}
-				if (hasChange) {
-					resource.setResourceAttributes(attrs);
-					attrs = resource.getResourceAttributes();
-					if (attrs != null) {
-						previousReadOnlyValue = attrs.isReadOnly();
-						previousExecutableValue = attrs.isExecutable();
-						previousArchiveValue = attrs.isArchive();
-						if (editableBox != null) {
-							editableBox.setSelection(attrs.isReadOnly());
-						}
-						if (executableBox != null) {
-							executableBox.setSelection(attrs.isExecutable());
-						}
-						if (archiveBox != null) {
-							archiveBox.setSelection(attrs.isArchive());
-						}
-					}
-				}
-			}
-
-			// Nothing to update if we never made the box
-			if (this.derivedBox != null) {
-				boolean localDerivedValue = derivedBox.getSelection();
-				if (previousDerivedValue != localDerivedValue) {
-					resource.setDerived(localDerivedValue);
-					boolean isDerived = resource.isDerived();
-					previousDerivedValue = isDerived;
-					derivedBox.setSelection(isDerived);
-				}
-			}
-		} catch (CoreException exception) {
-			ErrorDialog.openError(getShell(),
-					IDEWorkbenchMessages.InternalError, exception
-							.getLocalizedMessage(), exception.getStatus());
-			return false;
-		}
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.java
deleted file mode 100644
index 3763bb4..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.java
+++ /dev/null
@@ -1,1089 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.dialogs;
-
-import java.util.ArrayList;
-import java.util.Collection;
-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.commands.common.EventManager;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ITreeViewerListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeExpansionEvent;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- *	Workbench-level composite that combines a CheckboxTreeViewer and CheckboxListViewer.
- *	All viewer selection-driven interactions are handled within this object
- */
-public class ResourceTreeAndListGroup extends EventManager implements
-		ICheckStateListener, ISelectionChangedListener, ITreeViewerListener {
-    private Object root;
-
-    private Object currentTreeSelection;
-
-    private Collection expandedTreeNodes = new HashSet();
-
-    private Map checkedStateStore = new HashMap(9);
-
-    private Collection whiteCheckedTreeItems = new HashSet();
-
-    private ITreeContentProvider treeContentProvider;
-
-    private IStructuredContentProvider listContentProvider;
-
-    private ILabelProvider treeLabelProvider;
-
-    private ILabelProvider listLabelProvider;
-
-    // widgets
-    private CheckboxTreeViewer treeViewer;
-
-    private CheckboxTableViewer listViewer;
-
-    //height hint for viewers
-    private static int PREFERRED_HEIGHT = 150;
-
-    /**
-     *	Create an instance of this class.  Use this constructor if you wish to specify
-     *	the width and/or height of the combined widget (to only hardcode one of the
-     *	sizing dimensions, specify the other dimension's value as -1)
-     *  
-     * @param parent
-     * @param rootObject
-     * @param treeContentProvider
-     * @param treeLabelProvider
-     * @param listContentProvider
-     * @param listLabelProvider
-     * @param style
-     * @param useHeightHint If true then use the height hint
-     *  to make this group big enough
-     *
-     */
-    public ResourceTreeAndListGroup(Composite parent, Object rootObject,
-            ITreeContentProvider treeContentProvider,
-            ILabelProvider treeLabelProvider,
-            IStructuredContentProvider listContentProvider,
-            ILabelProvider listLabelProvider, int style, boolean useHeightHint) {
-
-        root = rootObject;
-        this.treeContentProvider = treeContentProvider;
-        this.listContentProvider = listContentProvider;
-        this.treeLabelProvider = treeLabelProvider;
-        this.listLabelProvider = listLabelProvider;
-        createContents(parent, style, useHeightHint);
-    }
-
-    /**
-     * This method must be called just before this window becomes visible.
-     */
-    public void aboutToOpen() {
-        determineWhiteCheckedDescendents(root);
-        checkNewTreeElements(treeContentProvider.getElements(root));
-        currentTreeSelection = null;
-
-        //select the first element in the list
-        Object[] elements = treeContentProvider.getElements(root);
-        Object primary = elements.length > 0 ? elements[0] : null;
-        if (primary != null) {
-            treeViewer.setSelection(new StructuredSelection(primary));
-        }
-        treeViewer.getControl().setFocus();
-    }
-
-    /**
-     *	Add the passed listener to self's collection of clients
-     *	that listen for changes to element checked states
-     *
-     *	@param listener ICheckStateListener
-     */
-    public void addCheckStateListener(ICheckStateListener listener) {
-        addListenerObject(listener);
-    }
-
-    /**
-     *	Return a boolean indicating whether all children of the passed tree element
-     *	are currently white-checked
-     *
-     *	@return boolean
-     *	@param treeElement java.lang.Object
-     */
-    protected boolean areAllChildrenWhiteChecked(Object treeElement) {
-        Object[] children = treeContentProvider.getChildren(treeElement);
-        for (int i = 0; i < children.length; ++i) {
-            if (!whiteCheckedTreeItems.contains(children[i])) {
-				return false;
-			}
-        }
-
-        return true;
-    }
-
-    /**
-     *	Return a boolean indicating whether all list elements associated with
-     *	the passed tree element are currently checked
-     *
-     *	@return boolean
-     *	@param treeElement java.lang.Object
-     */
-    protected boolean areAllElementsChecked(Object treeElement) {
-        List checkedElements = (List) checkedStateStore.get(treeElement);
-        if (checkedElements == null) {
-			return false;
-		}
-
-        return getListItemsSize(treeElement) == checkedElements.size();
-    }
-
-    /**
-     *	Iterate through the passed elements which are being realized for the first
-     *	time and check each one in the tree viewer as appropriate
-     */
-    protected void checkNewTreeElements(Object[] elements) {
-        for (int i = 0; i < elements.length; ++i) {
-            Object currentElement = elements[i];
-            boolean checked = checkedStateStore.containsKey(currentElement);
-            treeViewer.setChecked(currentElement, checked);
-            treeViewer.setGrayed(currentElement, checked
-                    && !whiteCheckedTreeItems.contains(currentElement));
-        }
-    }
-
-    /**
-     *	An item was checked in one of self's two views.  Determine which
-     *	view this occurred in and delegate appropriately
-     *
-     *	@param event CheckStateChangedEvent
-     */
-    public void checkStateChanged(final CheckStateChangedEvent event) {
-
-        //Potentially long operation - show a busy cursor
-        BusyIndicator.showWhile(treeViewer.getControl().getDisplay(),
-                new Runnable() {
-                    public void run() {
-                        if (event.getCheckable().equals(treeViewer)) {
-							treeItemChecked(event.getElement(), event
-                                    .getChecked());
-						} else {
-							listItemChecked(event.getElement(), event
-                                    .getChecked(), true);
-						}
-
-                        notifyCheckStateChangeListeners(event);
-                    }
-                });
-    }
-
-    /**
-     *	Lay out and initialize self's visual components.
-     *
-     *	@param parent org.eclipse.swt.widgets.Composite
-     *  @param style the style flags for the new Composite
-     *	@param useHeightHint If true yse the preferredHeight.
-     */
-    protected void createContents(Composite parent, int style,
-            boolean useHeightHint) {
-        // group pane
-        Composite composite = new Composite(parent, style);
-        composite.setFont(parent.getFont());
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        layout.makeColumnsEqualWidth = true;
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        composite.setLayout(layout);
-        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-        createTreeViewer(composite, useHeightHint);
-        createListViewer(composite, useHeightHint);
-
-        initialize();
-    }
-
-    /**
-     *	Create this group's list viewer.
-     */
-    protected void createListViewer(Composite parent, boolean useHeightHint) {
-        listViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        if (useHeightHint) {
-			data.heightHint = PREFERRED_HEIGHT;
-		}
-        listViewer.getTable().setLayoutData(data);
-        listViewer.getTable().setFont(parent.getFont());
-        listViewer.setContentProvider(listContentProvider);
-        listViewer.setLabelProvider(listLabelProvider);
-        listViewer.addCheckStateListener(this);
-    }
-
-    /**
-     *	Create this group's tree viewer.
-     */
-    protected void createTreeViewer(Composite parent, boolean useHeightHint) {
-        Tree tree = new Tree(parent, SWT.CHECK | SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        if (useHeightHint) {
-			data.heightHint = PREFERRED_HEIGHT;
-		}
-        tree.setLayoutData(data);
-        tree.setFont(parent.getFont());
-
-        treeViewer = new CheckboxTreeViewer(tree);
-        treeViewer.setContentProvider(treeContentProvider);
-        treeViewer.setLabelProvider(treeLabelProvider);
-        treeViewer.addTreeListener(this);
-        treeViewer.addCheckStateListener(this);
-        treeViewer.addSelectionChangedListener(this);
-    }
-
-    /**
-     * Returns a boolean indicating whether the passed tree element should be
-     * at LEAST gray-checked.  Note that this method does not consider whether
-     * it should be white-checked, so a specified tree item which should be
-     * white-checked will result in a <code>true</code> answer from this method.
-     * To determine whether a tree item should be white-checked use method
-     * #determineShouldBeWhiteChecked(Object).
-     *
-     * @param treeElement java.lang.Object
-     * @return boolean
-     * @see #determineShouldBeWhiteChecked(Object)
-     */
-    protected boolean determineShouldBeAtLeastGrayChecked(Object treeElement) {
-        // if any list items associated with treeElement are checked then it
-        // retains its gray-checked status regardless of its children
-        List checked = (List) checkedStateStore.get(treeElement);
-        if (checked != null && (!checked.isEmpty())) {
-			return true;
-		}
-
-        // if any children of treeElement are still gray-checked then treeElement
-        // must remain gray-checked as well. Only ask expanded nodes
-        if (expandedTreeNodes.contains(treeElement)) {
-            Object[] children = treeContentProvider.getChildren(treeElement);
-            for (int i = 0; i < children.length; ++i) {
-                if (checkedStateStore.containsKey(children[i])) {
-					return true;
-				}
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns a boolean indicating whether the passed tree item should be
-     * white-checked.
-     *
-     * @return boolean
-     * @param treeElement java.lang.Object
-     */
-    protected boolean determineShouldBeWhiteChecked(Object treeElement) {
-        return areAllChildrenWhiteChecked(treeElement)
-                && areAllElementsChecked(treeElement);
-    }
-
-    /**
-     *	Recursively add appropriate tree elements to the collection of
-     *	known white-checked tree elements.
-     *
-     *	@param treeElement java.lang.Object
-     */
-    protected void determineWhiteCheckedDescendents(Object treeElement) {
-        // always go through all children first since their white-checked
-        // statuses will be needed to determine the white-checked status for
-        // this tree element
-        Object[] children = treeContentProvider.getElements(treeElement);
-        for (int i = 0; i < children.length; ++i) {
-			determineWhiteCheckedDescendents(children[i]);
-		}
-
-        // now determine the white-checked status for this tree element
-        if (determineShouldBeWhiteChecked(treeElement)) {
-			setWhiteChecked(treeElement, true);
-		}
-    }
-
-    /**
-     * Cause the tree viewer to expand all its items
-     */
-    public void expandAll() {
-        treeViewer.expandAll();
-    }
-
-    /**
-     *	Expand an element in a tree viewer
-     */
-    private void expandTreeElement(final Object item) {
-        BusyIndicator.showWhile(treeViewer.getControl().getDisplay(),
-                new Runnable() {
-                    public void run() {
-
-                        // First see if the children need to be given their checked state at all.  If they've
-                        // already been realized then this won't be necessary
-                        if (expandedTreeNodes.contains(item)) {
-							checkNewTreeElements(treeContentProvider
-                                    .getChildren(item));
-						} else {
-
-                            expandedTreeNodes.add(item);
-                            if (whiteCheckedTreeItems.contains(item)) {
-                                //If this is the first expansion and this is a white checked node then check the children
-                                Object[] children = treeContentProvider
-                                        .getChildren(item);
-                                for (int i = 0; i < children.length; ++i) {
-                                    if (!whiteCheckedTreeItems
-                                            .contains(children[i])) {
-                                        Object child = children[i];
-                                        setWhiteChecked(child, true);
-                                        treeViewer.setChecked(child, true);
-                                        checkedStateStore.put(child,
-                                                new ArrayList());
-                                    }
-                                }
-
-                                //Now be sure to select the list of items too
-                                setListForWhiteSelection(item);
-                            }
-                        }
-
-                    }
-                });
-    }
-
-    /**
-     * Add all of the selected children of nextEntry to result recursively.
-     * This does not set any values in the checked state.
-     * @param The treeElement being queried
-     * @param addAll a boolean to indicate if the checked state store needs to be queried
-     * @param filter IElementFilter - the filter being used on the data
-     * @param monitor IProgressMonitor or null that the cancel is polled for 
-     */
-    private void findAllSelectedListElements(Object treeElement,
-            String parentLabel, boolean addAll, IElementFilter filter,
-            IProgressMonitor monitor) throws InterruptedException {
-
-        String fullLabel = null;
-        if (monitor != null && monitor.isCanceled()) {
-			return;
-		}
-        if (monitor != null) {
-            fullLabel = getFullLabel(treeElement, parentLabel);
-            monitor.subTask(fullLabel);
-        }
-
-        if (addAll) {
-			filter.filterElements(listContentProvider.getElements(treeElement),
-                    monitor);
-		} else { //Add what we have stored
-            if (checkedStateStore.containsKey(treeElement)) {
-				filter.filterElements((Collection) checkedStateStore
-                        .get(treeElement), monitor);
-			}
-        }
-
-        Object[] treeChildren = treeContentProvider.getChildren(treeElement);
-        for (int i = 0; i < treeChildren.length; i++) {
-            Object child = treeChildren[i];
-            if (addAll) {
-				findAllSelectedListElements(child, fullLabel, true, filter,
-                        monitor);
-			} else { //Only continue for those with checked state
-                if (checkedStateStore.containsKey(child)) {
-					findAllSelectedListElements(child, fullLabel,
-                            whiteCheckedTreeItems.contains(child), filter,
-                            monitor);
-				}
-            }
-
-        }
-    }
-
-    /**
-     * Find all of the white checked children of the treeElement and add them to the collection.
-     * If the element itself is white select add it. If not then add any selected list elements
-     * and recurse down to the children.
-     * @param treeElement java.lang.Object
-     * @param result java.util.Collection
-     */
-    private void findAllWhiteCheckedItems(Object treeElement, Collection result) {
-
-        if (whiteCheckedTreeItems.contains(treeElement)) {
-			result.add(treeElement);
-		} else {
-            Collection listChildren = (Collection) checkedStateStore
-                    .get(treeElement);
-            //if it is not in the store then it and it's children are not interesting
-            if (listChildren == null) {
-				return;
-			}
-            result.addAll(listChildren);
-            Object[] children = treeContentProvider.getChildren(treeElement);
-            for (int i = 0; i < children.length; ++i) {
-                findAllWhiteCheckedItems(children[i], result);
-            }
-        }
-    }
-
-    /**
-	 * Returns a flat list of all of the leaf elements which are checked. Filter
-	 * then based on the supplied ElementFilter. If monitor is cancelled then
-	 * return null
-	 * 
-	 * @param filter -
-	 *            the filter for the data
-	 * @param monitor
-	 *            IProgressMonitor or null
-	 * @throws InterruptedException
-	 *             If the find is interrupted.
-	 */
-    public void getAllCheckedListItems(IElementFilter filter,
-            IProgressMonitor monitor) throws InterruptedException {
-
-        //Iterate through the children of the root as the root is not in the store
-        Object[] children = treeContentProvider.getChildren(root);
-        for (int i = 0; i < children.length; ++i) {
-            findAllSelectedListElements(children[i], null,
-                    whiteCheckedTreeItems.contains(children[i]), filter,
-                    monitor);
-        }
-    }
-
-    /**
-     *	Returns a flat list of all of the leaf elements which are checked.
-     *
-     *	@return all of the leaf elements which are checked. This API does not
-     * 	return null in order to keep backwards compatibility.
-     */
-    public List getAllCheckedListItems() {
-
-        final ArrayList returnValue = new ArrayList();
-
-        IElementFilter passThroughFilter = new IElementFilter() {
-
-            public void filterElements(Collection elements,
-                    IProgressMonitor monitor) {
-                returnValue.addAll(elements);
-            }
-
-            public void filterElements(Object[] elements,
-                    IProgressMonitor monitor) {
-                for (int i = 0; i < elements.length; i++) {
-                    returnValue.add(elements[i]);
-                }
-            }
-        };
-
-        try {
-            getAllCheckedListItems(passThroughFilter, null);
-        } catch (InterruptedException exception) {
-            return new ArrayList();
-        }
-        return returnValue;
-
-    }
-
-    /**
-     *	Returns a list of all of the items that are white checked.
-     * 	Any folders that are white checked are added and then any files
-     *  from white checked folders are added. 
-     *
-     *	@return the list of all of the items that are white checked
-     */
-    public List getAllWhiteCheckedItems() {
-
-        List result = new ArrayList();
-
-        //Iterate through the children of the root as the root is not in the store
-        Object[] children = treeContentProvider.getChildren(root);
-        for (int i = 0; i < children.length; ++i) {
-            findAllWhiteCheckedItems(children[i], result);
-        }
-
-        return result;
-    }
-
-    /**
-     *	Answer the number of elements that have been checked by the
-     *	user.
-     *
-     *	@return int
-     */
-    public int getCheckedElementCount() {
-        return checkedStateStore.size();
-    }
-
-    /**
-     * Get the full label of the treeElement (its name and its parent's name).
-     * @param treeElement - the element being exported
-     * @param parentLabel - the label of the parent, can be null
-     * @return String
-     */
-    protected String getFullLabel(Object treeElement, String parentLabel) {
-        String label = parentLabel;
-        if (parentLabel == null){
-        	label = ""; //$NON-NLS-1$
-        }
-        IPath parentName = new Path(label);
-
-        String elementText = treeLabelProvider.getText(treeElement);
-        if(elementText == null) {
-			return parentName.toString();
-		}
-        return parentName.append(elementText).toString();
-    }
-
-    /**
-     *	Return a count of the number of list items associated with a
-     *	given tree item.
-     *
-     *	@return int
-     *	@param treeElement java.lang.Object
-     */
-    protected int getListItemsSize(Object treeElement) {
-        Object[] elements = listContentProvider.getElements(treeElement);
-        return elements.length;
-    }
-
-    /**
-     * Get the table the list viewer uses.
-     * @return org.eclipse.swt.widgets.Table
-     */
-    public Table getListTable() {
-        return this.listViewer.getTable();
-    }
-
-    /**
-     *	Logically gray-check all ancestors of treeItem by ensuring that they
-     *	appear in the checked table
-     */
-    protected void grayCheckHierarchy(Object treeElement) {
-
-        //expand the element first to make sure we have populated for it
-        expandTreeElement(treeElement);
-
-        // if this tree element is already gray then its ancestors all are as well
-        if (checkedStateStore.containsKey(treeElement)) {
-			return; // no need to proceed upwards from here
-		}
-
-        checkedStateStore.put(treeElement, new ArrayList());
-        Object parent = treeContentProvider.getParent(treeElement);
-        if (parent != null) {
-			grayCheckHierarchy(parent);
-		}
-    }
-
-    /**
-     *	Set the checked state of self and all ancestors appropriately. Do not white check anyone - this is
-     *  only done down a hierarchy.
-     */
-    private void grayUpdateHierarchy(Object treeElement) {
-
-        boolean shouldBeAtLeastGray = determineShouldBeAtLeastGrayChecked(treeElement);
-
-        treeViewer.setGrayChecked(treeElement, shouldBeAtLeastGray);
-
-        if (whiteCheckedTreeItems.contains(treeElement)) {
-			whiteCheckedTreeItems.remove(treeElement);
-		}
-
-        // proceed up the tree element hierarchy
-        Object parent = treeContentProvider.getParent(treeElement);
-        if (parent != null) {
-            grayUpdateHierarchy(parent);
-        }
-    }
-
-    /**
-     *	Set the initial checked state of the passed list element to true.
-     * @param element
-     */
-    public void initialCheckListItem(Object element) {
-        Object parent = treeContentProvider.getParent(element);
-        selectAndReveal(parent);
-        //Check the element in the viewer as if it had been manually checked
-        listViewer.setChecked(element, true);
-        //As this is not done from the UI then set the box for updating from the selection to false 
-        listItemChecked(element, true, false);
-        grayUpdateHierarchy(parent);
-    }
-
-    /**
-     * Set the initial checked state of the passed element to true,
-     * as well as to all of its children and associated list elements
-     * @param element
-     */
-    public void initialCheckTreeItem(Object element) {
-        treeItemChecked(element, true);
-        selectAndReveal(element);
-    }
-
-    private void selectAndReveal(Object treeElement) {
-        treeViewer.reveal(treeElement);
-        IStructuredSelection selection = new StructuredSelection(treeElement);
-        treeViewer.setSelection(selection);
-    }
-
-    /**
-     *	Initialize this group's viewers after they have been laid out.
-     */
-    protected void initialize() {
-        treeViewer.setInput(root);
-        this.expandedTreeNodes = new ArrayList();
-        this.expandedTreeNodes.add(root);
-
-    }
-
-    /**
-     *	Callback that's invoked when the checked status of an item in the list
-     *	is changed by the user. Do not try and update the hierarchy if we are building the
-     *  initial list.
-     */
-    protected void listItemChecked(Object listElement, boolean state,
-            boolean updatingFromSelection) {
-        List checkedListItems = (List) checkedStateStore
-                .get(currentTreeSelection);
-        //If it has not been expanded do so as the selection of list items will affect gray state
-        if (!expandedTreeNodes.contains(currentTreeSelection)) {
-			expandTreeElement(currentTreeSelection);
-		}
-
-        if (state) {
-            if (checkedListItems == null) {
-                // since the associated tree item has gone from 0 -> 1 checked
-                // list items, tree checking may need to be updated
-                grayCheckHierarchy(currentTreeSelection);
-                checkedListItems = (List) checkedStateStore
-                        .get(currentTreeSelection);
-            }
-            checkedListItems.add(listElement);
-        } else {
-            checkedListItems.remove(listElement);
-            if (checkedListItems.isEmpty()) {
-                // since the associated tree item has gone from 1 -> 0 checked
-                // list items, tree checking may need to be updated
-                ungrayCheckHierarchy(currentTreeSelection);
-            }
-        }
-
-        //Update the list with the selections if there are any
-        if (checkedListItems.size() > 0) {
-			checkedStateStore.put(currentTreeSelection, checkedListItems);
-		}
-        if (updatingFromSelection) {
-			grayUpdateHierarchy(currentTreeSelection);
-		}
-    }
-
-    /**
-     *	Notify all checked state listeners that the passed element has had
-     *	its checked state changed to the passed state
-     */
-    protected void notifyCheckStateChangeListeners(
-            final CheckStateChangedEvent event) {
-        Object[] array = getListeners();
-        for (int i = 0; i < array.length; i++) {
-            final ICheckStateListener l = (ICheckStateListener) array[i];
-            SafeRunner.run(new SafeRunnable() {
-                public void run() {
-                    l.checkStateChanged(event);
-                }
-            });
-        }
-    }
-
-    /**
-     *Set the contents of the list viewer based upon the specified selected
-     *tree element.  This also includes checking the appropriate list items.
-     *
-     *@param treeElement java.lang.Object
-     */
-    protected void populateListViewer(final Object treeElement) {
-        listViewer.setInput(treeElement);
-
-        //If the element is white checked but not expanded we have not set up all of the children yet
-        if (!(expandedTreeNodes.contains(treeElement))
-                && whiteCheckedTreeItems.contains(treeElement)) {
-
-            //Potentially long operation - show a busy cursor
-            BusyIndicator.showWhile(treeViewer.getControl().getDisplay(),
-                    new Runnable() {
-                        public void run() {
-                            setListForWhiteSelection(treeElement);
-                            listViewer.setAllChecked(true);
-                        }
-                    });
-
-        } else {
-            List listItemsToCheck = (List) checkedStateStore.get(treeElement);
-
-            if (listItemsToCheck != null) {
-                Iterator listItemsEnum = listItemsToCheck.iterator();
-                while (listItemsEnum.hasNext()) {
-					listViewer.setChecked(listItemsEnum.next(), true);
-				}
-            }
-        }
-    }
-
-    /**
-     *	Logically gray-check all ancestors of treeItem by ensuring that they
-     *	appear in the checked table. Add any elements to the selectedNodes
-     *  so we can track that has been done.
-     */
-    private void primeHierarchyForSelection(Object item, Set selectedNodes) {
-
-        //Only prime it if we haven't visited yet
-        if (selectedNodes.contains(item)) {
-			return;
-		}
-
-        checkedStateStore.put(item, new ArrayList());
-
-        //mark as expanded as we are going to populate it after this
-        expandedTreeNodes.add(item);
-        selectedNodes.add(item);
-
-        Object parent = treeContentProvider.getParent(item);
-        if (parent != null) {
-			primeHierarchyForSelection(parent, selectedNodes);
-		}
-    }
-
-    /**
-     *	Remove the passed listener from self's collection of clients
-     *	that listen for changes to element checked states
-     *
-     *	@param listener ICheckStateListener
-     */
-    public void removeCheckStateListener(ICheckStateListener listener) {
-        removeListenerObject(listener);
-    }
-
-    /**
-     *	Handle the selection of an item in the tree viewer
-     *
-     *	@param event SelectionChangedEvent
-     */
-    public void selectionChanged(SelectionChangedEvent event) {
-        IStructuredSelection selection = (IStructuredSelection) event
-                .getSelection();
-        Object selectedElement = selection.getFirstElement();
-        if (selectedElement == null) {
-            currentTreeSelection = null;
-            listViewer.setInput(currentTreeSelection);
-            return;
-        }
-
-        // ie.- if not an item deselection
-        if (selectedElement != currentTreeSelection) {
-			populateListViewer(selectedElement);
-		}
-
-        currentTreeSelection = selectedElement;
-    }
-
-    /**
-     * Select or deselect all of the elements in the tree depending on the value of the selection
-     * boolean. Be sure to update the displayed files as well.
-     * @param selection
-     */
-    public void setAllSelections(final boolean selection) {
-
-        //If there is no root there is nothing to select
-        if (root == null) {
-			return;
-		}
-
-        //Potentially long operation - show a busy cursor
-        BusyIndicator.showWhile(treeViewer.getControl().getDisplay(),
-                new Runnable() {
-                    public void run() {
-                        setTreeChecked(root, selection);
-                        listViewer.setAllChecked(selection);
-                    }
-                });
-    }
-
-    /**
-     * The treeElement has been white selected. Get the list for the element and
-     * set it in the checked state store.
-     * @param treeElement the element being updated
-     */
-    private void setListForWhiteSelection(Object treeElement) {
-
-        Object[] listItems = listContentProvider.getElements(treeElement);
-        List listItemsChecked = new ArrayList();
-        for (int i = 0; i < listItems.length; ++i) {
-            listItemsChecked.add(listItems[i]);
-        }
-
-        checkedStateStore.put(treeElement, listItemsChecked);
-    }
-
-    /**
-     *	Set the list viewer's providers to those passed
-     *
-     *	@param contentProvider ITreeContentProvider
-     *	@param labelProvider ILabelProvider
-     */
-    public void setListProviders(IStructuredContentProvider contentProvider,
-            ILabelProvider labelProvider) {
-        listViewer.setContentProvider(contentProvider);
-        listViewer.setLabelProvider(labelProvider);
-    }
-
-    /**
-     * Set the comparator that is to be applied to self's list viewer
-     * 
-     * @param comparator the sorter for the list
-     */
-    public void setListComparator(ViewerComparator comparator) {
-        listViewer.setComparator(comparator);
-    }
-
-    /**
-     * Set the root of the widget to be new Root. Regenerate all of the tables and lists from this
-     * value.
-     * @param newRoot 
-     */
-    public void setRoot(Object newRoot) {
-        this.root = newRoot;
-        initialize();
-    }
-
-    /**
-     *	Set the checked state of the passed tree element appropriately, and
-     *	do so recursively to all of its child tree elements as well
-     */
-    protected void setTreeChecked(Object treeElement, boolean state) {
-
-        if (treeElement.equals(currentTreeSelection)) {
-            listViewer.setAllChecked(state);
-        }
-
-        if (state) {
-            setListForWhiteSelection(treeElement);
-        } else {
-			checkedStateStore.remove(treeElement);
-		}
-
-        setWhiteChecked(treeElement, state);
-        treeViewer.setChecked(treeElement, state);
-        treeViewer.setGrayed(treeElement, false);
-
-        // now logically check/uncheck all children as well if it has been expanded
-        if (expandedTreeNodes.contains(treeElement)) {
-            Object[] children = treeContentProvider.getChildren(treeElement);
-            for (int i = 0; i < children.length; ++i) {
-                setTreeChecked(children[i], state);
-            }
-        }
-    }
-
-    /**
-     *	Set the tree viewer's providers to those passed
-     *
-     *	@param contentProvider ITreeContentProvider
-     *	@param labelProvider ILabelProvider
-     */
-    public void setTreeProviders(ITreeContentProvider contentProvider,
-            ILabelProvider labelProvider) {
-        treeViewer.setContentProvider(contentProvider);
-        treeViewer.setLabelProvider(labelProvider);
-    }
-
-    /**
-     * Set the comparator that is to be applied to self's tree viewer
-     * 
-     * @param comparator the comparator for the tree
-     */
-    public void setTreeComparator(ViewerComparator comparator) {
-        treeViewer.setComparator(comparator);
-    }
-
-    /**
-     *	Adjust the collection of references to white-checked tree elements appropriately.
-     *
-     *	@param treeElement java.lang.Object
-     *	@param isWhiteChecked boolean
-     */
-    protected void setWhiteChecked(Object treeElement, boolean isWhiteChecked) {
-        if (isWhiteChecked) {
-            if (!whiteCheckedTreeItems.contains(treeElement)) {
-				whiteCheckedTreeItems.add(treeElement);
-			}
-        } else {
-			whiteCheckedTreeItems.remove(treeElement);
-		}
-    }
-
-    /**
-     *	Handle the collapsing of an element in a tree viewer
-     */
-    public void treeCollapsed(TreeExpansionEvent event) {
-        // We don't need to do anything with this
-    }
-
-    /**
-     *	Handle the expansionsion of an element in a tree viewer
-     */
-    public void treeExpanded(TreeExpansionEvent event) {
-        expandTreeElement(event.getElement());
-    }
-
-    /**
-     *  Callback that's invoked when the checked status of an item in the tree
-     *  is changed by the user.
-     */
-    protected void treeItemChecked(Object treeElement, boolean state) {
-
-        // recursively adjust all child tree elements appropriately
-        setTreeChecked(treeElement, state);
-
-        Object parent = treeContentProvider.getParent(treeElement);
-        if (parent == null) {
-			return;
-		}
-
-        // now update upwards in the tree hierarchy 
-        if (state) {
-			grayCheckHierarchy(parent);
-		} else {
-			ungrayCheckHierarchy(parent);
-		}
-
-        //Update the hierarchy but do not white select the parent
-        grayUpdateHierarchy(parent);
-    }
-
-    /**
-     *	Logically un-gray-check all ancestors of treeItem iff appropriate.
-     */
-    protected void ungrayCheckHierarchy(Object treeElement) {
-        if (!determineShouldBeAtLeastGrayChecked(treeElement)) {
-			checkedStateStore.remove(treeElement);
-		}
-
-        Object parent = treeContentProvider.getParent(treeElement);
-        if (parent != null) {
-			ungrayCheckHierarchy(parent);
-		}
-    }
-
-    /**
-     *	Set the checked state of self and all ancestors appropriately
-     */
-    protected void updateHierarchy(Object treeElement) {
-
-        boolean whiteChecked = determineShouldBeWhiteChecked(treeElement);
-        boolean shouldBeAtLeastGray = determineShouldBeAtLeastGrayChecked(treeElement);
-
-        treeViewer.setChecked(treeElement, shouldBeAtLeastGray);
-        setWhiteChecked(treeElement, whiteChecked);
-        if (whiteChecked) {
-			treeViewer.setGrayed(treeElement, false);
-		} else {
-			treeViewer.setGrayed(treeElement, shouldBeAtLeastGray);
-		}
-
-        // proceed up the tree element hierarchy but gray select all of them
-        Object parent = treeContentProvider.getParent(treeElement);
-        if (parent != null) {
-            grayUpdateHierarchy(parent);
-        }
-    }
-
-    /**
-     * Update the selections of the tree elements in items to reflect the new
-     * selections provided.
-     * @param items Map with keys of Object (the tree element) and values of List (the selected
-     * list elements).  
-     * NOTE: This method does not special case keys with no values (i.e., 
-     * a tree element with an empty list).  If a tree element does not have any selected
-     * items, do not include the element in the Map.
-     */
-    public void updateSelections(Map items) {
-        // We are replacing all selected items with the given selected items,
-        // so reinitialize everything.
-        this.listViewer.setAllChecked(false);
-        this.treeViewer.setCheckedElements(new Object[0]);
-        this.whiteCheckedTreeItems = new HashSet();
-        Set selectedNodes = new HashSet();
-        checkedStateStore = new HashMap();
-
-        //Update the store before the hierarchy to prevent updating parents before all of the children are done
-        Iterator keyIterator = items.keySet().iterator();
-        while (keyIterator.hasNext()) {
-            Object key = keyIterator.next();
-            List selections = (List) items.get(key);
-            //Replace the items in the checked state store with those from the supplied items			
-            checkedStateStore.put(key, selections);
-            selectedNodes.add(key);
-            // proceed up the tree element hierarchy
-            Object parent = treeContentProvider.getParent(key);
-            if (parent != null) {
-                // proceed up the tree element hierarchy and make sure everything is in the table		
-                primeHierarchyForSelection(parent, selectedNodes);
-            }
-        }
-
-        // Update the checked tree items.  Since each tree item has a selected
-        // item, all the tree items will be gray checked.
-        treeViewer.setCheckedElements(checkedStateStore.keySet().toArray());
-        treeViewer.setGrayedElements(checkedStateStore.keySet().toArray());
-
-        // Update the listView of the currently selected tree item.
-        if (currentTreeSelection != null) {
-            Object displayItems = items.get(currentTreeSelection);
-            if (displayItems != null) {
-				listViewer.setCheckedElements(((List) displayItems).toArray());
-			}
-        }
-    }
-
-    /** 
-     * Set the focus on to the list widget.
-     */
-    public void setFocus() {
-
-        this.treeViewer.getTree().setFocus();
-    }
-
-}
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceWorkingSetPage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceWorkingSetPage.java
deleted file mode 100644
index 5ecbf37..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceWorkingSetPage.java
+++ /dev/null
@@ -1,541 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.ui.internal.ide.dialogs;
-
-import java.util.ArrayList;
-import java.util.List;
-
-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.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.fieldassist.FieldAssistColors;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ITreeViewerListener;
-import org.eclipse.jface.viewers.TreeExpansionEvent;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-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.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.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetPage;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * A resource working set page allows the user to edit an 
- * existing working set and create a new working set.
- * <p>
- * Working set elements are presented as a simple resource tree.
- * </p>
- * 
- * @since 2.0
- */
-public class ResourceWorkingSetPage extends WizardPage implements
-        IWorkingSetPage {
-    private final static int SIZING_SELECTION_WIDGET_WIDTH = 50;
-
-    private final static int SIZING_SELECTION_WIDGET_HEIGHT = 200;
-
-    private Text text;
-
-    private CheckboxTreeViewer tree;
-
-    private IWorkingSet workingSet;
-
-    private boolean firstCheck = false; // set to true if selection is set in setSelection
-
-    /**
-     * Creates a new instance of the receiver.
-     */
-    public ResourceWorkingSetPage() {
-        super(
-                "resourceWorkingSetPage", //$NON-NLS-1$ 
-                IDEWorkbenchMessages.ResourceWorkingSetPage_title,
-                IDEInternalWorkbenchImages
-                        .getImageDescriptor(IDEInternalWorkbenchImages.IMG_WIZBAN_RESOURCEWORKINGSET_WIZ));
-        setDescription(IDEWorkbenchMessages.ResourceWorkingSetPage_description);
-    }
-
-    /**
-     * Adds working set elements contained in the given container to the list
-     * of checked resources.
-     * 
-     * @param collectedResources list of collected resources
-     * @param container container to collect working set elements for
-     */
-    private void addWorkingSetElements(List collectedResources,
-            IContainer container) {
-        IAdaptable[] elements = workingSet.getElements();
-        IPath containerPath = container.getFullPath();
-
-        for (int i = 0; i < elements.length; i++) {
-            IResource resource = null;
-
-            if (elements[i] instanceof IResource) {
-				resource = (IResource) elements[i];
-			} else {
-				resource = (IResource) elements[i].getAdapter(IResource.class);
-			}
-
-            if (resource != null) {
-                IPath resourcePath = resource.getFullPath();
-                if (containerPath.isPrefixOf(resourcePath)) {
-					collectedResources.add(elements[i]);
-				}
-            }
-        }
-    }
-
-    /**
-     * Overrides method in WizardPage.
-     * 
-     * @see org.eclipse.jface.wizard.WizardPage#createControl(Composite)
-     */
-    public void createControl(Composite parent) {
-    	initializeDialogUnits(parent);
-    	
-        Composite composite = new Composite(parent, SWT.NULL);
-        GridLayout layout = new GridLayout();
-        layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-        layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-        layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-        composite.setLayout(layout);
-        composite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-        setControl(composite);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
-                IIDEHelpContextIds.WORKING_SET_RESOURCE_PAGE);
-        Label label = new Label(composite, SWT.WRAP);
-        label.setText(IDEWorkbenchMessages.ResourceWorkingSetPage_message);
-        GridData data = new GridData(GridData.GRAB_HORIZONTAL
-                | GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.VERTICAL_ALIGN_CENTER);
-        label.setLayoutData(data);
-
-        text = new Text(composite, SWT.SINGLE | SWT.BORDER);
-        text.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-        text.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                validateInput();
-            }
-        });
-        text.setFocus();
-        text.setBackground(FieldAssistColors.getRequiredFieldBackgroundColor(text));
-
-        label = new Label(composite, SWT.WRAP);
-        label.setText(IDEWorkbenchMessages.ResourceWorkingSetPage_label_tree);
-        data = new GridData(GridData.GRAB_HORIZONTAL
-                | GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.VERTICAL_ALIGN_CENTER);
-        label.setLayoutData(data);
-
-        tree = new CheckboxTreeViewer(composite);
-        tree.setUseHashlookup(true);
-		final ITreeContentProvider treeContentProvider = new WorkbenchContentProvider();
-        tree.setContentProvider(treeContentProvider);
-        tree.setLabelProvider(new DecoratingLabelProvider(
-                new WorkbenchLabelProvider(), IDEWorkbenchPlugin.getDefault()
-                        .getWorkbench().getDecoratorManager()
-                        .getLabelDecorator()));
-        tree.setInput(IDEWorkbenchPlugin.getPluginWorkspace().getRoot());
-        tree.setComparator(new ResourceComparator(ResourceComparator.NAME));
-
-        data = new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL);
-        data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
-        data.widthHint = SIZING_SELECTION_WIDGET_WIDTH;
-        tree.getControl().setLayoutData(data);
-
-        tree.addCheckStateListener(new ICheckStateListener() {
-            public void checkStateChanged(CheckStateChangedEvent event) {
-                handleCheckStateChange(event);
-            }
-        });
-
-        tree.addTreeListener(new ITreeViewerListener() {
-            public void treeCollapsed(TreeExpansionEvent event) {
-            }
-
-            public void treeExpanded(TreeExpansionEvent event) {
-                final Object element = event.getElement();
-                if (tree.getGrayed(element) == false) {
-					BusyIndicator.showWhile(getShell().getDisplay(),
-                            new Runnable() {
-                                public void run() {
-                                    setSubtreeChecked((IContainer) element,
-                                            tree.getChecked(element), false);
-                                }
-                            });
-				}
-            }
-        });
-
-		// Add select / deselect all buttons for bug 46669
-		Composite buttonComposite = new Composite(composite, SWT.NONE);
-		layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-		buttonComposite.setLayout(layout);
-		buttonComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		
-		Button selectAllButton = new Button(buttonComposite, SWT.PUSH);
-		selectAllButton.setText(IDEWorkbenchMessages.ResourceWorkingSetPage_selectAll_label);
-		selectAllButton.setToolTipText(IDEWorkbenchMessages.ResourceWorkingSetPage_selectAll_toolTip);
-		selectAllButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent selectionEvent) {
-				tree.setCheckedElements(treeContentProvider.getElements(tree.getInput()));
-				validateInput();
-			}
-		});
-		setButtonLayoutData(selectAllButton);
-
-		Button deselectAllButton = new Button(buttonComposite, SWT.PUSH);
-		deselectAllButton.setText(IDEWorkbenchMessages.ResourceWorkingSetPage_deselectAll_label);
-		deselectAllButton.setToolTipText(IDEWorkbenchMessages.ResourceWorkingSetPage_deselectAll_toolTip);
-		deselectAllButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent selectionEvent) {
-				tree.setCheckedElements(new Object[0]);
-				validateInput();
-			}
-		});
-		setButtonLayoutData(deselectAllButton);
-		
-		initializeCheckedState();
-        if (workingSet != null) {
-            text.setText(workingSet.getName());
-        }
-        setPageComplete(false);
-        
-        Dialog.applyDialogFont(composite);
-    }
-
-    /**
-     * Collects all checked resources in the specified container.
-     * 
-     * @param checkedResources the output, list of checked resources
-     * @param container the container to collect checked resources in
-     */
-    private void findCheckedResources(List checkedResources,
-            IContainer container) {
-        IResource[] resources = null;
-        try {
-            resources = container.members();
-        } catch (CoreException ex) {
-            handleCoreException(
-                    ex,
-                    getShell(),
-                    IDEWorkbenchMessages.ResourceWorkingSetPage_error,
-                    IDEWorkbenchMessages.ResourceWorkingSetPage_error_updateCheckedState);
-        }
-        for (int i = 0; i < resources.length; i++) {
-            if (tree.getGrayed(resources[i])) {
-                if (resources[i].isAccessible()) {
-					findCheckedResources(checkedResources,
-                            (IContainer) resources[i]);
-				} else {
-					addWorkingSetElements(checkedResources,
-                            (IContainer) resources[i]);
-				}
-            } else if (tree.getChecked(resources[i])) {
-                checkedResources.add(resources[i]);
-            }
-        }
-    }
-
-    /**
-     * Implements IWorkingSetPage.
-     * 
-     * @see org.eclipse.ui.dialogs.IWorkingSetPage#finish()
-     */
-    public void finish() {
-        ArrayList resources = new ArrayList(10);
-        findCheckedResources(resources, (IContainer) tree.getInput());
-        if (workingSet == null) {
-            IWorkingSetManager workingSetManager = PlatformUI.getWorkbench()
-                    .getWorkingSetManager();
-            workingSet = workingSetManager.createWorkingSet(
-                    getWorkingSetName(), (IAdaptable[]) resources
-                            .toArray(new IAdaptable[resources.size()]));
-        } else {
-            workingSet.setName(getWorkingSetName());
-            workingSet.setElements((IAdaptable[]) resources
-                    .toArray(new IAdaptable[resources.size()]));
-        }
-    }
-
-    /**
-     * Implements IWorkingSetPage.
-     * 
-     * @see org.eclipse.ui.dialogs.IWorkingSetPage#getSelection()
-     */
-    public IWorkingSet getSelection() {
-        return workingSet;
-    }
-
-    /**
-     * Returns the name entered in the working set name field.
-     * 
-     * @return the name entered in the working set name field.
-     */
-    private String getWorkingSetName() {
-        return text.getText();
-    }
-
-    /**
-     * Called when the checked state of a tree item changes.
-     * 
-     * @param event the checked state change event.
-     */
-    private void handleCheckStateChange(final CheckStateChangedEvent event) {
-        BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-            public void run() {
-                IResource resource = (IResource) event.getElement();
-                boolean state = event.getChecked();
-
-                tree.setGrayed(resource, false);
-                if (resource instanceof IContainer) {
-                    setSubtreeChecked((IContainer) resource, state, true);
-                }
-                updateParentState(resource);
-                validateInput();
-            }
-        });
-    }
-
-    /**
-     * Displays an error message when a CoreException occured.
-     * 
-     * @param exception the CoreException 
-     * @param shell parent shell for the message box
-     * @param title the mesage box title
-     * @param message additional error message
-     */
-    private void handleCoreException(CoreException exception, Shell shell,
-            String title, String message) {
-        IStatus status = exception.getStatus();
-        if (status != null) {
-            ErrorDialog.openError(shell, title, message, status);
-        } else {
-            MessageDialog
-                    .openError(
-                            shell,
-                            IDEWorkbenchMessages.InternalError, exception.getLocalizedMessage());
-        }
-    }
-
-    /**
-     * Sets the checked state of tree items based on the initial 
-     * working set, if any.
-     */
-    private void initializeCheckedState() {
-        if (workingSet == null) {
-			return;
-		}
-
-        BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-            public void run() {
-                IAdaptable[] items = workingSet.getElements();
-                tree.setCheckedElements(items);
-                for (int i = 0; i < items.length; i++) {
-                    IAdaptable item = items[i];
-                    IContainer container = null;
-                    IResource resource = null;
-
-                    if (item instanceof IContainer) {
-                        container = (IContainer) item;
-                    } else {
-                        container = (IContainer) item
-                                .getAdapter(IContainer.class);
-                    }
-                    if (container != null) {
-                        setSubtreeChecked(container, true, true);
-                    }
-                    if (item instanceof IResource) {
-                        resource = (IResource) item;
-                    } else {
-                        resource = (IResource) item.getAdapter(IResource.class);
-                    }
-                    if (resource != null && resource.isAccessible() == false) {
-                        IProject project = resource.getProject();
-                        if (tree.getChecked(project) == false) {
-							tree.setGrayChecked(project, true);
-						}
-                    } else {
-                        updateParentState(resource);
-                    }
-                }
-            }
-        });
-    }
-
-    /**
-     * Implements IWorkingSetPage.
-     * 
-     * @see org.eclipse.ui.dialogs.IWorkingSetPage#setSelection(IWorkingSet)
-     */
-    public void setSelection(IWorkingSet workingSet) {
-        if (workingSet == null) {
-            throw new IllegalArgumentException("Working set must not be null"); //$NON-NLS-1$
-        }
-        this.workingSet = workingSet;
-        if (getShell() != null && text != null) {
-            firstCheck = true;
-            initializeCheckedState();
-            text.setText(workingSet.getName());
-        }
-    }
-
-    /**
-     * Sets the checked state of the container's members.
-     * 
-     * @param container the container whose children should be checked/unchecked
-     * @param state true=check all members in the container. false=uncheck all 
-     * 	members in the container.
-     * @param checkExpandedState true=recurse into sub-containers and set the 
-     * 	checked state. false=only set checked state of members of this container
-     */
-    private void setSubtreeChecked(IContainer container, boolean state,
-            boolean checkExpandedState) {
-        // checked state is set lazily on expand, don't set it if container is collapsed
-        if (container.isAccessible() == false
-                || (tree.getExpandedState(container) == false && state && checkExpandedState)) {
-            return;
-        }
-        IResource[] members = null;
-        try {
-            members = container.members();
-        } catch (CoreException ex) {
-            handleCoreException(
-                    ex,
-                    getShell(),
-                    IDEWorkbenchMessages.ResourceWorkingSetPage_error,
-                    IDEWorkbenchMessages.ResourceWorkingSetPage_error_updateCheckedState);
-        }
-        for (int i = members.length - 1; i >= 0; i--) {
-            IResource element = members[i];
-            boolean elementGrayChecked = tree.getGrayed(element)
-                    || tree.getChecked(element);
-
-            if (state) {
-                tree.setChecked(element, true);
-                tree.setGrayed(element, false);
-            } else {
-                tree.setGrayChecked(element, false);
-            }
-            // unchecked state only needs to be set when the container is 
-            // checked or grayed
-            if (element instanceof IContainer && (state || elementGrayChecked)) {
-                setSubtreeChecked((IContainer) element, state, true);
-            }
-        }
-    }
-
-    /**
-     * Check and gray the resource parent if all resources of the 
-     * parent are checked.
-     * 
-     * @param child the resource whose parent checked state should 
-     * 	be set.
-     */
-    private void updateParentState(IResource child) {
-        if (child == null || child.getParent() == null) {
-			return;
-		}
-
-        IContainer parent = child.getParent();
-        boolean childChecked = false;
-        IResource[] members = null;
-        try {
-            members = parent.members();
-        } catch (CoreException ex) {
-            handleCoreException(
-                    ex,
-                    getShell(),
-                    IDEWorkbenchMessages.ResourceWorkingSetPage_error,
-                    IDEWorkbenchMessages.ResourceWorkingSetPage_error_updateCheckedState);
-        }
-        for (int i = members.length - 1; i >= 0; i--) {
-            if (tree.getChecked(members[i]) || tree.getGrayed(members[i])) {
-                childChecked = true;
-                break;
-            }
-        }
-        tree.setGrayChecked(parent, childChecked);
-        updateParentState(parent);
-    }
-
-    /**
-     * Validates the working set name and the checked state of the 
-     * resource tree.
-     */
-    private void validateInput() {
-        String errorMessage = null;
-        String infoMessage= null;
-        String newText = text.getText();
-
-        if (newText.equals(newText.trim()) == false) {
-            errorMessage = IDEWorkbenchMessages.ResourceWorkingSetPage_warning_nameWhitespace; 
-        } else if (firstCheck) {
-            firstCheck = false;
-            return;
-        }
-        if (newText.equals("")) { //$NON-NLS-1$
-            errorMessage = IDEWorkbenchMessages.ResourceWorkingSetPage_warning_nameMustNotBeEmpty;
-        }
-        if (errorMessage == null
-                && (workingSet == null || newText.equals(workingSet.getName()) == false)) {
-            IWorkingSet[] workingSets = PlatformUI.getWorkbench()
-                    .getWorkingSetManager().getWorkingSets();
-            for (int i = 0; i < workingSets.length; i++) {
-                if (newText.equals(workingSets[i].getName())) {
-                    errorMessage = IDEWorkbenchMessages.ResourceWorkingSetPage_warning_workingSetExists;
-                }
-            }
-        }
-        if (infoMessage == null && tree.getCheckedElements().length == 0) {
-        	infoMessage = IDEWorkbenchMessages.ResourceWorkingSetPage_warning_resourceMustBeChecked;
-        }
-        setMessage(infoMessage, INFORMATION);
-        setErrorMessage(errorMessage);
-        setPageComplete(errorMessage == null);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/SimpleListContentProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/SimpleListContentProvider.java
deleted file mode 100644
index 6ebe594..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/SimpleListContentProvider.java
+++ /dev/null
@@ -1,61 +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.ide.dialogs;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * The SimpleListContentProvider is a class designed to return a static list of items
- * when queried for use in simple list dialogs.
- */
-public class SimpleListContentProvider implements IStructuredContentProvider {
-
-    //The elements to display
-    private Object[] elements;
-
-    /**
-     * SimpleListContentProvider constructor comment.
-     */
-    public SimpleListContentProvider() {
-        super();
-    }
-
-    /**
-     * Do nothing when disposing,
-     */
-    public void dispose() {
-    }
-
-    /**
-     * Returns the elements to display in the viewer. The inputElement is ignored for this
-     * provider.
-     */
-    public Object[] getElements(Object inputElement) {
-        return this.elements;
-    }
-
-    /**
-     * Required method from IStructuredContentProvider. The input is assumed to not change 
-     * for the SimpleListContentViewer so do nothing here.
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-    }
-
-    /**
-     * Set the elements to display.
-     * @param items Object[]
-     */
-    public void setElements(Object[] items) {
-
-        this.elements = items;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditor.java
deleted file mode 100644
index 3d64ad5..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditor.java
+++ /dev/null
@@ -1,1035 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.dialogs;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.JFaceColors;
-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.custom.CLabel;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-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.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-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.Color;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.GC;
-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.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.part.EditorPart;
-import org.xml.sax.SAXException;
-
-/**
- * A "fake" editor to show a welcome page
- * The contents of this page are supplied in the product configuration
- *
- * PRIVATE
- *		This class is internal to the workbench and must not be called outside the workbench
- */
-public class WelcomeEditor extends EditorPart {
-
-    private final static int HORZ_SCROLL_INCREMENT = 20;
-
-    private final static int VERT_SCROLL_INCREMENT = 20;
-
-    // width at which wrapping will stop and a horizontal scroll bar will be 
-    // introduced
-    private final static int WRAP_MIN_WIDTH = 150;
-
-    private Composite editorComposite;
-
-    private Cursor handCursor;
-
-    private Cursor busyCursor;
-
-    private WelcomeParser parser;
-
-    private ArrayList hyperlinkRanges = new ArrayList();
-
-    private ArrayList texts = new ArrayList();
-
-    private ScrolledComposite scrolledComposite;
-
-    private IPropertyChangeListener colorListener;
-
-    private boolean mouseDown = false;
-
-    private boolean dragEvent = false;
-
-    private StyledText firstText, lastText;
-
-    private StyledText lastNavigatedText, currentText;
-
-    private boolean nextTabAbortTraversal, previousTabAbortTraversal = false;
-
-    private WelcomeEditorCopyAction copyAction;
-
-    /**
-     * Create a new instance of the welcome editor
-     */
-    public WelcomeEditor() {
-        super();
-        setPartName(IDEWorkbenchMessages.WelcomeEditor_title);
-        copyAction = new WelcomeEditorCopyAction(this);
-        copyAction.setEnabled(false);
-    }
-
-    /**
-     * Update the welcome page to start at the
-     * beginning of the text.
-     */
-    private void focusOn(StyledText newText, int caretOffset) {
-        if (newText == null) {
-			return;
-		}
-        newText.setFocus();
-        newText.setCaretOffset(caretOffset);
-        scrolledComposite.setOrigin(0, newText.getLocation().y);
-    }
-
-    /**
-     * Finds the next text 
-     */
-    private StyledText nextText(StyledText text) {
-        int index = 0;
-        if (text == null) {
-			return (StyledText) texts.get(0);
-		} else {
-			index = texts.indexOf(text);
-		}
-
-        //If we are not at the end....
-        if (index < texts.size() - 1) {
-			return (StyledText) texts.get(index + 1);
-		} else {
-			return (StyledText) texts.get(0);
-		}
-    }
-
-    /**
-     * Finds the previous text 
-     */
-    private StyledText previousText(StyledText text) {
-        int index = 0;
-        if (text == null) {
-			return (StyledText) texts.get(0);
-		} else {
-			index = texts.indexOf(text);
-		}
-
-        //If we are at the beginning....
-        if (index == 0) {
-			return (StyledText) texts.get(texts.size() - 1);
-		} else {
-			return (StyledText) texts.get(index - 1);
-		}
-    }
-
-    /**
-     * Returns the current text.
-     */
-    protected StyledText getCurrentText() {
-        return currentText;
-    }
-
-    /**
-     * Returns the copy action. 
-     */
-    protected WelcomeEditorCopyAction getCopyAction() {
-        return copyAction;
-    }
-
-    /**
-     * Finds the next link after the current selection.
-     */
-    private StyleRange findNextLink(StyledText text) {
-        if (text == null) {
-			return null;
-		}
-
-        WelcomeItem item = (WelcomeItem) text.getData();
-        StyleRange[] ranges = text.getStyleRanges();
-        int currentSelectionEnd = text.getSelection().y;
-
-        for (int i = 0; i < ranges.length; i++) {
-            if (ranges[i].start >= currentSelectionEnd) {
-				if (item.isLinkAt(ranges[i].start)) {
-					return ranges[i];
-				}
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Finds the previous link before the current selection.
-     */
-    private StyleRange findPreviousLink(StyledText text) {
-        if (text == null) {
-			return null;
-		}
-
-        WelcomeItem item = (WelcomeItem) text.getData();
-        StyleRange[] ranges = text.getStyleRanges();
-        int currentSelectionStart = text.getSelection().x;
-
-        for (int i = ranges.length - 1; i > -1; i--) {
-            if ((ranges[i].start + ranges[i].length) < currentSelectionStart) {
-				if (item.isLinkAt(ranges[i].start + ranges[i].length - 1)) {
-					return ranges[i];
-				}
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Finds the current link of the current selection.
-     */
-    protected StyleRange getCurrentLink(StyledText text) {
-        StyleRange[] ranges = text.getStyleRanges();
-        int currentSelectionEnd = text.getSelection().y;
-        int currentSelectionStart = text.getSelection().x;
-
-        for (int i = 0; i < ranges.length; i++) {
-            if ((currentSelectionStart >= ranges[i].start)
-                    && (currentSelectionEnd <= (ranges[i].start + ranges[i].length))) {
-                return ranges[i];
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Adds listeners to the given styled text
-     */
-    private void addListeners(StyledText styledText) {
-        styledText.addMouseListener(new MouseAdapter() {
-            public void mouseDown(MouseEvent e) {
-                if (e.button != 1) {
-                    return;
-                }
-                mouseDown = true;
-            }
-
-            public void mouseUp(MouseEvent e) {
-                mouseDown = false;
-                StyledText text = (StyledText) e.widget;
-                WelcomeItem item = (WelcomeItem) e.widget.getData();
-                int offset = text.getCaretOffset();
-                if (dragEvent) {
-                    dragEvent = false;
-                    if (item.isLinkAt(offset)) {
-                        text.setCursor(handCursor);
-                    }
-                } else if (item.isLinkAt(offset)) {
-                    text.setCursor(busyCursor);
-                    if (e.button == 1) {
-                        item.triggerLinkAt(offset);
-                        StyleRange selectionRange = getCurrentLink(text);
-                        text.setSelectionRange(selectionRange.start,
-                                selectionRange.length);
-                        text.setCursor(null);
-                    }
-                }
-            }
-        });
-
-        styledText.addMouseMoveListener(new MouseMoveListener() {
-            public void mouseMove(MouseEvent e) {
-                // Do not change cursor on drag events
-                if (mouseDown) {
-                    if (!dragEvent) {
-                        StyledText text = (StyledText) e.widget;
-                        text.setCursor(null);
-                    }
-                    dragEvent = true;
-                    return;
-                }
-                StyledText text = (StyledText) e.widget;
-                WelcomeItem item = (WelcomeItem) e.widget.getData();
-                int offset = -1;
-                try {
-                    offset = text.getOffsetAtLocation(new Point(e.x, e.y));
-                } catch (IllegalArgumentException ex) {
-                    // location is not over a character
-                }
-                if (offset == -1) {
-					text.setCursor(null);
-				} else if (item.isLinkAt(offset)) {
-					text.setCursor(handCursor);
-				} else {
-					text.setCursor(null);
-				}
-            }
-        });
-
-        styledText.addTraverseListener(new TraverseListener() {
-            public void keyTraversed(TraverseEvent e) {
-                StyledText text = (StyledText) e.widget;
-
-                switch (e.detail) {
-                case SWT.TRAVERSE_ESCAPE:
-                    e.doit = true;
-                    break;
-                case SWT.TRAVERSE_TAB_NEXT:
-                    // Handle Ctrl-Tab
-                    if ((e.stateMask & SWT.CTRL) != 0) {
-                        if (e.widget == lastText) {
-							return;
-						} else {
-                            e.doit = false;
-                            nextTabAbortTraversal = true;
-                            lastText.traverse(SWT.TRAVERSE_TAB_NEXT);
-                            return;
-                        }
-                    }
-                    if (nextTabAbortTraversal) {
-                        nextTabAbortTraversal = false;
-                        return;
-                    }
-                    // Find the next link in current widget, if applicable
-                    // Stop at top of widget
-                    StyleRange nextLink = findNextLink(text);
-                    if (nextLink == null) {
-                        // go to the next widget, focus at beginning
-                        StyledText nextText = nextText(text);
-                        nextText.setSelection(0);
-                        focusOn(nextText, 0);
-                    } else {
-                        // focusOn: allow none tab traversals to align
-                        focusOn(text, text.getSelection().x);
-                        text.setSelectionRange(nextLink.start, nextLink.length);
-                    }
-                    e.detail = SWT.TRAVERSE_NONE;
-                    e.doit = true;
-                    break;
-                case SWT.TRAVERSE_TAB_PREVIOUS:
-                    // Handle Ctrl-Shift-Tab
-                    if ((e.stateMask & SWT.CTRL) != 0) {
-                        if (e.widget == firstText) {
-							return;
-						} else {
-                            e.doit = false;
-                            previousTabAbortTraversal = true;
-                            firstText.traverse(SWT.TRAVERSE_TAB_PREVIOUS);
-                            return;
-                        }
-                    }
-                    if (previousTabAbortTraversal) {
-                        previousTabAbortTraversal = false;
-                        return;
-                    }
-                    // Find the previous link in current widget, if applicable
-                    // Stop at top of widget also
-                    StyleRange previousLink = findPreviousLink(text);
-                    if (previousLink == null) {
-                        if (text.getSelection().x == 0) {
-                            // go to the previous widget, focus at end
-                            StyledText previousText = previousText(text);
-                            previousText.setSelection(previousText
-                                    .getCharCount());
-                            previousLink = findPreviousLink(previousText);
-                            if (previousLink == null) {
-								focusOn(previousText, 0);
-							} else {
-                                focusOn(previousText, previousText
-                                        .getSelection().x);
-                                previousText
-                                        .setSelectionRange(previousLink.start,
-                                                previousLink.length);
-                            }
-                        } else {
-                            // stay at top of this widget
-                            focusOn(text, 0);
-                        }
-                    } else {
-                        // focusOn: allow none tab traversals to align
-                        focusOn(text, text.getSelection().x);
-                        text.setSelectionRange(previousLink.start,
-                                previousLink.length);
-                    }
-                    e.detail = SWT.TRAVERSE_NONE;
-                    e.doit = true;
-                    break;
-                default:
-                    break;
-                }
-            }
-        });
-
-        styledText.addKeyListener(new KeyListener() {
-            public void keyReleased(KeyEvent e) {
-                //Ignore a key release
-            }
-
-            public void keyPressed(KeyEvent event) {
-                StyledText text = (StyledText) event.widget;
-                if (event.character == ' ' || event.character == SWT.CR) {
-                    if (text != null) {
-                        WelcomeItem item = (WelcomeItem) text.getData();
-
-                        //Be sure we are in the selection
-                        int offset = text.getSelection().x + 1;
-
-                        if (item.isLinkAt(offset)) {
-                            text.setCursor(busyCursor);
-                            item.triggerLinkAt(offset);
-                            StyleRange selectionRange = getCurrentLink(text);
-                            text.setSelectionRange(selectionRange.start,
-                                    selectionRange.length);
-                            text.setCursor(null);
-                        }
-                    }
-                    return;
-                }
-
-                // When page down is pressed, move the cursor to the next item in the 
-                // welcome page.   Note that this operation wraps (pages to the top item
-                // when the last item is reached).
-                if (event.keyCode == SWT.PAGE_DOWN) {
-                    focusOn(nextText(text), 0);
-                    return;
-                }
-
-                // When page up is pressed, move the cursor to the previous item in the 
-                // welcome page.  Note that this operation wraps (pages to the bottom item
-                // when the first item is reached).
-                if (event.keyCode == SWT.PAGE_UP) {
-                    focusOn(previousText(text), 0);
-                    return;
-                }
-            }
-        });
-
-        styledText.addFocusListener(new FocusAdapter() {
-            public void focusLost(FocusEvent e) {
-                // Remember current text widget
-                lastNavigatedText = (StyledText) e.widget;
-            }
-
-            public void focusGained(FocusEvent e) {
-                currentText = (StyledText) e.widget;
-
-                // Remove highlighted selection if text widget has changed
-                if ((currentText != lastNavigatedText)
-                        && (lastNavigatedText != null)) {
-					lastNavigatedText.setSelection(lastNavigatedText
-                            .getSelection().x);
-				}
-
-                // enable/disable copy action
-                copyAction.setEnabled(currentText.getSelectionCount() > 0);
-            }
-        });
-
-        styledText.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                // enable/disable copy action			
-                StyledText text = (StyledText) e.widget;
-                copyAction.setEnabled(text.getSelectionCount() > 0);
-            }
-        });
-    }
-
-    /**
-     * Creates the wizard's title area.
-     *
-     * @param parent the SWT parent for the title area composite
-     * @return the created info area composite
-     */
-    private Composite createInfoArea(Composite parent) {
-        // Create the title area which will contain
-        // a title, message, and image.
-        this.scrolledComposite = new ScrolledComposite(parent, SWT.V_SCROLL
-                | SWT.H_SCROLL);
-        this.scrolledComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-        final Composite infoArea = new Composite(this.scrolledComposite,
-                SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.marginHeight = 10;
-        layout.verticalSpacing = 5;
-        layout.numColumns = 2;
-        infoArea.setLayout(layout);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        infoArea.setLayoutData(data);
-        boolean wrapped = parser.isFormatWrapped();
-        int HINDENT = 20;
-
-        // Get the background color for the title area
-        Display display = parent.getDisplay();
-        Color background = JFaceColors.getBannerBackground(display);
-        Color foreground = JFaceColors.getBannerForeground(display);
-        infoArea.setBackground(background);
-
-        int textStyle = SWT.MULTI | SWT.READ_ONLY;
-        if (wrapped) {
-            textStyle = textStyle | SWT.WRAP;
-        }
-        StyledText sampleStyledText = null;
-        // Create the intro item
-        WelcomeItem item = getIntroItem();
-        if (item != null) {
-            StyledText styledText = new StyledText(infoArea, textStyle);
-            this.texts.add(styledText);
-            sampleStyledText = styledText;
-            styledText.setCursor(null);
-            JFaceColors.setColors(styledText, foreground, background);
-            styledText.setText(getIntroItem().getText());
-            setBoldRanges(styledText, item.getBoldRanges());
-            setLinkRanges(styledText, item.getActionRanges());
-            setLinkRanges(styledText, item.getHelpRanges());
-            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-            gd.horizontalSpan = 2;
-            gd.horizontalIndent = HINDENT;
-            gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
-            styledText.setLayoutData(gd);
-            styledText.setData(item);
-            addListeners(styledText);
-
-            Label spacer = new Label(infoArea, SWT.NONE);
-            spacer.setBackground(background);
-            gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-            gd.horizontalSpan = 2;
-            spacer.setLayoutData(gd);
-        }
-        firstText = sampleStyledText;
-
-        // Create the welcome items
-        Label imageLabel = null;
-        WelcomeItem[] items = getItems();
-        for (int i = 0; i < items.length; i++) {
-            Label label = new Label(infoArea, SWT.NONE);
-            label.setBackground(background);
-            label
-                    .setImage(PlatformUI
-                            .getWorkbench()
-                            .getSharedImages()
-                            .getImage(
-                                    IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_ITEM));
-            GridData gd = new GridData();
-            gd.horizontalIndent = HINDENT;
-            gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
-            label.setLayoutData(gd);
-            if (imageLabel == null) {
-                imageLabel = label;
-            }
-
-            StyledText styledText = new StyledText(infoArea, textStyle);
-            this.texts.add(styledText);
-            sampleStyledText = styledText;
-            styledText.setCursor(null);
-            JFaceColors.setColors(styledText, foreground, background);
-            styledText.setText(items[i].getText());
-            setBoldRanges(styledText, items[i].getBoldRanges());
-            setLinkRanges(styledText, items[i].getActionRanges());
-            setLinkRanges(styledText, items[i].getHelpRanges());
-            gd = new GridData(GridData.FILL_HORIZONTAL);
-            gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
-            gd.verticalSpan = 2;
-            styledText.setLayoutData(gd);
-            styledText.setData(items[i]);
-            addListeners(styledText);
-
-            Label spacer = new Label(infoArea, SWT.NONE);
-            spacer.setBackground(background);
-            gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-            gd.horizontalSpan = 2;
-            spacer.setLayoutData(gd);
-
-            // create context menu
-            MenuManager menuMgr = new MenuManager("#PopUp"); //$NON-NLS-1$
-            menuMgr.add(copyAction);
-            styledText.setMenu(menuMgr.createContextMenu(styledText));
-        }
-
-        lastText = sampleStyledText;
-        this.scrolledComposite.setContent(infoArea);
-        Point p = infoArea.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-        this.scrolledComposite.setMinHeight(p.y);
-        if (wrapped) {
-            // introduce a horizontal scroll bar after a minimum width is reached
-            this.scrolledComposite.setMinWidth(WRAP_MIN_WIDTH);
-        } else {
-            this.scrolledComposite.setMinWidth(p.x);
-        }
-        this.scrolledComposite.setExpandHorizontal(true);
-        this.scrolledComposite.setExpandVertical(true);
-
-        // When the welcome editor is resized, we need to set the width hint for
-        // wrapped StyledText widgets so that the wrapped height will be recalculated.
-        if (wrapped && (imageLabel != null)) {
-            // figure out how wide the StyledText widgets should be, do this by first
-            // calculating the width of the area not used by styled text widgets
-            Rectangle bounds = imageLabel.getBounds();
-            final int adjust = HINDENT + bounds.width + layout.verticalSpacing
-                    + (layout.marginWidth * 2);
-            final int adjustFirst = HINDENT + (layout.marginWidth * 2);
-            infoArea.addListener(SWT.Resize, new Listener() {
-                public void handleEvent(Event event) {
-                    int w = scrolledComposite.getClientArea().width;
-                    // if the horizontal scroll bar exists, we want to wrap to the
-                    // minimum wrap width
-                    if (w < WRAP_MIN_WIDTH) {
-                        w = WRAP_MIN_WIDTH;
-                    }
-                    for (int i = 0; i < texts.size(); i++) {
-                        int extent;
-                        if (i == 0) {
-							extent = w - adjustFirst;
-						} else {
-							extent = w - adjust;
-						}
-                        StyledText text = (StyledText) texts.get(i);
-                        Point p = text.computeSize(extent, SWT.DEFAULT, false);
-                        ((GridData) text.getLayoutData()).widthHint = p.x;
-                    }
-                    // reset the scrolled composite height since the height of the 
-                    // styled text widgets have changed
-                    Point p = infoArea.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                            true);
-                    scrolledComposite.setMinHeight(p.y);
-                }
-            });
-        }
-
-        // Adjust the scrollbar increments
-        if (sampleStyledText == null) {
-            this.scrolledComposite.getHorizontalBar().setIncrement(
-                    HORZ_SCROLL_INCREMENT);
-            this.scrolledComposite.getVerticalBar().setIncrement(
-                    VERT_SCROLL_INCREMENT);
-        } else {
-            GC gc = new GC(sampleStyledText);
-            int width = gc.getFontMetrics().getAverageCharWidth();
-            gc.dispose();
-            this.scrolledComposite.getHorizontalBar().setIncrement(width);
-            this.scrolledComposite.getVerticalBar().setIncrement(
-                    sampleStyledText.getLineHeight());
-        }
-        return infoArea;
-    }
-
-    /**
-     * Creates the SWT controls for this workbench part.
-     * <p>
-     * Clients should not call this method (the workbench calls this method at
-     * appropriate times).
-     * </p>
-     * <p>
-     * For implementors this is a multi-step process:
-     * <ol>
-     *   <li>Create one or more controls within the parent.</li>
-     *   <li>Set the parent layout as needed.</li>
-     *   <li>Register any global actions with the <code>IActionService</code>.</li>
-     *   <li>Register any popup menus with the <code>IActionService</code>.</li>
-     *   <li>Register a selection provider with the <code>ISelectionService</code>
-     *     (optional). </li>
-     * </ol>
-     * </p>
-     *
-     * @param parent the parent control
-     */
-    public void createPartControl(Composite parent) {
-        // read our contents
-        readFile();
-        if (parser == null) {
-			return;
-		}
-
-        handCursor = new Cursor(parent.getDisplay(), SWT.CURSOR_HAND);
-        busyCursor = new Cursor(parent.getDisplay(), SWT.CURSOR_WAIT);
-
-        editorComposite = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        layout.verticalSpacing = 0;
-        layout.horizontalSpacing = 0;
-        editorComposite.setLayout(layout);
-
-        createTitleArea(editorComposite);
-
-        Label titleBarSeparator = new Label(editorComposite, SWT.HORIZONTAL
-                | SWT.SEPARATOR);
-        GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-        titleBarSeparator.setLayoutData(gd);
-
-        createInfoArea(editorComposite);
-
-        getSite().getWorkbenchWindow().getWorkbench().getHelpSystem().setHelp(
-				editorComposite, IIDEHelpContextIds.WELCOME_EDITOR);
-
-        this.colorListener = new IPropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent event) {
-                if (event.getProperty()
-                        .equals(JFacePreferences.HYPERLINK_COLOR)) {
-                    Color fg = JFaceColors.getHyperlinkText(editorComposite
-                            .getDisplay());
-                    Iterator links = hyperlinkRanges.iterator();
-                    while (links.hasNext()) {
-                        StyleRange range = (StyleRange) links.next();
-                        range.foreground = fg;
-                    }
-                }
-            }
-        };
-
-        JFacePreferences.getPreferenceStore().addPropertyChangeListener(
-                this.colorListener);
-
-    }
-
-    /**
-     * Creates the wizard's title area.
-     *
-     * @param parent the SWT parent for the title area composite
-     * @return the created title area composite
-     */
-    private Composite createTitleArea(Composite parent) {
-        // Get the background color for the title area
-        Display display = parent.getDisplay();
-        Color background = JFaceColors.getBannerBackground(display);
-        Color foreground = JFaceColors.getBannerForeground(display);
-
-        // Create the title area which will contain
-        // a title, message, and image.
-        Composite titleArea = new Composite(parent, SWT.NONE | SWT.NO_FOCUS);
-        GridLayout layout = new GridLayout();
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        layout.verticalSpacing = 0;
-        layout.horizontalSpacing = 0;
-        layout.numColumns = 2;
-        titleArea.setLayout(layout);
-        titleArea.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        titleArea.setBackground(background);
-
-        // Message label
-        final CLabel messageLabel = new CLabel(titleArea, SWT.LEFT) {
-            protected String shortenText(GC gc, String text, int width) {
-                if (gc.textExtent(text, SWT.DRAW_MNEMONIC).x <= width) {
-					return text;
-				}
-                final String ellipsis = "..."; //$NON-NLS-1$
-                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;
-            }
-        };
-        JFaceColors.setColors(messageLabel, foreground, background);
-        messageLabel.setText(getBannerTitle());
-        messageLabel.setFont(JFaceResources.getHeaderFont());
-
-        final IPropertyChangeListener fontListener = new IPropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent event) {
-                if (JFaceResources.HEADER_FONT.equals(event.getProperty())) {
-                    messageLabel.setFont(JFaceResources.getHeaderFont());
-                }
-            }
-        };
-
-        messageLabel.addDisposeListener(new DisposeListener() {
-            public void widgetDisposed(DisposeEvent event) {
-                JFaceResources.getFontRegistry().removeListener(fontListener);
-            }
-        });
-
-        JFaceResources.getFontRegistry().addListener(fontListener);
-
-        GridData gd = new GridData(GridData.FILL_BOTH);
-        messageLabel.setLayoutData(gd);
-
-        // Title image
-        Label titleImage = new Label(titleArea, SWT.LEFT);
-        titleImage.setBackground(background);
-        titleImage.setImage(PlatformUI.getWorkbench().getSharedImages()
-                .getImage(IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_BANNER));
-        gd = new GridData();
-        gd.horizontalAlignment = GridData.END;
-        titleImage.setLayoutData(gd);
-
-        return titleArea;
-    }
-
-    /**
-     * The <code>WorkbenchPart</code> implementation of this 
-     * <code>IWorkbenchPart</code> method disposes the title image
-     * loaded by <code>setInitializationData</code>. Subclasses may extend.
-     */
-    public void dispose() {
-        super.dispose();
-        if (busyCursor != null) {
-			busyCursor.dispose();
-		}
-        if (handCursor != null) {
-			handCursor.dispose();
-		}
-        if (this.colorListener != null) {
-            JFacePreferences.getPreferenceStore().removePropertyChangeListener(
-                    this.colorListener);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Saves the contents of this editor.
-     * <p>
-     * Subclasses must override this method to implement the open-save-close lifecycle
-     * for an editor.  For greater details, see <code>IEditorPart</code>
-     * </p>
-     *
-     * @see IEditorPart
-     */
-    public void doSave(IProgressMonitor monitor) {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * Saves the contents of this editor to another object.
-     * <p>
-     * Subclasses must override this method to implement the open-save-close lifecycle
-     * for an editor.  For greater details, see <code>IEditorPart</code>
-     * </p>
-     *
-     * @see IEditorPart
-     */
-    public void doSaveAs() {
-        // do nothing	
-    }
-
-    /**
-     * Returns the title obtained from the parser
-     */
-    private String getBannerTitle() {
-        if (parser.getTitle() == null) {
-			return ""; //$NON-NLS-1$
-		}
-        return parser.getTitle();
-    }
-
-    /**
-     * Returns the intro item or <code>null</code>
-     */
-    private WelcomeItem getIntroItem() {
-        return parser.getIntroItem();
-    }
-
-    /**
-     * Returns the welcome items
-     */
-    private WelcomeItem[] getItems() {
-        return parser.getItems();
-    }
-
-    /* (non-Javadoc)
-     * Sets the cursor and selection state for this editor to the passage defined
-     * by the given marker.
-     * <p>
-     * Subclasses may override.  For greater details, see <code>IEditorPart</code>
-     * </p>
-     *
-     * @see IEditorPart
-     */
-    public void gotoMarker(IMarker marker) {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * Initializes the editor part with a site and input.
-     * <p>
-     * Subclasses of <code>EditorPart</code> must implement this method.  Within
-     * the implementation subclasses should verify that the input type is acceptable
-     * and then save the site and input.  Here is sample code:
-     * </p>
-     * <pre>
-     *		if (!(input instanceof IFileEditorInput))
-     *			throw new PartInitException("Invalid Input: Must be IFileEditorInput");
-     *		setSite(site);
-     *		setInput(editorInput);
-     * </pre>
-     */
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-        if (!(input instanceof WelcomeEditorInput)) {
-			throw new PartInitException(
-                    "Invalid Input: Must be WelcomeEditorInput"); //$NON-NLS-1$
-		}
-        setSite(site);
-        setInput(input);
-    }
-
-    /* (non-Javadoc)
-     * Returns whether the contents of this editor have changed since the last save
-     * operation.
-     * <p>
-     * Subclasses must override this method to implement the open-save-close lifecycle
-     * for an editor.  For greater details, see <code>IEditorPart</code>
-     * </p>
-     *
-     * @see IEditorPart
-     */
-    public boolean isDirty() {
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Returns whether the "save as" operation is supported by this editor.
-     * <p>
-     * Subclasses must override this method to implement the open-save-close lifecycle
-     * for an editor.  For greater details, see <code>IEditorPart</code>
-     * </p>
-     *
-     * @see IEditorPart
-     */
-    public boolean isSaveAsAllowed() {
-        return false;
-    }
-
-    /**
-     * Read the contents of the welcome page
-     * 
-     * @param is the <code>InputStream</code> to parse
-     * @throws IOException if there is a problem parsing the stream.
-     */
-    public void read(InputStream is) throws IOException {
-        try {
-            parser = new WelcomeParser();
-        } catch (ParserConfigurationException e) {
-            throw (IOException) (new IOException().initCause(e));
-        } catch (SAXException e) {
-            throw (IOException) (new IOException().initCause(e));
-        }
-        parser.parse(is);
-    }
-
-    /**
-     * Reads the welcome file
-     */
-    public void readFile() {
-        URL url = ((WelcomeEditorInput) getEditorInput()).getAboutInfo()
-                .getWelcomePageURL();
-
-        if (url == null) {
-			// should not happen 
-            return;
-		}
-
-        InputStream is = null;
-        try {
-            is = url.openStream();
-            read(is);
-        } catch (IOException e) {
-            IStatus status = new Status(IStatus.ERROR,
-                    IDEWorkbenchPlugin.IDE_WORKBENCH, 1, IDEWorkbenchMessages.WelcomeEditor_accessException, e);
-            IDEWorkbenchPlugin.log(IDEWorkbenchMessages.WelcomeEditor_readFileError, status);
-        } finally {
-            try {
-                if (is != null) {
-					is.close();
-				}
-            } catch (IOException e) {
-            }
-        }
-    }
-
-    /**
-     * Sets the styled text's bold ranges
-     */
-    private void setBoldRanges(StyledText styledText, int[][] boldRanges) {
-        for (int i = 0; i < boldRanges.length; i++) {
-            StyleRange r = new StyleRange(boldRanges[i][0], boldRanges[i][1],
-                    null, null, SWT.BOLD);
-            styledText.setStyleRange(r);
-        }
-    }
-
-    /**
-     * Asks this part to take focus within the workbench.
-     * <p>
-     * Clients should not call this method (the workbench calls this method at
-     * appropriate times).
-     * </p>
-     */
-    public void setFocus() {
-        if ((editorComposite != null) && (lastNavigatedText == null)
-                && (currentText == null)) {
-			editorComposite.setFocus();
-		}
-    }
-
-    /**
-     * Sets the styled text's link (blue) ranges
-     */
-    private void setLinkRanges(StyledText styledText, int[][] linkRanges) {
-        //Color fg = styledText.getDisplay().getSystemColor(SWT.COLOR_BLUE);
-        Color fg = JFaceColors.getHyperlinkText(styledText.getShell()
-                .getDisplay());
-        for (int i = 0; i < linkRanges.length; i++) {
-            StyleRange r = new StyleRange(linkRanges[i][0], linkRanges[i][1],
-                    fg, null);
-            styledText.setStyleRange(r);
-            hyperlinkRanges.add(r);
-        }
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorActionContributor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorActionContributor.java
deleted file mode 100644
index 39c5547..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorActionContributor.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.ui.internal.ide.dialogs;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.part.EditorActionBarContributor;
-
-/**
- * Manages the installation and deinstallation of global actions for 
- * the welcome editor.
- */
-public class WelcomeEditorActionContributor extends EditorActionBarContributor {
-    /**
-     * The <code>WelcomeEditorActionContributor</code> implementation of this 
-     * <code>IEditorActionBarContributor</code> method installs the global 
-     * action handler for the given editor.
-     */
-    public void setActiveEditor(IEditorPart part) {
-        IActionBars actionBars = getActionBars();
-        if (actionBars != null) {
-            actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(),
-                    ((WelcomeEditor) part).getCopyAction());
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorCopyAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorCopyAction.java
deleted file mode 100644
index e784f14..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorCopyAction.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.ui.internal.ide.dialogs;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * Global copy action for the welcome editor.
- */
-public class WelcomeEditorCopyAction extends Action {
-    private WelcomeEditor editorPart;
-
-    public WelcomeEditorCopyAction(WelcomeEditor editor) {
-        editorPart = editor;
-        setText(IDEWorkbenchMessages.WelcomeEditor_copy_text);
-    }
-
-    public void run() {
-        editorPart.getCurrentText().copy();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorInput.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorInput.java
deleted file mode 100644
index ac4ce2c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorInput.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.internal.ide.dialogs;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.internal.ide.AboutInfo;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * A simple editor input for the welcome editor
- */
-public class WelcomeEditorInput implements IEditorInput {
-    private AboutInfo aboutInfo;
-
-    private final static String FACTORY_ID = "org.eclipse.ui.internal.dialogs.WelcomeEditorInputFactory"; //$NON-NLS-1$
-
-    public final static String FEATURE_ID = "featureId"; //$NON-NLS-1$
-
-    /**
-     * WelcomeEditorInput constructor comment.
-     */
-    public WelcomeEditorInput(AboutInfo info) {
-        super();
-        if (info == null) {
-            throw new IllegalArgumentException();
-        }
-        aboutInfo = info;
-    }
-
-    public boolean exists() {
-        return false;
-    }
-
-    public Object getAdapter(Class adapter) {
-        return null;
-    }
-
-    public ImageDescriptor getImageDescriptor() {
-        return null;
-    }
-
-    public String getName() {
-        return IDEWorkbenchMessages.WelcomeEditor_title;
-    }
-
-    public IPersistableElement getPersistable() {
-        return new IPersistableElement() {
-            public String getFactoryId() {
-                return FACTORY_ID;
-            }
-
-            public void saveState(IMemento memento) {
-                memento.putString(FEATURE_ID, aboutInfo.getFeatureId() + ':'
-                        + aboutInfo.getVersionId());
-            }
-        };
-    }
-
-    public AboutInfo getAboutInfo() {
-        return aboutInfo;
-    }
-
-    public boolean equals(Object o) {
-        if ((o != null) && (o instanceof WelcomeEditorInput)) {
-            if (((WelcomeEditorInput) o).aboutInfo.getFeatureId().equals(
-                    aboutInfo.getFeatureId())) {
-				return true;
-			}
-        }
-        return false;
-    }
-
-    public String getToolTipText() {
-        return NLS.bind(IDEWorkbenchMessages.WelcomeEditor_toolTip, aboutInfo.getFeatureLabel());
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorInputFactory.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorInputFactory.java
deleted file mode 100644
index 8b71a48..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeEditorInputFactory.java
+++ /dev/null
@@ -1,65 +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.ide.dialogs;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.IElementFactory;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.internal.ide.AboutInfo;
-
-/**
- * A simple factory for the welcome editor
- */
-public class WelcomeEditorInputFactory implements IElementFactory {
-    /**
-     * WelcomeEditorInputFactory constructor comment.
-     */
-    public WelcomeEditorInputFactory() {
-        super();
-    }
-
-    /**
-     * Re-creates and returns an object from the state captured within the given 
-     * memento. 
-     * <p>
-     * Under normal circumstances, the resulting object can be expected to be
-     * persistable; that is,
-     * <pre>
-     * result.getAdapter(org.eclipse.ui.IPersistableElement.class)
-     * </pre>
-     * should not return <code>null</code>.
-     * </p>
-     *
-     * @param memento a memento containing the state for the object
-     * @return an object, or <code>null</code> if the element could not be created
-     */
-    public IAdaptable createElement(IMemento memento) {
-        // Get the feature id.
-        String versionedFeatureId = memento
-                .getString(WelcomeEditorInput.FEATURE_ID);
-        if (versionedFeatureId == null) {
-            return null;
-        }
-        int colonPos = versionedFeatureId.indexOf(':');
-        if (colonPos == -1) {
-            // assume the memento is stale or mangled
-            return null;
-        }
-        String featureId = versionedFeatureId.substring(0, colonPos);
-        String versionId = versionedFeatureId.substring(colonPos + 1);
-        // @issue using feature id for plug-in id
-        AboutInfo info = AboutInfo.readFeatureInfo(featureId, versionId);
-        if (info == null) {
-            return null;
-        }
-        return new WelcomeEditorInput(info);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeItem.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeItem.java
deleted file mode 100644
index 354d375..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeItem.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.internal.ide.dialogs;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * Holds the information for an item appearing in the welcome editor
- */
-public class WelcomeItem {
-    private String text;
-
-    private int[][] boldRanges;
-
-    private int[][] helpRanges;
-
-    private String[] helpIds;
-
-    private String[] helpHrefs;
-
-    private int[][] actionRanges;
-
-    private String[] actionPluginIds;
-
-    private String[] actionClasses;
-
-    /**
-     * Creates a new welcome item
-     */
-    public WelcomeItem(String text, int[][] boldRanges, int[][] actionRanges,
-            String[] actionPluginIds, String[] actionClasses,
-            int[][] helpRanges, String[] helpIds, String[] helpHrefs) {
-
-        this.text = text;
-        this.boldRanges = boldRanges;
-        this.actionRanges = actionRanges;
-        this.actionPluginIds = actionPluginIds;
-        this.actionClasses = actionClasses;
-        this.helpRanges = helpRanges;
-        this.helpIds = helpIds;
-        this.helpHrefs = helpHrefs;
-    }
-
-    /**
-     * Returns the action ranges (character locations)
-     */
-    public int[][] getActionRanges() {
-        return actionRanges;
-    }
-
-    /**
-     * Returns the bold ranges (character locations)
-     */
-    public int[][] getBoldRanges() {
-        return boldRanges;
-    }
-
-    /**
-     * Returns the help ranges (character locations)
-     */
-    public int[][] getHelpRanges() {
-        return helpRanges;
-    }
-
-    /**
-     * Returns the text to display
-     */
-    public String getText() {
-        return text;
-    }
-
-    /**
-     * Returns true is a link (action or help) is present at the given character location
-     */
-    public boolean isLinkAt(int offset) {
-        // Check if there is a link at the offset
-        for (int i = 0; i < helpRanges.length; i++) {
-            if (offset >= helpRanges[i][0]
-                    && offset < helpRanges[i][0] + helpRanges[i][1]) {
-                return true;
-            }
-        }
-
-        // Check if there is an action link at the offset
-        for (int i = 0; i < actionRanges.length; i++) {
-            if (offset >= actionRanges[i][0]
-                    && offset < actionRanges[i][0] + actionRanges[i][1]) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Logs a error to the workbench log
-     */
-    public void logActionLinkError(String actionPluginId, String actionClass) {
-        IDEWorkbenchPlugin
-                .log(IDEWorkbenchMessages.WelcomeItem_unableToLoadClass + actionPluginId + " " + actionClass); //$NON-NLS-1$
-    }
-
-    /**
-     * Open a help topic
-     */
-    private void openHelpTopic(String topic, String href) {
-        if (href != null) {
-			PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(href);
-		} else {
-			PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(topic);
-		}
-    }
-
-    /**
-     * Run an action
-     */
-    private void runAction(String pluginId, String className) {
-    	Bundle pluginBundle = Platform.getBundle(pluginId);
-        if (pluginBundle == null) {
-            logActionLinkError(pluginId, className);
-            return;
-        }
-        Class actionClass;
-        IAction action;
-        try {
-        	actionClass = pluginBundle.loadClass(className);
-        } catch (ClassNotFoundException e) {
-            logActionLinkError(pluginId, className);
-            return;
-        }
-        try {
-            action = (IAction) actionClass.newInstance();
-        } catch (InstantiationException e) {
-            logActionLinkError(pluginId, className);
-            return;
-        } catch (IllegalAccessException e) {
-            logActionLinkError(pluginId, className);
-            return;
-        } catch (ClassCastException e) {
-            logActionLinkError(pluginId, className);
-            return;
-        }
-        action.run();
-    }
-
-    /**
-     * Triggers the link at the given offset (if there is one)
-     */
-    public void triggerLinkAt(int offset) {
-        // Check if there is a help link at the offset
-        for (int i = 0; i < helpRanges.length; i++) {
-            if (offset >= helpRanges[i][0]
-                    && offset < helpRanges[i][0] + helpRanges[i][1]) {
-                // trigger the link
-                openHelpTopic(helpIds[i], helpHrefs[i]);
-                return;
-            }
-        }
-
-        // Check if there is an action link at the offset
-        for (int i = 0; i < actionRanges.length; i++) {
-            if (offset >= actionRanges[i][0]
-                    && offset < actionRanges[i][0] + actionRanges[i][1]) {
-                // trigger the link
-                runAction(actionPluginIds[i], actionClasses[i]);
-                return;
-            }
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeParser.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeParser.java
deleted file mode 100644
index c336c3b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/WelcomeParser.java
+++ /dev/null
@@ -1,379 +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.ide.dialogs;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * A parser for the the welcome page
- */
-public class WelcomeParser extends DefaultHandler {
-    private static final String TAG_WELCOME_PAGE = "welcomePage"; //$NON-NLS-1$	
-
-    private static final String TAG_INTRO = "intro"; //$NON-NLS-1$	
-
-    private static final String TAG_ITEM = "item"; //$NON-NLS-1$	
-
-    private static final String TAG_BOLD = "b"; //$NON-NLS-1$	
-
-    private static final String TAG_ACTION = "action"; //$NON-NLS-1$	
-
-    private static final String TAG_PARAGRAPH = "p"; //$NON-NLS-1$	
-
-    private static final String TAG_TOPIC = "topic"; //$NON-NLS-1$	
-
-    private static final String ATT_TITLE = "title"; //$NON-NLS-1$	
-
-    private static final String ATT_FORMAT = "format"; //$NON-NLS-1$	
-
-    private static final String ATT_PLUGIN_ID = "pluginId"; //$NON-NLS-1$	
-
-    private static final String ATT_CLASS = "class"; //$NON-NLS-1$	
-
-    private static final String ATT_ID = "id"; //$NON-NLS-1$
-
-    private static final String ATT_HREF = "href"; //$NON-NLS-1$
-
-    private static final String FORMAT_WRAP = "wrap"; //$NON-NLS-1$
-
-    private static final char DELIMITER = '\n'; // sax parser replaces crlf with lf
-
-    private SAXParser parser;
-
-    private String title;
-
-    private WelcomeItem introItem;
-
-    private ArrayList items = new ArrayList();
-
-    private String format;
-
-    private class WelcomeContentHandler implements ContentHandler {
-        protected ContentHandler parent;
-
-        public void setParent(ContentHandler p) {
-            parent = p;
-        }
-
-        public void characters(char[] ch, int start, int length)
-                throws SAXException {
-        }
-
-        public void endDocument() throws SAXException {
-        }
-
-        public void endElement(String namespaceURI, String localName,
-                String qName) throws SAXException {
-        }
-
-        public void endPrefixMapping(String prefix) throws SAXException {
-        }
-
-        public void ignorableWhitespace(char[] ch, int start, int length)
-                throws SAXException {
-        }
-
-        public void processingInstruction(String target, String data)
-                throws SAXException {
-        }
-
-        public void setDocumentLocator(Locator locator) {
-        }
-
-        public void skippedEntity(String name) throws SAXException {
-        }
-
-        public void startDocument() throws SAXException {
-        }
-
-        public void startElement(String namespaceURI, String localName,
-                String qName, Attributes atts) throws SAXException {
-        }
-
-        public void startPrefixMapping(String prefix, String uri)
-                throws SAXException {
-        }
-    }
-
-    private class WelcomePageHandler extends WelcomeContentHandler {
-        public WelcomePageHandler(String newTitle) {
-            title = newTitle;
-        }
-
-        public void startElement(String namespaceURI, String localName,
-                String qName, Attributes atts) throws SAXException {
-            if (localName.equals(TAG_INTRO)) {
-                ItemHandler h = new IntroItemHandler();
-                h.setParent(WelcomePageHandler.this);
-                parser.getXMLReader().setContentHandler(h);
-            } else if (localName.equals(TAG_ITEM)) {
-                ItemHandler h = new ItemHandler();
-                h.setParent(WelcomePageHandler.this);
-                parser.getXMLReader().setContentHandler(h);
-            }
-        }
-    }
-
-    private class ItemHandler extends WelcomeContentHandler {
-        private ArrayList boldRanges = new ArrayList();
-
-        protected ArrayList wrapRanges = new ArrayList();
-
-        private ArrayList actionRanges = new ArrayList();
-
-        private ArrayList pluginIds = new ArrayList();
-
-        private ArrayList classes = new ArrayList();
-
-        private ArrayList helpRanges = new ArrayList();
-
-        private ArrayList helpIds = new ArrayList();
-
-        private ArrayList helpHrefs = new ArrayList();
-
-        private StringBuffer text = new StringBuffer();
-
-        protected int offset = 0;
-
-        protected int textStart;
-
-        protected int wrapStart;
-
-        private class BoldHandler extends WelcomeContentHandler {
-            public void characters(char[] ch, int start, int length)
-                    throws SAXException {
-                ItemHandler.this.characters(ch, start, length);
-            }
-
-            public void endElement(String namespaceURI, String localName,
-                    String qName) throws SAXException {
-                if (localName.equals(TAG_BOLD)) {
-                    boldRanges.add(new int[] { textStart, offset - textStart });
-                    parser.getXMLReader().setContentHandler(parent);
-                }
-            }
-        }
-
-        private class ActionHandler extends WelcomeContentHandler {
-            public ActionHandler(String pluginId, String className) {
-                pluginIds.add(pluginId);
-                classes.add(className);
-            }
-
-            public void characters(char[] ch, int start, int length)
-                    throws SAXException {
-                ItemHandler.this.characters(ch, start, length);
-            }
-
-            public void endElement(String namespaceURI, String localName,
-                    String qName) throws SAXException {
-                if (localName.equals(TAG_ACTION)) {
-                    actionRanges
-                            .add(new int[] { textStart, offset - textStart });
-                    parser.getXMLReader().setContentHandler(parent);
-                }
-            }
-        }
-
-        private class TopicHandler extends WelcomeContentHandler {
-            public TopicHandler(String helpId, String href) {
-                helpIds.add(helpId);
-                helpHrefs.add(href);
-            }
-
-            public void characters(char[] ch, int start, int length)
-                    throws SAXException {
-                ItemHandler.this.characters(ch, start, length);
-            }
-
-            public void endElement(String namespaceURI, String localName,
-                    String qName) throws SAXException {
-                if (localName.equals(TAG_TOPIC)) {
-                    helpRanges.add(new int[] { textStart, offset - textStart });
-                    parser.getXMLReader().setContentHandler(parent);
-                }
-            }
-        }
-
-        protected WelcomeItem constructWelcomeItem() {
-            if (isFormatWrapped()) {
-                // replace all line delimiters with a space
-                for (int i = 0; i < wrapRanges.size(); i++) {
-                    int[] range = (int[]) wrapRanges.get(i);
-                    int start = range[0];
-                    int length = range[1];
-                    for (int j = start; j < start + length; j++) {
-                        char ch = text.charAt(j);
-                        if (ch == DELIMITER) {
-                            text.replace(j, j + 1, " "); //$NON-NLS-1$
-                        }
-                    }
-                }
-            }
-            return new WelcomeItem(
-                    text.toString(),
-                    (int[][]) boldRanges.toArray(new int[boldRanges.size()][2]),
-                    (int[][]) actionRanges
-                            .toArray(new int[actionRanges.size()][2]),
-                    (String[]) pluginIds.toArray(new String[pluginIds.size()]),
-                    (String[]) classes.toArray(new String[classes.size()]),
-                    (int[][]) helpRanges.toArray(new int[helpRanges.size()][2]),
-                    (String[]) helpIds.toArray(new String[helpIds.size()]),
-                    (String[]) helpHrefs.toArray(new String[helpHrefs.size()]));
-        }
-
-        public void characters(char[] ch, int start, int length)
-                throws SAXException {
-            for (int i = 0; i < length; i++) {
-                text.append(ch[start + i]);
-            }
-            offset += length;
-        }
-
-        public void startElement(String namespaceURI, String localName,
-                String qName, Attributes atts) throws SAXException {
-            textStart = offset;
-            if (localName.equals(TAG_BOLD)) {
-                BoldHandler h = new BoldHandler();
-                h.setParent(ItemHandler.this);
-                parser.getXMLReader().setContentHandler(h);
-            } else if (localName.equals(TAG_ACTION)) {
-                ActionHandler h = new ActionHandler(atts
-                        .getValue(ATT_PLUGIN_ID), atts.getValue(ATT_CLASS));
-                h.setParent(ItemHandler.this);
-                parser.getXMLReader().setContentHandler(h);
-            } else if (localName.equals(TAG_PARAGRAPH)) {
-                wrapStart = textStart;
-            } else if (localName.equals(TAG_TOPIC)) {
-                TopicHandler h = new TopicHandler(atts.getValue(ATT_ID), atts
-                        .getValue(ATT_HREF));
-                h.setParent(ItemHandler.this);
-                parser.getXMLReader().setContentHandler(h);
-            }
-        }
-
-        public void endElement(String namespaceURI, String localName,
-                String qName) throws SAXException {
-            if (localName.equals(TAG_ITEM)) {
-                items.add(constructWelcomeItem());
-                parser.getXMLReader().setContentHandler(parent);
-            } else if (localName.equals(TAG_PARAGRAPH)) {
-                wrapRanges.add(new int[] { wrapStart, offset - wrapStart });
-            }
-        }
-    }
-
-    private class IntroItemHandler extends ItemHandler {
-        public void endElement(String namespaceURI, String localName,
-                String qName) throws SAXException {
-            if (localName.equals(TAG_INTRO)) {
-                introItem = constructWelcomeItem();
-                parser.getXMLReader().setContentHandler(parent);
-            } else if (localName.equals(TAG_PARAGRAPH)) {
-                wrapRanges.add(new int[] { wrapStart, offset - wrapStart });
-            }
-        }
-    }
-
-    /**
-     * Creates a new welcome parser.
-     */
-    public WelcomeParser() throws ParserConfigurationException, SAXException,
-            FactoryConfigurationError {
-        super();
-        SAXParserFactory factory = SAXParserFactory.newInstance();
-        factory.setFeature("http://xml.org/sax/features/namespaces", true); //$NON-NLS-1$
-        parser = factory.newSAXParser();
-
-        parser.getXMLReader().setContentHandler(this);
-        parser.getXMLReader().setDTDHandler(this);
-        parser.getXMLReader().setEntityResolver(this);
-        parser.getXMLReader().setErrorHandler(this);
-    }
-
-    /**
-     * Returns the intro item.
-     */
-    public WelcomeItem getIntroItem() {
-        return introItem;
-    }
-
-    /**
-     * Returns the items.
-     */
-    public WelcomeItem[] getItems() {
-        return (WelcomeItem[]) items.toArray(new WelcomeItem[items.size()]);
-    }
-
-    /**
-     * Returns the title
-     */
-    public String getTitle() {
-        return title;
-    }
-
-    /**
-     * Returns whether or not the welcome editor input should be wrapped.
-     */
-    public boolean isFormatWrapped() {
-        return FORMAT_WRAP.equals(format);
-    }
-
-    /**
-     * Parse the contents of the input stream
-     */
-    public void parse(InputStream is) {
-        try {
-            parser.parse(new InputSource(is), this);
-        } catch (SAXException e) {
-            IStatus status = new Status(IStatus.ERROR,
-                    IDEWorkbenchPlugin.IDE_WORKBENCH, 1, IDEWorkbenchMessages.WelcomeParser_parseException, e);
-            IDEWorkbenchPlugin.log(IDEWorkbenchMessages.WelcomeParser_parseError, status);
-        } catch (IOException e) {
-            IStatus status = new Status(IStatus.ERROR,
-                    IDEWorkbenchPlugin.IDE_WORKBENCH, 1, IDEWorkbenchMessages.WelcomeParser_parseException, e);
-            IDEWorkbenchPlugin.log(IDEWorkbenchMessages.WelcomeParser_parseError, status);
-        }
-    }
-
-    /**
-     * Handles the start element
-     */
-    public void startElement(String namespaceURI, String localName,
-            String qName, Attributes atts) throws SAXException {
-        if (localName.equals(TAG_WELCOME_PAGE)) {
-            WelcomeContentHandler h = new WelcomePageHandler(atts
-                    .getValue(ATT_TITLE));
-            format = atts.getValue(ATT_FORMAT);
-            h.setParent(this);
-            parser.getXMLReader().setContentHandler(h);
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemConfiguration.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemConfiguration.java
deleted file mode 100644
index 57d6150..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemConfiguration.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.internal.ide.filesystem;
-
-import org.eclipse.ui.ide.fileSystem.FileSystemContributor;
-
-/**
- * FileSystemContribution is the representation of the configuration element
- * defined by
- * 
- * @since 3.2
- * 
- */
-public class FileSystemConfiguration {
-
-	String label;
-
-	FileSystemContributor contributor;
-
-	private String scheme;
-
-
-	/**
-	 * Create a new FileSystemConfiguration with the defined
-	 * contributor and userLabel for the supplied scheme.
-	 * @param name
-	 * @param declaredContributor
-	 * @param fileSystem
-	 */
-	public FileSystemConfiguration(String name, FileSystemContributor declaredContributor, String fileSystem) {
-		label = name;
-		contributor = declaredContributor;
-		scheme = fileSystem;
-	}
-
-	/**
-	 * Return the huuman readable label for the receiver.
-	 * @return String
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Return the contributor for the receiver.
-	 * @return FileSystemContributor
-	 */
-	public FileSystemContributor getContributor() {
-		return contributor;
-	}
-
-	/**
-	 * Return the filesystem scheme for the receiver.
-	 * @return Returns the scheme.
-	 */
-	public String getScheme() {
-		return scheme;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemMessages.java
deleted file mode 100644
index 33ece12..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemMessages.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.internal.ide.filesystem;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * FileSystemMessages is the class that handles the messages for the 
- * filesystem support.
- *
- */
-public class FileSystemMessages extends NLS{
-	
-	private static final String BUNDLE_NAME= "org.eclipse.ui.internal.ide.filesystem.messages"; //$NON-NLS-1$
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, FileSystemMessages.class);
-	}
-
-
-	/**
-	 * The name of the default file system.
-	 */
-	public static String DefaultFileSystem_name;
-	
-	/**
-	 * The label for file system selection.
-	 */
-	public static String FileSystemSelection_title;
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemSupportRegistry.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemSupportRegistry.java
deleted file mode 100644
index e6fa7bd..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/FileSystemSupportRegistry.java
+++ /dev/null
@@ -1,252 +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.ide.filesystem;
-
-import java.io.File;
-import java.net.URI;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.dynamichelpers.ExtensionTracker;
-import org.eclipse.core.runtime.dynamichelpers.IExtensionChangeHandler;
-import org.eclipse.core.runtime.dynamichelpers.IExtensionTracker;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.fileSystem.FileSystemContributor;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.dialogs.IDEResourceInfoUtils;
-
-/**
- * @since 3.2
- * 
- */
-public class FileSystemSupportRegistry implements IExtensionChangeHandler {
-
-	private static final String FILESYSTEM_SUPPORT = "filesystemSupport";//$NON-NLS-1$
-
-	protected static final String ATT_CLASS = "class"; //$NON-NLS-1$
-
-	private static final String LABEL = "label";//$NON-NLS-1$
-
-	private static final String SCHEME = "scheme";//$NON-NLS-1$
-
-	private static FileSystemSupportRegistry singleton;
-
-	/**
-	 * Get the instance of the registry.
-	 * 
-	 * @return MarkerSupportRegistry
-	 */
-	public static FileSystemSupportRegistry getInstance() {
-		if (singleton == null) {
-			singleton = new FileSystemSupportRegistry();
-		}
-		return singleton;
-	}
-
-	private Collection registeredContributions = new HashSet(0);
-
-	FileSystemConfiguration defaultConfiguration = new FileSystemConfiguration(
-			FileSystemMessages.DefaultFileSystem_name, new FileSystemContributor() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.ui.ide.fileSystem.FileSystemContributor#browseFileSystem(java.lang.String,
-				 *      org.eclipse.swt.widgets.Shell)
-				 */
-				public URI browseFileSystem(String initialPath, Shell shell) {
-
-					DirectoryDialog dialog = new DirectoryDialog(shell);
-					dialog
-							.setMessage(IDEWorkbenchMessages.ProjectLocationSelectionDialog_directoryLabel);
-
-					if (!initialPath.equals(IDEResourceInfoUtils.EMPTY_STRING)) {
-						IFileInfo info = IDEResourceInfoUtils
-								.getFileInfo(initialPath);
-						if (info != null && info.exists()) {
-							dialog.setFilterPath(initialPath);
-						}
-					}
-
-					String selectedDirectory = dialog.open();
-					if (selectedDirectory == null) {
-						return null;
-					}
-					return new File(selectedDirectory).toURI();
-
-				}
-			}, null);
-
-	private FileSystemConfiguration[] allConfigurations;
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public FileSystemSupportRegistry() {
-
-		IExtensionTracker tracker = PlatformUI.getWorkbench()
-				.getExtensionTracker();
-		IExtensionPoint point = Platform.getExtensionRegistry()
-				.getExtensionPoint(IDEWorkbenchPlugin.IDE_WORKBENCH,
-						FILESYSTEM_SUPPORT);
-		if (point == null) {
-			return;
-		}
-		IExtension[] extensions = point.getExtensions();
-		// initial population
-		for (int i = 0; i < extensions.length; i++) {
-			IExtension extension = extensions[i];
-			processExtension(tracker, extension);
-		}
-		tracker.registerHandler(this, ExtensionTracker
-				.createExtensionPointFilter(point));
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.dynamichelpers.IExtensionChangeHandler#addExtension(org.eclipse.core.runtime.dynamichelpers.IExtensionTracker,
-	 *      org.eclipse.core.runtime.IExtension)
-	 */
-	public void addExtension(IExtensionTracker tracker, IExtension extension) {
-		processExtension(tracker, extension);
-		allConfigurations = null;//Clear the cache
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.dynamichelpers.IExtensionChangeHandler#removeExtension(org.eclipse.core.runtime.IExtension,
-	 *      java.lang.Object[])
-	 */
-	public void removeExtension(IExtension extension, Object[] objects) {
-		for (int i = 0; i < objects.length; i++) {
-			registeredContributions.remove(objects[i]);
-		}
-		allConfigurations = null;//Clear the cache
-
-	}
-
-	/**
-	 * Process the extension and register the result with the tracker.
-	 * 
-	 * @param tracker
-	 * @param extension
-	 */
-	private void processExtension(IExtensionTracker tracker,
-			IExtension extension) {
-		IConfigurationElement[] elements = extension.getConfigurationElements();
-		for (int j = 0; j < elements.length; j++) {
-			IConfigurationElement element = elements[j];
-			FileSystemConfiguration contribution = newConfiguration(element);
-			registeredContributions.add(contribution);
-			tracker.registerObject(extension, contribution,
-					IExtensionTracker.REF_STRONG);
-
-		}
-	}
-
-	/**
-	 * Return a new FileSystemContribution.
-	 * 
-	 * @param element
-	 * @return FileSystemContribution or <code>null</code> if there is an
-	 *         exception.
-	 */
-	private FileSystemConfiguration newConfiguration(
-			final IConfigurationElement element) {
-
-		final FileSystemContributor[] contributors = new FileSystemContributor[1];
-		final CoreException[] exceptions = new CoreException[1];
-
-		Platform.run(new ISafeRunnable() {
-			public void run() {
-				try {
-					contributors[0] = (FileSystemContributor) IDEWorkbenchPlugin
-							.createExtension(element, ATT_CLASS);
-
-				} catch (CoreException exception) {
-					exceptions[0] = exception;
-				}
-			}
-
-			/*
-			 * (non-Javadoc) Method declared on ISafeRunnable.
-			 */
-			public void handleException(Throwable e) {
-				// Do nothing as Core will handle the logging
-			}
-		});
-
-		if (exceptions[0] != null) {
-			return null;
-		}
-		String name = element.getAttribute(LABEL);
-		String fileSystem = element.getAttribute(SCHEME);
-		FileSystemConfiguration config = new FileSystemConfiguration(name,
-				contributors[0], fileSystem);
-
-		return config;
-
-	}
-
-	/**
-	 * Return the FileSystemConfiguration defined in the receiver.
-	 * 
-	 * @return FileSystemConfiguration[]
-	 */
-	public FileSystemConfiguration[] getConfigurations() {
-		if (allConfigurations == null) {
-			allConfigurations = new FileSystemConfiguration[registeredContributions
-					.size() + 1];
-			allConfigurations[0] = defaultConfiguration;
-
-			Iterator iterator = registeredContributions.iterator();
-			int index = 0;
-			while (iterator.hasNext()) {
-				allConfigurations[++index] = (FileSystemConfiguration) iterator
-						.next();
-			}
-		}
-		return allConfigurations;
-	}
-
-	/**
-	 * Return the default file system configuration (the local file system
-	 * extension in the ide plug-in).
-	 * 
-	 * @return FileSystemConfiguration
-	 */
-	public FileSystemConfiguration getDefaultConfiguration() {
-		return defaultConfiguration;
-	}
-
-	/**
-	 * Return whether or not there is only one file system registered.
-	 * 
-	 * @return <code>true</code> if there is only one file system.
-	 */
-	public boolean hasOneFileSystem() {
-		return registeredContributions.size() == 0;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/messages.properties
deleted file mode 100644
index e6feaa0..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/messages.properties
+++ /dev/null
@@ -1,13 +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
-###############################################################################
-
-DefaultFileSystem_name = default
-FileSystemSelection_title = Choose file system:
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/package.html
deleted file mode 100644
index 7be982a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/filesystem/package.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<title>Package-level Javadoc</title>
-</head>
-
-<body>
-Internal classes for the IDE-specific support for the 
-org.eclipse.core.filesystem.fileSystem extension.
-<h2>Package Specification</h2>
-This package contains internal classes for the Eclipse Platform User Interface that
-support for the org.eclipse.core.filesystem.fileSystem extension
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/OpenResourceHandler.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/OpenResourceHandler.java
deleted file mode 100755
index 5976aea..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/OpenResourceHandler.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.internal.ide.handlers;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.IHandlerListener;
-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.ListenerList;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.ide.dialogs.OpenResourceDialog;
-
-/**
- * Implements the open resource action. Opens a dialog prompting for a file and
- * opens the selected file in an editor.
- * 
- * @since 2.1
- */
-public final class OpenResourceHandler extends Action implements IHandler,
-		IWorkbenchWindowActionDelegate {
-
-	/**
-	 * The identifier of the parameter storing the file path.
-	 */
-	private static final String PARAM_ID_FILE_PATH = "filePath"; //$NON-NLS-1$
-
-	/**
-	 * 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 instance of the class.
-	 */
-	public OpenResourceHandler() {
-		super();
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IIDEHelpContextIds.OPEN_WORKSPACE_FILE_ACTION);
-	}
-
-	public final void addHandlerListener(final IHandlerListener listener) {
-		if (listenerList == null) {
-			listenerList = new ListenerList(ListenerList.IDENTITY);
-		}
-
-		listenerList.add(listener);
-	}
-
-	public final void dispose() {
-		listenerList = null;
-	}
-
-	public final Object execute(final ExecutionEvent event)
-			throws ExecutionException {
-		final List files = new ArrayList();
-
-		if (event.getParameter(PARAM_ID_FILE_PATH) == null) {
-			// Prompt the user for the resource to open.
-			Object[] result = queryFileResource();
-
-			if (result != null) {
-				for (int i = 0; i < result.length; i++) {
-					if (result[i] instanceof IFile) {
-						files.add(result[i]);
-					}
-				}
-			}
-
-		} else {
-			// Use the given parameter.
-			final IResource resource = (IResource) event
-					.getObjectParameterForExecution(PARAM_ID_FILE_PATH);
-			if (!(resource instanceof IFile)) {
-				throw new ExecutionException(
-						"filePath parameter must identify a file"); //$NON-NLS-1$
-			}
-			files.add(resource);
-		}
-
-		if (files.size() > 0) {
-
-			final IWorkbenchWindow window = PlatformUI.getWorkbench()
-					.getActiveWorkbenchWindow();
-			if (window == null) {
-				throw new ExecutionException("no active workbench window"); //$NON-NLS-1$
-			}
-
-			final IWorkbenchPage page = window.getActivePage();
-			if (page == null) {
-				throw new ExecutionException("no active workbench page"); //$NON-NLS-1$
-			}
-
-			try {
-				for (Iterator it = files.iterator(); it.hasNext();) {
-					IDE.openEditor(page, (IFile) it.next(), true);
-				}
-			} catch (final PartInitException e) {
-				throw new ExecutionException("error opening file in editor", e); //$NON-NLS-1$
-			}
-		}
-
-		return null;
-	}
-
-	public final void init(final IWorkbenchWindow window) {
-		// Do nothing.
-	}
-
-	/**
-	 * Query the user for the resources that should be opened
-	 * 
-	 * @return the resource that should be opened.
-	 */
-	private final Object[] queryFileResource() {
-		final IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		if (window == null) {
-			return null;
-		}
-		final Shell parent = window.getShell();
-		final IContainer input = ResourcesPlugin.getWorkspace().getRoot();
-
-		final OpenResourceDialog dialog = new OpenResourceDialog(parent, input,
-				IResource.FILE);
-		final int resultCode = dialog.open();
-		if (resultCode != IDialogConstants.OK_ID) {
-			return null;
-		}
-
-		final Object[] result = dialog.getResult();
-
-		return result;
-	}
-
-	public final void removeHandlerListener(final IHandlerListener listener) {
-		if (listenerList != null) {
-			listenerList.remove(listener);
-
-			if (listenerList.isEmpty()) {
-				listenerList = null;
-			}
-		}
-	}
-
-	public final void run(final IAction action) {
-		try {
-			execute(new ExecutionEvent());
-		} catch (final ExecutionException e) {
-			// TODO Do something meaningful and poignant.
-		}
-	}
-
-	public final void selectionChanged(final IAction action,
-			final ISelection selection) {
-		// Do nothing.
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowResourceByPathHandler.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowResourceByPathHandler.java
deleted file mode 100644
index 4cf3dea..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowResourceByPathHandler.java
+++ /dev/null
@@ -1,67 +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.ide.handlers;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IResource;
-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.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ISetSelectionTarget;
-
-/**
- * A command handler to show a resource in the Navigator view given the resource
- * path.
- * 
- * @since 3.2
- */
-public class ShowResourceByPathHandler extends AbstractHandler {
-
-	private static final String PARAM_ID_RESOURCE_PATH = "resourcePath"; //$NON-NLS-1$
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-
-		IResource resource = (IResource) event
-				.getObjectParameterForExecution(PARAM_ID_RESOURCE_PATH);
-
-		IWorkbenchWindow activeWindow = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		if (activeWindow == null) {
-			throw new ExecutionException("no active workbench window"); //$NON-NLS-1$
-		}
-
-		IWorkbenchPage activePage = activeWindow.getActivePage();
-		if (activePage == null) {
-			throw new ExecutionException("no active workbench page"); //$NON-NLS-1$
-		}
-
-		try {
-			IViewPart view = activePage.showView(IPageLayout.ID_RES_NAV);
-			if (view instanceof ISetSelectionTarget) {
-				ISelection selection = new StructuredSelection(resource);
-				((ISetSelectionTarget) view).selectReveal(selection);
-			}
-		} catch (PartInitException e) {
-			throw new ExecutionException("error showing resource in navigator"); //$NON-NLS-1$
-		}
-
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/messages.properties
deleted file mode 100644
index 56c8360..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/messages.properties
+++ /dev/null
@@ -1,778 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# package: org.eclipse.ui.ide
-
-IDEWorkbenchAdvisor_noPerspective=No perspectives are open. To open a perspective, press this button:
-
-IDE_noFileEditorFound = No editor found to edit the file resource.
-IDE_sideEffectWarning=Potential side effects have been identified.
-IDE_coreExceptionFileStore = CoreException opening the file store on the URI.
-
-QuickStartAction_errorDialogTitle = Quick Start Error
-QuickStartAction_infoReadError = Could not read feature about information.
-
-ConfigurationLogUpdateSection_installConfiguration=Install configuration:
-ConfigurationLogUpdateSection_lastChangedOn=Last changed on {0}
-ConfigurationLogUpdateSection_location=Location: {0}
-ConfigurationLogUpdateSection_configurationSites=Configured sites:
-ConfigurationLogUpdateSection_configurationFeatures=Configured features:
-ConfigurationLogUpdateSection_featureIdAndVersion=ID: {0}, Version: {1}
-ConfigurationLogUpdateSection_plugins=Configured plug-ins:
-
-ErrorClosing = An error has occurred when closing the workbench. See error log for more details.
-
-IDEIdleHelper_backgroundGC = Collecting garbage
-
-
-############################################################
-############################################################
-# Copies from org.eclipse.ui.workbench
-############################################################
-showAdvanced = &Advanced >>
-hideAdvanced = << &Advanced
-
-# ==============================================================================
-# Workbench Actions
-# ==============================================================================
-
-# --- File Menu ---
-Workbench_file = &File
-Workbench_new = &New
-OpenWorkspaceAction_text = Switch &Workspace...
-OpenWorkspaceAction_toolTip = Open Workspace
-OpenWorkspaceAction_errorTitle = Missing System Property
-OpenWorkspaceAction_errorMessage = Unable to relaunch the platform because the {0} property has not been set.
-NewProjectAction_text = P&roject...
-NewProjectAction_toolTip = New Project
-NewExampleAction_text = E&xample...
-NewExampleAction_toolTip = New Example
-SaveAsDialog_title = Save As
-SaveAsDialog_message = Save file to another location.
-SaveAsDialog_text = Save As
-SaveAsDialog_fileLabel = &File name:
-SaveAsDialog_file = file
-SaveAsDialog_overwriteQuestion = The file ''{0}'' already exists. Do you want to replace the existing file?
-Workbench_projectProperties = &Properties
-Workbench_projectPropertiesToolTip = Properties
-
-
-# --- Edit Menu ---
-Workbench_edit = &Edit
-Workbench_addBookmark = Add Bookmar&k...
-Workbench_addBookmarkToolTip = Add Bookmark
-Workbench_addTask = Add Ta&sk...
-Workbench_addTaskToolTip = Add Task
-
-
-# --- Navigate Menu ---
-Workbench_navigate = &Navigate
-Workbench_goTo = &Go To
-
-Workbench_showIn = Sho&w In
-
-# --- Project Menu ---
-Workbench_project = &Project
-
-Workbench_buildProject = &Build Project
-Workbench_buildProjectToolTip = Build Project
-Workbench_rebuildProject = &Rebuild Project
-Workbench_rebuildProjectToolTip = Rebuild Project
-Workbench_buildClean = Clea&n...
-Workbench_buildSet = Build &Working Set
-Workbench_buildAutomatically = Build Auto&matically
-
-GlobalBuildAction_text = Build &All
-GlobalBuildAction_toolTip = Build All
-GlobalBuildAction_rebuildText = Rebuild A&ll
-GlobalBuildAction_rebuildToolTip = Rebuild All
-GlobalBuildAction_buildProblems = Build problems
-GlobalBuildAction_internalError = Internal error: {0}
-GlobalBuildAction_buildOperationTitle = Building all...
-GlobalBuildAction_rebuildAllOperationTitle = Rebuilding all...
-GlobalBuildAction_jobTitle = Building Workspace
-GlobalBuildAction_BuildRunningTitle=Build Is Running
-GlobalBuildAction_BuildRunningMessage=A build is currently running. Do you wish to cancel it?
-BuildSetAction_noProjects=The selected working set does not contain projects that can be built.
-BuildSetAction_noBuildTitle=Nothing to build
-
-
-# --- Window Menu ---
-Workbench_window = &Window
-Workbench_openPerspective = &Open Perspective
-Workbench_showView = Show &View
-
-PromptOnExitDialog_shellTitle = Confirm Exit
-PromptOnExitDialog_message0 = Exit application?
-PromptOnExitDialog_message1 = Exit {0}?
-PromptOnExitDialog_choice = &Always exit without prompt
-
-Workbench_shortcuts = Navi&gation
-Workbench_openNewWindow = &New Window
-
-
-# --- Help Menu ---
-Workbench_help = &Help
-QuickStart_text = &Welcome...
-QuickStart_toolTip = Open a Welcome Editor
-QuickStartMessageDialog_title = Welcome
-QuickStartMessageDialog_message = No features with quick start information are available
-WelcomePageSelectionDialog_title = Welcome
-WelcomePageSelectionDialog_message = &Show welcome page for:
-TipsAndTricks_text = &Tips and Tricks...
-TipsAndTricks_toolTip =Tips and Tricks
-TipsAndTricksMessageDialog_title = Tips and Tricks
-TipsAndTricksMessageDialog_message = No features with tips and tricks information are available
-TipsAndTricksPageSelectionDialog_title = Tips and Tricks
-TipsAndTricksPageSelectionDialog_message = &Show tips and tricks page for:
-TipsAndTricksErrorDialog_title = Problem
-TipsAndTricksErrorDialog_noHref = No tips and tricks information available
-TipsAndTricksErrorDialog_noFeatures = No features with tips and tricks information available
-
-# ==============================================================================
-# Navigator Actions
-# ==============================================================================
-OpenWithMenu_dialogTitle = Problems Opening Editor
-
-CopyProjectAction_title = &Copy
-CopyProjectAction_confirm=Confirm Copy
-CopyProjectAction_warning=Copying project {0} may have undesirable side effects.
-CopyProjectAction_toolTip = Copy Project
-CopyProjectAction_progressTitle = Copying
-CopyProjectAction_copyTitle = Copy Project
-CopyProjectAction_copyNameOneArg = Copy of {0}
-CopyProjectAction_copyNameTwoArgs = Copy ({0}) of {1}
-CopyProjectAction_alreadyExists = Project ''{0}'' already exists.
-CopyProjectAction_copyFailedTitle = Copy Problems
-CopyProjectAction_internalError = Internal error: {0}
-
-CopyResourceAction_title = &Copy
-CopyResourceAction_toolTip = Copy Resource
-CopyResourceAction_selectDestination = Select the &destination:
-
-MoveProjectAction_text = Mo&ve...
-MoveProjectAction_toolTip = Move Project
-MoveProjectAction_moveTitle = Move Project
-MoveProjectAction_progressMessage = Moving
-MoveProjectAction_dialogTitle = Move Problems
-MoveProjectAction_internalError = Internal error: {0}
-
-MoveResourceAction_text = Mo&ve...
-MoveResourceAction_toolTip = Move Resource
-MoveResourceAction_title = Check Move
-MoveResourceAction_checkMoveMessage = ''{0}'' is read only. Do you still wish to move it?
-
-ReadOnlyCheck_problems = Read Only Checking Problems
-
-RenameResourceAction_text = Rena&me
-RenameResourceAction_confirm=Confirm Rename
-RenameResourceAction_warning=Renaming {0} may have undesirable side effects.
-RenameResourceAction_toolTip = Rename Resource
-RenameResourceAction_inputDialogTitle = Rename Resource
-RenameResourceAction_inputDialogMessage = Enter the new resource name:
-RenameResourceAction_checkTitle = Check Rename
-RenameResourceAction_readOnlyCheck = ''{0}'' is read only. Do you still wish to rename it?
-RenameResourceAction_resourceExists = Resource Exists
-RenameResourceAction_nameExists = A resource with that name already exists
-RenameResourceAction_overwriteQuestion = ''{0}'' exists. Do you wish to overwrite?
-RenameResourceAction_progressMessage = Renaming...
-RenameResourceAction_problemTitle = Rename Problems
-RenameResourceAction_progress = Renaming:
-RenameResourceAction_nameMustBeDifferent = You must use a different name
-RenameResourceAction_problemMessage = Problems occurred renaming the selected resource.
-
-DeleteResourceAction_text = &Delete
-DeleteResourceAction_confirm=Confirm Delete
-DeleteResourceAction_warning=Deleting these resources may have undesirable side effects.
-DeleteResourceAction_toolTip = Delete
-DeleteResourceAction_title1 = Confirm Resource Delete
-DeleteResourceAction_titleN = Confirm Multiple Resource Delete
-DeleteResourceAction_confirm1 = Are you sure you want to delete ''{0}'' from the file system?
-DeleteResourceAction_confirmN = Are you sure you want to delete these {0} resources from the file system?
-DeleteResourceAction_titleProject1 = Confirm Project Delete
-DeleteResourceAction_titleProjectN = Confirm Multiple Project Delete
-DeleteResourceAction_confirmProject1 = Are you sure you want to delete project ''{0}''?
-DeleteResourceAction_confirmProjectN = Are you sure you want to delete these {0} projects?
-DeleteResourceAction_deleteContents1 = &Also delete contents under ''{0}''
-DeleteResourceAction_deleteContentsN = &Also delete contents in the file system
-DeleteResourceAction_doNotDeleteContents = &Do not delete contents
-DeleteResourceAction_confirmLinkedResource1 = Are you sure you want to delete linked resource ''{0}''?\nOnly the workspace link will be deleted. Link target will remain unchanged.
-DeleteResourceAction_confirmLinkedResourceN = Are you sure you want to delete these {0} resources?\n\nSelection contains linked resources.\nOnly the workspace links will be deleted. Link targets will remain unchanged.
-DeleteResourceAction_readOnlyQuestion = ''{0}'' is read only. Do you still wish to delete it?
-DeleteResourceAction_messageTitle = Problems deleting
-DeleteResourceAction_outOfSyncError = Resource is out of sync with the file system. Refresh and try again.
-DeleteResourceAction_outOfSyncQuestion = Resource ''{0}'' is out of sync with the file system. Do you want to delete it anyway?
-DeleteResourceAction_deletionExceptionMessage=Multiple problems occurred while deleting resources.
-DeleteResourceAction_checkJobName = Checking resources
-DeleteResourceAction_jobName = Deleting resources
-
-AddBookmarkLabel = Add Boo&kmark...
-AddBookmarkToolTip = Add Bookmark
-AddBookmarkDialog_title = Add Bookmark
-AddBookmarkDialog_message = Enter bookmark name:
-
-AddTaskLabel = Add &Task
-AddTaskToolTip = Add Task
-
-OpenFileAction_text = Op&en
-OpenFileAction_toolTip = Edit File
-OpenFileAction_openFileShellTitle = Problems Opening Editor
-
-OpenResourceAction_text = Op&en Project
-OpenResourceAction_toolTip = Open Project
-OpenResourceAction_dialogTitle = Open Problems
-OpenResourceAction_problemMessage = Problems occurred opening the selected resources.
-OpenResourceAction_operationMessage = Opening project...
-OpenResourceAction_openRequiredProjects =  Should referenced projects also be opened?
-
-CloseResourceAction_text = Clo&se Project
-CloseResourceAction_warningForOne=Closing project {0} may have undesirable side effects.
-CloseResourceAction_warningForMultiple=Closing these projects may have undesirable side effects.
-CloseResourceAction_confirm=Confirm Close
-CloseResourceAction_toolTip = Close Project
-CloseResourceAction_title = Close Problems
-CloseResourceAction_problemMessage = Problems occurred closing the selected resources.
-CloseResourceAction_operationMessage = Closing project...
-
-CloseUnrelatedProjectsAction_text = Close &Unrelated Projects
-CloseUnrelatedProjectsAction_toolTip = Close Unrelated Projects
-
-BuildAction_text = &Build Project
-BuildAction_toolTip = Incremental Build of Selected Projects
-BuildAction_problemMessage = Problems occurred building the selected resources.
-BuildAction_problemTitle = Build Problems
-BuildAction_operationMessage = Building project...
-
-RebuildAction_text = Rebuild Pro&ject
-RebuildAction_tooltip = Full Build Of Selected Projects
-
-RefreshAction_text = Re&fresh
-RefreshAction_toolTip = Refresh
-RefreshAction_progressMessage = Refreshing...
-RefreshAction_problemTitle = Refresh Problems
-RefreshAction_problemMessage = Problems occurred refreshing the selected resources.
-RefreshAction_locationDeletedMessage = The location for project ''{0}'' ({1}) has been deleted.\n Delete ''{0}'' from the workspace?
-RefreshAction_dialogTitle = Project location has been deleted
-
-SelectWorkingSetAction_text= Select &Working Set...
-
-# --- Operations ---
-CopyProjectOperation_progressTitle = Copying:
-CopyProjectOperation_copyFailedMessage = Problems occurred copying the project.
-CopyProjectOperation_copyFailedTitle = Copy Problems
-CopyProjectOperation_internalError = Internal error: {0}
-CopyProjectOperation_copyProject = Copy Project
-
-CopyFilesAndFoldersOperation_copyFailedTitle = Copy Problems
-CopyFilesAndFoldersOperation_problemMessage = Problems occurred copying the selected resources.
-CopyFilesAndFoldersOperation_operationTitle = Copying...
-CopyFilesAndFoldersOperation_nameCollision = A resource name collision was detected.
-CopyFilesAndFoldersOperation_internalError = Internal error: {0}
-CopyFilesAndFoldersOperation_resourceExists = Resource Exists
-CopyFilesAndFoldersOperation_overwriteQuestion = {0} exists. Do you wish to overwrite?
-CopyFilesAndFoldersOperation_overwriteWithDetailsQuestion = Resource exists. Do you wish to overwrite?\n\nOverwrite: {0}\nLast modified: {1}\n\nwith: {2}\nLast modified: {3}
-CopyFilesAndFoldersOperation_overwriteMergeQuestion = ''{0}'' exists. Do you wish to overwrite?\nFolder contents will be merged, existing files will be overwritten.
-CopyFilesAndFoldersOperation_overwriteNoMergeLinkQuestion = ''{0}'' exists and is a linked folder. Do you wish to delete the linked folder and replace with the unlinked folder?\nFolder contents will not be merged!
-CopyFilesAndFoldersOperation_overwriteNoMergeNoLinkQuestion = ''{0}'' exists and is not a linked folder. Do you wish to delete the folder and replace with the linked folder?\nFolder contents will not be merged!
-CopyFilesAndFoldersOperation_deepCopyQuestion = Do you wish to perform a deep copy of linked resource ''{0}''?
-CopyFilesAndFoldersOperation_deepMoveQuestion = Do you wish to perform a deep move of linked resource ''{0}''?
-CopyFilesAndFoldersOperation_copyNameTwoArgs = Copy ({0}) of {1}
-CopyFilesAndFoldersOperation_copyNameOneArg = Copy of {0}
-CopyFilesAndFoldersOperation_destinationAccessError = Destination folder must be accessible.
-CopyFilesAndFoldersOperation_destinationDescendentError = Destination cannot be a descendent of the source.
-CopyFilesAndFoldersOperation_overwriteProblem = The folder ''{0}'' already exists and cannot be overwritten since it contains ''{1}''.
-CopyFilesAndFoldersOperation_question = Question
-CopyFilesAndFoldersOperation_confirmMove=Confirm Move
-CopyFilesAndFoldersOperation_warningMove=Moving these resources may have undesirable side effects.
-CopyFilesAndFoldersOperation_confirmCopy=Confirm Copy
-CopyFilesAndFoldersOperation_warningCopy=Copying these resources may have undesirable side effects.
-CopyFilesAndFoldersOperation_inputDialogTitle = Name Conflict
-CopyFilesAndFoldersOperation_inputDialogMessage = Enter a new name for ''{0}''
-CopyFilesAndFoldersOperation_nameExists = A resource with that name already exists
-CopyFilesAndFoldersOperation_nameMustBeDifferent = You must use a different name
-CopyFilesAndFoldersOperation_sameSourceAndDest = Cannot copy ''{0}''. The source and destination are the same.
-CopyFilesAndFoldersOperation_importSameSourceAndDest = Cannot import ''{0}''. The source and destination are the same.
-CopyFilesAndFoldersOperation_resourceDeleted = The resource ''{0}'' does not exist on the file system.
-CopyFilesAndFoldersOperation_missingPathVariable = The resource ''{0}'' is linked using a missing path variable.
-CopyFilesAndFoldersOperation_missingLinkTarget = The link target for linked resource ''{0}'' does not exist.
-CopyFilesAndFoldersOperation_CopyResourcesTask=Copying Resources
-CopyFilesAndFoldersOperation_parentNotEqual = The resources must have the same parent.
-CopyFilesAndFoldersOperation_infoNotFound = Information for {0} could not be read. Please check the .log file for details.
-
-MoveFilesAndFoldersOperation_sameSourceAndDest = Cannot move ''{0}''. The source and destination are the same.
-MoveFilesAndFoldersOperation_moveFailedTitle = Move Problems
-MoveFilesAndFoldersOperation_problemMessage = Problems occurred moving the selected resources.
-MoveFilesAndFoldersOperation_operationTitle = Moving...
-
-# ==============================================================================
-# Wizards
-# ==============================================================================
-
-WizardDataTransfer_existsQuestion = ''{0}'' already exists.  Would you like to overwrite it?
-WizardDataTransfer_overwriteNameAndPathQuestion = Overwrite ''{0}'' in folder ''{1}''?
-WizardDataTransfer_exceptionMessage =  Error occurred during operation: {0}
-WizardTransferPage_selectTypes = Select &Types...
-WizardTransferPage_selectAll = &Select All
-WizardTransferPage_deselectAll = &Deselect All
-
-
-
-
-
-
-
-# --- Import ---
-WizardImportPage_specifyProject = Specify a project
-WizardImportPage_specifyFolder = Please specify folder
-WizardImportPage_folderMustExist = Folder must be accessible.
-WizardImportPage_errorDialogTitle = Import Problems
-WizardImportPage_folder = Into fo&lder:
-WizardImportPage_browseLabel = Browse...
-WizardImportPage_browse2 = Bro&wse...
-WizardImportPage_selectFolderLabel = Select a folder to import into.
-WizardImportPage_selectFolderTitle = Import into Folder
-WizardImportPage_destinationLabel = Select the destination for imported resources:
-WizardImportPage_options = Options
-WizardImportPage_projectNotExist = Destination project does not exist.
-WizardImportPage_importOnReceiver = Source is in the hierarchy of the destination.
-WizardImportPage_noOpenProjects = Cannot import into a workspace with no open projects. Please create a project before importing.
-WizardImportPage_undefinedPathVariable = Destination folder location is based on an undefined path variable.
-WizardImportPage_containerNotExist = Destination folder does not exist.
-
-# --- Export ---
-WizardExportPage_errorDialogTitle = Export Problems
-WizardExportPage_mustExistMessage = Resource must exist.
-WizardExportPage_mustBeAccessibleMessage = Resource must be accessible.
-WizardExportPage_detailsMessage = All file resources matching this criterion
-WizardExportPage_whatLabel = Select the resources to &export:
-WizardExportPage_whereLabel = Select the export destination:
-WizardExportPage_options = Options
-WizardExportPage_selectionDialogMessage = Select the resource types to export.
-WizardExportPage_resourceTypeDialog = Resource Type Selection
-WizardExportPage_folder = Fo&lder:
-WizardExportPage_browse = Browse...
-WizardExportPage_allTypes = All types
-WizardExportPage_specificTypes = Specific types:
-WizardExportPage_edit = Edit...
-WizardExportPage_details = Details...
-WizardExportPage_selectResourcesTitle = Select the resources to export.
-WizardExportPage_oneResourceSelected = 1 resource selected
-WizardExportPage_selectResourcesToExport = Select the resource to export.
-WizardExportPage_internalErrorTitle = Internal error
-WizardExportPage_resourceCountMessage = {0} resources selected
-
-
-# --- New Example ---
-NewExample_title = New Example
-
-# --- New Project ---
-WizardNewProjectCreationPage_projectNameEmpty = Project name must be specified
-WizardNewProjectCreationPage_projectLocationEmpty = Project contents directory must be specified
-WizardNewProjectCreationPage_projectExistsMessage = A project with that name already exists in the workspace.
-WizardNewProjectCreationPage_nameLabel = &Project name:
-WizardNewProjectReferences_title = &Referenced projects:
-
-# --- New Folder ---
-WizardNewFolderMainPage_folderName = Folder &name:
-WizardNewFolderMainPage_folderLabel = folder
-WizardNewFolderMainPage_description = Create a new folder resource.
-WizardNewFolderCreationPage_progress = Creating
-WizardNewFolderCreationPage_errorTitle = Creation Problems
-WizardNewFolderCreationPage_internalErrorTitle = Creation problems
-WizardNewFolder_internalError = Internal error: {0}
-
-# --- New File ---
-WizardNewFileCreationPage_progress = Creating
-WizardNewFileCreationPage_errorTitle = Creation Problems
-WizardNewFileCreationPage_fileLabel = File na&me:
-WizardNewFileCreationPage_file = file
-WizardNewFileCreationPage_internalErrorTitle = Creation problems
-WizardNewFileCreationPage_internalErrorMessage = Internal error: {0}
-
-# --- Linked Resource ---
-WizardNewLinkPage_linkFileButton = &Link to file on the file system
-WizardNewLinkPage_linkFolderButton = &Link to folder on the file system
-WizardNewLinkPage_browseButton = &Browse...
-WizardNewLinkPage_variablesButton = &Variables...
-WizardNewLinkPage_targetSelectionLabel = Select the link target.
-WizardNewLinkPage_linkTargetEmpty = Link target must be specified
-WizardNewLinkPage_linkTargetInvalid = Link target name is invalid
-WizardNewLinkPage_linkTargetLocationInvalid = Link target location is invalid
-WizardNewLinkPage_linkTargetNonExistent = Link target does not exist
-WizardNewLinkPage_linkTargetNotFile = Link target must be a file
-WizardNewLinkPage_linkTargetNotFolder = Link target must be a folder
-
-# ==============================================================================
-# Preference Pages
-# ==============================================================================
-Preference_note = Note:
-
-# --- Workbench ---
-WorkbenchPreference_encoding = &Text file encoding
-WorkbenchPreference_defaultEncoding = &Default ({0})
-WorkbenchPreference_otherEncoding = &Other:
-WorkbenchPreference_unsupportedEncoding = The selected encoding is not supported.
-
-WorkbenchPreference_encoding_encodingMessage = Byte Order Mark is {0}
-
-# ---Workspace
-IDEWorkspacePreference_autobuild = &Build automatically
-IDEWorkspacePreference_autobuildToolTip = Build automatically on resource modification
-IDEWorkspacePreference_savePriorToBuilding= Save auto&matically before build
-IDEWorkspacePreference_savePriorToBuildingToolTip= Save modified resources automatically before manual build
-IDEWorkspacePreference_RefreshButtonText=&Refresh automatically
-IDEWorkspacePreference_RefreshButtonToolTip=Automatically refresh external workspace changes
-IDEWorkspacePreference_fileLineDelimiter=New text &file line delimiter
-IDEWorkspacePreference_defaultLineDelim=D&efault
-IDEWorkspacePreference_defaultLineDelimProj=Inh&erited from container
-IDEWorkspacePreference_otherLineDelim= Ot&her:
-IDEWorkspacePreference_relatedLink = See <a>''{0}''</a> for workspace startup and shutdown preferences.
-IDEWorkspacePreference_openReferencedProjects = Open referenced projects when a project is opened
-
-# --- Linked Resources ---
-LinkedResourcesPreference_explanation = Path variables specify locations in the file system. The locations of linked resources\nmay be specified relative to these path variables.
-LinkedResourcesPreference_enableLinkedResources = &Enable linked resources
-LinkedResourcesPreference_linkedResourcesWarningTitle = Enabled Linked Resources
-LinkedResourcesPreference_linkedResourcesWarningMessage = You have enabled a feature which may give rise to incompatibilities if projects are shared by users of different versions of the workbench.  Please consult the documentation for further details.
-
-# The following six keys are marked as unused by the NLS search, but they are indirectly used
-# and should be removed.
-PathVariableDialog_shellTitle_newVariable = New Variable
-PathVariableDialog_shellTitle_existingVariable = Edit Variable
-PathVariableDialog_dialogTitle_newVariable = Define a New Path Variable
-PathVariableDialog_dialogTitle_existingVariable = Edit an Existing Path Variable
-PathVariableDialog_message_newVariable = Enter a new variable name and its associated location.
-PathVariableDialog_message_existingVariable = Edit variable's name and path value.
-
-PathVariableDialog_variableName = &Name:
-PathVariableDialog_variableValue = &Location:
-PathVariableDialog_variableNameEmptyMessage = You must provide a variable name.
-PathVariableDialog_variableValueEmptyMessage = You must provide a file or folder path as variable value.
-PathVariableDialog_variableValueInvalidMessage = The provided value is not a valid path.
-PathVariableDialog_file = &File...
-PathVariableDialog_folder = F&older...
-PathVariableDialog_selectFileTitle = File selection
-PathVariableDialog_selectFolderTitle = Folder selection
-PathVariableDialog_selectFolderMessage = Specify the folder to be represented by the variable.
-PathVariableDialog_variableAlreadyExistsMessage = This variable name is already in use.
-PathVariableDialog_pathIsRelativeMessage = Path must be absolute.
-PathVariableDialog_pathDoesNotExistMessage = Path does not exist.
-
-# --- Local History ---
-FileHistory_longevity = Days to &keep files:
-FileHistory_entries = Maximum &entries per file:
-FileHistory_diskSpace = &Maximum file size (MB):
-FileHistory_mustBePositive = Values must be positive
-FileHistory_invalid = Invalid value: {0}
-FileHistory_exceptionSaving = Internal error saving local history
-FileHistory_aboveMaxEntries = Above maximum Entries per file: {0}
-FileHistory_aboveMaxFileSize = Above maximum file size value: {0}
-FileHistory_restartNote = The 'Maximum entries per file' and 'Days to keep files'\nvalues are only applied on restart.
-
-# --- Perspectives ---
-ProjectSwitchPerspectiveMode_optionsTitle = Open the associated perspective when creating a new project
-ProjectSwitchPerspectiveMode_always = Alwa&ys open
-ProjectSwitchPerspectiveMode_never = Ne&ver open
-ProjectSwitchPerspectiveMode_prompt = Promp&t
-
-# --- Build Order ---
-BuildOrderPreference_up = &Up
-BuildOrderPreference_down = Dow&n
-BuildOrderPreference_add = Add &Project...
-BuildOrderPreference_remove = &Remove Project
-BuildOrderPreference_selectOtherProjects = Select &projects to add to build path:
-BuildOrderPreference_useDefaults = Use d&efault build order
-BuildOrderPreference_projectBuildOrder = Project build &order:
-BuildOrderPreference_removeNote = A project removed from the list is still built but after those specified in the list.
-BuildOrderPreference_maxIterationsLabel=&Max iterations when building with cycles:
-
-# --- Startup preferences ---
-StartupPreferencePage_refreshButton = &Refresh workspace on startup
-StartupPreferencePage_launchPromptButton = Prompt for &workspace on startup
-StartupPreferencePage_exitPromptButton = &Confirm exit when closing last window
-
-# --- Info ---
-ResourceInfo_readOnly = &Read only
-ResourceInfo_executable = E&xecutable
-ResourceInfo_archive = Ar&chive
-ResourceInfo_derived = Deri&ved
-ResourceInfo_type = &Type:
-ResourceInfo_location = &Location:
-ResourceInfo_resolvedLocation = Resolved location:
-ResourceInfo_size = &Size:
-ResourceInfo_bytes = {0}  bytes
-ResourceInfo_file = File
-ResourceInfo_fileTypeFormat = File  ({0})
-ResourceInfoPage_noResource=Resource information is not available for the current selection.
-ResourceInfo_folder = Folder
-ResourceInfo_project = Project
-ResourceInfo_linkedFile = Linked File
-ResourceInfo_linkedFolder = Linked Folder
-ResourceInfo_unknown = Unknown
-ResourceInfo_notLocal = <file contents not local>
-ResourceInfo_undefinedPathVariable = <undefined path variable>
-ResourceInfo_notExist = <resource does not exist>
-ResourceInfo_fileNotExist = {0} - (does not exist)
-ResourceInfo_path = &Path:
-ResourceInfo_lastModified = Last &modified:
-ResourceInfo_fileEncodingTitle = Default encoding for &text files
-ResourceInfo_fileContentEncodingFormat = &Default (determined from content: {0})
-ResourceInfo_fileContainerEncodingFormat = Default (&inherited from container: {0})
-ResourceInfo_containerEncodingFormat = &Inherited from container ({0})
-ResourceInfo_exWarning= Removing the executable flag on a directory will cause its children to become unreadable.
-
-# --- Project References ---
-ProjectReferencesPage_label = Projects may refer to other projects in the workspace.\nUse this page to specify what other projects are referenced by the project.\n\n&Project references for {0}:
-
-# ==============================================================================
-# Editors
-# ==============================================================================
-DefaultEditorDescription_name = &Default Editor
-
-WelcomeEditor_accessException = An exception occurred when trying to access the welcome page
-WelcomeEditor_readFileError = Error in WelcomeEditor.readFile
-WelcomeEditor_title = Welcome
-WelcomeEditor_toolTip = Welcome to {0}
-WelcomeEditor_copy_text=&Copy
-
-WelcomeItem_unableToLoadClass = Unable to load class
-WelcomeParser_parseError = Error in WelcomeParser.parse
-WelcomeParser_parseException = An exception occurred when parsing the welcome page
-Workbench_openEditorErrorDialogTitle = Problem
-Workbench_openEditorErrorDialogMessage = Unable to open editor
-QuickStartAction_openEditorException = An exception occurred when opening the editor
-
-# ==============================================================================
-# Dialogs
-# ==============================================================================
-Question = Question
-Always = &Always
-Never = &Never
-Prompt = &Prompt
-
-ContainerSelectionDialog_title = Folder Selection
-ContainerSelectionDialog_message = Enter or select the parent folder:
-
-ContainerGroup_message = &Enter or select the parent folder:
-ContainerGroup_selectFolder = Select the folder:
-
-ContainerGenerator_progressMessage = Generate Folder
-ContainerGenerator_pathOccupied = Cannot create folder because a file exists at that location: {0}
-
-ResourceGroup_resource = resource
-ResourceGroup_nameExists = The same name already exists.
-ResourceGroup_folderEmpty = No folder specified.
-ResourceGroup_noProject = The specified project does not exist.
-ResourceGroup_emptyName = The ''{0}'' name is empty.
-ResourceGroup_invalidFilename = ''{0}'' is not a valid file name.
-ResourceGroup_pathOccupied = A file already exists at that location: {0}
-
-FileSelectionDialog_title = File Selection
-FileSelectionDialog_message = Select the files:
-
-ProjectLocationSelectionDialog_nameLabel = &Project name:
-ProjectLocationSelectionDialog_locationLabel = &Location:
-ProjectLocationSelectionDialog_browseLabel = &Browse...
-ProjectLocationSelectionDialog_directoryLabel = Select the location directory.
-ProjectLocationSelectionDialog_locationError = Invalid location path
-ProjectLocationSelectionDialog_selectionTitle = Project
-ProjectLocationSelectionDialog_useDefaultLabel = Use &default location
-
-
-ResourceSelectionDialog_title = Resource Selection
-ResourceSelectionDialog_message = Select the resources:
-
-MarkerResolutionSelectionDialog_title = Quick Fix
-MarkerResolutionSelectionDialog_messageLabel = &Available fixes:
-
-ResourceSearchDialog_showDerivedResourcesAction=Show &derived resources
-
-ResourceSelectionDialog_label = Select a resource to open (? = any character, * = any string):
-ResourceSelectionDialog_matching = &Matching resources:
-ResourceSelectionDialog_folders = In &folders:
-ResourceSelectionDialog_showDerived=Show &derived resources
-
-OpenResourceDialog_title = Open Resource
-
-NewFolderDialog_title = New Folder
-NewFolderDialog_nameLabel = &Folder name:
-NewFolderDialog_alreadyExists = The folder ''{0}'' already exists.
-NewFolderDialog_folderNameEmpty = Folder name must be specified
-NewFolderDialog_progress = Creating new folder
-NewFolderDialog_errorTitle = Creation Problems
-NewFolderDialog_internalError = Internal error: {0}
-
-CreateLinkedResourceGroup_linkFileButton = &Link to file in the file system
-CreateLinkedResourceGroup_linkFolderButton = &Link to folder in the file system
-CreateLinkedResourceGroup_browseButton = Bro&wse...
-CreateLinkedResourceGroup_variablesButton = &Variables...
-CreateLinkedResourceGroup_resolvedPathLabel = Resolved location:
-CreateLinkedResourceGroup_targetSelectionLabel = Select the link target.
-CreateLinkedResourceGroup_linkTargetNotFile = Link target must be a file.
-CreateLinkedResourceGroup_linkTargetNotFolder = Link target must be a folder.
-CreateLinkedResourceGroup_linkTargetNonExistent = Link target does not exist.
-CreateLinkedResourceGroup_unableToValidateLinkTarget = Unable to validate link target.
-
-PathVariablesBlock_variablesLabel = &Defined path variables:
-PathVariablesBlock_addVariableButton = &New...
-PathVariablesBlock_editVariableButton = Edi&t...
-PathVariablesBlock_removeVariableButton = &Remove
-
-PathVariableSelectionDialog_title = Select Path Variable
-PathVariableSelectionDialog_extendButton = &Extend...
-PathVariableSelectionDialog_ExtensionDialog_title = Variable Extension
-PathVariableSelectionDialog_ExtensionDialog_description = Choose extension to {0}
-
-# ==============================================================================
-# Editor Framework
-# ==============================================================================
-EditorManager_saveResourcesMessage = Select the &resources to save:
-EditorManager_saveResourcesTitle = Save Resources
-
-OpenSystemEditorAction_dialogTitle = Problems Opening System Editor
-OpenSystemEditorAction_text = &System Editor
-OpenSystemEditorAction_toolTip = Edit File with System Editor
-
-# ==============================================================================
-# Workspace
-# ==============================================================================
-WorkspaceAction_problemsTitle = Problems
-WorkspaceAction_logTitle = Exception in {0}. run: {1}
-WorkbenchAction_problemsMessage = The following problems occurred.
-WorkbenchAction_internalError = Internal error.
-Workspace = Workspace
-
-
-# ==============================================================================
-# Workbench
-# ==============================================================================
-WorkbenchWindow_shellTitle = {0} - {1}
-
-Internal_error = Internal error
-InternalError = Internal Error
-InternalErrorNoArg = An internal error has occurred.\nSee the .log file for more details.\n\nDo you want to exit the workbench?
-InternalErrorOneArg = An internal error has occurred.\n{0}\nSee the .log file for more details.\n\nDo you want to exit the workbench?
-
-FatalError_RecursiveError = An internal error occurred while showing an internal error.
-FatalError_OutOfMemoryError = An out of memory error has occurred. Consult the "Running Eclipse" section of the read me file for information on preventing this kind of error in the future.
-FatalError_StackOverflowError = A stack overflow error has occurred.
-FatalError_VirtualMachineError = A virtual machine error has occurred.
-FatalError_SWTError = An SWT error has occurred.
-FatalError = {0}\nYou are recommended to exit the workbench.\nSubsequent errors may happen and may terminate the workbench without warning.\nSee the .log file for more details.\n\nDo you want to exit the workbench?
-
-ProblemSavingWorkbench = Problems occurred while trying to save the state of the workbench.
-ProblemsSavingWorkspace = Problems saving workspace
-
-Problems_Opening_Page = Problems Opening Page
-
-Workspace_refreshing = Refreshing workspace
-
-
-# ==============================================================================
-# Keys with references but don't show in the UI
-# ==============================================================================
-CreateFileAction_text = New &File
-CreateFileAction_toolTip = Create New File
-CreateFileAction_title = New
-
-CreateFolderAction_text = New F&older
-CreateFolderAction_toolTip = Create New Folder
-CreateFolderAction_title = New
-
-ScrubLocalAction_problemsMessage = Problems occurred removing the local contents of the selected resources.
-ScrubLocalAction_text = Discard &Local Copy
-ScrubLocalAction_toolTip = Discard Local Contents
-ScrubLocalAction_problemsTitle = Content Removal Problems
-ScrubLocalAction_progress = Discarding content...
-
-TextAction_selectAll = Select All
-Cut = Cut
-Copy = Copy
-Paste = Paste
-Delete = Delete
-
-# ==============================================================================
-# Keys used in the reuse editor which is released as experimental.
-# ==============================================================================
-WorkbenchPreference_saveInterval=&Workspace save interval (in minutes):
-WorkbenchPreference_saveIntervalError=The workspace save interval should be between 1 and {0}.
-
-# ==============================================================================
-# Working Set Framework.
-# ==============================================================================
-ResourceWorkingSetPage_title=Resource Working Set
-ResourceWorkingSetPage_description=Enter a working set name and select the working set resources.
-ResourceWorkingSetPage_message=&Working set name:
-ResourceWorkingSetPage_label_tree=Working set &contents:
-ResourceWorkingSetPage_warning_nameMustNotBeEmpty= The name must not be empty.
-ResourceWorkingSetPage_warning_nameWhitespace= The name must not have a leading or trailing whitespace.
-ResourceWorkingSetPage_warning_workingSetExists= A working set with the same name already exists.
-ResourceWorkingSetPage_warning_resourceMustBeChecked= No resources selected.
-ResourceWorkingSetPage_error= Error
-ResourceWorkingSetPage_error_updateCheckedState= Error during update of checked state
-ResourceWorkingSetPage_selectAll_label=Select &All
-ResourceWorkingSetPage_selectAll_toolTip=Select all of theses resource for this working set.
-ResourceWorkingSetPage_deselectAll_label=Dese&lect All
-ResourceWorkingSetPage_deselectAll_toolTip=Deselect all of these resources for this working set.
-
-ResourceEncodingFieldEditor_ErrorLoadingMessage=Error loading encoding
-ResourceEncodingFieldEditor_ErrorStoringMessage=Error storing encoding
-ResourceEncodingFieldEditor_EncodingConflictTitle=Conflict in Encoding
-ResourceEncodingFieldEditor_EncodingConflictMessage= {0} conflicts with the encoding defined in the content type ({1}). Do you wish to set it anyways?
-
-ChooseWorkspaceDialog_dialogName=Workspace Launcher
-ChooseWorkspaceDialog_dialogTitle=Select a workspace
-ChooseWorkspaceDialog_dialogMessage= \
-{0} stores your projects in a folder called a workspace.\n\
-Choose a workspace folder to use for this session.
-ChooseWorkspaceDialog_defaultProductName = This product
-ChooseWorkspaceDialog_workspaceEntryLabel=&Workspace:
-ChooseWorkspaceDialog_browseLabel=&Browse...
-ChooseWorkspaceDialog_directoryBrowserTitle=Select Workspace Directory
-ChooseWorkspaceDialog_directoryBrowserMessage=Select the workspace directory to use.
-ChooseWorkspaceDialog_useDefaultMessage=&Use this as the default and do not ask again
-IDEApplication_workspaceMandatoryTitle=Workspace is Mandatory
-IDEApplication_workspaceMandatoryMessage=IDEs need a valid workspace. Restart without the @none option.
-IDEApplication_workspaceInUseTitle=Workspace Unavailable
-IDEApplication_workspaceInUseMessage=Workspace in use or cannot be created, choose a different one.
-IDEApplication_workspaceEmptyTitle=Workspace Required
-IDEApplication_workspaceEmptyMessage=Workspace field must not be empty; enter a path to continue.
-IDEApplication_workspaceInvalidTitle=Invalid Workspace
-IDEApplication_workspaceInvalidMessage=Selected workspace is not valid; choose a different one.
-IDEApplication_workspaceCannotBeSetTitle=Workspace Cannot Be Created
-IDEApplication_workspaceCannotBeSetMessage=Could not launch the product because the specified workspace cannot be created.  The specified workspace directory is either invalid or read-only.
-IDEApplication_workspaceCannotLockTitle=Workspace Cannot Be Locked
-IDEApplication_workspaceCannotLockMessage=Could not launch the product because the associated workspace is currently in use by another Eclipse application.
-IDEApplication_versionTitle = Different Workspace Version
-IDEApplication_versionMessage = \
-This workspace was written with a different version of the product and needs to be updated.\n\n\
-{0}\n\n\
-Updating the workspace may make it incompatible with other versions of the product.\n\
-Press OK to update the workspace and open it.  Press Cancel to select a different workspace.
-
-CleanDialog_buildCleanAuto=Clean will discard all build problems and built states.  The projects will be rebuilt from scratch.
-CleanDialog_buildCleanManual=Clean will discard all build problems and built states.  The next time a build occurs the projects will be rebuilt from scratch.
-CleanDialog_title=Clean
-CleanDialog_cleanAllButton=Clean &all projects
-CleanDialog_cleanSelectedButton=Clean projects &selected below
-CleanDialog_buildNowButton=Start a &build immediately
-CleanDialog_taskName=Cleaning selected projects
-IDEEncoding_EncodingJob=Setting encoding
-IDEEditorsPreferencePage_WorkbenchPreference_FileEditorsRelatedLink=See <a>''{0}''</a> for associating editors with file types.
-IDEEditorsPreferencePage_WorkbenchPreference_viewsRelatedLink = See <a>''{0}''</a> for appearance preferences.
-IDEEditorsPreferencePage_WorkbenchPreference_contentTypesRelatedLink = See <a>''{0}''</a> for content-type based file associations.
-WorkbenchEncoding_invalidCharset = {0} is not a valid charset.
-IDE_areYouSure={0} Are you sure you want to continue?
-
-SystemSettingsChange_title = High Contrast Mode Change
-SystemSettingsChange_message = The high contrast mode has changed. You will need to restart the workbench to complete the change.  Restart now?
-SystemSettingsChange_yes = Yes
-SystemSettingsChange_no = No
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/CheckboxTreeAndListGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/CheckboxTreeAndListGroup.java
deleted file mode 100644
index 3c45a86..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/CheckboxTreeAndListGroup.java
+++ /dev/null
@@ -1,814 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.misc;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ITreeViewerListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeExpansionEvent;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- *	Workbench-level composite that combines a CheckboxTreeViewer and CheckboxListViewer.
- *	All viewer selection-driven interactions are handled within this object
- */
-public class CheckboxTreeAndListGroup extends EventManager implements
-		ICheckStateListener, ISelectionChangedListener, ITreeViewerListener {
-    private Object root;
-
-    private Object currentTreeSelection;
-
-    private List expandedTreeNodes = new ArrayList();
-
-    private Map checkedStateStore = new HashMap(9);
-
-    private List whiteCheckedTreeItems = new ArrayList();
-
-    private ITreeContentProvider treeContentProvider;
-
-    private IStructuredContentProvider listContentProvider;
-
-    private ILabelProvider treeLabelProvider;
-
-    private ILabelProvider listLabelProvider;
-
-    // widgets
-    private CheckboxTreeViewer treeViewer;
-
-    private CheckboxTableViewer listViewer;
-
-    /**
-     *  Create an instance of this class.  Use this constructor if you wish to specify
-     *	the width and/or height of the combined widget (to only hardcode one of the
-     *	sizing dimensions, specify the other dimension's value as -1)
-     * @param parent
-     * @param rootObject
-     * @param treeContentProvider
-     * @param treeLabelProvider
-     * @param listContentProvider
-     * @param listLabelProvider
-     * @param style
-     * @param width
-     * @param height
-     */
-    public CheckboxTreeAndListGroup(Composite parent, Object rootObject,
-            ITreeContentProvider treeContentProvider,
-            ILabelProvider treeLabelProvider,
-            IStructuredContentProvider listContentProvider,
-            ILabelProvider listLabelProvider, int style, int width, int height) {
-
-        root = rootObject;
-        this.treeContentProvider = treeContentProvider;
-        this.listContentProvider = listContentProvider;
-        this.treeLabelProvider = treeLabelProvider;
-        this.listLabelProvider = listLabelProvider;
-        createContents(parent, width, height, style);
-    }
-
-    /**
-     * This method must be called just before this window becomes visible.
-     */
-    public void aboutToOpen() {
-        determineWhiteCheckedDescendents(root);
-        checkNewTreeElements(treeContentProvider.getElements(root));
-        currentTreeSelection = null;
-
-        //select the first element in the list
-        Object[] elements = treeContentProvider.getElements(root);
-        Object primary = elements.length > 0 ? elements[0] : null;
-        if (primary != null) {
-            treeViewer.setSelection(new StructuredSelection(primary));
-        }
-        treeViewer.getControl().setFocus();
-    }
-
-    /**
-     *	Add the passed listener to self's collection of clients
-     *	that listen for changes to element checked states
-     *
-     *	@param listener ICheckStateListener
-     */
-    public void addCheckStateListener(ICheckStateListener listener) {
-        addListenerObject(listener);
-    }
-
-    /**
-     *	Add the receiver and all of it's ancestors to the checkedStateStore if they
-     * are not already there.
-     */
-    private void addToHierarchyToCheckedStore(Object treeElement) {
-
-        // if this tree element is already gray then its ancestors all are as well
-        if (!checkedStateStore.containsKey(treeElement)) {
-			checkedStateStore.put(treeElement, new ArrayList());
-		}
-
-        Object parent = treeContentProvider.getParent(treeElement);
-        if (parent != null) {
-			addToHierarchyToCheckedStore(parent);
-		}
-    }
-
-    /**
-     *	Return a boolean indicating whether all children of the passed tree element
-     *	are currently white-checked
-     *
-     *	@return boolean
-     *	@param treeElement java.lang.Object
-     */
-    protected boolean areAllChildrenWhiteChecked(Object treeElement) {
-        Object[] children = treeContentProvider.getChildren(treeElement);
-        for (int i = 0; i < children.length; ++i) {
-            if (!whiteCheckedTreeItems.contains(children[i])) {
-				return false;
-			}
-        }
-
-        return true;
-    }
-
-    /**
-     *	Return a boolean indicating whether all list elements associated with
-     *	the passed tree element are currently checked
-     *
-     *	@return boolean
-     *	@param treeElement java.lang.Object
-     */
-    protected boolean areAllElementsChecked(Object treeElement) {
-        List checkedElements = (List) checkedStateStore.get(treeElement);
-        if (checkedElements == null) {
-			return false;
-		}
-
-        return getListItemsSize(treeElement) == checkedElements.size();
-    }
-
-    /**
-     *	Iterate through the passed elements which are being realized for the first
-     *	time and check each one in the tree viewer as appropriate
-     */
-    protected void checkNewTreeElements(Object[] elements) {
-        for (int i = 0; i < elements.length; ++i) {
-            Object currentElement = elements[i];
-            boolean checked = checkedStateStore.containsKey(currentElement);
-            treeViewer.setChecked(currentElement, checked);
-            treeViewer.setGrayed(currentElement, checked
-                    && !whiteCheckedTreeItems.contains(currentElement));
-        }
-    }
-
-    /**
-     *	An item was checked in one of self's two views.  Determine which
-     *	view this occurred in and delegate appropriately
-     *
-     *	@param event CheckStateChangedEvent
-     */
-    public void checkStateChanged(final CheckStateChangedEvent event) {
-
-        //Potentially long operation - show a busy cursor
-        BusyIndicator.showWhile(treeViewer.getControl().getDisplay(),
-                new Runnable() {
-                    public void run() {
-                        if (event.getCheckable().equals(treeViewer)) {
-							treeItemChecked(event.getElement(), event
-                                    .getChecked());
-						} else {
-							listItemChecked(event.getElement(), event
-                                    .getChecked(), true);
-						}
-
-                        notifyCheckStateChangeListeners(event);
-                    }
-                });
-    }
-
-    /**
-     *	Lay out and initialize self's visual components.
-     *
-     *	@param parent org.eclipse.swt.widgets.Composite
-     *	@param width int
-     *	@param height int
-     */
-    protected void createContents(Composite parent, int width, int height,
-            int style) {
-        // group pane
-        Composite composite = new Composite(parent, style);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        layout.makeColumnsEqualWidth = true;
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        composite.setLayout(layout);
-        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-        composite.setFont(parent.getFont());
-
-        createTreeViewer(composite, width / 2, height);
-        createListViewer(composite, width / 2, height);
-
-        initialize();
-    }
-
-    /**
-     *	Create this group's list viewer.
-     */
-    protected void createListViewer(Composite parent, int width, int height) {
-        listViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        data.widthHint = width;
-        data.heightHint = height;
-        listViewer.getTable().setLayoutData(data);
-        listViewer.getTable().setFont(parent.getFont());
-        listViewer.setContentProvider(listContentProvider);
-        listViewer.setLabelProvider(listLabelProvider);
-        listViewer.addCheckStateListener(this);
-    }
-
-    /**
-     *	Create this group's tree viewer.
-     */
-    protected void createTreeViewer(Composite parent, int width, int height) {
-        Tree tree = new Tree(parent, SWT.CHECK | SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        data.widthHint = width;
-        data.heightHint = height;
-        tree.setLayoutData(data);
-        tree.setFont(parent.getFont());
-
-        treeViewer = new CheckboxTreeViewer(tree);
-        treeViewer.setContentProvider(treeContentProvider);
-        treeViewer.setLabelProvider(treeLabelProvider);
-        treeViewer.addTreeListener(this);
-        treeViewer.addCheckStateListener(this);
-        treeViewer.addSelectionChangedListener(this);
-    }
-
-    /**
-     * Returns a boolean indicating whether the passed tree element should be
-     * at LEAST gray-checked.  Note that this method does not consider whether
-     * it should be white-checked, so a specified tree item which should be
-     * white-checked will result in a <code>true</code> answer from this method.
-     * To determine whether a tree item should be white-checked use method
-     * #determineShouldBeWhiteChecked(Object).
-     *
-     * @param treeElement java.lang.Object
-     * @return boolean
-     * @see #determineShouldBeWhiteChecked(java.lang.Object)
-     */
-    protected boolean determineShouldBeAtLeastGrayChecked(Object treeElement) {
-        // if any list items associated with treeElement are checked then it
-        // retains its gray-checked status regardless of its children
-        List checked = (List) checkedStateStore.get(treeElement);
-        if (checked != null && (!checked.isEmpty())) {
-			return true;
-		}
-
-        // if any children of treeElement are still gray-checked then treeElement
-        // must remain gray-checked as well
-        Object[] children = treeContentProvider.getChildren(treeElement);
-        for (int i = 0; i < children.length; ++i) {
-            if (checkedStateStore.containsKey(children[i])) {
-				return true;
-			}
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns a boolean indicating whether the passed tree item should be
-     * white-checked.
-     *
-     * @return boolean
-     * @param treeElement java.lang.Object
-     */
-    protected boolean determineShouldBeWhiteChecked(Object treeElement) {
-        return areAllChildrenWhiteChecked(treeElement)
-                && areAllElementsChecked(treeElement);
-    }
-
-    /**
-     *	Recursively add appropriate tree elements to the collection of
-     *	known white-checked tree elements.
-     *
-     *	@param treeElement java.lang.Object
-     */
-    protected void determineWhiteCheckedDescendents(Object treeElement) {
-        // always go through all children first since their white-checked
-        // statuses will be needed to determine the white-checked status for
-        // this tree element
-        Object[] children = treeContentProvider.getElements(treeElement);
-        for (int i = 0; i < children.length; ++i) {
-			determineWhiteCheckedDescendents(children[i]);
-		}
-
-        // now determine the white-checked status for this tree element
-        if (determineShouldBeWhiteChecked(treeElement)) {
-			setWhiteChecked(treeElement, true);
-		}
-    }
-
-    /**
-     * Cause the tree viewer to expand all its items
-     */
-    public void expandAll() {
-        treeViewer.expandAll();
-    }
-
-    /**
-     *	Answer a flat collection of all of the checked elements in the
-     *	list portion of self
-     *
-     *	@return java.util.Vector
-     */
-    public Iterator getAllCheckedListItems() {
-        List result = new ArrayList();
-        Iterator listCollectionsEnum = checkedStateStore.values().iterator();
-
-        while (listCollectionsEnum.hasNext()) {
-            Iterator currentCollection = ((List) listCollectionsEnum.next())
-                    .iterator();
-            while (currentCollection.hasNext()) {
-				result.add(currentCollection.next());
-			}
-        }
-
-        return result.iterator();
-    }
-
-    /**
-     *	Answer a collection of all of the checked elements in the tree portion
-     *	of self
-     *
-     *	@return java.util.Vector
-     */
-    public Set getAllCheckedTreeItems() {
-        return checkedStateStore.keySet();
-    }
-
-    /**
-     *	Answer the number of elements that have been checked by the
-     *	user.
-     *
-     *	@return int
-     */
-    public int getCheckedElementCount() {
-        return checkedStateStore.size();
-    }
-
-    /**
-     *	Return a count of the number of list items associated with a
-     *	given tree item.
-     *
-     *	@return int
-     *	@param treeElement java.lang.Object
-     */
-    protected int getListItemsSize(Object treeElement) {
-        Object[] elements = listContentProvider.getElements(treeElement);
-        return elements.length;
-    }
-
-    /**
-     * Get the table the list viewer uses.
-     * @return org.eclipse.swt.widgets.Table
-     */
-    public Table getListTable() {
-        return this.listViewer.getTable();
-    }
-
-    /**
-     *	Logically gray-check all ancestors of treeItem by ensuring that they
-     *	appear in the checked table
-     */
-    protected void grayCheckHierarchy(Object treeElement) {
-
-        // if this tree element is already gray then its ancestors all are as well
-        if (checkedStateStore.containsKey(treeElement)) {
-			return; // no need to proceed upwards from here
-		}
-
-        checkedStateStore.put(treeElement, new ArrayList());
-        if (determineShouldBeWhiteChecked(treeElement)) {
-            setWhiteChecked(treeElement, true);
-        }
-        Object parent = treeContentProvider.getParent(treeElement);
-        if (parent != null) {
-			grayCheckHierarchy(parent);
-		}
-    }
-
-    /**
-     *	Set the initial checked state of the passed list element to true.
-     *	
-     *	@param element the element in the list to select 
-     */
-    public void initialCheckListItem(Object element) {
-        Object parent = treeContentProvider.getParent(element);
-        currentTreeSelection = parent;
-        //As this is not done from the UI then set the box for updating from the selection to false 
-        listItemChecked(element, true, false);
-        updateHierarchy(parent);
-    }
-
-    /**
-     *	Set the initial checked state of the passed element to true,
-     *	as well as to all of its children and associated list elements
-     *	
-     *	@param element the element in the tree to select
-     */
-    public void initialCheckTreeItem(Object element) {
-        treeItemChecked(element, true);
-    }
-
-    /**
-     *	Initialize this group's viewers after they have been laid out.
-     */
-    protected void initialize() {
-        treeViewer.setInput(root);
-    }
-
-    /**
-     *	Callback that's invoked when the checked status of an item in the list
-     *	is changed by the user. Do not try and update the hierarchy if we are building the
-     *  initial list.
-     */
-    protected void listItemChecked(Object listElement, boolean state,
-            boolean updatingFromSelection) {
-        List checkedListItems = (List) checkedStateStore
-                .get(currentTreeSelection);
-
-        if (state) {
-            if (checkedListItems == null) {
-                // since the associated tree item has gone from 0 -> 1 checked
-                // list items, tree checking may need to be updated
-                grayCheckHierarchy(currentTreeSelection);
-                checkedListItems = (List) checkedStateStore
-                        .get(currentTreeSelection);
-            }
-            checkedListItems.add(listElement);
-        } else {
-            checkedListItems.remove(listElement);
-            if (checkedListItems.isEmpty()) {
-                // since the associated tree item has gone from 1 -> 0 checked
-                // list items, tree checking may need to be updated
-                ungrayCheckHierarchy(currentTreeSelection);
-            }
-        }
-
-        if (updatingFromSelection) {
-			updateHierarchy(currentTreeSelection);
-		}
-    }
-
-    /**
-     *	Notify all checked state listeners that the passed element has had
-     *	its checked state changed to the passed state
-     */
-    protected void notifyCheckStateChangeListeners(
-            final CheckStateChangedEvent event) {
-        Object[] array = getListeners();
-        for (int i = 0; i < array.length; i++) {
-            final ICheckStateListener l = (ICheckStateListener) array[i];
-            SafeRunner.run(new SafeRunnable() {
-                public void run() {
-                    l.checkStateChanged(event);
-                }
-            });
-        }
-    }
-
-    /**
-     *Set the contents of the list viewer based upon the specified selected
-     *tree element.  This also includes checking the appropriate list items.
-     *
-     *@param treeElement java.lang.Object
-     */
-    protected void populateListViewer(final Object treeElement) {
-        listViewer.setInput(treeElement);
-        List listItemsToCheck = (List) checkedStateStore.get(treeElement);
-
-        if (listItemsToCheck != null) {
-            Iterator listItemsEnum = listItemsToCheck.iterator();
-            while (listItemsEnum.hasNext()) {
-				listViewer.setChecked(listItemsEnum.next(), true);
-			}
-        }
-    }
-
-    /**
-     *	Remove the passed listener from self's collection of clients
-     *	that listen for changes to element checked states
-     *
-     *	@param listener ICheckStateListener
-     */
-    public void removeCheckStateListener(ICheckStateListener listener) {
-        removeListenerObject(listener);
-    }
-
-    /**
-     *	Handle the selection of an item in the tree viewer
-     *
-     *	@param event SelectionChangedEvent
-     */
-    public void selectionChanged(SelectionChangedEvent event) {
-        IStructuredSelection selection = (IStructuredSelection) event
-                .getSelection();
-        Object selectedElement = selection.getFirstElement();
-        if (selectedElement == null) {
-            currentTreeSelection = null;
-            listViewer.setInput(currentTreeSelection);
-            return;
-        }
-
-        // ie.- if not an item deselection
-        if (selectedElement != currentTreeSelection) {
-			populateListViewer(selectedElement);
-		}
-
-        currentTreeSelection = selectedElement;
-    }
-
-    /**
-     * Select or deselect all of the elements in the tree depending on the value of the selection
-     * boolean. Be sure to update the displayed files as well.
-     * 
-     * @param selection boolean indicating whether or not to select all elements
-     */
-    public void setAllSelections(final boolean selection) {
-
-        //Potentially long operation - show a busy cursor
-        BusyIndicator.showWhile(treeViewer.getControl().getDisplay(),
-                new Runnable() {
-                    public void run() {
-                        setTreeChecked(root, selection);
-                        listViewer.setAllChecked(selection);
-                    }
-                });
-    }
-
-    /**
-     *	Set the list viewer's providers to those passed
-     *
-     *	@param contentProvider ITreeContentProvider
-     *	@param labelProvider ILabelProvider
-     */
-    public void setListProviders(IStructuredContentProvider contentProvider,
-            ILabelProvider labelProvider) {
-        listViewer.setContentProvider(contentProvider);
-        listViewer.setLabelProvider(labelProvider);
-    }
-
-    /**
-     *	Set the comparator that is to be applied to self's list viewer
-     *
-     *	@param comparator the comparator for the list viewer
-     */
-    public void setListComparator(ViewerComparator comparator) {
-        listViewer.setComparator(comparator);
-    }
-
-    /**
-     * Set the root of the widget to be new Root. Regenerate all of the tables and lists from this
-     * value.
-     * @param newRoot 
-     */
-    public void setRoot(Object newRoot) {
-        this.root = newRoot;
-        initialize();
-    }
-
-    /**
-     *	Set the checked state of the passed tree element appropriately, and
-     *	do so recursively to all of its child tree elements as well
-     */
-    protected void setTreeChecked(Object treeElement, boolean state) {
-
-        if (treeElement.equals(currentTreeSelection)) {
-            listViewer.setAllChecked(state);
-        }
-
-        if (state) {
-            Object[] listItems = listContentProvider.getElements(treeElement);
-            List listItemsChecked = new ArrayList();
-            for (int i = 0; i < listItems.length; ++i) {
-				listItemsChecked.add(listItems[i]);
-			}
-
-            checkedStateStore.put(treeElement, listItemsChecked);
-        } else {
-			checkedStateStore.remove(treeElement);
-		}
-
-        setWhiteChecked(treeElement, state);
-        treeViewer.setChecked(treeElement, state);
-        treeViewer.setGrayed(treeElement, false);
-
-        // now logically check/uncheck all children as well
-        Object[] children = treeContentProvider.getChildren(treeElement);
-        for (int i = 0; i < children.length; ++i) {
-            setTreeChecked(children[i], state);
-        }
-    }
-
-    /**
-     *	Set the tree viewer's providers to those passed
-     *
-     *	@param contentProvider ITreeContentProvider
-     *	@param labelProvider ILabelProvider
-     */
-    public void setTreeProviders(ITreeContentProvider contentProvider,
-            ILabelProvider labelProvider) {
-        treeViewer.setContentProvider(contentProvider);
-        treeViewer.setLabelProvider(labelProvider);
-    }
-
-    /**
-     *	Set the comparator that is to be applied to self's tree viewer
-     *
-     *	@param comparator the comparator for the tree
-     */
-    public void setTreeComparator(ViewerComparator comparator) {
-        treeViewer.setComparator(comparator);
-    }
-
-    /**
-     *	Adjust the collection of references to white-checked tree elements appropriately.
-     *
-     *	@param treeElement java.lang.Object
-     *	@param isWhiteChecked boolean
-     */
-    protected void setWhiteChecked(Object treeElement, boolean isWhiteChecked) {
-        if (isWhiteChecked) {
-            if (!whiteCheckedTreeItems.contains(treeElement)) {
-				whiteCheckedTreeItems.add(treeElement);
-			}
-        } else {
-			whiteCheckedTreeItems.remove(treeElement);
-		}
-    }
-
-    /**
-     *	Handle the collapsing of an element in a tree viewer
-     */
-    public void treeCollapsed(TreeExpansionEvent event) {
-        // We don't need to do anything with this
-    }
-
-    /**
-     *	Handle the expansionsion of an element in a tree viewer
-     */
-    public void treeExpanded(TreeExpansionEvent event) {
-
-        Object item = event.getElement();
-
-        // First see if the children need to be given their checked state at all.  If they've
-        // already been realized then this won't be necessary
-        if (!expandedTreeNodes.contains(item)) {
-            expandedTreeNodes.add(item);
-            checkNewTreeElements(treeContentProvider.getChildren(item));
-        }
-    }
-
-    /**
-     *  Callback that's invoked when the checked status of an item in the tree
-     *  is changed by the user.
-     */
-    protected void treeItemChecked(Object treeElement, boolean state) {
-
-        // recursively adjust all child tree elements appropriately
-        setTreeChecked(treeElement, state);
-
-        Object parent = treeContentProvider.getParent(treeElement);
-        if (parent == null) {
-			return;
-		}
-
-        // now update upwards in the tree hierarchy 
-        if (state) {
-			grayCheckHierarchy(parent);
-		} else {
-			ungrayCheckHierarchy(parent);
-		}
-
-        updateHierarchy(treeElement);
-    }
-
-    /**
-     *	Logically un-gray-check all ancestors of treeItem iff appropriate.
-     */
-    protected void ungrayCheckHierarchy(Object treeElement) {
-        if (!determineShouldBeAtLeastGrayChecked(treeElement)) {
-			checkedStateStore.remove(treeElement);
-		}
-
-        Object parent = treeContentProvider.getParent(treeElement);
-        if (parent != null) {
-			ungrayCheckHierarchy(parent);
-		}
-    }
-
-    /**
-     *	Set the checked state of self and all ancestors appropriately
-     */
-    protected void updateHierarchy(Object treeElement) {
-
-        boolean whiteChecked = determineShouldBeWhiteChecked(treeElement);
-        boolean shouldBeAtLeastGray = determineShouldBeAtLeastGrayChecked(treeElement);
-
-        treeViewer.setChecked(treeElement, shouldBeAtLeastGray);
-        setWhiteChecked(treeElement, whiteChecked);
-        if (!whiteChecked) {
-			treeViewer.setGrayed(treeElement, shouldBeAtLeastGray);
-		}
-
-        // proceed up the tree element hierarchy
-        Object parent = treeContentProvider.getParent(treeElement);
-        if (parent != null) {
-            updateHierarchy(parent);
-        }
-    }
-
-    /**
-     * Update the selections of the tree elements in items to reflect the new
-     * selections provided.
-     * @param items Map with keys of Object (the tree element) and values of List (the selected
-     * list elements).
-     */
-    public void updateSelections(final Map items) {
-
-        //Potentially long operation - show a busy cursor
-        BusyIndicator.showWhile(treeViewer.getControl().getDisplay(),
-                new Runnable() {
-                    public void run() {
-                        Iterator keyIterator = items.keySet().iterator();
-
-                        //Update the store before the hierarchy to prevent updating parents before all of the children are done
-                        while (keyIterator.hasNext()) {
-                            Object key = keyIterator.next();
-                            //Replace the items in the checked state store with those from the supplied items
-                            List selections = (List) items.get(key);
-                            if (selections.size() == 0) {
-								//If it is empty remove it from the list
-                                checkedStateStore.remove(key);
-							} else {
-                                checkedStateStore.put(key, selections);
-                                // proceed up the tree element hierarchy
-                                Object parent = treeContentProvider
-                                        .getParent(key);
-                                if (parent != null) {
-                                    addToHierarchyToCheckedStore(parent);
-                                }
-                            }
-                        }
-
-                        //Now update hierarchies
-                        keyIterator = items.keySet().iterator();
-
-                        while (keyIterator.hasNext()) {
-                            Object key = keyIterator.next();
-                            updateHierarchy(key);
-                            if (currentTreeSelection != null
-                                    && currentTreeSelection.equals(key)) {
-                                listViewer.setAllChecked(false);
-                                listViewer.setCheckedElements(((List) items
-                                        .get(key)).toArray());
-                            }
-                        }
-                    }
-                });
-
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerContentProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerContentProvider.java
deleted file mode 100644
index b0da9b1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerContentProvider.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.misc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Provides content for a tree viewer that shows only containers.
- */
-public class ContainerContentProvider implements ITreeContentProvider {
-    private boolean showClosedProjects = true;
-
-    /**
-     * Creates a new ContainerContentProvider.
-     */
-    public ContainerContentProvider() {
-    }
-
-    /**
-     * The visual part that is using this content provider is about
-     * to be disposed. Deallocate all allocated SWT resources.
-     */
-    public void dispose() {
-    }
-
-    /*
-     * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-     */
-    public Object[] getChildren(Object element) {
-        if (element instanceof IWorkspace) {
-            // check if closed projects should be shown
-            IProject[] allProjects = ((IWorkspace) element).getRoot()
-                    .getProjects();
-            if (showClosedProjects) {
-				return allProjects;
-			}
-
-            ArrayList accessibleProjects = new ArrayList();
-            for (int i = 0; i < allProjects.length; i++) {
-                if (allProjects[i].isOpen()) {
-                    accessibleProjects.add(allProjects[i]);
-                }
-            }
-            return accessibleProjects.toArray();
-        } else if (element instanceof IContainer) {
-            IContainer container = (IContainer) element;
-            if (container.isAccessible()) {
-                try {
-                    List children = new ArrayList();
-                    IResource[] members = container.members();
-                    for (int i = 0; i < members.length; i++) {
-                        if (members[i].getType() != IResource.FILE) {
-                            children.add(members[i]);
-                        }
-                    }
-                    return children.toArray();
-                } catch (CoreException e) {
-                    // this should never happen because we call #isAccessible before invoking #members
-                }
-            }
-        }
-        return new Object[0];
-    }
-
-    /*
-     * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-     */
-    public Object[] getElements(Object element) {
-        return getChildren(element);
-    }
-
-    /*
-     * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-     */
-    public Object getParent(Object element) {
-        if (element instanceof IResource) {
-			return ((IResource) element).getParent();
-		}
-        return null;
-    }
-
-    /*
-     * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-     */
-    public boolean hasChildren(Object element) {
-        return getChildren(element).length > 0;
-    }
-
-    /*
-     * @see org.eclipse.jface.viewers.IContentProvider#inputChanged
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-    }
-
-    /**
-     * Specify whether or not to show closed projects in the tree 
-     * viewer.  Default is to show closed projects.
-     * 
-     * @param show boolean if false, do not show closed projects in the tree
-     */
-    public void showClosedProjects(boolean show) {
-        showClosedProjects = show;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerSelectionGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerSelectionGroup.java
deleted file mode 100644
index acfdea0..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerSelectionGroup.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Igor Fedorenko <igorfie@yahoo.com> - 
- *     		Fix for Bug 136921 [IDE] New File dialog locks for 20 seconds
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.misc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.fieldassist.FieldAssistColors;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-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.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.part.DrillDownComposite;
-
-/**
- * Workbench-level composite for choosing a container.
- */
-public class ContainerSelectionGroup extends Composite {
-	// The listener to notify of events
-	private Listener listener;
-
-	// Enable user to type in new container name
-	private boolean allowNewContainerName = true;
-
-	// show all projects by default
-	private boolean showClosedProjects = true;
-
-	// Last selection made by user
-	private IContainer selectedContainer;
-
-	// handle on parts
-	private Text containerNameField;
-
-	TreeViewer treeViewer;
-
-	// the message to display at the top of this dialog
-	private static final String DEFAULT_MSG_NEW_ALLOWED = IDEWorkbenchMessages.ContainerGroup_message;
-
-	private static final String DEFAULT_MSG_SELECT_ONLY = IDEWorkbenchMessages.ContainerGroup_selectFolder;
-
-	// sizing constants
-	private static final int SIZING_SELECTION_PANE_WIDTH = 320;
-
-	private static final int SIZING_SELECTION_PANE_HEIGHT = 300;
-
-	/**
-	 * Creates a new instance of the widget.
-	 * 
-	 * @param parent
-	 *            The parent widget of the group.
-	 * @param listener
-	 *            A listener to forward events to. Can be null if no listener is
-	 *            required.
-	 * @param allowNewContainerName
-	 *            Enable the user to type in a new container name instead of
-	 *            just selecting from the existing ones.
-	 */
-	public ContainerSelectionGroup(Composite parent, Listener listener,
-			boolean allowNewContainerName) {
-		this(parent, listener, allowNewContainerName, null);
-	}
-
-	/**
-	 * Creates a new instance of the widget.
-	 * 
-	 * @param parent
-	 *            The parent widget of the group.
-	 * @param listener
-	 *            A listener to forward events to. Can be null if no listener is
-	 *            required.
-	 * @param allowNewContainerName
-	 *            Enable the user to type in a new container name instead of
-	 *            just selecting from the existing ones.
-	 * @param message
-	 *            The text to present to the user.
-	 */
-	public ContainerSelectionGroup(Composite parent, Listener listener,
-			boolean allowNewContainerName, String message) {
-		this(parent, listener, allowNewContainerName, message, true);
-	}
-
-	/**
-	 * Creates a new instance of the widget.
-	 * 
-	 * @param parent
-	 *            The parent widget of the group.
-	 * @param listener
-	 *            A listener to forward events to. Can be null if no listener is
-	 *            required.
-	 * @param allowNewContainerName
-	 *            Enable the user to type in a new container name instead of
-	 *            just selecting from the existing ones.
-	 * @param message
-	 *            The text to present to the user.
-	 * @param showClosedProjects
-	 *            Whether or not to show closed projects.
-	 */
-	public ContainerSelectionGroup(Composite parent, Listener listener,
-			boolean allowNewContainerName, String message,
-			boolean showClosedProjects) {
-		this(parent, listener, allowNewContainerName, message,
-				showClosedProjects, SIZING_SELECTION_PANE_HEIGHT,
-				SIZING_SELECTION_PANE_WIDTH);
-	}
-
-	/**
-	 * Creates a new instance of the widget.
-	 * 
-	 * @param parent
-	 *            The parent widget of the group.
-	 * @param listener
-	 *            A listener to forward events to. Can be null if no listener is
-	 *            required.
-	 * @param allowNewContainerName
-	 *            Enable the user to type in a new container name instead of
-	 *            just selecting from the existing ones.
-	 * @param message
-	 *            The text to present to the user.
-	 * @param showClosedProjects
-	 *            Whether or not to show closed projects.
-	 * @param heightHint
-	 *            height hint for the drill down composite
-	 * @param widthHint
-	 *            width hint for the drill down composite
-	 */
-	public ContainerSelectionGroup(Composite parent, Listener listener,
-			boolean allowNewContainerName, String message,
-			boolean showClosedProjects, int heightHint, int widthHint) {
-		super(parent, SWT.NONE);
-		this.listener = listener;
-		this.allowNewContainerName = allowNewContainerName;
-		this.showClosedProjects = showClosedProjects;
-		if (message != null) {
-			createContents(message, heightHint, widthHint);
-		} else if (allowNewContainerName) {
-			createContents(DEFAULT_MSG_NEW_ALLOWED, heightHint, widthHint);
-		} else {
-			createContents(DEFAULT_MSG_SELECT_ONLY, heightHint, widthHint);
-		}
-	}
-
-	/**
-	 * The container selection has changed in the tree view. Update the
-	 * container name field value and notify all listeners.
-	 * 
-	 * @param container
-	 *            The container that changed
-	 */
-	public void containerSelectionChanged(IContainer container) {
-		selectedContainer = container;
-
-		if (allowNewContainerName) {
-			if (container == null) {
-				containerNameField.setText("");//$NON-NLS-1$
-			} else {
-				String text = container.getFullPath().makeRelative().toString();
-				containerNameField.setText(text);
-				containerNameField.setToolTipText(text);
-			}
-		}
-
-		// fire an event so the parent can update its controls
-		if (listener != null) {
-			Event changeEvent = new Event();
-			changeEvent.type = SWT.Selection;
-			changeEvent.widget = this;
-			listener.handleEvent(changeEvent);
-		}
-	}
-
-	/**
-	 * Creates the contents of the composite.
-	 * 
-	 * @param message
-	 */
-	public void createContents(String message) {
-		createContents(message, SIZING_SELECTION_PANE_HEIGHT,
-				SIZING_SELECTION_PANE_WIDTH);
-	}
-
-	/**
-	 * Creates the contents of the composite.
-	 * 
-	 * @param message
-	 * @param heightHint
-	 * @param widthHint
-	 */
-	public void createContents(String message, int heightHint, int widthHint) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		setLayout(layout);
-		setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-		Label label = new Label(this, SWT.WRAP);
-		label.setText(message);
-		label.setFont(this.getFont());
-
-		if (allowNewContainerName) {
-			containerNameField = new Text(this, SWT.SINGLE | SWT.BORDER);
-			GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-			gd.widthHint = widthHint;
-			containerNameField.setLayoutData(gd);
-			containerNameField.addListener(SWT.Modify, listener);
-			containerNameField.setFont(this.getFont());
-			// Mark as required field.
-			containerNameField.setBackground(FieldAssistColors
-					.getRequiredFieldBackgroundColor(containerNameField));
-		} else {
-			// filler...
-			new Label(this, SWT.NONE);
-		}
-
-		createTreeViewer(heightHint);
-		Dialog.applyDialogFont(this);
-	}
-
-	/**
-	 * Returns a new drill down viewer for this dialog.
-	 * 
-	 * @param heightHint
-	 *            height hint for the drill down composite
-	 */
-	protected void createTreeViewer(int heightHint) {
-		// Create drill down.
-		DrillDownComposite drillDown = new DrillDownComposite(this, SWT.BORDER);
-		GridData spec = new GridData(SWT.FILL, SWT.FILL, true, true);
-		spec.widthHint = SIZING_SELECTION_PANE_WIDTH;
-		spec.heightHint = heightHint;
-		drillDown.setLayoutData(spec);
-
-		// Create tree viewer inside drill down.
-		treeViewer = new TreeViewer(drillDown, SWT.NONE);
-		drillDown.setChildTree(treeViewer);
-		ContainerContentProvider cp = new ContainerContentProvider();
-		cp.showClosedProjects(showClosedProjects);
-		treeViewer.setContentProvider(cp);
-		treeViewer.setLabelProvider(WorkbenchLabelProvider
-				.getDecoratingWorkbenchLabelProvider());
-		treeViewer.setComparator(new ViewerComparator());
-		treeViewer.setUseHashlookup(true);
-		treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				IStructuredSelection selection = (IStructuredSelection) event
-						.getSelection();
-				containerSelectionChanged((IContainer) selection
-						.getFirstElement()); // allow null
-			}
-		});
-		treeViewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				ISelection selection = event.getSelection();
-				if (selection instanceof IStructuredSelection) {
-					Object item = ((IStructuredSelection) selection)
-							.getFirstElement();
-					if (item == null) {
-						return;
-					}
-					if (treeViewer.getExpandedState(item)) {
-						treeViewer.collapseToLevel(item, 1);
-					} else {
-						treeViewer.expandToLevel(item, 1);
-					}
-				}
-			}
-		});
-
-		// This has to be done after the viewer has been laid out
-		treeViewer.setInput(ResourcesPlugin.getWorkspace());
-	}
-
-	/**
-	 * Returns the currently entered container name. Null if the field is empty.
-	 * Note that the container may not exist yet if the user entered a new
-	 * container name in the field.
-	 * @return IPath
-	 */
-	public IPath getContainerFullPath() {
-		if (allowNewContainerName) {
-			String pathName = containerNameField.getText();
-			if (pathName == null || pathName.length() < 1) {
-				return null;
-			}
-			// The user may not have made this absolute so do it for them
-			return (new Path(pathName)).makeAbsolute();
-
-		}
-		if (selectedContainer == null)
-			return null;
-		return selectedContainer.getFullPath();
-
-	}
-
-	/**
-	 * Gives focus to one of the widgets in the group, as determined by the
-	 * group.
-	 */
-	public void setInitialFocus() {
-		if (allowNewContainerName) {
-			containerNameField.setFocus();
-		} else {
-			treeViewer.getTree().setFocus();
-		}
-	}
-
-	/**
-	 * Sets the selected existing container.
-	 * @param container
-	 */
-	public void setSelectedContainer(IContainer container) {
-		selectedContainer = container;
-
-		// expand to and select the specified container
-		List itemsToExpand = new ArrayList();
-		IContainer parent = container.getParent();
-		while (parent != null) {
-			itemsToExpand.add(0, parent);
-			parent = parent.getParent();
-		}
-		treeViewer.setExpandedElements(itemsToExpand.toArray());
-		treeViewer.setSelection(new StructuredSelection(container), true);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/DisjointSet.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/DisjointSet.java
deleted file mode 100644
index dbc6016..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/DisjointSet.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.internal.ide.misc;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * A disjoint set is a generic data structure that represents a collection of 
- * sets that are assumed to be disjoint (no object exists in more than
- * one set).
- * <p>
- * This disjoint set implementation represents the disjoint set as a forest,
- * where the nodes of each tree all belong to the same set. This implementation
- * uses path compression in the findSet implementation to flatten each tree
- * to a constant depth.  A rank is maintained for each tree that is used when
- * performing union operations to ensure the tree remains balanced.
- * <p>
- * Ref: Cormen, Leiserson, and Rivest <it>Introduction to Algorithms</it>,
- * McGraw-Hill, 1990. The disjoint set forest implementation in section 22.3.
- * </p>
- * @since 3.2
- */
-public class DisjointSet {
-	/**
-	 * A node in the disjoint set forest.  Each tree in the forest is
-	 * a disjoint set, where the root of the tree is the set representative.
-	 */
-	private static class Node {
-		/** The node rank used for union by rank optimization */
-		int rank;
-		/** The parent of this node in the tree. */
-		Object parent;
-
-		Node(Object parent, int rank) {
-			this.parent = parent;
-			this.rank = rank;
-		}
-	}
-
-	/**
-	 * Map of Object -> Node, where each key is an object in the
-	 * disjoint set, and the Node represents its position and rank
-	 * within the set.
-	 */
-	private final HashMap objectsToNodes = new HashMap();
-
-	/**
-	 * Returns the set token for the given object, or null if the
-	 * object does not belong to any set.  All object
-	 * in the same set have an identical set token.
-	 * @param o The object to return the set token for
-	 * @return The set token, or <code>null</code>
-	 */
-	public Object findSet(Object o) {
-		DisjointSet.Node node = (DisjointSet.Node) objectsToNodes.get(o);
-		if (node == null)
-			return null;
-		if (o != node.parent)
-			node.parent = findSet(node.parent);
-		return node.parent;
-	}
-
-	/**
-	 * Adds a new set to the group of disjoint sets for the given object.
-	 * It is assumed that the object does not yet belong to any set.
-	 * @param o The object to add to the set
-	 */
-	public void makeSet(Object o) {
-		objectsToNodes.put(o, new Node(o, 0));
-	}
-
-	/**
-	 * Removes all elements belonging to the set of the given object.
-	 * @param o The object to remove
-	 */
-	public void removeSet(Object o) {
-		Object set = findSet(o);
-		if (set == null)
-			return;
-		for (Iterator it = objectsToNodes.keySet().iterator(); it.hasNext();) {
-			Object next = it.next();
-			//remove the set representative last, otherwise findSet will fail
-			if (next != set && findSet(next) == set)
-				it.remove();
-		}
-		objectsToNodes.remove(set);
-	}
-
-	/**
-	 * Copies all objects in the disjoint set to the provided list
-	 * @param list The list to copy objects into
-	 */
-	public void toList(List list) {
-		list.addAll(objectsToNodes.keySet());
-	}
-
-	/**
-	 * Unions the set represented by token x with the set represented by 
-	 * token y. Has no effect if either x or y is not in the disjoint set, or
-	 * if they already belong to the same set.
-	 * @param x The first set to union
-	 * @param y The second set to union
-	 */
-	public void union(Object x, Object y) {
-		Object setX = findSet(x);
-		Object setY = findSet(y);
-		if (setX == null || setY == null || setX == setY)
-			return;
-		DisjointSet.Node nodeX = (DisjointSet.Node) objectsToNodes.get(setX);
-		DisjointSet.Node nodeY = (DisjointSet.Node) objectsToNodes.get(setY);
-		//join the two sets by pointing the root of one at the root of the other
-		if (nodeX.rank > nodeY.rank) {
-			nodeY.parent = x;
-		} else {
-			nodeX.parent = y;
-			if (nodeX.rank == nodeY.rank)
-				nodeY.rank++;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/OverlayIcon.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/OverlayIcon.java
deleted file mode 100644
index dfa1222..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/OverlayIcon.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.internal.ide.misc;
-
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * An OverlayIcon consists of a main icon and several adornments.
- */
-public class OverlayIcon extends CompositeImageDescriptor {
-
-    static final int DEFAULT_WIDTH = 22;
-
-    static final int DEFAULT_HEIGHT = 16;
-
-    private Point fSize = null;
-
-    private ImageDescriptor fBase;
-
-    private ImageDescriptor fOverlays[][];
-
-    public OverlayIcon(ImageDescriptor base, ImageDescriptor[][] overlays,
-            Point size) {
-        fBase = base;
-        fOverlays = overlays;
-        fSize = size;
-    }
-
-    protected void drawBottomLeft(ImageDescriptor[] overlays) {
-        if (overlays == null) {
-			return;
-		}
-        int length = overlays.length;
-        int x = 0;
-        for (int i = 0; i < 3; i++) {
-            if (i < length && overlays[i] != null) {
-                ImageData id = overlays[i].getImageData();
-                drawImage(id, x, getSize().y - id.height);
-                x += id.width;
-            }
-        }
-    }
-
-    protected void drawBottomRight(ImageDescriptor[] overlays) {
-        if (overlays == null) {
-			return;
-		}
-        int length = overlays.length;
-        int x = getSize().x;
-        for (int i = 2; i >= 0; i--) {
-            if (i < length && overlays[i] != null) {
-                ImageData id = overlays[i].getImageData();
-                x -= id.width;
-                drawImage(id, x, getSize().y - id.height);
-            }
-        }
-    }
-
-    /**
-     * @see CompositeImageDescriptor#drawCompositeImage(int, int)
-     */
-    protected void drawCompositeImage(int width, int height) {
-        ImageData bg;
-        if (fBase == null || (bg = fBase.getImageData()) == null) {
-			bg = DEFAULT_IMAGE_DATA;
-		}
-        drawImage(bg, 0, 0);
-
-        if (fOverlays != null) {
-            if (fOverlays.length > 0) {
-				drawTopRight(fOverlays[0]);
-			}
-
-            if (fOverlays.length > 1) {
-				drawBottomRight(fOverlays[1]);
-			}
-
-            if (fOverlays.length > 2) {
-				drawBottomLeft(fOverlays[2]);
-			}
-
-            if (fOverlays.length > 3) {
-				drawTopLeft(fOverlays[3]);
-			}
-        }
-    }
-
-    protected void drawTopLeft(ImageDescriptor[] overlays) {
-        if (overlays == null) {
-			return;
-		}
-        int length = overlays.length;
-        int x = 0;
-        for (int i = 0; i < 3; i++) {
-            if (i < length && overlays[i] != null) {
-                ImageData id = overlays[i].getImageData();
-                drawImage(id, x, 0);
-                x += id.width;
-            }
-        }
-    }
-
-    protected void drawTopRight(ImageDescriptor[] overlays) {
-        if (overlays == null) {
-			return;
-		}
-        int length = overlays.length;
-        int x = getSize().x;
-        for (int i = 2; i >= 0; i--) {
-            if (i < length && overlays[i] != null) {
-                ImageData id = overlays[i].getImageData();
-                x -= id.width;
-                drawImage(id, x, 0);
-            }
-        }
-    }
-
-    /**
-     * @see CompositeImageDescriptor#getSize()
-     */
-    protected Point getSize() {
-        return fSize;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ResourceAndContainerGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ResourceAndContainerGroup.java
deleted file mode 100644
index 201ad82..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ResourceAndContainerGroup.java
+++ /dev/null
@@ -1,412 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.misc;
-
-import org.eclipse.core.resources.IContainer;
-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.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.fieldassist.FieldAssistColors;
-import org.eclipse.osgi.util.NLS;
-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.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.internal.ide.IDEWorkbenchMessages;
-
-/**
- * Workbench-level composite for resource and container specification by the user.
- * Services such as field validation are performed by the group.
- * The group can be configured to accept existing resources, or only
- * new resources.
- */
-public class ResourceAndContainerGroup implements Listener {
-    // problem identifiers
-    public static final int PROBLEM_NONE = 0;
-
-    public static final int PROBLEM_RESOURCE_EMPTY = 1;
-
-    public static final int PROBLEM_RESOURCE_EXIST = 2;
-
-    public static final int PROBLEM_PATH_INVALID = 4;
-
-    public static final int PROBLEM_CONTAINER_EMPTY = 5;
-
-    public static final int PROBLEM_PROJECT_DOES_NOT_EXIST = 6;
-
-    public static final int PROBLEM_NAME_INVALID = 7;
-
-    public static final int PROBLEM_PATH_OCCUPIED = 8;
-
-    // the client to notify of changes
-    private Listener client;
-
-    // whether to allow existing resources
-    private boolean allowExistingResources = false;
-
-    // resource type (file, folder, project)
-    private String resourceType = IDEWorkbenchMessages.ResourceGroup_resource;
-
-    // show closed projects in the tree, by default
-    private boolean showClosedProjects = true;
-
-    // problem indicator
-    private String problemMessage = "";//$NON-NLS-1$
-
-    private int problemType = PROBLEM_NONE;
-
-    // widgets
-    private ContainerSelectionGroup containerGroup;
-
-    private Text resourceNameField;
-
-    // constants
-    private static final int SIZING_TEXT_FIELD_WIDTH = 250;
-
-    /**
-     * Create an instance of the group to allow the user
-     * to enter/select a container and specify a resource
-     * name.
-     *
-     * @param parent composite widget to parent the group
-     * @param client object interested in changes to the group's fields value
-     * @param resourceFieldLabel label to use in front of the resource name field
-     * @param resourceType one word, in lowercase, to describe the resource to the user (file, folder, project)
-     */
-    public ResourceAndContainerGroup(Composite parent, Listener client,
-            String resourceFieldLabel, String resourceType) {
-        this(parent, client, resourceFieldLabel, resourceType, true);
-    }
-
-    /**
-     * Create an instance of the group to allow the user
-     * to enter/select a container and specify a resource
-     * name.
-     *
-     * @param parent composite widget to parent the group
-     * @param client object interested in changes to the group's fields value
-     * @param resourceFieldLabel label to use in front of the resource name field
-     * @param resourceType one word, in lowercase, to describe the resource to the user (file, folder, project)
-     * @param showClosedProjects whether or not to show closed projects
-     */
-    public ResourceAndContainerGroup(Composite parent, Listener client,
-            String resourceFieldLabel, String resourceType,
-            boolean showClosedProjects) {
-        this(parent, client, resourceFieldLabel, resourceType,
-                showClosedProjects, SWT.DEFAULT);
-    }
-
-    /**
-     * Create an instance of the group to allow the user
-     * to enter/select a container and specify a resource
-     * name.
-     *
-     * @param parent composite widget to parent the group
-     * @param client object interested in changes to the group's fields value
-     * @param resourceFieldLabel label to use in front of the resource name field
-     * @param resourceType one word, in lowercase, to describe the resource to the user (file, folder, project)
-     * @param showClosedProjects whether or not to show closed projects
-     * @param heightHint height hint for the container selection widget group
-     */
-    public ResourceAndContainerGroup(Composite parent, Listener client,
-            String resourceFieldLabel, String resourceType,
-            boolean showClosedProjects, int heightHint) {
-        super();
-        this.resourceType = resourceType;
-        this.showClosedProjects = showClosedProjects;
-        createContents(parent, resourceFieldLabel, heightHint);
-        this.client = client;
-    }
-
-    /**
-     * Returns a boolean indicating whether all controls in this group
-     * contain valid values.
-     *
-     * @return boolean
-     */
-    public boolean areAllValuesValid() {
-        return problemType == PROBLEM_NONE;
-    }
-
-    /**
-     * Creates this object's visual components.
-     *
-     * @param parent org.eclipse.swt.widgets.Composite
-     * @param heightHint height hint for the container selection widget group
-     */
-    protected void createContents(Composite parent, String resourceLabelString,
-            int heightHint) {
-
-        Font font = parent.getFont();
-        // server name group
-        Composite composite = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        composite.setLayout(layout);
-        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-        composite.setFont(font);
-
-        // container group
-        if (heightHint == SWT.DEFAULT) {
-			containerGroup = new ContainerSelectionGroup(composite, this, true,
-                    null, showClosedProjects);
-		} else {
-			containerGroup = new ContainerSelectionGroup(composite, this, true,
-                    null, showClosedProjects, heightHint, SIZING_TEXT_FIELD_WIDTH);
-		}
-
-        // resource name group
-        Composite nameGroup = new Composite(composite, SWT.NONE);
-        layout = new GridLayout();
-        layout.numColumns = 2;
-        layout.marginWidth = 0;
-        nameGroup.setLayout(layout);
-        nameGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL));
-        nameGroup.setFont(font);
-
-        Label label = new Label(nameGroup, SWT.NONE);
-        label.setText(resourceLabelString);
-        label.setFont(font);
-
-        // resource name entry field
-        resourceNameField = new Text(nameGroup, SWT.BORDER);
-        resourceNameField.addListener(SWT.Modify, this);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-        resourceNameField.setLayoutData(data);
-        resourceNameField.setFont(font);
-        resourceNameField.setBackground(
-        		FieldAssistColors.getRequiredFieldBackgroundColor(resourceNameField));
-
-        validateControls();
-    }
-
-    /**
-     * Returns the path of the currently selected container
-     * or null if no container has been selected. Note that
-     * the container may not exist yet if the user entered
-     * a new container name in the field.
-     * @return The path of the container, or <code>null</code>
-     */
-    public IPath getContainerFullPath() {
-        return containerGroup.getContainerFullPath();
-    }
-
-    /**
-     * Returns an error message indicating the current problem with the value
-     * of a control in the group, or an empty message if all controls in the
-     * group contain valid values.
-     *
-     * @return java.lang.String
-     */
-    public String getProblemMessage() {
-        return problemMessage;
-    }
-
-    /**
-     * Returns the type of problem with the value of a control
-     * in the group.
-     *
-     * @return one of the PROBLEM_* constants
-     */
-    public int getProblemType() {
-        return problemType;
-    }
-
-    /**
-     * Returns a string that is the name of the chosen resource, or an
-     * empty string if no resource has been entered.
-     * @return The resource name
-     */
-    public String getResource() {
-        return resourceNameField.getText();
-    }
-
-    /**
-     * Handles events for all controls in the group.
-     *
-     * @param e org.eclipse.swt.widgets.Event
-     */
-    public void handleEvent(Event e) {
-        validateControls();
-        if (client != null) {
-            client.handleEvent(e);
-        }
-    }
-
-    /**
-     * Sets the flag indicating whether existing resources are permitted.
-     */
-    public void setAllowExistingResources(boolean value) {
-        allowExistingResources = value;
-    }
-
-    /**
-     * Sets the value of this page's container.
-     *
-     * @param path Full path to the container.
-     */
-    public void setContainerFullPath(IPath path) {
-        IResource initial = ResourcesPlugin.getWorkspace().getRoot()
-                .findMember(path);
-        if (initial != null) {
-            if (!(initial instanceof IContainer)) {
-                initial = initial.getParent();
-            }
-            containerGroup.setSelectedContainer((IContainer) initial);
-        }
-        validateControls();
-    }
-
-    /**
-     * Gives focus to the resource name field and selects its contents
-     */
-    public void setFocus() {
-        //select the whole resource name.
-        resourceNameField.setSelection(0, resourceNameField.getText().length());
-        resourceNameField.setFocus();
-    }
-
-    /**
-     * Sets the value of this page's resource name.
-     *
-     * @param value new value
-     */
-    public void setResource(String value) {
-        resourceNameField.setText(value);
-        validateControls();
-    }
-
-    /**
-     * Returns a <code>boolean</code> indicating whether a container name represents
-     * a valid container resource in the workbench.  An error message is stored for
-     * future reference if the name does not represent a valid container.
-     *
-     * @return <code>boolean</code> indicating validity of the container name
-     */
-    protected boolean validateContainer() {
-        IPath path = containerGroup.getContainerFullPath();
-        if (path == null) {
-            problemType = PROBLEM_CONTAINER_EMPTY;
-            problemMessage = IDEWorkbenchMessages.ResourceGroup_folderEmpty;
-            return false;
-        }
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        String projectName = path.segment(0);
-        if (projectName == null
-                || !workspace.getRoot().getProject(projectName).exists()) {
-            problemType = PROBLEM_PROJECT_DOES_NOT_EXIST;
-            problemMessage = IDEWorkbenchMessages.ResourceGroup_noProject;
-            return false;
-        }
-        //path is invalid if any prefix is occupied by a file
-        IWorkspaceRoot root = workspace.getRoot();
-        while (path.segmentCount() > 1) {
-        	if (root.getFile(path).exists()) {
-        		problemType = PROBLEM_PATH_OCCUPIED;
-        		problemMessage = NLS.bind(IDEWorkbenchMessages.ResourceGroup_pathOccupied, path.makeRelative());
-        		return false;
-        	}
-        	path = path.removeLastSegments(1);
-        }
-        return true;
-    }
-
-    /**
-     * Validates the values for each of the group's controls.  If an invalid
-     * value is found then a descriptive error message is stored for later
-     * reference.  Returns a boolean indicating the validity of all of the
-     * controls in the group.
-     */
-    protected boolean validateControls() {
-        // don't attempt to validate controls until they have been created
-        if (containerGroup == null) {
-            return false;
-        }
-        problemType = PROBLEM_NONE;
-        problemMessage = "";//$NON-NLS-1$
-
-        if (!validateContainer() || !validateResourceName()) {
-			return false;
-		}
-
-        IPath path = containerGroup.getContainerFullPath().append(
-                resourceNameField.getText());
-        return validateFullResourcePath(path);
-    }
-
-    /**
-     * Returns a <code>boolean</code> indicating whether the specified resource
-     * path represents a valid new resource in the workbench.  An error message
-     * is stored for future reference if the path  does not represent a valid
-     * new resource path.
-     *
-     * @param resourcePath the path to validate
-     * @return <code>boolean</code> indicating validity of the resource path
-     */
-    protected boolean validateFullResourcePath(IPath resourcePath) {
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-        IStatus result = workspace.validatePath(resourcePath.toString(),
-                IResource.FOLDER);
-        if (!result.isOK()) {
-            problemType = PROBLEM_PATH_INVALID;
-            problemMessage = result.getMessage();
-            return false;
-        }
-
-        if (!allowExistingResources
-                && (workspace.getRoot().getFolder(resourcePath).exists() || workspace
-                        .getRoot().getFile(resourcePath).exists())) {
-            problemType = PROBLEM_RESOURCE_EXIST;
-            problemMessage = IDEWorkbenchMessages.ResourceGroup_nameExists;
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Returns a <code>boolean</code> indicating whether the resource name rep-
-     * resents a valid resource name in the workbench.  An error message is stored
-     * for future reference if the name does not represent a valid resource name.
-     *
-     * @return <code>boolean</code> indicating validity of the resource name
-     */
-    protected boolean validateResourceName() {
-        String resourceName = resourceNameField.getText();
-
-        if (resourceName.length() == 0) {
-            problemType = PROBLEM_RESOURCE_EMPTY;
-            problemMessage = NLS.bind(IDEWorkbenchMessages.ResourceGroup_emptyName, resourceType);
-            return false;
-        }
-
-        if (!Path.ROOT.isValidPath(resourceName)) {
-            problemType = PROBLEM_NAME_INVALID;
-            problemMessage = NLS.bind(IDEWorkbenchMessages.ResourceGroup_invalidFilename, resourceName);
-            return false;
-        }
-        return true;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/FileInputAdapterFactory.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/FileInputAdapterFactory.java
deleted file mode 100644
index aec5cfe..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/FileInputAdapterFactory.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.internal.ide.model;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.ui.IFileEditorInput;
-
-/**
- * FileInputAdapterFactory is the adapter factory for the 
- * IFileEditorInput.
- * @since 3.2
- *
- */
-
-public class FileInputAdapterFactory 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 IFileEditorInput)
-			return ((IFileEditorInput) adaptableObject).getAdapter(adapterType);
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-	 */
-	public Class[] getAdapterList() {
-		return new Class[] { IFileEditorInput.class };
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/ResourceFactory.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/ResourceFactory.java
deleted file mode 100644
index 3b73460..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/ResourceFactory.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.internal.ide.model;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ui.IElementFactory;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistableElement;
-
-/**
- * The ResourceFactory is used to save and recreate an IResource object.
- * As such, it implements the IPersistableElement interface for storage
- * and the IElementFactory interface for recreation.
- *
- * @see IMemento
- * @see IPersistableElement
- * @see IElementFactory
- */
-public class ResourceFactory implements IElementFactory, IPersistableElement {
-
-    // These persistence constants are stored in XML.  Do not
-    // change them.
-    private static final String TAG_PATH = "path";//$NON-NLS-1$
-
-    private static final String TAG_TYPE = "type";//$NON-NLS-1$
-
-    private static final String FACTORY_ID = "org.eclipse.ui.internal.model.ResourceFactory";//$NON-NLS-1$
-
-    // IPersistable data.
-    private IResource res;
-
-    /**
-     * Create a ResourceFactory.  This constructor is typically used
-     * for our IElementFactory side.
-     */
-    public ResourceFactory() {
-    }
-
-    /**
-     * Create a ResourceFactory.  This constructor is typically used
-     * for our IPersistableElement side.
-     */
-    public ResourceFactory(IResource input) {
-        res = input;
-    }
-
-    /**
-     * @see IElementFactory
-     */
-    public IAdaptable createElement(IMemento memento) {
-        // Get the file name.
-        String fileName = memento.getString(TAG_PATH);
-        if (fileName == null) {
-			return null;
-		}
-
-        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-        String type = memento.getString(TAG_TYPE);
-        if (type == null) {
-            // Old format memento. Create an IResource using findMember. 
-            // Will return null for resources in closed projects.
-            res = root.findMember(new Path(fileName));
-        } else {
-            int resourceType = Integer.parseInt(type);
-
-            if (resourceType == IResource.ROOT) {
-				res = root;
-			} else if (resourceType == IResource.PROJECT) {
-				res = root.getProject(fileName);
-			} else if (resourceType == IResource.FOLDER) {
-				res = root.getFolder(new Path(fileName));
-			} else if (resourceType == IResource.FILE) {
-				res = root.getFile(new Path(fileName));
-			}
-        }
-        return res;
-    }
-
-    /**
-     * @see IPersistableElement
-     */
-    public String getFactoryId() {
-        return FACTORY_ID;
-    }
-
-    /**
-     * @see IPersistableElement
-     */
-    public void saveState(IMemento memento) {
-        memento.putString(TAG_PATH, res.getFullPath().toString());
-        memento.putString(TAG_TYPE, Integer.toString(res.getType()));
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/StandardPropertiesAdapterFactory.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/StandardPropertiesAdapterFactory.java
deleted file mode 100644
index f305f98..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/StandardPropertiesAdapterFactory.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.ui.internal.ide.model;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.ui.views.properties.FilePropertySource;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.ResourcePropertySource;
-
-/**
- * Dispenses an <code>IPropertySource</code> adapter for the core resource objects.
- */
-/* package */class StandardPropertiesAdapterFactory implements IAdapterFactory {
-    /* (non-Javadoc)
-     * Method declared on IAdapterFactory.
-     */
-    public Object getAdapter(Object o, Class adapterType) {
-        if (adapterType.isInstance(o)) {
-            return o;
-        }
-        if (adapterType == IPropertySource.class) {
-            if (o instanceof IResource) {
-                IResource resource = (IResource) o;
-                if (resource.getType() == IResource.FILE) {
-					return new FilePropertySource((IFile) o);
-				} else {
-					return new ResourcePropertySource((IResource) o);
-				}
-            }
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdapterFactory.
-     */
-    public Class[] getAdapterList() {
-        return new Class[] { IPropertySource.class };
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchAdapterBuilder.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchAdapterBuilder.java
deleted file mode 100644
index 17321af..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchAdapterBuilder.java
+++ /dev/null
@@ -1,50 +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.ide.model;
-
-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.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * Registers the adapters on core constructs
- * used in the workbench UI.
- */
-public final class WorkbenchAdapterBuilder {
-    /**
-     * Creates extenders and registers 
-     */
-    public static void registerAdapters() {
-        IAdapterManager manager = Platform.getAdapterManager();
-        IAdapterFactory factory = new WorkbenchAdapterFactory();
-        manager.registerAdapters(factory, IWorkspace.class);
-        manager.registerAdapters(factory, IWorkspaceRoot.class);
-        manager.registerAdapters(factory, IProject.class);
-        manager.registerAdapters(factory, IFolder.class);
-        manager.registerAdapters(factory, IFile.class);
-        manager.registerAdapters(factory, IMarker.class);
-
-        // properties adapters
-        IAdapterFactory paFactory = new StandardPropertiesAdapterFactory();
-        manager.registerAdapters(paFactory, IWorkspace.class);
-        manager.registerAdapters(paFactory, IWorkspaceRoot.class);
-        manager.registerAdapters(paFactory, IProject.class);
-        manager.registerAdapters(paFactory, IFolder.class);
-        manager.registerAdapters(paFactory, IFile.class);
-        manager.registerAdapters(paFactory, IMarker.class);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchAdapterFactory.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchAdapterFactory.java
deleted file mode 100644
index 8dd1048..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchAdapterFactory.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.internal.ide.model;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.ui.IActionFilter;
-import org.eclipse.ui.IElementFactory;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * Dispenses adapters for various core objects.
- * Returns IWorkbenchAdapter adapters, used for displaying,
- * navigating, and populating menus for core objects.
- */
-class WorkbenchAdapterFactory implements IAdapterFactory {
-    private Object workspaceAdapter = new WorkbenchWorkspace();
-
-    private Object rootAdapter = new WorkbenchRootResource();
-
-    private Object projectAdapter = new WorkbenchProject();
-
-    private Object folderAdapter = new WorkbenchFolder();
-
-    private Object fileAdapter = new WorkbenchFile();
-
-    private Object markerAdapter = new WorkbenchMarker();
-
-    private Object resourceFactory = new ResourceFactory();
-
-    private Object workspaceFactory = new WorkspaceFactory();
-
-    /**
-     * Returns the IActionFilter for an object.
-     */
-    protected Object getActionFilter(Object o) {
-        if (o instanceof IResource) {
-            switch (((IResource) o).getType()) {
-            case IResource.FILE:
-                return fileAdapter;
-            case IResource.FOLDER:
-                return folderAdapter;
-            case IResource.PROJECT:
-                return projectAdapter;
-            }
-        }
-        if (o instanceof IMarker) {
-            return markerAdapter;
-        }
-        return null;
-    }
-
-    /**
-     * Returns an object which is an instance of the given class
-     * associated with the given object. Returns <code>null</code> if
-     * no such object can be found.
-     *
-     * @param o the adaptable object being queried
-     *   (usually an instance of <code>IAdaptable</code>)
-     * @param adapterType the type of adapter to look up
-     * @return a object castable to the given adapter type, 
-     *    or <code>null</code> if this adapter provider 
-     *    does not have an adapter of the given type for the
-     *    given object
-     */
-    public Object getAdapter(Object o, Class adapterType) {
-        if (adapterType.isInstance(o)) {
-            return o;
-        }
-        if (adapterType == IWorkbenchAdapter.class) {
-            return getWorkbenchElement(o);
-        }
-        if (adapterType == IPersistableElement.class) {
-            return getPersistableElement(o);
-        }
-        if (adapterType == IElementFactory.class) {
-            return getElementFactory(o);
-        }
-        if (adapterType == IActionFilter.class) {
-            return getActionFilter(o);
-        }
-        if (adapterType == IUndoContext.class) {
-        	return getUndoContext(o);
-        }
-        return null;
-    }
-
-    /**
-     * Returns the collection of adapter types handled by this
-     * provider.
-     * <p>
-     * This method is generally used by an adapter manager
-     * to discover which adapter types are supported, in advance
-     * of dispatching any actual <code>getAdapter</code> requests.
-     * </p>
-     *
-     * @return the collection of adapter types
-     */
-    public Class[] getAdapterList() {
-        return new Class[] { IWorkbenchAdapter.class, IElementFactory.class,
-                IPersistableElement.class, IActionFilter.class, IUndoContext.class };
-    }
-
-    /**
-     * Returns an object which is an instance of IElementFactory
-     * associated with the given object. Returns <code>null</code> if
-     * no such object can be found.
-     */
-    protected Object getElementFactory(Object o) {
-        if (o instanceof IResource) {
-            return resourceFactory;
-        }
-        if (o instanceof IWorkspace) {
-            return workspaceFactory;
-        }
-        return null;
-    }
-
-    /**
-     * Returns an object which is an instance of IPersistableElement
-     * associated with the given object. Returns <code>null</code> if
-     * no such object can be found.
-     */
-    protected Object getPersistableElement(Object o) {
-        if (o instanceof IResource) {
-            return new ResourceFactory((IResource) o);
-        }
-        if (o instanceof IWorkspace) {
-            return workspaceFactory;
-        }
-        return null;
-    }
-
-    /**
-     * Returns an object which is an instance of IWorkbenchAdapter
-     * associated with the given object. Returns <code>null</code> if
-     * no such object can be found.
-     */
-    protected Object getWorkbenchElement(Object o) {
-        if (o instanceof IResource) {
-            switch (((IResource) o).getType()) {
-            case IResource.FILE:
-                return fileAdapter;
-            case IResource.FOLDER:
-                return folderAdapter;
-            case IResource.PROJECT:
-                return projectAdapter;
-            }
-        }
-        if (o instanceof IWorkspaceRoot) {
-            return rootAdapter;
-        }
-        if (o instanceof IWorkspace) {
-            return workspaceAdapter;
-        }
-        if (o instanceof IMarker) {
-            return markerAdapter;
-        }
-        return null;
-    }
-    
-    /**
-     * Returns the IUndoContext for an object.
-     */
-    protected Object getUndoContext(Object o) {
-        if (o instanceof IWorkspace) {
-            return PlatformUI.getWorkbench().getOperationSupport().getUndoContext();
-        }
-        return null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchFile.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchFile.java
deleted file mode 100644
index 79b241c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchFile.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.ui.internal.ide.model;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * An IWorkbenchAdapter that represents IFiles.
- */
-public class WorkbenchFile extends WorkbenchResource {
-
-	/**
-     *	Answer the appropriate base image to use for the passed resource, optionally
-     *	considering the passed open status as well iff appropriate for the type of
-     *	passed resource
-     */
-    protected ImageDescriptor getBaseImage(IResource resource) {
-		IContentType contentType = null;
-		// do we need to worry about checking here?
-		if (resource instanceof IFile) {
-			contentType = IDE.guessContentType((IFile)resource);
-		}
-        // @issue move IDE specific images
-        ImageDescriptor image = PlatformUI.getWorkbench().getEditorRegistry()
-                .getImageDescriptor(resource.getName(), contentType);
-        if (image == null) {
-			image = PlatformUI.getWorkbench().getSharedImages()
-                    .getImageDescriptor(ISharedImages.IMG_OBJ_FILE);
-		}
-        return image;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchFolder.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchFolder.java
deleted file mode 100644
index 8a86aaf..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchFolder.java
+++ /dev/null
@@ -1,44 +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.ide.model;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * An IWorkbenchAdapter that represents IFolders.
- */
-public class WorkbenchFolder extends WorkbenchResource {
-    /**
-     *	Answer the appropriate base image to use for the passed resource, optionally
-     *	considering the passed open status as well iff appropriate for the type of
-     *	passed resource
-     */
-    protected ImageDescriptor getBaseImage(IResource resource) {
-        return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(
-                ISharedImages.IMG_OBJ_FOLDER);
-    }
-
-    /**
-     * Returns the children of this container.
-     */
-    public Object[] getChildren(Object o) {
-        try {
-            return ((IContainer) o).members();
-        } catch (CoreException e) {
-            return NO_CHILDREN;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchMarker.java
deleted file mode 100644
index 7436363..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchMarker.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.model;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IMarkerActionFilter;
-import org.eclipse.ui.actions.SimpleWildcardTester;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.model.WorkbenchAdapter;
-
-/**
- * Model object for adapting IMarker objects to the IWorkbenchAdapter
- * interface.
- */
-public class WorkbenchMarker extends WorkbenchAdapter implements
-        IMarkerActionFilter {
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
-     */
-    public ImageDescriptor getImageDescriptor(Object o) {
-        if (!(o instanceof IMarker)) {
-			return null;
-		}
-        return IDEWorkbenchPlugin.getDefault().getMarkerImageProviderRegistry()
-                .getImageDescriptor((IMarker) o);
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
-     */
-    public String getLabel(Object o) {
-        IMarker marker = (IMarker) o;
-        return marker.getAttribute(IMarker.MESSAGE, "");//$NON-NLS-1$
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
-     */
-    public Object getParent(Object o) {
-        return ((IMarker) o).getResource();
-    }
-
-    /**
-     * Returns whether the specific attribute matches the state of the target
-     * object.
-     *
-     * @param target the target object
-     * @param name the attribute name
-     * @param value the attriute value
-     * @return <code>true</code> if the attribute matches; <code>false</code> otherwise
-     */
-    public boolean testAttribute(Object target, String name, String value) {
-        IMarker marker = (IMarker) target;
-        if (name.equals(TYPE)) {
-            try {
-                return value.equals(marker.getType());
-            } catch (CoreException e) {
-                return false;
-            }
-        } else if (name.equals(SUPER_TYPE)) {
-            try {
-                return marker.isSubtypeOf(value);
-            } catch (CoreException e) {
-                return false;
-            }
-        } else if (name.equals(PRIORITY)) {
-            return testIntegerAttribute(marker, IMarker.PRIORITY, value);
-        } else if (name.equals(SEVERITY)) {
-            return testIntegerAttribute(marker, IMarker.SEVERITY, value);
-        } else if (name.equals(MESSAGE)) {
-            try {
-                String msg = (String) marker.getAttribute(IMarker.MESSAGE);
-                if (msg == null) {
-					return false;
-				}
-                return SimpleWildcardTester.testWildcardIgnoreCase(value, msg);
-            } catch (CoreException e) {
-                return false;
-            }
-        } else if (name.equals(DONE)) {
-            try {
-                value = value.toLowerCase();
-                Boolean done = (Boolean) marker.getAttribute(IMarker.DONE);
-                if (done == null) {
-					return false;
-				}
-                return (done.booleanValue() == value.equals("true"));//$NON-NLS-1$
-            } catch (CoreException e) {
-                return false;
-            }
-        } else if (name.equals(RESOURCE_TYPE)) {
-            int desiredType = 0;
-
-            try {
-                desiredType = Integer.parseInt(value);
-            } catch (NumberFormatException eNumberFormat) {
-            }
-
-            if (!(desiredType == IResource.FILE
-                    || desiredType == IResource.FOLDER
-                    || desiredType == IResource.PROJECT || desiredType == IResource.ROOT)) {
-				return false;
-			}
-
-            return (marker.getResource().getType() & desiredType) > 0;
-        }
-        return false;
-    }
-
-    /**
-     * Returns whether the specific integer attribute matches a value.
-     */
-    private boolean testIntegerAttribute(IMarker marker, String attrName,
-            String value) {
-        Integer i1, i2;
-        try {
-            i1 = (Integer) marker.getAttribute(attrName);
-            if (i1 == null) {
-				return false;
-			}
-        } catch (CoreException e) {
-            return false;
-        }
-        try {
-            i2 = Integer.valueOf(value);
-        } catch (NumberFormatException e) {
-            return false;
-        }
-        return i1.equals(i2);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchProject.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchProject.java
deleted file mode 100644
index ec8efd3..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchProject.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.internal.ide.model;
-
-import java.util.HashMap;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.IProjectActionFilter;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.misc.OverlayIcon;
-
-/**
- * An IWorkbenchAdapter that represents IProject.
- */
-public class WorkbenchProject extends WorkbenchResource implements
-        IProjectActionFilter {
-    HashMap imageCache = new HashMap(11);
-
-    /**
-     *	Answer the appropriate base image to use for the passed resource, optionally
-     *	considering the passed open status as well iff appropriate for the type of
-     *	passed resource
-     */
-    protected ImageDescriptor getBaseImage(IResource resource) {
-        IProject project = (IProject) resource;
-        boolean isOpen = project.isOpen();
-        String baseKey = isOpen ? IDE.SharedImages.IMG_OBJ_PROJECT
-                : IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED;
-        if (isOpen) {
-            try {
-                String[] natureIds = project.getDescription().getNatureIds();
-                for (int i = 0; i < natureIds.length; ++i) {
-                    // Have to use a cache because OverlayIcon does not define its own equality criteria,
-                    // so WorkbenchLabelProvider would always create a new image otherwise.
-                    String imageKey = natureIds[i];
-                    ImageDescriptor overlayImage = (ImageDescriptor) imageCache
-                            .get(imageKey);
-                    if (overlayImage != null) {
-                        return overlayImage;
-                    }
-                    ImageDescriptor natureImage = IDEWorkbenchPlugin
-                            .getDefault().getProjectImageRegistry()
-                            .getNatureImage(natureIds[i]);
-                    if (natureImage != null) {
-                        ImageDescriptor baseImage = IDEInternalWorkbenchImages
-                                .getImageDescriptor(baseKey);
-                        overlayImage = new OverlayIcon(baseImage,
-                                new ImageDescriptor[][] { { natureImage } },
-                                new Point(16, 16));
-                        imageCache.put(imageKey, overlayImage);
-                        return overlayImage;
-                    }
-                }
-            } catch (CoreException e) {
-            }
-        }
-        return IDEInternalWorkbenchImages.getImageDescriptor(baseKey);
-    }
-
-    /**
-     * Returns the children of this container.
-     */
-    public Object[] getChildren(Object o) {
-        IProject project = (IProject) o;
-        if (project.isOpen()) {
-            try {
-                return project.members();
-            } catch (CoreException e) {
-                //don't get the children if there are problems with the project
-            }
-        }
-        return NO_CHILDREN;
-    }
-
-    /**
-     * Returns whether the specific attribute matches the state of the target
-     * object.
-     *
-     * @param target the target object
-     * @param name the attribute name
-     * @param value the attriute value
-     * @return <code>true</code> if the attribute matches; <code>false</code> otherwise
-     */
-    public boolean testAttribute(Object target, String name, String value) {
-        if (!(target instanceof IProject)) {
-            return false;
-        }
-        IProject proj = (IProject) target;
-        if (name.equals(NATURE)) {
-            try {
-                return proj.isAccessible() && proj.hasNature(value);
-            } catch (CoreException e) {
-                return false;
-            }
-        } else if (name.equals(OPEN)) {
-            value = value.toLowerCase();
-            return (proj.isOpen() == value.equals("true"));//$NON-NLS-1$
-        }
-        return super.testAttribute(target, name, value);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchResource.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchResource.java
deleted file mode 100644
index 4f4d97c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchResource.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.model;
-
-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.IAdaptable;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IResourceActionFilter;
-import org.eclipse.ui.actions.SimpleWildcardTester;
-import org.eclipse.ui.model.WorkbenchAdapter;
-
-/**
- * An IWorkbenchAdapter that represents IResources.
- */
-public abstract class WorkbenchResource extends WorkbenchAdapter implements
-        IResourceActionFilter {
-
-    /**
-     *	Answer the appropriate base image to use for the resource.
-     */
-    protected abstract ImageDescriptor getBaseImage(IResource resource);
-
-    /**
-     * Returns an image descriptor for this object.
-     */
-    public ImageDescriptor getImageDescriptor(Object o) {
-        IResource resource = getResource(o);
-        return resource == null ? null : getBaseImage(resource);
-    }
-
-    /**
-     * getLabel method comment.
-     */
-    public String getLabel(Object o) {
-        IResource resource = getResource(o);
-        return resource == null ? null : resource.getName();
-    }
-
-    /**
-     * Returns the parent of the given object.  Returns null if the
-     * parent is not available.
-     */
-    public Object getParent(Object o) {
-        IResource resource = getResource(o);
-        return resource == null ? null : resource.getParent();
-    }
-
-    /**
-     * Returns the resource corresponding to this object,
-     * or null if there is none.
-     */
-    protected IResource getResource(Object o) {
-        if (o instanceof IResource) {
-            return (IResource) o;
-        }
-        if (o instanceof IAdaptable) {
-            return (IResource) ((IAdaptable) o).getAdapter(IResource.class);
-        }
-        return null;
-    }
-
-    /**
-     * Returns whether the specific attribute matches the state of the target
-     * object.
-     *
-     * @param target the target object
-     * @param name the attribute name
-     * @param value the attribute value
-     * @return <code>true</code> if the attribute matches; <code>false</code> otherwise
-     */
-    public boolean testAttribute(Object target, String name, String value) {
-        if (!(target instanceof IResource)) {
-            return false;
-        }
-        IResource res = (IResource) target;
-        if (name.equals(NAME)) {
-            return SimpleWildcardTester.testWildcardIgnoreCase(value, res
-                    .getName());
-        } else if (name.equals(PATH)) {
-            return SimpleWildcardTester.testWildcardIgnoreCase(value, res
-                    .getFullPath().toString());
-        } else if (name.equals(EXTENSION)) {
-            return SimpleWildcardTester.testWildcardIgnoreCase(value, res
-                    .getFileExtension());
-        } else if (name.equals(READ_ONLY)) {
-            return (res.isReadOnly() == value.equalsIgnoreCase("true"));//$NON-NLS-1$
-        } else if (name.equals(PROJECT_NATURE)) {
-            try {
-                IProject proj = res.getProject();
-                return proj.isAccessible() && proj.hasNature(value);
-            } catch (CoreException e) {
-                return false;
-            }
-        } else if (name.equals(PERSISTENT_PROPERTY)) {
-            return testProperty(res, true, false, value);
-        } else if (name.equals(PROJECT_PERSISTENT_PROPERTY)) {
-            return testProperty(res, true, true, value);
-        } else if (name.equals(SESSION_PROPERTY)) {
-            return testProperty(res, false, false, value);
-        } else if (name.equals(PROJECT_SESSION_PROPERTY)) {
-            return testProperty(res, false, true, value);
-        } else if (name.equals(CONTENT_TYPE_ID)) {
-            return testContentTypeProperty(res, value);
-        }
-        return false;
-    }
-
-    /**
-     * Tests whether the content type for <code>resource</code> matches the
-     * <code>contentTypeId</code>. It is possible that this method call could
-     * cause the resource to be read. It is also possible (through poor plug-in
-     * design) for this method to load plug-ins.
-     * 
-     * @param resource
-     *            The resource for which the content type should be determined;
-     *            must not be <code>null</code>.
-     * @param contentTypeId
-     *            The expected content type; must not be <code>null</code>.
-     * @return <code>true</code> iff the best matching content type has an
-     *         identifier that matches <code>contentTypeId</code>;
-     *         <code>false</code> otherwise.
-     */
-    private final boolean testContentTypeProperty(final IResource resource,
-            final String contentTypeId) {
-        final String expectedValue = contentTypeId.trim();
-
-        if (!(resource instanceof IFile)) {
-            return false;
-        }
-
-        final IFile file = (IFile) resource;
-        String actualValue = null;
-
-        try {
-            final IContentDescription contentDescription = file
-                    .getContentDescription();
-
-            if (contentDescription != null) {
-                final IContentType contentType = contentDescription
-                        .getContentType();
-                actualValue = contentType.getId();
-            }
-        } catch (CoreException e) {
-            //ignore - this just means the file does not exist or is not accessible
-        }
-
-        return expectedValue == null || expectedValue.equals(actualValue);
-    }
-
-    /**
-     * Tests whether a session or persistent property on the resource or its project
-     * matches the given value.
-     * 
-     * @param resource
-     *            the resource to check
-     * @param persistentFlag
-     *            <code>true</code> for a persistent property, <code>false</code>
-     *            for a session property
-     * @param projectFlag
-     *            <code>true</code> to check the resource's project,
-     *            <code>false</code> to check the resource itself
-     * @param value
-     *            the attribute value, which has either the form "propertyName" or
-     *            "propertyName=propertyValue"
-     * @return whether there is a match
-     */
-    private boolean testProperty(IResource resource, boolean persistentFlag,
-            boolean projectFlag, String value) {
-        String propertyName;
-        String expectedVal;
-        int i = value.indexOf('=');
-        if (i != -1) {
-            propertyName = value.substring(0, i).trim();
-            expectedVal = value.substring(i + 1).trim();
-        } else {
-            propertyName = value.trim();
-            expectedVal = null;
-        }
-        try {
-            QualifiedName key;
-            int dot = propertyName.lastIndexOf('.');
-            if (dot != -1) {
-                key = new QualifiedName(propertyName.substring(0, dot),
-                        propertyName.substring(dot + 1));
-            } else {
-                key = new QualifiedName(null, propertyName);
-            }
-            IResource resToCheck = projectFlag ? resource.getProject()
-                    : resource;
-            // getProject() on workspace root can be null
-            if (resToCheck == null) {
-                return false;
-            }
-            if (persistentFlag) {
-                String actualVal = resToCheck.getPersistentProperty(key);
-                if (actualVal == null) {
-                    return false;
-                }
-                return expectedVal == null || expectedVal.equals(actualVal);
-            } 
-
-            Object actualVal = resToCheck.getSessionProperty(key);
-             if (actualVal == null) {
-				return false;
-			}
-              
-             return expectedVal == null
-                        || expectedVal.equals(actualVal.toString());
-            
-        } catch (CoreException e) {
-            // ignore
-        }
-        return false;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchRootResource.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchRootResource.java
deleted file mode 100644
index 77ef5eb..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchRootResource.java
+++ /dev/null
@@ -1,50 +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.ide.model;
-
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.model.WorkbenchAdapter;
-
-/**
- * An IWorkbenchAdapter implementation for IWorkspaceRoot objects.
- */
-public class WorkbenchRootResource extends WorkbenchAdapter {
-    /**
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(Object)
-     * Returns the children of the root resource.
-     */
-    public Object[] getChildren(Object o) {
-        IWorkspaceRoot root = (IWorkspaceRoot) o;
-        return root.getProjects();
-    }
-
-    /**
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(Object)
-     */
-    public ImageDescriptor getImageDescriptor(Object object) {
-    	return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(
-                ISharedImages.IMG_OBJ_ELEMENT);
-    }
-
-    /**
-     * Returns the name of this element.  This will typically
-     * be used to assign a label to this object when displayed
-     * in the UI.
-     */
-    public String getLabel(Object o) {
-        //root resource has no name
-        return IDEWorkbenchMessages.Workspace;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchStatus.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchStatus.java
deleted file mode 100644
index 81e6d34..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchStatus.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.internal.ide.model;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.model.WorkbenchAdapter;
-
-/**
- * UI manfestation of a status object.
- */
-public class WorkbenchStatus extends WorkbenchAdapter implements IAdaptable {
-    private IStatus status;
-
-    private Object[] children;
-
-    public WorkbenchStatus(IStatus status) {
-        this.status = status;
-    }
-
-    /**
-     * Returns an object which is an instance of the given class
-     * associated with this object. Returns <code>null</code> if
-     * no such object can be found.
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IWorkbenchAdapter.class) {
-			return this;
-		}
-        return null;
-    }
-
-    /**
-     * Returns the children of this element.
-     */
-    public Object[] getChildren(Object o) {
-        if (children == null) {
-            IStatus[] childStatii = status.getChildren();
-            children = new Object[childStatii.length];
-            for (int i = 0; i < childStatii.length; i++) {
-                children[i] = new WorkbenchStatus(childStatii[i]);
-            }
-        }
-        return children;
-    }
-
-    /**
-     * @see IWorkbenchAdapter#getLabel
-     */
-    public String getLabel(Object o) {
-        return status.getMessage();
-    }
-
-    /**
-     * Returns the wrapped status object.
-     */
-    public IStatus getStatus() {
-        return status;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchWorkspace.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchWorkspace.java
deleted file mode 100644
index 92d426b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkbenchWorkspace.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.internal.ide.model;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.model.WorkbenchAdapter;
-
-/**
- * IWorkbenchAdapter adapter for the IWorkspace object.
- */
-public class WorkbenchWorkspace extends WorkbenchAdapter {
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
-     */
-    public Object[] getChildren(Object o) {
-        IWorkspace workspace = (IWorkspace) o;
-        return workspace.getRoot().getProjects();
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
-     */
-    public ImageDescriptor getImageDescriptor(Object object) {
-        return null;
-    }
-
-    /**
-     * getLabel method comment.
-     */
-    public String getLabel(Object o) {
-        //workspaces don't have a name
-        return IDEWorkbenchMessages.Workspace;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkingSetAdapterFactory.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkingSetAdapterFactory.java
deleted file mode 100644
index cab89ec..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkingSetAdapterFactory.java
+++ /dev/null
@@ -1,208 +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.ide.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IContributorResourceAdapter;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.ide.IContributorResourceAdapter2;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * Adapter factory which provides a ResourceMapping for a working set
- */
-public class WorkingSetAdapterFactory implements IAdapterFactory {
-
-	/*
-	 * Adapter for converting a working set to a resource mapping for use by
-	 * object contributions.
-	 */
-	class ContributorResourceAdapter implements IContributorResourceAdapter2 {
-
-		public ResourceMapping getAdaptedResourceMapping(IAdaptable adaptable) {
-			if (adaptable instanceof IWorkingSet) {
-				IWorkingSet workingSet = (IWorkingSet) adaptable;
-				IAdaptable[] elements = workingSet.getElements();
-				List result = new ArrayList();
-				for (int i = 0; i < elements.length; i++) {
-					IAdaptable element = elements[i];
-					ResourceMapping mapping = getContributedResourceMapping(element);
-					if (mapping == null) {
-						mapping = getResourceMapping(element);
-					}
-					if (mapping != null) {
-						result.add(mapping);
-					}
-				}
-				if (!result.isEmpty()) {
-					return new WorkingSetResourceMapping(workingSet);
-				}
-			}
-			return null;
-		}
-
-		public IResource getAdaptedResource(IAdaptable adaptable) {
-			// Working sets don't adapt to IResource
-			return null;
-		}
-
-	}
-
-	class WorkbenchAdapter implements IWorkbenchAdapter {
-
-		public Object[] getChildren(Object o) {
-			if (o instanceof IWorkingSet) {
-				IWorkingSet set = (IWorkingSet) o;
-				return set.getElements();
-			}
-			return null;
-		}
-
-		public ImageDescriptor getImageDescriptor(Object o) {
-			if (o instanceof IWorkingSet) {
-				IWorkingSet set = (IWorkingSet) o;
-				return set.getImageDescriptor();
-			}
-			return null;
-		}
-
-		public String getLabel(Object o) {
-			if (o instanceof IWorkingSet) {
-				IWorkingSet set = (IWorkingSet) o;
-				return set.getLabel();
-			}
-			return null;
-		}
-
-		public Object getParent(Object o) {
-			return null;
-		}
-
-	}
-
-	private IContributorResourceAdapter2 contributorResourceAdapter = new ContributorResourceAdapter();
-
-	private IWorkbenchAdapter workbenchAdapter = new WorkbenchAdapter();
-
-	/*
-	 * (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 IWorkingSet) {
-			if (adapterType == IContributorResourceAdapter.class) {
-				return contributorResourceAdapter;
-			}
-			if (adapterType == IWorkbenchAdapter.class) {
-				return workbenchAdapter;
-			}
-			if (adapterType == ResourceMapping.class) {
-				IWorkingSet workingSet = (IWorkingSet) adaptableObject;
-				IAdaptable[] elements = workingSet.getElements();
-				List result = new ArrayList();
-				for (int i = 0; i < elements.length; i++) {
-					IAdaptable element = elements[i];
-					ResourceMapping mapping = getResourceMapping(element);
-					if (mapping != null) {
-						result.add(mapping);
-					}
-				}
-				if (!result.isEmpty()) {
-					return new WorkingSetResourceMapping(workingSet);
-				}
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-	 */
-	public Class[] getAdapterList() {
-		return new Class[] { IContributorResourceAdapter2.class,
-				IWorkbenchAdapter.class, ResourceMapping.class };
-	}
-
-	static ResourceMapping getResourceMapping(Object o) {
-		// First, ask the object directly for a resource mapping
-		Object mapping = internalGetAdapter(o, ResourceMapping.class);
-		if (mapping instanceof ResourceMapping) {
-			return (ResourceMapping) mapping;
-		}
-		// If this fails, ask for a resource and convert to a resource mapping
-		Object resource = internalGetAdapter(o, IResource.class);
-		if (resource != null) {
-			mapping = internalGetAdapter(resource, ResourceMapping.class);
-			if (mapping instanceof ResourceMapping) {
-				return (ResourceMapping) mapping;
-			}
-		}
-		return null;
-	}
-
-	static ResourceMapping getContributedResourceMapping(
-			IAdaptable element) {
-		Object resourceAdapter = internalGetAdapter(element,
-				IContributorResourceAdapter.class);
-		if (resourceAdapter != null) {
-			if (resourceAdapter instanceof IContributorResourceAdapter2) {
-				// First, use the mapping contributor adapter to get the mapping
-				IContributorResourceAdapter2 mappingAdapter = (IContributorResourceAdapter2) resourceAdapter;
-				ResourceMapping mapping = mappingAdapter
-						.getAdaptedResourceMapping(element);
-				if (mapping != null) {
-					return mapping;
-				}
-			}
-			if (resourceAdapter instanceof IContributorResourceAdapter) {
-				// Next, use the resource adapter to get a resource and then get
-				// the mapping for that resource
-				IResource resource = ((IContributorResourceAdapter) resourceAdapter)
-						.getAdaptedResource(element);
-				if (resource != null) {
-					Object mapping = internalGetAdapter(resource,
-							ResourceMapping.class);
-					if (mapping instanceof ResourceMapping) {
-						return (ResourceMapping) mapping;
-					}
-				}
-			}
-		}
-		return null;
-	}
-
-	static Object internalGetAdapter(Object o, Class adapter) {
-		if (o instanceof IAdaptable) {
-			IAdaptable element = (IAdaptable) o;
-			Object adapted = element.getAdapter(adapter);
-			if (adapted != null) {
-				return adapted;
-			}
-		}
-		// Fallback to the adapter manager in case the object doesn't
-		// implement getAdapter or in the case where the implementation
-		// doesn't consult the manager
-		return Platform.getAdapterManager().getAdapter(o, adapter);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkingSetResourceMapping.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkingSetResourceMapping.java
deleted file mode 100644
index 59763ab..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkingSetResourceMapping.java
+++ /dev/null
@@ -1,132 +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.ide.model;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.mapping.ModelProvider;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.resources.mapping.ResourceMappingContext;
-import org.eclipse.core.resources.mapping.ResourceTraversal;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.ui.IWorkingSet;
-
-/**
- * A resource mapping for working sets
- */
-public class WorkingSetResourceMapping extends ResourceMapping {
-
-	private IWorkingSet set;
-	
-	/**
-	 * Create the resource mapping
-	 * @param workingSet the working set
-	 */
-	public WorkingSetResourceMapping(IWorkingSet workingSet) {
-		set = workingSet;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.resources.mapping.ResourceMapping#getModelObject()
-	 */
-	public Object getModelObject() {
-		return set;
-	}
-
-	/* (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() {
-		Set result = new HashSet();
-		ResourceMapping[] mappings = getMappings();
-		for (int i = 0; i < mappings.length; i++) {
-			ResourceMapping mapping = mappings[i];
-			IProject[] projects = mapping.getProjects();
-			for (int j = 0; j < projects.length; j++) {
-				IProject project = projects[j];
-				result.add(project);
-			}
-		}
-		return (IProject[]) result.toArray(new IProject[result.size()]);
-	}
-
-	/* (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) throws CoreException {
-		if (monitor == null)
-			monitor = new NullProgressMonitor();
-		try {
-			ResourceMapping[] mappings = getMappings();
-			monitor.beginTask(null, 100 * mappings.length);
-			List result = new ArrayList();
-			for (int i = 0; i < mappings.length; i++) {
-				ResourceMapping mapping = mappings[i];
-				result.addAll(Arrays.asList(mapping.getTraversals(context, new SubProgressMonitor(monitor, 100))));
-			}
-			return (ResourceTraversal[]) result.toArray(new ResourceTraversal[result.size()]);
-		} finally {
-			monitor.done();
-		}
-	}
-
-	/**
-	 * Return the mappings contained in the set.
-	 * @return the mappings contained in the set
-	 */
-	private ResourceMapping[] getMappings() {
-		IAdaptable[] elements = set.getElements();
-		List result = new ArrayList();
-		for (int i = 0; i < elements.length; i++) {
-			IAdaptable element = elements[i];
-			ResourceMapping mapping = WorkingSetAdapterFactory.getContributedResourceMapping(element);
-			if (mapping == null) {
-				mapping = WorkingSetAdapterFactory.getResourceMapping(element);
-			}
-			if (mapping != null) {
-				result.add(mapping);
-			}
-		}
-		return (ResourceMapping[]) result.toArray(new ResourceMapping[result.size()]);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.resources.mapping.ResourceMapping#contains(org.eclipse.core.resources.mapping.ResourceMapping)
-	 */
-	public boolean contains(ResourceMapping mapping) {
-		ResourceMapping[] mappings = getMappings();
-		for (int i = 0; i < mappings.length; i++) {
-			ResourceMapping childMapping = mappings[i];
-			if (childMapping.contains(mapping)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkspaceFactory.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkspaceFactory.java
deleted file mode 100644
index 93140f3..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkspaceFactory.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.internal.ide.model;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.IElementFactory;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistableElement;
-
-/**
- * The ResourceFactory is used to save and recreate an IResource object.
- * As such, it implements the IPersistableElement interface for storage
- * and the IElementFactory interface for recreation.
- *
- * @see IMemento
- * @see IPersistableElement
- * @see IElementFactory
- */
-public class WorkspaceFactory implements IElementFactory, IPersistableElement {
-    private static final String FACTORY_ID = "org.eclipse.ui.internal.model.WorkspaceFactory";//$NON-NLS-1$
-
-    /**
-     * Create a ResourceFactory.  This constructor is typically used
-     * for our IElementFactory side.
-     */
-    public WorkspaceFactory() {
-    }
-
-    /**
-     * @see IElementFactory
-     */
-    public IAdaptable createElement(IMemento memento) {
-        return ResourcesPlugin.getWorkspace();
-    }
-
-    /**
-     * @see IPersistableElement
-     */
-    public String getFactoryId() {
-        return FACTORY_ID;
-    }
-
-    /**
-     * @see IPersistableElement
-     */
-    public void saveState(IMemento memento) {
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/package.html
deleted file mode 100644
index d592579..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/package.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="Author" content="IBM">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<title>Package-level Javadoc</title>
-</head>
-
-<body>
-
-Internal implementation of the IDE-specific portion 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.ide/src/org/eclipse/ui/internal/ide/registry/IDERegistryReader.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/IDERegistryReader.java
deleted file mode 100644
index c108f2e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/IDERegistryReader.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.internal.ide.registry;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Hashtable;
-
-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.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * Template implementation of a registry reader that creates objects
- * representing registry contents. Typically, an extension
- * contains one element, but this reader handles multiple
- * elements per extension.
- *
- * To start reading the extensions from the registry for an
- * extension point, call the method <code>readRegistry</code>.
- *
- * To read children of an IConfigurationElement, call the
- * method <code>readElementChildren</code> from your implementation
- * of the method <code>readElement</code>, as it will not be
- * done by default.
- */
-public abstract class IDERegistryReader {
-    protected static final String TAG_DESCRIPTION = "description"; //$NON-NLS-1$
-
-    protected static Hashtable extensionPoints = new Hashtable();
-
-    private static final Comparator comparer = new Comparator() {
-        public int compare(Object arg0, Object arg1) {
-			IExtension i1 = (IExtension) arg0;
-			String s1 = i1.getNamespace();
-			IExtension i2 = (IExtension) arg1;
-			String s2 = i2.getNamespace();
-			return s1.compareToIgnoreCase(s2);
-		}
-    };
-
-    /**
-     * The constructor.
-     */
-    protected IDERegistryReader() {
-    }
-
-    /**
-     * This method extracts description as a subelement of
-     * the given element.
-     * @return description string if defined, or empty string
-     * if not.
-     */
-    protected String getDescription(IConfigurationElement config) {
-        IConfigurationElement[] children = config.getChildren(TAG_DESCRIPTION);
-        if (children.length >= 1) {
-            return children[0].getValue();
-        }
-        return "";//$NON-NLS-1$
-    }
-
-    /**
-     * Logs the error in the workbench log using the provided
-     * text and the information in the configuration element.
-     */
-    protected void logError(IConfigurationElement element, String text) {
-		IExtension extension = element.getDeclaringExtension();
-		String pluginId = extension.getNamespace();
-		StringBuffer buf = new StringBuffer();
-		buf.append("Plugin " + pluginId + ", extension " //$NON-NLS-2$//$NON-NLS-1$
-				+ extension.getExtensionPointUniqueIdentifier());
-		buf.append("\n" + text);//$NON-NLS-1$
-		IDEWorkbenchPlugin.log(buf.toString());
-	}
-
-    /**
-     * Logs a very common registry error when a required attribute is missing.
-     */
-    protected void logMissingAttribute(IConfigurationElement element,
-            String attributeName) {
-        logError(element,
-                "Required attribute '" + attributeName + "' not defined");//$NON-NLS-2$//$NON-NLS-1$
-    }
-
-    /**
-     * Logs a very common registry error when a required child is missing.
-     */
-    protected void logMissingElement(IConfigurationElement element,
-            String elementName) {
-        logError(element,
-                "Required sub element '" + elementName + "' not defined");//$NON-NLS-2$//$NON-NLS-1$
-    }
-
-    /**
-     * Logs a registry error when the configuration element is unknown.
-     */
-    protected void logUnknownElement(IConfigurationElement element) {
-        logError(element, "Unknown extension tag found: " + element.getName());//$NON-NLS-1$
-    }
-
-    /**
-     *	Apply a reproducable order to the list of extensions
-     * provided, such that the order will not change as
-     * extensions are added or removed.
-     */
-    protected IExtension[] orderExtensions(IExtension[] extensions) {
-        // By default, the order is based on plugin id sorted
-        // in ascending order. The order for a plugin providing
-        // more than one extension for an extension point is
-        // dependent in the order listed in the XML file.
-        IExtension[] sortedExtension = new IExtension[extensions.length];
-        System.arraycopy(extensions, 0, sortedExtension, 0, extensions.length);
-        Collections.sort(Arrays.asList(sortedExtension), comparer);
-        return sortedExtension;
-    }
-
-    /**
-     * Implement this method to read element's attributes.
-     * If children should also be read, then implementor
-     * is responsible for calling <code>readElementChildren</code>.
-     * Implementor is also responsible for logging missing 
-     * attributes.
-     *
-     * @return true if element was recognized, false if not.
-     */
-    protected abstract boolean readElement(IConfigurationElement element);
-
-    /**
-     * Read the element's children. This is called by
-     * the subclass' readElement method when it wants
-     * to read the children of the element.
-     */
-    protected void readElementChildren(IConfigurationElement element) {
-        readElements(element.getChildren());
-    }
-
-    /**
-     * Read each element one at a time by calling the
-     * subclass implementation of <code>readElement</code>.
-     *
-     * Logs an error if the element was not recognized.
-     */
-    protected void readElements(IConfigurationElement[] elements) {
-        for (int i = 0; i < elements.length; i++) {
-            if (!readElement(elements[i])) {
-				logUnknownElement(elements[i]);
-			}
-        }
-    }
-
-    /**
-     * Read one extension by looping through its
-     * configuration elements.
-     */
-    protected void readExtension(IExtension extension) {
-        readElements(extension.getConfigurationElements());
-    }
-
-    /**
-     *	Start the registry reading process using the
-     * supplied plugin ID and extension point.
-     */
-    protected void readRegistry(IExtensionRegistry registry, String pluginId,
-            String extensionPoint) {
-        String pointId = pluginId + "-" + extensionPoint; //$NON-NLS-1$
-        IExtension[] extensions = (IExtension[]) extensionPoints.get(pointId);
-        if (extensions == null) {
-            IExtensionPoint point = registry.getExtensionPoint(pluginId,
-                    extensionPoint);
-            if (point == null) {
-				return;
-			}
-            extensions = point.getExtensions();
-            extensions = orderExtensions(extensions);
-            extensionPoints.put(pointId, extensions);
-        }
-        for (int i = 0; i < extensions.length; i++) {
-			readExtension(extensions[i]);
-		}
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerHelpRegistry.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerHelpRegistry.java
deleted file mode 100644
index 259ccc3..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerHelpRegistry.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.registry;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.IMarkerHelpRegistry;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.IMarkerResolutionGenerator;
-import org.eclipse.ui.IMarkerResolutionGenerator2;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * This class is a registry for marker help
- * contexts and resolutions.
- */
-public class MarkerHelpRegistry implements IMarkerHelpRegistry {
-    /**
-     * Table of queries for marker F1 help.
-     */
-    private Map helpQueries = new HashMap();
-
-    /**
-     * Sorted list of help queries.
-     * Used to ensure that the "most specific"
-     * query is tried first
-     */
-    private List sortedHelpQueries;
-
-    /**
-     * Table of queries for marker resolutions
-     */
-    private Map resolutionQueries = new HashMap();
-
-    /**
-     * Help context id attribute in configuration element
-     */
-    private static final String ATT_HELP = "helpContextId"; //$NON-NLS-1$
-
-    /**
-     * Resolution class attribute name in configuration element
-     */
-    private static final String ATT_CLASS = "class"; //$NON-NLS-1$
-
-    private class QueryComparator implements Comparator {
-        /* (non-Javadoc)
-         * Method declared on Object.
-         */
-        public boolean equals(Object o) {
-            if (!(o instanceof QueryComparator)) {
-				return false;
-			}
-            return true;
-        }
-
-        /* (non-Javadoc)
-         * Method declared on Comparator.
-         */
-        public int compare(Object o1, Object o2) {
-            // more attribues come first
-            MarkerQuery q1 = (MarkerQuery) o1;
-            MarkerQuery q2 = (MarkerQuery) o2;
-
-            int size1 = q1.getAttributes().length;
-            int size2 = q2.getAttributes().length;
-
-            if (size1 > size2) {
-				return -1;
-			}
-            if (size1 == size2) {
-				return 0;
-			}
-            return 1;
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IMarkerHelpRegistry.
-     */
-    public String getHelp(IMarker marker) {
-        if (sortedHelpQueries == null) {
-            Set set = helpQueries.keySet();
-            sortedHelpQueries = new ArrayList(set.size());
-            sortedHelpQueries.addAll(set);
-            Collections.sort(sortedHelpQueries, new QueryComparator());
-        }
-
-        // Return the first match (we assume there is only one)
-        for (Iterator iter = sortedHelpQueries.iterator(); iter.hasNext();) {
-            MarkerQuery query = (MarkerQuery) iter.next();
-            MarkerQueryResult result = query.performQuery(marker);
-            if (result != null) {
-                // See if a matching result is registered
-                Map resultsTable = (Map) helpQueries.get(query);
-                IConfigurationElement element = (IConfigurationElement) resultsTable
-                        .get(result);
-                if (element != null) {
-					// We have a match so return the help context id
-                    return element.getAttribute(ATT_HELP);
-				}
-            }
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IMarkerHelpRegistry.
-     */
-    public boolean hasResolutions(IMarker marker) {
-        // Detect a match
-        for (Iterator iter = resolutionQueries.keySet().iterator(); iter
-                .hasNext();) {
-            MarkerQuery query = (MarkerQuery) iter.next();
-            MarkerQueryResult result = query.performQuery(marker);
-            if (result != null) {
-                // See if a matching result is registered
-                Map resultsTable = (Map) resolutionQueries.get(query);
-                IConfigurationElement element = (IConfigurationElement) resultsTable
-                        .get(result);
-                if (element != null) {
-                    IMarkerResolutionGenerator generator = null;
-                   if (Platform.getBundle(element.getNamespace()).getState()==Bundle.ACTIVE) {
-                         // The element's plugin is loaded so we instantiate the resolution
-                        try {
-                            generator = (IMarkerResolutionGenerator) element
-                                    .createExecutableExtension(ATT_CLASS);
-                        } catch (CoreException e) {
-                            IDEWorkbenchPlugin
-                                    .log(
-                                            "Unable to instantiate resolution generator", e.getStatus()); //$NON-NLS-1$
-                        }
-                        if (generator != null) {
-                            if (generator instanceof IMarkerResolutionGenerator2) {
-                                if (((IMarkerResolutionGenerator2) generator)
-                                        .hasResolutions(marker)) {
-									return true;
-								}
-                            } else {
-                                IMarkerResolution[] resolutions = generator
-                                        .getResolutions(marker);
-                                if (resolutions.length > 0) {
-									// there is at least one resolution
-                                    return true;
-								}
-                            }
-                        }
-                    } else {
-                        // The element's plugin in not loaded so we assume 
-                        // the generator will produce resolutions for the marker
-                        return true;
-                    }
-                }
-            }
-        }
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IMarkerHelpRegistry.
-     */
-    public IMarkerResolution[] getResolutions(IMarker marker) {
-        // Collect all matches
-        ArrayList resolutions = new ArrayList();
-        for (Iterator iter = resolutionQueries.keySet().iterator(); iter
-                .hasNext();) {
-            MarkerQuery query = (MarkerQuery) iter.next();
-            MarkerQueryResult result = query.performQuery(marker);
-            if (result != null) {
-                // See if a matching result is registered
-                Map resultsTable = (Map) resolutionQueries.get(query);
-                IConfigurationElement element = (IConfigurationElement) resultsTable
-                        .get(result);
-                if (element != null) {
-                    IMarkerResolutionGenerator generator = null;
-                    try {
-                        generator = (IMarkerResolutionGenerator) element
-                                .createExecutableExtension(ATT_CLASS);
-                    } catch (CoreException e) {
-                        IDEWorkbenchPlugin
-                                .log(
-                                        "Unable to instantiate resolution generator", e.getStatus()); //$NON-NLS-1$
-                    }
-                    if (generator != null) {
-                        IMarkerResolution[] generatedResolutions = generator
-                                .getResolutions(marker);
-                        for (int i = 0; i < generatedResolutions.length; i++) {
-                            resolutions.add(generatedResolutions[i]);
-                        }
-                    }
-                }
-            }
-        }
-        return (IMarkerResolution[]) resolutions
-                .toArray(new IMarkerResolution[resolutions.size()]);
-    }
-
-    /**
-     * Adds a help query to the registry.
-     * 
-     * @param query a marker query
-     * @param result a result for the given query
-     * @param element the configuration element defining the result
-     */
-    public void addHelpQuery(MarkerQuery query, MarkerQueryResult result,
-            IConfigurationElement element) {
-
-        addQuery(helpQueries, query, result, element);
-    }
-
-    /**
-     * Adds a resolution query to the registry.
-     * 
-     * @param query a marker query
-     * @param result a result for the given query
-     * @param element the configuration element defining the result
-     */
-    public void addResolutionQuery(MarkerQuery query, MarkerQueryResult result,
-            IConfigurationElement element) {
-
-        addQuery(resolutionQueries, query, result, element);
-    }
-
-    /**
-     * Adds a query to the given table.
-     * 
-     * @param table the table to which the query is added
-     * @param query a marker query
-     * @param result a result for the given query
-     * @param element the configuration element defining the result
-     */
-    private void addQuery(Map table, MarkerQuery query,
-            MarkerQueryResult result, IConfigurationElement element) {
-
-        // See if the query is already in the table
-        Map results = (Map) table.get(query);
-        if (results == null) {
-            // Create a new results table
-            results = new HashMap();
-
-            // Add the query to the table
-            table.put(query, results);
-        }
-
-        // Add the new result
-        results.put(result, element);
-    }
-}
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerHelpRegistryReader.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerHelpRegistryReader.java
deleted file mode 100644
index 6de3d6e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerHelpRegistryReader.java
+++ /dev/null
@@ -1,138 +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.ide.registry;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * This class is used to read marker help context ids and 
- * resolutions from the platform registry.
- */
-public class MarkerHelpRegistryReader extends IDERegistryReader {
-    private MarkerHelpRegistry markerHelpRegistry;
-
-    private ArrayList currentAttributeNames;
-
-    private ArrayList currentAttributeValues;
-
-    private static final String TAG_HELP = "markerHelp";//$NON-NLS-1$
-
-    private static final String TAG_RESOLUTION_GENERATOR = "markerResolutionGenerator";//$NON-NLS-1$
-
-    private static final String TAG_ATTRIBUTE = "attribute";//$NON-NLS-1$ 
-
-    private static final String ATT_TYPE = "markerType";//$NON-NLS-1$
-
-    private static final String ATT_NAME = "name";//$NON-NLS-1$
-
-    private static final String ATT_VALUE = "value";//$NON-NLS-1$
-
-    /**
-     * Get the marker help that is defined in the plugin registry
-     * and add it to the given marker help registry.
-     * <p>
-     * Warning:
-     * The marker help registry must be passed in because this 
-     * method is called during the process of setting up the 
-     * marker help registry and at this time it has not been
-     * safely setup with the plugin.
-     * </p>
-     */
-    public void addHelp(MarkerHelpRegistry registry) {
-        IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-        markerHelpRegistry = registry;
-        readRegistry(extensionRegistry, IDEWorkbenchPlugin.IDE_WORKBENCH,
-                IDEWorkbenchPlugin.PL_MARKER_HELP);
-        readRegistry(extensionRegistry, IDEWorkbenchPlugin.IDE_WORKBENCH,
-                IDEWorkbenchPlugin.PL_MARKER_RESOLUTION);
-    }
-
-    /**
-     * Processes one configuration element or child element.
-     */
-    protected boolean readElement(IConfigurationElement element) {
-        if (element.getName().equals(TAG_HELP)) {
-            readHelpElement(element);
-            return true;
-        }
-        if (element.getName().equals(TAG_RESOLUTION_GENERATOR)) {
-            readResolutionElement(element);
-            return true;
-        }
-        if (element.getName().equals(TAG_ATTRIBUTE)) {
-            readAttributeElement(element);
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Processes a help configuration element.
-     */
-    private void readHelpElement(IConfigurationElement element) {
-        // read type
-        String type = element.getAttribute(ATT_TYPE);
-
-        // read attributes and values
-        currentAttributeNames = new ArrayList();
-        currentAttributeValues = new ArrayList();
-        readElementChildren(element);
-        String[] attributeNames = (String[]) currentAttributeNames
-                .toArray(new String[currentAttributeNames.size()]);
-        String[] attributeValues = (String[]) currentAttributeValues
-                .toArray(new String[currentAttributeValues.size()]);
-
-        // add query to the registry
-        MarkerQuery query = new MarkerQuery(type, attributeNames);
-        MarkerQueryResult result = new MarkerQueryResult(attributeValues);
-        markerHelpRegistry.addHelpQuery(query, result, element);
-    }
-
-    /**
-     * Processes a resolution configuration element.
-     */
-    private void readResolutionElement(IConfigurationElement element) {
-        // read type
-        String type = element.getAttribute(ATT_TYPE);
-
-        // read attributes and values
-        currentAttributeNames = new ArrayList();
-        currentAttributeValues = new ArrayList();
-        readElementChildren(element);
-        String[] attributeNames = (String[]) currentAttributeNames
-                .toArray(new String[currentAttributeNames.size()]);
-        String[] attributeValues = (String[]) currentAttributeValues
-                .toArray(new String[currentAttributeValues.size()]);
-
-        // add query to the registry
-        MarkerQuery query = new MarkerQuery(type, attributeNames);
-        MarkerQueryResult result = new MarkerQueryResult(attributeValues);
-        markerHelpRegistry.addResolutionQuery(query, result, element);
-    }
-
-    /**
-     * Processes an attribute sub element.
-     */
-    private void readAttributeElement(IConfigurationElement element) {
-        String name = element.getAttribute(ATT_NAME);
-        String value = element.getAttribute(ATT_VALUE);
-        if (name != null && value != null) {
-            currentAttributeNames.add(name);
-            currentAttributeValues.add(value);
-        }
-    }
-}
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.java
deleted file mode 100644
index 294e818..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.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.internal.ide.registry;
-
-import java.net.URL;
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IMarkerImageProvider;
-import org.osgi.framework.Bundle;
-
-/**
- * Implementation of a marker image registry which maps either
- * a marker type to a provider or to a static image.
- */
-public class MarkerImageProviderRegistry {
-    private static final String ATT_PROVIDER_CLASS = "class";//$NON-NLS-1$
-
-    private static final String ATT_ICON = "icon";//$NON-NLS-1$
-
-    private static final String ATT_MARKER_TYPE = "markertype";//$NON-NLS-1$
-
-    private static final String ATT_ID = "id";//$NON-NLS-1$
-
-    private static final String MARKER_ATT_KEY = "org.eclipse.ui.internal.registry.MarkerImageProviderRegistry";//$NON-NLS-1$
-
-    private static final String TAG_PROVIDER = "imageprovider";//$NON-NLS-1$
-
-    private ArrayList descriptors = new ArrayList();
-
-    class Descriptor {
-        String id;
-
-        String markerType;
-
-        String className;
-
-        String imagePath;
-
-        ImageDescriptor imageDescriptor;
-
-        IConfigurationElement element;
-
-        Bundle pluginBundle;
-
-        IMarkerImageProvider provider;
-    }
-
-    /**
-     * Initialize this new MarkerImageProviderRegistry.
-     */
-    public MarkerImageProviderRegistry() {
-        class MarkerImageReader extends IDERegistryReader {
-            protected boolean readElement(IConfigurationElement element) {
-                if (element.getName().equals(TAG_PROVIDER)) {
-                    addProvider(element);
-                    return true;
-                }
-
-                return false;
-            }
-
-            public void readRegistry() {
-                readRegistry(Platform.getExtensionRegistry(),
-                        IDEWorkbenchPlugin.IDE_WORKBENCH,
-                        IDEWorkbenchPlugin.PL_MARKER_IMAGE_PROVIDER);
-            }
-        }
-
-        new MarkerImageReader().readRegistry();
-    }
-
-    /**
-     * Creates a descriptor for the marker provider extension
-     * and add it to the list of providers.
-     */
-    public void addProvider(IConfigurationElement element) {
-        Descriptor desc = new Descriptor();
-        desc.element = element;
-        desc.pluginBundle = Platform.getBundle(element.getNamespace());
-        desc.id = element.getAttribute(ATT_ID);
-        desc.markerType = element.getAttribute(ATT_MARKER_TYPE);
-        desc.imagePath = element.getAttribute(ATT_ICON);
-        desc.className = element.getAttribute(ATT_PROVIDER_CLASS);
-        if (desc.imagePath != null) {
-            desc.imageDescriptor = getImageDescriptor(desc);
-        }
-        if (desc.className == null) {
-            //Don't need to keep these references.
-            desc.element = null;
-            desc.pluginBundle = null;
-        }
-        descriptors.add(desc);
-    }
-
-    /**
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(Object)
-     */
-    public ImageDescriptor getImageDescriptor(IMarker marker) {
-        int size = descriptors.size();
-        for (int i = 0; i < size; i++) {
-            Descriptor desc = (Descriptor) descriptors.get(i);
-            try {
-                if (marker.isSubtypeOf(desc.markerType)) {
-                    if (desc.className != null) {
-                    	if (desc.pluginBundle.getState()==Bundle.ACTIVE) {
-                            //-- Get the image descriptor from the provider.
-                            //-- Save the image descriptor url as a persistable property, so a
-                            //image descriptor can be created without activating the plugin next
-                            //time the workbench is started.
-                            if (desc.provider == null) {
-								desc.provider = (IMarkerImageProvider) IDEWorkbenchPlugin
-                                        .createExtension(desc.element,
-                                                ATT_PROVIDER_CLASS);
-							}
-                            String path = desc.provider.getImagePath(marker);
-                            if (path != desc.imagePath) {
-                                desc.imagePath = path;
-                                desc.imageDescriptor = getImageDescriptor(desc);
-                                return desc.imageDescriptor;
-                            }
-                            return desc.imageDescriptor;
-                        } else {
-                            if (desc.imageDescriptor == null) {
-                                //Create a image descriptor to be used until the plugin gets activated.
-                                desc.imagePath = (String) marker
-                                        .getAttribute(MARKER_ATT_KEY);
-                                desc.imageDescriptor = getImageDescriptor(desc);
-                            }
-                            return desc.imageDescriptor;
-                        }
-                    } else if (desc.imageDescriptor != null) {
-                        return desc.imageDescriptor;
-                    }
-                }
-            } catch (CoreException e) {
-                IDEWorkbenchPlugin
-                        .getDefault()
-                        .getLog()
-                        .log(
-                                new Status(
-                                        IStatus.ERROR,
-                                        PlatformUI.PLUGIN_ID,
-                                        0,
-                                        "Exception creating image descriptor for: " + desc.markerType,//$NON-NLS-1$
-                                        e));
-                return null;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the image descriptor with the given relative path.
-     */
-    ImageDescriptor getImageDescriptor(Descriptor desc) {
-       URL url = Platform.find(desc.pluginBundle, new Path(desc.imagePath));
-       return ImageDescriptor.createFromURL(url);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerQuery.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerQuery.java
deleted file mode 100644
index 59233b1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerQuery.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.internal.ide.registry;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * Instances of this class hold a marker type id and/or 
- * a series of marker attributes. This information may be used 
- * to determine if a given marker is of the same marker
- * type and determine its values for the attributes.
- */
-public class MarkerQuery {
-    /**
-     * The marker type targetted by this query. 
-     * May be <code>null</code>.
-     */
-    private String type;
-
-    /**
-     * A sorted list of the attributes targetted by this query.
-     * The list is sorted from least to greatest according to
-     * <code>Sting.compare</code>
-     */
-    private String[] attributes;
-
-    /**
-     * Cached hash code value
-     */
-    private int hashCode;
-
-    /**
-     * Creates a new marker query with the given type
-     * and attributes.
-     * <p>
-     * The type may be <code>null</code>. The attributes may 
-     * be empty, but not <code>null</code>.
-     * </p>
-     * 
-     * @param markerType the targetted marker type
-     * @param markerAttributes the targetted marker attributes
-     */
-    public MarkerQuery(String markerType, String[] markerAttributes) {
-        if (markerAttributes == null) {
-            throw new IllegalArgumentException();
-        }
-
-        type = markerType;
-        attributes = markerAttributes;
-        computeHashCode();
-    }
-
-    /**
-     * Performs a query against the given marker.
-     * <p>
-     * Returns a <code>MarkerQueryResult</code> if the marker
-     * is appropriate for this query (correct type and has
-     * all of the query attributes), otherwise <code>null</code>
-     * is returned.
-     * 
-     * @param marker the marker to perform the query against
-     * @return a marker query result or <code>null</code>
-     */
-    public MarkerQueryResult performQuery(IMarker marker) {
-        // Check type
-        try {
-            if (type != null && !type.equals(marker.getType())) {
-				return null;
-			}
-        } catch (CoreException e) {
-            IDEWorkbenchPlugin
-                    .log("Error accessing marker type", e.getStatus()); //$NON-NLS-1$
-            return null;
-        }
-
-        // Check attributes
-        String[] values = new String[attributes.length];
-        for (int i = 0; i < attributes.length; i++) {
-            try {
-                Object value = marker.getAttribute(attributes[i]);
-                if (value == null) {
-					return null;
-				}
-                values[i] = value.toString();
-            } catch (CoreException e) {
-                IDEWorkbenchPlugin.log(
-                        "Error accessing marker attribute", e.getStatus()); //$NON-NLS-1$
-                return null;
-            }
-        }
-
-        // Create and return the result
-        return new MarkerQueryResult(values);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Object.
-     */
-    public boolean equals(Object o) {
-        if (!(o instanceof MarkerQuery)) {
-			return false;
-		}
-
-        if (o == this) {
-			return true;
-		}
-
-        MarkerQuery mq = (MarkerQuery) o;
-        if (!(type == null ? mq.type == null : type.equals(mq.type))) {
-			return false;
-		}
-
-        if (attributes.length != mq.attributes.length) {
-			return false;
-		}
-
-        for (int i = 0; i < attributes.length; i++) {
-            if (!(attributes[i].equals(mq.attributes[i]))) {
-				return false;
-			}
-        }
-
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Object.
-     */
-    public int hashCode() {
-        return hashCode;
-    }
-
-    /**
-     * Computes the hash code for this instance.
-     */
-    public void computeHashCode() {
-        hashCode = 19;
-
-        if (type != null) {
-			hashCode = hashCode * 37 + type.hashCode();
-		}
-
-        for (int i = 0; i < attributes.length; i++) {
-            hashCode = hashCode * 37 + attributes[i].hashCode();
-        }
-    }
-
-    /**
-     * Returns the targetted marker type. May be 
-     * <code>null</code>
-     * 
-     * @return the targetted marker type
-     */
-    public String getType() {
-        return type;
-    }
-
-    /**
-     * Returns the targetted attributes.
-     * The array may be empty.
-     * 
-     * @return the targetted attributes
-     */
-    public String[] getAttributes() {
-        return attributes;
-    }
-}
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerQueryResult.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerQueryResult.java
deleted file mode 100644
index f2ca7d4..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerQueryResult.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.internal.ide.registry;
-
-/**
- * Instances of this class represent the result of a specific marker
- * query. Specifically they contain an ordered collection of marker 
- * attribute values.
- */
-
-public class MarkerQueryResult {
-    /**
-     * An ordered collection of marker attribute values.
-     */
-    private String[] values;
-
-    /**
-     * Cached hash code value
-     */
-    private int hashCode;
-
-    /**
-     * Creates a new marker query result with the given values.
-     * <p>
-     * The values may not be empty.
-     * </p>
-     * 
-     * @param markerAttributeValues the target marker's attribute values
-     */
-    public MarkerQueryResult(String[] markerAttributeValues) {
-        if (markerAttributeValues == null) {
-            throw new IllegalArgumentException();
-        }
-        values = markerAttributeValues;
-        computeHashCode();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Object.
-     */
-    public boolean equals(Object o) {
-        if (!(o instanceof MarkerQueryResult)) {
-			return false;
-		}
-
-        if (o == this) {
-			return true;
-		}
-
-        MarkerQueryResult mqr = (MarkerQueryResult) o;
-        if (values.length != mqr.values.length) {
-			return false;
-		}
-
-        for (int i = 0; i < values.length; i++) {
-            if (!(values[i].equals(mqr.values[i]))) {
-				return false;
-			}
-        }
-
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Object.
-     */
-    public int hashCode() {
-        return hashCode;
-    }
-
-    /**
-     * Computes the hash code for this instance.
-     */
-    public void computeHashCode() {
-        hashCode = 19;
-
-        for (int i = 0; i < values.length; i++) {
-            hashCode = hashCode * 37 + values[i].hashCode();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/PerspectiveParameterValues.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/PerspectiveParameterValues.java
deleted file mode 100644
index 10c6e2b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/PerspectiveParameterValues.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.ui.internal.ide.registry;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.IParameterValues;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-
-/**
- * Provides the parameter values for the show perspective command.
- * 
- * @since 3.1
- */
-public final class PerspectiveParameterValues implements IParameterValues {
-
-	public final Map getParameterValues() {
-		final Map values = new HashMap();
-
-		final IPerspectiveDescriptor[] perspectives = WorkbenchPlugin
-				.getDefault().getPerspectiveRegistry().getPerspectives();
-		for (int i = 0; i < perspectives.length; i++) {
-			final IPerspectiveDescriptor perspective = perspectives[i];
-			values.put(perspective.getLabel(), perspective.getId());
-		}
-
-		return values;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/ProjectImageRegistry.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/ProjectImageRegistry.java
deleted file mode 100644
index 13b50f7..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/ProjectImageRegistry.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.internal.ide.registry;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * Registry to hold mappings from project natures to images
- */
-
-public class ProjectImageRegistry {
-    private Map map = new HashMap(10);
-
-    /**
-     * Returns the image for the given nature id or
-     * <code>null</code> if no image is registered for the given id
-     */
-    public ImageDescriptor getNatureImage(String natureId) {
-        return (ImageDescriptor) map.get(natureId);
-    }
-
-    /**
-     * Reads from the plugin registry.
-     */
-    public void load() {
-        ProjectImageRegistryReader reader = new ProjectImageRegistryReader();
-        reader.readProjectNatureImages(Platform.getExtensionRegistry(), this);
-    }
-
-    /**
-     * Sets the image for the given nature id
-     */
-    public void setNatureImage(String natureId, ImageDescriptor image) {
-        map.put(natureId, image);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/ProjectImageRegistryReader.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/ProjectImageRegistryReader.java
deleted file mode 100644
index 32a83c3..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/ProjectImageRegistryReader.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.ui.internal.ide.registry;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * A strategy to project nature image extensions from the registry.
- */
-public class ProjectImageRegistryReader extends IDERegistryReader {
-    private static final String TAG_IMAGE = "image";//$NON-NLS-1$
-
-    private static final String ATT_ID = "id";//$NON-NLS-1$
-
-    private static final String ATT_NATURE_ID = "natureId";//$NON-NLS-1$
-
-    private static final String ATT_ICON = "icon";//$NON-NLS-1$
-
-    private ProjectImageRegistry registry;
-
-    /**
-     * Reads the contents of the given element
-     */
-    protected boolean readElement(IConfigurationElement element) {
-        if (!element.getName().equals(TAG_IMAGE)) {
-			return false;
-		}
-
-        String id = element.getAttribute(ATT_ID);
-        if (id == null) {
-            logMissingAttribute(element, ATT_ID);
-            return true;
-        }
-
-        String natureId = element.getAttribute(ATT_NATURE_ID);
-        if (natureId == null) {
-            logMissingAttribute(element, ATT_NATURE_ID);
-            return true;
-        }
-
-        String icon = element.getAttribute(ATT_ICON);
-        if (icon == null) {
-            logMissingAttribute(element, ATT_ICON);
-            return true;
-        }
-		String extendingPluginId = element.getNamespace();
-		ImageDescriptor image = AbstractUIPlugin.imageDescriptorFromPlugin(
-				extendingPluginId, icon);
-
-        if (image != null) {
-			registry.setNatureImage(natureId, image);
-		}
-
-        return true;
-    }
-
-    /**
-     * Read the project nature images within a registry.
-     */
-    public void readProjectNatureImages(IExtensionRegistry in,
-            ProjectImageRegistry out) {
-        registry = out;
-        readRegistry(in, IDEWorkbenchPlugin.IDE_WORKBENCH,
-                IDEWorkbenchPlugin.PL_PROJECT_NATURE_IMAGES);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java
deleted file mode 100644
index 17ec2c0..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java
+++ /dev/null
@@ -1,273 +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.ide.undo;
-
-import java.net.URI;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.SubProgressMonitor;
-
-/**
- * ContainerDescription is a lightweight description that describes a container
- * to be created.
- * 
- * This class is not intended to be instantiated or used by clients.
- * 
- * @since 3.3
- * 
- */
-public abstract class ContainerDescription extends ResourceDescription {
-
-	String name;
-
-	URI location;
-	
-	String defaultCharSet;
-
-	private ResourceDescription[] members;
-
-	/**
-	 * Create a container description from the specified container handle that
-	 * can be used to create the container. The returned ContainerDescription
-	 * should represent any non-existing parents in addition to the specified
-	 * container.
-	 * 
-	 * @param container
-	 *            the handle of the container to be described
-	 * @return a container description describing the container and any
-	 *         non-existing parents.
-	 */
-
-	public static ContainerDescription fromContainer(IContainer container) {
-		IPath fullPath = container.getFullPath();
-		ContainerDescription firstCreatedParent = null;
-		ContainerDescription currentContainerDescription = null;
-
-		// Does the container exist already? If so, then the parent exists and
-		// we use the normal creation constructor.
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IContainer currentContainer = (IContainer) root.findMember(fullPath);
-		if (container != null) {
-			return (ContainerDescription) ResourceDescription
-					.fromResource(container);
-		}
-
-		// Create container descriptions for any uncreated parents in the given
-		// path.
-		currentContainer = root;
-		for (int i = 0; i < fullPath.segmentCount(); i++) {
-			String currentSegment = fullPath.segment(i);
-			IResource resource = currentContainer.findMember(currentSegment);
-			if (resource != null) {
-				// parent already exists, no need to create a description for it
-				currentContainer = (IContainer) resource;
-			} else {
-				if (i == 0) {
-					// parent does not exist and it is a project
-					firstCreatedParent = new ProjectDescription(root
-							.getProject(currentSegment));
-					currentContainerDescription = firstCreatedParent;
-				} else {
-					IFolder folderHandle = currentContainer.getFolder(new Path(
-							currentSegment));
-					ContainerDescription currentFolder = new FolderDescription(
-							folderHandle);
-					currentContainer = folderHandle;
-					if (currentContainerDescription != null) {
-						currentContainerDescription.addMember(currentFolder);
-					}
-					currentContainerDescription = currentFolder;
-					if (firstCreatedParent == null) {
-						firstCreatedParent = currentFolder;
-					}
-				}
-			}
-		}
-		return firstCreatedParent;
-	}
-
-	/**
-	 * Create a ContainerDescription with no state.
-	 */
-	public ContainerDescription() {
-
-	}
-
-	/**
-	 * Create a ContainerDescription from the specified container handle.
-	 * Typically used when the container handle represents a resource that
-	 * actually exists, although it will not fail if the resource is
-	 * non-existent.
-	 * 
-	 * @param container
-	 *            the container to be described
-	 */
-	public ContainerDescription(IContainer container) {
-		super(container);
-		this.name = container.getName();
-		if (container.isLinked()) {
-			this.location = container.getLocationURI();
-		}
-		try {
-			if (container.isAccessible()) {
-				defaultCharSet = container.getDefaultCharset(false);
-				IResource[] resourceMembers = container.members();
-				members = new ResourceDescription[resourceMembers.length];
-				for (int i = 0; i < resourceMembers.length; i++) {
-					members[i] = ResourceDescription
-							.fromResource(resourceMembers[i]);
-				}
-			}
-		} catch (CoreException e) {
-			// Eat this exception because it only occurs when the resource
-			// does not exist and we have already checked this.
-			// We do not want to throw exceptions on the simple constructor, as
-			// no one has actually tried to do anything yet.
-		}
-	}
-
-	/**
-	 * Create a resource handle that represents this container description.
-	 */
-	public IResource createResourceHandle() {
-		IWorkspaceRoot workspaceRoot = parent.getWorkspace().getRoot();
-		IPath folderPath = parent.getFullPath().append(name);
-		return workspaceRoot.getFolder(folderPath);
-	}
-
-	/**
-	 * Create any child resources known by this container description.
-	 * 
-	 * @param parentHandle
-	 *            the handle of the created parent
-	 * @param monitor
-	 *            the progress monitor to be used
-	 * @param ticks
-	 *            the number of ticks allocated for creating children
-	 * @throws CoreException
-	 */
-	protected void createChildResources(IContainer parentHandle,
-			IProgressMonitor monitor, int ticks) throws CoreException {
-
-		// restore any children
-		if (members != null && members.length > 0) {
-			for (int i = 0; i < members.length; i++) {
-				members[i].parent = parentHandle;
-				members[i].createResource(new SubProgressMonitor(monitor, ticks
-						/ members.length));
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.ide.undo.ResourceDescription#recordLastHistory(org.eclipse.core.resources.IResource,
-	 *      org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void recordLastHistory(IResource resource, IProgressMonitor monitor)
-			throws CoreException {
-		monitor.beginTask(
-				UndoMessages.FolderDescription_SavingUndoInfoProgress, 100);
-		for (int i = 0; i < members.length; i++) {
-			if (members[i] instanceof FileDescription) {
-				IPath path = resource.getFullPath().append(
-						((FileDescription) members[i]).name);
-				IFile fileHandle = resource.getWorkspace().getRoot().getFile(
-						path);
-				members[i].recordLastHistory(fileHandle,
-						new SubProgressMonitor(monitor, 100 / members.length));
-			} else if (members[i] instanceof FolderDescription) {
-				IPath path = resource.getFullPath().append(
-						((FolderDescription) members[i]).name);
-				IFolder folderHandle = resource.getWorkspace().getRoot()
-						.getFolder(path);
-				members[i].recordLastHistory(folderHandle,
-						new SubProgressMonitor(monitor, 100 / members.length));
-			}
-		}
-		monitor.done();
-	}
-
-	/**
-	 * Return the name of the container described by this ContainerDescription.
-	 * 
-	 * @return the name of the container.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Return the first folder found that has no child folders.
-	 * 
-	 * @return the container description for the first child in the receiver
-	 *         that is a leaf, or this container if there are no children.
-	 */
-	public ContainerDescription getFirstLeafFolder() {
-		// If there are no members, this is a leaf
-		if (members == null || members.length == 0) {
-			return this;
-		}
-		// Traverse the members and find the first potential leaf
-		for (int i = 0; i < members.length; i++) {
-			if (members[i] instanceof ContainerDescription) {
-				return ((ContainerDescription) members[i]).getFirstLeafFolder();
-			}
-		}
-		// No child folders were found, this is a leaf
-		return this;
-	}
-
-	/**
-	 * Add the specified resource description as a member of this resource
-	 * description
-	 * 
-	 * @param member
-	 *            the resource description considered a member of this
-	 *            container.
-	 */
-	public void addMember(ResourceDescription member) {
-		if (members == null) {
-			members = new ResourceDescription[] { member };
-		} else {
-			ResourceDescription[] expandedMembers = new ResourceDescription[members.length + 1];
-			System.arraycopy(members, 0, expandedMembers, 0, members.length);
-			expandedMembers[members.length] = member;
-			members = expandedMembers;
-		}
-	}
-
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.internal.ide.undo.ResourceDescription#restoreResourceAttributes(org.eclipse.core.resources.IResource, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected void restoreResourceAttributes(IResource resource, IProgressMonitor monitor) throws CoreException {
-		super.restoreResourceAttributes(resource, monitor);
-		Assert.isLegal(resource instanceof IContainer);
-		IContainer container = (IContainer)resource;
-		if (defaultCharSet != null) {
-			container.setDefaultCharset(defaultCharSet, monitor);
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FileDescription.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FileDescription.java
deleted file mode 100644
index 2c931a2..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FileDescription.java
+++ /dev/null
@@ -1,182 +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.ide.undo;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.net.URI;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFileState;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-
-/**
- * FileDescription is a lightweight description that describes a file to be
- * created.
- * 
- * This class is not intended to be instantiated or used by clients.
- * 
- * @since 3.3
- * 
- */
-public class FileDescription extends ResourceDescription {
-
-	String name;
-
-	URI location;
-
-	private IFileState fileState;
-
-	/**
-	 * Create a FileDescription that can be used to later restore the given
-	 * file. The file typically already exists, but this constructor will not
-	 * fail if the file does not exist.
-	 * 
-	 * @param file
-	 *            the file to be restored.
-	 */
-	public FileDescription(IFile file) {
-		super(file);
-		this.name = file.getName();
-		if (file.isLinked()) {
-			location = file.getLocationURI();
-		}
-
-	}
-
-	/**
-	 * Create a file description from the specified file handle. The handle does
-	 * not exist, so no information should be derived from it. If a location
-	 * path is specified, this file should represent a link to another location.
-	 * The IFileState describes any state that should be used when the file
-	 * resource is created.
-	 * 
-	 * @param file
-	 *            the file to be described
-	 * @param linkLocation
-	 *            the location of the file's link, or <code>null</code> if the
-	 *            file is not linked
-	 * @param fileState
-	 *            the file state that can be used to get information about the
-	 *            file, such as its initial content
-	 */
-	public FileDescription(IFile file, URI linkLocation, IFileState fileState) {
-		super(file);
-		this.name = file.getName();
-		this.location = linkLocation;
-		this.fileState = fileState;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.ide.undo.ResourceDescription#recordLastHistory(org.eclipse.core.resources.IResource,
-	 *      org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void recordLastHistory(IResource resource, IProgressMonitor monitor)
-			throws CoreException {
-		Assert.isLegal(resource.getType() == IResource.FILE);
-
-		if (location != null) {
-			// file is linked, no need to record any history
-			return;
-		}
-		IFileState[] states = ((IFile) resource).getHistory(monitor);
-		if (states.length > 0) {
-			this.fileState = states[0];
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.ide.undo.ResourceDescription#createResourceHandle()
-	 */
-	public IResource createResourceHandle() {
-		IWorkspaceRoot workspaceRoot = parent.getWorkspace().getRoot();
-		IPath fullPath = parent.getFullPath().append(name);
-		return workspaceRoot.getFile(fullPath);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.ide.undo.ResourceDescription#createExistentResourceFromHandle(org.eclipse.core.resources.IResource,
-	 *      org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void createExistentResourceFromHandle(IResource resource,
-			IProgressMonitor monitor) throws CoreException {
-
-		Assert.isLegal(resource instanceof IFile);
-		if (resource.exists()) {
-			return;
-		}
-		IFile fileHandle = (IFile) resource;
-		monitor.beginTask(UndoMessages.FileDescription_NewFileProgress, 200);
-		try {
-			if (monitor.isCanceled()) {
-				throw new OperationCanceledException();
-			}
-			if (location != null) {
-				fileHandle.createLink(location, IResource.ALLOW_MISSING_LOCAL,
-						new SubProgressMonitor(monitor, 200));
-			} else {
-				InputStream contents = new ByteArrayInputStream(
-						UndoMessages.FileDescription_ContentsCouldNotBeRestored
-								.getBytes());
-				String charset = null;
-				// Retrieve the contents and charset from the file state.
-				// Other file state attributes, such as timestamps, have
-				// already been retrieved from the original IResource object
-				// and are restored in the superclass.
-				if (fileState != null && fileState.exists()) {
-					contents = fileState.getContents();
-					charset = fileState.getCharset();
-				}
-				fileHandle.create(contents, false, new SubProgressMonitor(
-						monitor, 100));
-				fileHandle.setCharset(charset, new SubProgressMonitor(monitor,
-						100));
-			}
-			if (monitor.isCanceled()) {
-				throw new OperationCanceledException();
-			}
-		} finally {
-			monitor.done();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.ide.undo.ResourceDescription#isValid()
-	 */
-	public boolean isValid() {
-		return super.isValid() && fileState != null && fileState.exists();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.ide.undo.ResourceDescription#getName()
-	 */
-	public String getName() {
-		return name;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FolderDescription.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FolderDescription.java
deleted file mode 100644
index b6d5b68..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FolderDescription.java
+++ /dev/null
@@ -1,111 +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.ide.undo;
-
-import java.net.URI;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-
-/**
- * FolderDescription is a lightweight description that describes a folder to be
- * created.
- * 
- * This class is not intended to be instantiated or used by clients.
- * 
- * @since 3.3
- * 
- */
-public class FolderDescription extends ContainerDescription {
-
-	/**
-	 * Create a FolderDescription from the specified folder handle. Typically
-	 * used when the folder handle represents a resource that actually exists,
-	 * although it will not fail if the resource is non-existent.
-	 * 
-	 * @param folder
-	 *            the folder to be described
-	 */
-	public FolderDescription(IFolder folder) {
-		super(folder);
-	}
-
-	/**
-	 * Create a FolderDescription from the specified folder handle. If the
-	 * folder to be created should be linked to a different location, specify
-	 * the location.
-	 * 
-	 * @param folder
-	 *            the folder to be described
-	 * @param linkLocation
-	 *            the location to which the folder is linked, or
-	 *            <code>null</code> if it is not linked
-	 */
-	public FolderDescription(IFolder folder, URI linkLocation) {
-		super(folder);
-		this.name = folder.getName();
-		this.location = linkLocation;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.internal.ide.undo.ContainerDescription#createResourceHandle()
-	 */
-	public IResource createResourceHandle() {
-		IWorkspaceRoot workspaceRoot = getWorkspace().getRoot();
-		IPath folderPath = parent.getFullPath().append(name);
-		return workspaceRoot.getFolder(folderPath);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.internal.ide.undo.ResourceDescription#createExistentResourceFromHandle(org.eclipse.core.resources.IResource, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void createExistentResourceFromHandle(IResource resource,
-			IProgressMonitor monitor) throws CoreException {
-
-		Assert.isLegal(resource instanceof IFolder);
-		if (resource.exists()) {
-			return;
-		}
-		IFolder folderHandle = (IFolder) resource;
-		try {
-			monitor.beginTask(UndoMessages.FolderDescription_NewFolderProgress,
-					200);
-			if (monitor.isCanceled()) {
-				throw new OperationCanceledException();
-			}
-			if (location != null) {
-				folderHandle.createLink(location,
-						IResource.ALLOW_MISSING_LOCAL, new SubProgressMonitor(
-								monitor, 100));
-			} else {
-				folderHandle.create(false, true, new SubProgressMonitor(
-						monitor, 100));
-			}
-			if (monitor.isCanceled()) {
-				throw new OperationCanceledException();
-			}
-			createChildResources(folderHandle, monitor, 100);
-
-		} finally {
-			monitor.done();
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/MarkerDescription.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/MarkerDescription.java
deleted file mode 100644
index cb45b59..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/MarkerDescription.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.internal.ide.undo;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * MarkerDescription is a lightweight description of a marker that can be used
- * to describe a marker to be created or updated.
- * 
- * This class is not intended to be instantiated or used by clients.
- * 
- * @since 3.3
- * 
- */
-public class MarkerDescription {
-	String type;
-
-	Map attributes;
-
-	IResource resource;
-
-	/**
-	 * 
-	 * Create a marker description from the specified marker.
-	 * 
-	 * @param marker
-	 *            the marker to be described
-	 * @throws CoreException
-	 */
-	public MarkerDescription(IMarker marker) throws CoreException {
-		this.type = marker.getType();
-		this.attributes = marker.getAttributes();
-		this.resource = marker.getResource();
-
-	}
-
-	/**
-	 * Create a marker description from the specified marker type, attributes,
-	 * and resource.
-	 * 
-	 * @param type
-	 *            the type of marker to be created.
-	 * @param attributes
-	 *            the attributes to be assigned to the marker
-	 * @param resource
-	 *            the resource on which the marker should be created
-	 */
-	public MarkerDescription(String type, Map attributes, IResource resource) {
-		this.type = type;
-		this.attributes = attributes;
-		this.resource = resource;
-	}
-
-	/**
-	 * Create a marker from the marker description.
-	 * 
-	 * @return the created marker
-	 * @throws CoreException
-	 */
-	public IMarker createMarker() throws CoreException {
-		IMarker marker = resource.createMarker(type);
-		marker.setAttributes(attributes);
-		return marker;
-	}
-
-	/**
-	 * Update an existing marker using the attributes in the marker description.
-	 * 
-	 * @param marker
-	 *            the marker to be updated
-	 * @throws CoreException
-	 */
-	public void updateMarker(IMarker marker) throws CoreException {
-		marker.setAttributes(attributes);
-	}
-
-	/**
-	 * Return the resource associated with this marker.
-	 * 
-	 * @return the resource associated with this marker
-	 */
-	public IResource getResource() {
-		return resource;
-	}
-
-	/**
-	 * Return the marker type associated with this marker.
-	 * 
-	 * @return the string marker type of this marker
-	 */
-	public String getType() {
-		return type;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ProjectDescription.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ProjectDescription.java
deleted file mode 100644
index b4fcf82..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ProjectDescription.java
+++ /dev/null
@@ -1,116 +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.ide.undo;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-
-/**
- * ProjectDescription is a lightweight description that describes a project to
- * be created.
- * 
- * This class is not intended to be instantiated or used by clients.
- * 
- * @since 3.3
- * 
- */
-public class ProjectDescription extends ContainerDescription {
-
-	private IProjectDescription projectDescription;
-
-	/**
-	 * Create a project description from a specified project.
-	 * 
-	 * @param project
-	 *            The project to be described. The project must exist and be
-	 *            open.
-	 */
-	public ProjectDescription(IProject project) {
-		super(project);
-		Assert.isLegal(project.isAccessible());
-		try {
-			this.projectDescription = project.getDescription();
-		} catch (CoreException e) {
-			// Eat this exception because it only occurs when the project
-			// is not accessible and we have already checked this. We
-			// don't want to propagate the CoreException into the constructor
-			// API.
-		}
-	}
-
-	/**
-	 * Create a project description from a specified IProjectDescription. Used
-	 * when the project does not yet exist.
-	 * 
-	 * @param projectDescription
-	 *            the project description for the future project
-	 */
-	public ProjectDescription(IProjectDescription projectDescription) {
-		super();
-		this.projectDescription = projectDescription;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.ide.undo.ContainerDescription#createResourceHandle()
-	 */
-	public IResource createResourceHandle() {
-		return ResourcesPlugin.getWorkspace().getRoot().getProject(getName());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.ide.undo.ResourceDescription#createExistentResourceFromHandle(org.eclipse.core.resources.IResource,
-	 *      org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void createExistentResourceFromHandle(IResource resource,
-			IProgressMonitor monitor) throws CoreException {
-		Assert.isLegal(resource instanceof IProject);
-		if (resource.exists()) {
-			return;
-		}
-		IProject projectHandle = (IProject) resource;
-		monitor.beginTask(UndoMessages.ProjectDescription_NewProjectProgress,
-				200);
-		if (projectDescription == null) {
-			projectHandle.create(new SubProgressMonitor(monitor, 100));
-		} else {
-			projectHandle.create(projectDescription, new SubProgressMonitor(
-					monitor, 100));
-		}
-
-		if (monitor.isCanceled()) {
-			throw new OperationCanceledException();
-		}
-		projectHandle.open(IResource.BACKGROUND_REFRESH,
-				new SubProgressMonitor(monitor, 100));
-		monitor.done();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.ide.undo.ContainerDescription#getName()
-	 */
-	public String getName() {
-		return projectDescription.getName();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ResourceDescription.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ResourceDescription.java
deleted file mode 100644
index 2f64ab8..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ResourceDescription.java
+++ /dev/null
@@ -1,207 +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.ide.undo;
-
-import org.eclipse.core.resources.IContainer;
-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.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourceAttributes;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * ResourceDescription is a lightweight description that describes the common
- * attributes of a resource to be created.
- * 
- * This class is not intended to be instantiated or used by clients.
- * 
- * @since 3.3
- * 
- */
-public abstract class ResourceDescription {
-	IContainer parent;
-
-	long modificationStamp = IResource.NULL_STAMP;
-
-	long localTimeStamp = IResource.NULL_STAMP;
-
-	ResourceAttributes resourceAttributes;
-
-	MarkerDescription[] markerDescriptions;
-
-	/**
-	 * Create a resource description given the specified resource. The resource
-	 * is assumed to exist.
-	 * 
-	 * @param resource
-	 *            the resource from which a description should be created
-	 * @return the resource description
-	 */
-	public static ResourceDescription fromResource(IResource resource) {
-		if (resource.getType() == IResource.PROJECT) {
-			return new ProjectDescription((IProject) resource);
-		} else if (resource.getType() == IResource.FOLDER) {
-			return new FolderDescription((IFolder) resource);
-		} else if (resource.getType() == IResource.FILE) {
-			return new FileDescription((IFile) resource);
-		} else {
-			throw new IllegalArgumentException();
-		}
-	}
-
-	/**
-	 * Create a resource description with no initial attributes
-	 */
-	protected ResourceDescription() {
-		super();
-	}
-
-	/**
-	 * Create a resource description from the specified resource.
-	 * 
-	 * @param resource
-	 *            the resource to be described
-	 */
-	protected ResourceDescription(IResource resource) {
-		super();
-		parent = resource.getParent();
-		if (resource.isAccessible()) {
-			modificationStamp = resource.getModificationStamp();
-			localTimeStamp = resource.getLocalTimeStamp();
-			resourceAttributes = resource.getResourceAttributes();
-			try {
-				IMarker[] markers = resource.findMarkers(null, true,
-						IResource.DEPTH_INFINITE);
-				markerDescriptions = new MarkerDescription[markers.length];
-				for (int i = 0; i < markers.length; i++) {
-					markerDescriptions[i] = new MarkerDescription(markers[i]);
-				}
-			} catch (CoreException e) {
-				// Eat this exception because it only occurs when the resource
-				// does not exist and we have already checked this.
-				// We do not want to throw exceptions on the simple constructor,
-				// as no one has actually tried to do anything yet.
-			}
-		}
-	}
-
-	/**
-	 * Create a resource handle that can be used to create a resource from this
-	 * resource description. This handle can be used to create the actual
-	 * resource, or to describe the creation to a resource delta factory.
-	 * 
-	 * @return the resource handle that can be used to create a resource from
-	 *         this description
-	 */
-	public abstract IResource createResourceHandle();
-
-	/**
-	 * Get the name of this resource.
-	 * 
-	 * @return the name of the Resource
-	 */
-	public abstract String getName();
-
-	/**
-	 * Create an existent resource from this resource description.
-	 * 
-	 * @param monitor
-	 *            the progress monitor to use
-	 * @return a resource that has the attributes of this resource description
-	 * @throws CoreException
-	 */
-	public IResource createResource(IProgressMonitor monitor)
-			throws CoreException {
-		IResource resource = createResourceHandle();
-		createExistentResourceFromHandle(resource, monitor);
-		restoreResourceAttributes(resource, monitor);
-		return resource;
-	}
-
-	/**
-	 * Given a resource handle, create an actual resource with the attributes of
-	 * the receiver resource description.
-	 * 
-	 * @param resource
-	 *            the resource handle
-	 * @param monitor
-	 *            the progress monitor to be used when creating the resource
-	 * @throws CoreException
-	 */
-	public abstract void createExistentResourceFromHandle(IResource resource,
-			IProgressMonitor monitor) throws CoreException;
-
-	/**
-	 * Return a boolean indicating whether this resource description has enough
-	 * information to create a resource.
-	 * 
-	 * @return <code>true</code> if the resource can be created, and
-	 *         <code>false</code> if it does not have enough information
-	 */
-	public boolean isValid() {
-		return parent == null || parent.exists();
-	}
-
-	/**
-	 * Record the last known history of this resource if available.
-	 * 
-	 * @param resource
-	 *            the resource whose history is to be recorded.
-	 * @param monitor
-	 *            the progress monitor to be used
-	 * @throws CoreException
-	 */
-	public abstract void recordLastHistory(IResource resource,
-			IProgressMonitor monitor) throws CoreException;
-
-	/**
-	 * Restore any saved attributed of the specified resource. This method is
-	 * called after the existent resource represented by the receiver has been
-	 * created.
-	 * 
-	 * @param resource
-	 *            the newly created resource
-	 * @param monitor
-	 *            the progress monitor to use to report progress
-	 * @throws CoreException
-	 */
-	protected void restoreResourceAttributes(IResource resource,
-			IProgressMonitor monitor) throws CoreException {
-		if (modificationStamp != IResource.NULL_STAMP) {
-			resource.revertModificationStamp(modificationStamp);
-		}
-		if (localTimeStamp != IResource.NULL_STAMP) {
-			resource.setLocalTimeStamp(localTimeStamp);
-		}
-		if (resourceAttributes != null) {
-			resource.setResourceAttributes(resourceAttributes);
-		}
-		if (markerDescriptions != null) {
-			for (int i = 0; i < markerDescriptions.length; i++) {
-				markerDescriptions[i].resource = resource;
-				markerDescriptions[i].createMarker();
-			}
-		}
-	}
-	
-	/*
-	 * Return the workspace.
-	 */
-	IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/UndoMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/UndoMessages.java
deleted file mode 100644
index abe9672..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/UndoMessages.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.internal.ide.undo;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * UndoMessages is the class that handles the messages for performing workspace
- * undo and redo.
- * 
- */
-public class UndoMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.ide.undo.messages"; //$NON-NLS-1$
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, UndoMessages.class);
-	}
-
-	public static String AbstractWorkspaceOperation_ExecuteErrorTitle;
-	public static String AbstractWorkspaceOperation_RedoErrorTitle;
-	public static String AbstractWorkspaceOperation_UndoErrorTitle;
-	public static String AbstractWorkspaceOperation_SideEffectsWarningTitle;
-	public static String AbstractWorkspaceOperation_ExecuteSideEffectsWarningMessage;
-	public static String AbstractWorkspaceOperation_UndoSideEffectsWarningMessage;
-	public static String AbstractWorkspaceOperation_RedoSideEffectsWarningMessage;
-	public static String AbstractWorkspaceOperation_ErrorInvalidMessage;
-	public static String AbstractWorkspaceOperation_GenericWarningMessage;
-	
-	public static String AbstractResourcesOperation_ResourcesDoNotExist;
-	public static String AbstractResourcesOperation_NotEnoughInfo;
-	public static String AbstractResourcesOperation_InvalidRestoreInfo;
-	public static String AbstractResourcesOperation_DeleteResourcesProgress;
-	public static String AbstractResourcesOperation_CreateResourcesProgress;
-	public static String AbstractResourcesOperation_CopyingResourcesProgress;
-	public static String AbstractResourcesOperation_MovingResources;
-	public static String AbstractResourcesOperation_outOfSyncError;
-	public static String AbstractResourcesOperation_outOfSyncQuestion;
-	public static String AbstractResourcesOperation_deletionMessageTitle;
-	public static String AbstractResourcesOperation_deletionExceptionMessage;
-	public static String AbstractResourcesOperation_overwriteTitle;
-	public static String AbstractResourcesOperation_overwriteError;
-	public static String AbstractResourcesOperation_overwriteQuestion;
-	
-	public static String AbstractCopyOrMoveResourcesOperation_SameNameOrLocation;
-	public static String AbstractCopyOrMoveResourcesOperation_ResourceDoesNotExist;
-	public static String AbstractCopyOrMoveResourcesOperation_ReadOnly;
-	public static String AbstractCopyOrMoveResourcesOperation_copyProjectProgress;
-	public static String AbstractCopyOrMoveResourcesOperation_moveProjectProgress;
-	
-	public static String DeleteResourcesOperation_DeletingProjectContentWarning;
-	public static String CreateProjectOperation_caseVariantExistsError;
-	
-	public static String ProjectDescription_NewProjectProgress;
-	public static String FileDescription_NewFileProgress;
-	public static String FileDescription_SavingUndoInfoProgress;
-	public static String FileDescription_ContentsCouldNotBeRestored;
-	public static String FolderDescription_NewFolderProgress;
-	public static String FolderDescription_SavingUndoInfoProgress;
-	
-
-	public static String MarkerOperation_ResourceDoesNotExist;
-	public static String MarkerOperation_MarkerDoesNotExist;
-	public static String MarkerOperation_NotEnoughInfo;	
-	public static String MarkerOperation_CreateProgress;
-	public static String MarkerOperation_DeleteProgress;
-	public static String MarkerOperation_UpdateProgress;
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/WorkspaceUndoMonitor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/WorkspaceUndoMonitor.java
deleted file mode 100644
index 9a2a5a8..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/WorkspaceUndoMonitor.java
+++ /dev/null
@@ -1,262 +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.ide.undo;
-
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.IOperationHistoryListener;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.commands.operations.OperationHistoryEvent;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.AbstractWorkspaceOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-import org.eclipse.ui.internal.ide.Policy;
-
-/**
- * WorkspaceUndoMonitor monitors the workspace for resource changes and
- * periodically checks the undo history to make sure it is valid.
- * 
- * This class is not intended to be instantiated or used by clients.
- * 
- * @since 3.3
- * 
- */
-public class WorkspaceUndoMonitor {
-
-	/**
-	 * Singleton instance.
-	 */
-	private static WorkspaceUndoMonitor instance;
-
-	/**
-	 * Number of workspace changes that will cause validation of undo history
-	 */
-	private static int CHANGE_THRESHHOLD = 10;
-	
-	/**
-	 * Prefix to use on debug info
-	 */
-	private static String DEBUG_PREFIX = "Workspace Undo Monitor:  "; //$NON-NLS-1$
-
-	/**
-	 * Get the singleton instance of this class.
-	 * 
-	 * @return the singleton instance of this class.
-	 */
-	public static WorkspaceUndoMonitor getInstance() {
-		if (instance == null) {
-			instance = new WorkspaceUndoMonitor();
-		}
-		return instance;
-	}
-
-	/**
-	 * Number of workspace changes that have occurred since the last undoable
-	 * operation was executed, undone, or redone.
-	 */
-	private int numChanges = 0;
-
-	/**
-	 * The IUndoableOperation in progress, or <code>null</code> if there is
-	 * none in progress.
-	 */
-	private IUndoableOperation operationInProgress = null;
-
-	/**
-	 * Resource listener used to determine how often to validate the workspace
-	 * undo history.
-	 */
-	private IResourceChangeListener resourceListener;
-
-	/**
-	 * Operation history listener used to determine whether there is an undoable
-	 * operation in progress.
-	 */
-	private IOperationHistoryListener historyListener;
-
-	/**
-	 * Construct an instance. Should only be called by {@link #getInstance()}
-	 */
-	private WorkspaceUndoMonitor() {
-		if (Policy.DEBUG_UNDOMONITOR) {
-			System.out.println(DEBUG_PREFIX + "Installing listeners"); //$NON-NLS-1$
-		}
-		resourceListener = getResourceChangeListener();
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(
-				resourceListener);
-
-		historyListener = getOperationHistoryListener();
-		getOperationHistory().addOperationHistoryListener(historyListener);
-
-	}
-
-	/**
-	 * Get a change listener for listening to resource changes.
-	 * 
-	 * @return the resource change listeners
-	 */
-	private IResourceChangeListener getResourceChangeListener() {
-		return new IResourceChangeListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
-			 */
-			public void resourceChanged(IResourceChangeEvent event) {
-				// If there is an operation in progress, this event is to be
-				// ignored.
-				if (operationInProgress != null) {
-					return;
-				}
-				if (event.getType() == IResourceChangeEvent.POST_CHANGE
-						|| event.getType() == IResourceChangeEvent.POST_BUILD) {
-					// For now, we consider any change a change worth tracking.
-					// We can be more specific later if warranted.
-					incrementChangeCount();
-					if (numChanges >= CHANGE_THRESHHOLD) {
-						checkOperationHistory();
-					}
-				}
-			}
-		};
-	}
-
-	/**
-	 * Get a change listener for listening to operation history changes.
-	 * 
-	 * @return the resource change listeners
-	 */
-	private IOperationHistoryListener getOperationHistoryListener() {
-		return new IOperationHistoryListener() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.commands.operations.IOperationHistoryListener#historyNotification(org.eclipse.core.commands.operations.OperationHistoryEvent)
-			 */
-			public void historyNotification(OperationHistoryEvent event) {
-				switch (event.getEventType()) {
-				case OperationHistoryEvent.ABOUT_TO_EXECUTE:
-				case OperationHistoryEvent.ABOUT_TO_UNDO:
-				case OperationHistoryEvent.ABOUT_TO_REDO:
-					operationInProgress = event.getOperation();
-					break;
-				case OperationHistoryEvent.DONE:
-				case OperationHistoryEvent.UNDONE:
-				case OperationHistoryEvent.REDONE:
-					resetChangeCount();
-					operationInProgress = null;
-					break;
-				case OperationHistoryEvent.OPERATION_NOT_OK:
-					operationInProgress = null;
-					break;
-				}
-			}
-
-		};
-	}
-
-	/**
-	 * Shutdown the workspace undo monitor. Unhooks the listeners.
-	 */
-	public void shutdown() {
-		if (Policy.DEBUG_UNDOMONITOR) {
-			System.out.println(DEBUG_PREFIX + "Shutting Down"); //$NON-NLS-1$
-		}
-
-		if (resourceListener != null) {
-			ResourcesPlugin.getWorkspace().removeResourceChangeListener(
-					resourceListener);
-		}
-		if (historyListener != null) {
-			getOperationHistory().removeOperationHistoryListener(
-					historyListener);
-		}
-	}
-
-	/**
-	 * Get the operation history.
-	 */
-	private IOperationHistory getOperationHistory() {
-		return PlatformUI.getWorkbench().getOperationSupport()
-				.getOperationHistory();
-	}
-
-	/**
-	 * Check the pending undoable operation to see if it is still valid.
-	 */
-	private void checkOperationHistory() {
-		if (Policy.DEBUG_UNDOMONITOR) {
-			System.out.println(DEBUG_PREFIX + "Checking Operation History..."); //$NON-NLS-1$
-		}
-		IUndoableOperation currentOp = getOperationHistory().getUndoOperation(
-				WorkspaceUndoUtil.getWorkspaceUndoContext());
-		// If there is no pending op, nothing to do.
-		if (currentOp == null) {
-			resetChangeCount();
-			return;
-		}
-		// First try the simple check
-		if (!currentOp.canUndo()) {
-			flushWorkspaceHistory(currentOp);
-			return;
-		}
-		// Now try a more advanced check. If the undoable status is definitely
-		// an error, flush the history. Anything less than an error status
-		// should be left alone so that the user can be prompted as to what
-		// should be done when an undo is actually attempted.
-		if (currentOp instanceof AbstractWorkspaceOperation) {
-			AbstractWorkspaceOperation op = (AbstractWorkspaceOperation) currentOp;
-			op.setQuietCompute(true);
-			IStatus status = op.computeUndoableStatus(null);
-			op.setQuietCompute(false);
-			if (status.getSeverity() == IStatus.ERROR) {
-				flushWorkspaceHistory(currentOp);
-			}
-		}
-		resetChangeCount();
-	}
-
-	/**
-	 * Flush the undo and redo history for the workspace undo context.
-	 */
-	private void flushWorkspaceHistory(IUndoableOperation op) {
-		if (Policy.DEBUG_UNDOMONITOR) {
-			System.out.println(DEBUG_PREFIX + "Flushing undo history due to "+op); //$NON-NLS-1$
-		}
-		getOperationHistory().dispose(
-				WorkspaceUndoUtil.getWorkspaceUndoContext(), true, true, false);
-	}
-	
-	/**
-	 * Reset the workspace change count
-	 */
-	private void resetChangeCount() {
-		numChanges = 0;
-		if (Policy.DEBUG_UNDOMONITOR) {
-			System.out.println(DEBUG_PREFIX + "Resetting change count to 0"); //$NON-NLS-1$
-		}
-	}
-	
-	/**
-	 * Increment the workspace change count
-	 */
-	private void incrementChangeCount() {
-		numChanges++;
-		if (Policy.DEBUG_UNDOMONITOR) {
-			System.out.println(DEBUG_PREFIX + "Incrementing workspace change count.  Count = "+numChanges); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/messages.properties
deleted file mode 100644
index 7ac3f01..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/messages.properties
+++ /dev/null
@@ -1,62 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-AbstractWorkspaceOperation_ExecuteErrorTitle=Error while executing the "{0}" operation
-AbstractWorkspaceOperation_ErrorInvalidMessage=The operation {0} is no longer valid.
-AbstractWorkspaceOperation_GenericWarningMessage=The operation {0} may not complete as expected. 
-AbstractWorkspaceOperation_RedoErrorTitle=Error while redoing the "{0}" operation
-AbstractWorkspaceOperation_UndoErrorTitle=Error while undoing the "{0}" operation
-
-AbstractWorkspaceOperation_SideEffectsWarningTitle=Side effects
-AbstractWorkspaceOperation_ExecuteSideEffectsWarningMessage=Executing "{0}" may have undesirable side effects.
-AbstractWorkspaceOperation_UndoSideEffectsWarningMessage=Undoing "{0}" may have undesirable side effects.
-AbstractWorkspaceOperation_RedoSideEffectsWarningMessage=Redoing "{0}" may have undesirable side effects.
-
-AbstractResourcesOperation_ResourcesDoNotExist=Cannot complete operation because resources no longer exist.
-AbstractResourcesOperation_NotEnoughInfo=There is not enough information to complete the resource operation.
-AbstractResourcesOperation_InvalidRestoreInfo=There is no longer enough information to restore the resource.
-AbstractResourcesOperation_DeleteResourcesProgress=Deleting resources...
-AbstractResourcesOperation_CreateResourcesProgress=Creating resources...
-AbstractResourcesOperation_CopyingResourcesProgress=Copying resources...
-AbstractResourcesOperation_MovingResources=Moving resources...
-AbstractResourcesOperation_outOfSyncError = Resource is out of sync with the file system. Refresh and try again.
-AbstractResourcesOperation_outOfSyncQuestion = Resource ''{0}'' is out of sync with the file system. Do you want to delete it anyway?
-AbstractResourcesOperation_deletionMessageTitle = Problems deleting
-AbstractResourcesOperation_deletionExceptionMessage=Multiple problems occurred while deleting resources.
-AbstractResourcesOperation_overwriteTitle = Resource already exists
-AbstractResourcesOperation_overwriteError = Could not complete operation without overwriting resources.
-AbstractResourcesOperation_overwriteQuestion = Resource ''{0}'' already exists. Do you want to overwrite it?
-
-AbstractCopyOrMoveResourcesOperation_ReadOnly=The resource {0} is read only.
-AbstractCopyOrMoveResourcesOperation_SameNameOrLocation=Resource cannot be moved or copied to the same location and name.
-AbstractCopyOrMoveResourcesOperation_ResourceDoesNotExist=Resource no longer exists in the workspace.
-AbstractCopyOrMoveResourcesOperation_copyProjectProgress=Copying project...
-AbstractCopyOrMoveResourcesOperation_moveProjectProgress=Moving project...
-
-DeleteResourcesOperation_DeletingProjectContentWarning=Deleting project content will erase all of the file and folder history for the project.  Undo will not restore the content.
-
-CreateProjectOperation_caseVariantExistsError = The underlying file system is case insensitive. There is an existing project which conflicts with ''{0}''.
-
-MoveProjectOperation_Progress = Moving project...
-
-ProjectDescription_NewProjectProgress=Creating new project...
-FileDescription_NewFileProgress=Creating new file...
-FileDescription_ContentsCouldNotBeRestored=Unexpected error.  File contents could not be restored from local history during undo/redo.
-FileDescription_SavingUndoInfoProgress=Saving file info...
-FolderDescription_NewFolderProgress=Creating new folder...
-FolderDescription_SavingUndoInfoProgress=Saving folder info...
-	
-MarkerOperation_ResourceDoesNotExist=Cannot complete operation because resource no longer exists.
-MarkerOperation_MarkerDoesNotExist=Cannot complete operation because marker no longer exists.
-MarkerOperation_NotEnoughInfo=There is not enough information to perform the marker operation.
-MarkerOperation_CreateProgress=Creating markers...
-MarkerOperation_DeleteProgress=Deleting markers...
-MarkerOperation_UpdateProgress= Updating markers...
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/update/ConfigurationManagerAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/update/ConfigurationManagerAction.java
deleted file mode 100644
index 3243cfa..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/update/ConfigurationManagerAction.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.internal.ide.update;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.update.ui.UpdateManagerUI;
-
-/**
- * Action to invoke the Update configuration manager.
- * 
- * @since 3.0
- */
-public class ConfigurationManagerAction implements
-        IWorkbenchWindowActionDelegate {
-
-    private IWorkbenchWindow window;
-
-    /**
-     * The constructor.
-     */
-    public ConfigurationManagerAction() {
-        // do nothing
-    }
-
-    /**
-     * Runs the action when selected
-     */
-    public void run(IAction action) {
-        BusyIndicator.showWhile(window.getShell().getDisplay(), new Runnable() {
-            public void run() {
-                UpdateManagerUI.openConfigurationManager(window.getShell());
-            }
-        });
-    }
-
-    /**
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        // do nothing
-    }
-
-    /**
-     * @see IWorkbenchWindowActionDelegate#dispose
-     */
-    public void dispose() {
-        // do nothing
-    }
-
-    /**
-     * @see IWorkbenchWindowActionDelegate#init
-     */
-    public void init(IWorkbenchWindow window) {
-        this.window = window;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/update/InstallWizardAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/update/InstallWizardAction.java
deleted file mode 100644
index 734fadd..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/update/InstallWizardAction.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.internal.ide.update;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.update.ui.UpdateManagerUI;
-
-/**
- * Action to invoke the Update install wizard.
- * 
- * @since 3.0
- */
-public class InstallWizardAction extends Action implements
-        IWorkbenchWindowActionDelegate {
-
-    private IWorkbenchWindow window;
-
-    public InstallWizardAction() {
-        // do nothing
-    }
-
-    public void run() {
-        openInstaller(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
-    }
-
-    public void run(IAction action) {
-        openInstaller(window);
-    }
-
-    private void openInstaller(final IWorkbenchWindow window) {
-        BusyIndicator.showWhile(window.getShell().getDisplay(), new Runnable() {
-            public void run() {
-                UpdateManagerUI.openInstaller(window.getShell());
-            }
-        });
-    }
-
-    public void selectionChanged(IAction action, ISelection selection) {
-        // do nothing
-    }
-
-    public void dispose() {
-        // do nothing
-    }
-
-    public void init(IWorkbenchWindow window) {
-        this.window = window;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/bookmarkexplorer/BookmarkMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/bookmarkexplorer/BookmarkMessages.java
deleted file mode 100644
index bbbae84..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/bookmarkexplorer/BookmarkMessages.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 - Initial API and implementation
- **********************************************************************/
-package org.eclipse.ui.internal.views.bookmarkexplorer;
-
-import org.eclipse.osgi.util.NLS;
-
-public class BookmarkMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.views.bookmarkexplorer.messages";//$NON-NLS-1$
-	//
-	// Copyright (c) 2000, 2003 IBM Corporation and others.
-	// All rights reserved. This program and the accompanying materials
-	// are made available under the terms of the Eclipse Public License v1.0
-	// which accompanies this distribution, and is available at
-	// http://www.eclipse.org/legal/epl-v10.html
-	//
-	// Contributors:
-	//     IBM Corporation - initial API and implementation
-	//
-
-	// package: org.eclipse.ui.views.bookmarkexplorer
-
-
-	public static String CopyBookmark_text;
-
-	public static String PasteBookmark_text;
-	public static String PasteBookmark_undoText;
-	public static String PasteBookmark_errorTitle;
-
-	public static String OpenBookmark_text;
-	public static String OpenBookmark_toolTip;
-	public static String OpenBookmark_errorTitle;
-
-	public static String RemoveBookmark_text;
-	public static String RemoveBookmark_undoText;
-	public static String RemoveBookmark_toolTip;
-	public static String RemoveBookmark_errorTitle;
-
-	public static String SelectAll_text;
-	public static String SelectAll_toolTip;
-
-	public static String Properties_text;
-
-	public static String ColumnDescription_text;
-	public static String ColumnResource_text;
-	public static String ColumnFolder_text;
-	public static String ColumnLocation_text;
-	public static String ColumnCreationTime_text;
-	
-	public static String Error_text;
-
-	public static String LineIndicator_text;
-
-	public static String ColumnIcon_header;
-	public static String ColumnDescription_header;
-	public static String ColumnResource_header;
-	public static String ColumnFolder_header;
-	public static String ColumnLocation_header;
-
-	public static String ColumnDescription_dialogText;
-	public static String ColumnResource_dialogText;
-	public static String ColumnFolder_dialogText;
-	public static String ColumnLocation_dialogText;
-
-	public static String SortMenuGroup_text;
-	public static String SortDirectionAscending_text;
-	public static String SortDirectionDescending_text;
-
-	public static String PropertiesDialogTitle_text;
-	public static String MarkerCreationTime_text;
-
-	public static String CopyToClipboardProblemDialog_title;
-	public static String CopyToClipboardProblemDialog_message;
-
-	public static String CreateBookmark_undoText;
-	public static String ModifyBookmark_undoText;	
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, BookmarkMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/bookmarkexplorer/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/bookmarkexplorer/messages.properties
deleted file mode 100644
index cd21ea2..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/bookmarkexplorer/messages.properties
+++ /dev/null
@@ -1,73 +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.bookmarkexplorer
-
-
-# ==============================================================================
-# Bookmarks View
-# ==============================================================================
-
-CopyBookmark_text = &Copy
-
-PasteBookmark_text = &Paste
-PasteBookmark_undoText = Paste Bookmark
-PasteBookmark_errorTitle = Error pasting bookmark(s)
-
-OpenBookmark_text = &Go To
-OpenBookmark_toolTip = Go To
-OpenBookmark_errorTitle = Problems Opening Editor
-
-RemoveBookmark_text = &Delete
-RemoveBookmark_toolTip = Delete
-RemoveBookmark_undoText = Delete Bookmark
-RemoveBookmark_errorTitle = Error deleting bookmarks
-
-SelectAll_text = Select A&ll
-SelectAll_toolTip = Select All
-
-Properties_text = P&roperties
-
-ColumnDescription_text = by &Description
-ColumnResource_text = by &Resource
-ColumnFolder_text = by &Folder
-ColumnLocation_text = by &Location
-ColumnCreationTime_text = by &Creation Time
-
-LineIndicator_text = line {0}
-
-ColumnIcon_header =
-ColumnDescription_header = Description
-ColumnResource_header = Resource
-ColumnFolder_header = In Folder
-ColumnLocation_header = Location
-
-ColumnDescription_dialogText = Description:
-ColumnResource_dialogText = Resource:
-ColumnFolder_dialogText = In Folder:
-ColumnLocation_dialogText = Location:
-
-SortMenuGroup_text = &Sort
-SortDirectionAscending_text = &Ascending
-SortDirectionDescending_text = D&escending
-
-PropertiesDialogTitle_text = Bookmark Properties
-
-MarkerCreationTime_text = &Creation Time:
-
-Error_text = &Error
-
-CopyToClipboardProblemDialog_title=Problem Copying to Clipboard
-CopyToClipboardProblemDialog_message=There was a problem when accessing the system clipboard. Retry?
-
-CreateBookmark_undoText=Add Bookmark
-ModifyBookmark_undoText=Modify Bookmark
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/framelist/FrameListMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/framelist/FrameListMessages.java
deleted file mode 100644
index a08606c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/framelist/FrameListMessages.java
+++ /dev/null
@@ -1,39 +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.internal.views.framelist;
-
-import org.eclipse.osgi.util.NLS;
-
-public class FrameListMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.views.framelist.messages";//$NON-NLS-1$
-
-	// ==============================================================================
-	// FrameList
-	// ==============================================================================
-	public static String Back_text;
-	public static String Back_toolTip;
-	public static String Back_toolTipOneArg;
-
-	public static String Forward_text;
-	public static String Forward_toolTip;
-	public static String Forward_toolTipOneArg;
-
-	public static String GoInto_text;
-	public static String GoInto_toolTip;
-
-	public static String Up_text;
-	public static String Up_toolTip;
-	public static String Up_toolTipOneArg;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, FrameListMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/framelist/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/framelist/messages.properties
deleted file mode 100644
index 66da4cf..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/framelist/messages.properties
+++ /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.ui.views.framelist
-
-
-# ==============================================================================
-# FrameList
-# ==============================================================================
-Back_text = &Back
-Back_toolTip = Back
-Back_toolTipOneArg = Back to {0}
-
-Forward_text = &Forward
-Forward_toolTip = Forward
-Forward_toolTipOneArg = Forward to {0}
-
-GoInto_text = Go &Into
-GoInto_toolTip = Go Into
-
-Up_text = &Up One Level
-Up_toolTip = Up
-Up_toolTipOneArg = Up to {0}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/navigator/ResourceNavigatorMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/navigator/ResourceNavigatorMessages.java
deleted file mode 100644
index 90d48c7..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/navigator/ResourceNavigatorMessages.java
+++ /dev/null
@@ -1,86 +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.internal.views.navigator;
-
-import org.eclipse.osgi.util.NLS;
-
-public class ResourceNavigatorMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.views.navigator.messages";//$NON-NLS-1$
-
-	public static String ResourceNavigator_oneItemSelected;
-	public static String ResourceNavigator_statusLine;
-	public static String ResourceNavigator_workingSetToolTip;
-	public static String ResourceNavigator_workingSetInputToolTip;
-	public static String ResourceManager_toolTip;
-	public static String ShowInNavigator_errorMessage;
-
-	// --- Actions ---
-	public static String ResourceNavigator_sort;
-	public static String SortView_byType;
-	public static String SortView_toolTipByType;
-	public static String SortView_byName;
-	public static String SortView_toolTipByName;
-
-	public static String ToggleLinkingAction_text;
-	public static String ToggleLinkingAction_toolTip;
-
-	public static String ResourceNavigator_filterText;
-
-	public static String ResourceNavigator_new;
-	public static String ResourceNavigator_openWith;
-
-	public static String ShowInNavigator_text;
-	public static String ShowInNavigator_toolTip;
-
-	public static String CopyAction_title;
-	public static String CopyAction_toolTip;
-
-	public static String PasteAction_title;
-	public static String PasteAction_toolTip;
-
-	public static String CollapseAllAction_title;
-	public static String CollapseAllAction_toolTip;
-
-	public static String GoToResource_label;
-
-	public static String NavigatorFrameSource_closedProject_title;
-	public static String NavigatorFrameSource_closedProject_message;
-	// --- Dialogs ---
-	public static String Goto_title;
-	public static String FilterSelection_message;
-	public static String FilterSelection_toolTip;
-	public static String FilterSelection_title;
-
-	public static String DropAdapter_title;
-	public static String DropAdapter_problemImporting;
-	public static String DropAdapter_problemsMoving;
-	public static String DropAdapter_question;
-	public static String DropAdapter_targetMustBeResource;
-	public static String DropAdapter_canNotDropIntoClosedProject;
-	public static String DropAdapter_resourcesCanNotBeSiblings;
-	public static String DropAdapter_ok;
-	public static String DropAdapter_overwriteQuery;
-	public static String DropAdapter_dropOperationErrorOther;
-
-	public static String DragAdapter_title;
-	public static String DragAdapter_checkDeleteMessage;
-
-	public static String CopyToClipboardProblemDialog_title;
-	public static String CopyToClipboardProblemDialog_message;
-
-	public static String MoveResourceAction_title;
-	public static String MoveResourceAction_checkMoveMessage;
-
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, ResourceNavigatorMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/navigator/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/navigator/messages.properties
deleted file mode 100644
index 31c1b7b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/navigator/messages.properties
+++ /dev/null
@@ -1,84 +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.navigator
-
-
-# ==============================================================================
-# Navigator View
-# ==============================================================================
-ResourceNavigator_oneItemSelected = 1 item selected
-ResourceNavigator_statusLine = {0} items selected
-ResourceNavigator_workingSetToolTip = Working Set: {0}
-ResourceNavigator_workingSetInputToolTip = {0} - Working Set: {1}
-ResourceManager_toolTip = Workspace
-ShowInNavigator_errorMessage = Can't open navigator
-
-# --- Actions ---
-ResourceNavigator_sort = &Sort
-SortView_byType = by &Type
-SortView_toolTipByType = Sort by Type
-SortView_byName = by &Name
-SortView_toolTipByName = Sort by Name
-
-ToggleLinkingAction_text = &Link with Editor
-ToggleLinkingAction_toolTip = Link with Editor
-
-ResourceNavigator_filterText = &Filters...
-
-ResourceNavigator_new = Ne&w
-ResourceNavigator_openWith = Open Wit&h
-
-ShowInNavigator_text = Show in &Navigator
-ShowInNavigator_toolTip = Show Selected Objects in Navigator View
-
-CopyAction_title = &Copy
-CopyAction_toolTip = Copy
-
-PasteAction_title=&Paste
-PasteAction_toolTip = Paste
-
-CollapseAllAction_title = Co&llapse All
-CollapseAllAction_toolTip = Collapse All
-
-GoToResource_label=&Resource...
-
-NavigatorFrameSource_closedProject_title=Closed Project
-NavigatorFrameSource_closedProject_message=You attempted to go into a closed project: {0}\nPlease open the project and try again.
-# --- Dialogs ---
-Goto_title = Go To Resource
-
-FilterSelection_message = Select the &filters to apply (matching files will be hidden):
-FilterSelection_toolTip = Apply Filters
-FilterSelection_title = Navigator Filters
-
-
-# --- Drop Adapter ---
-DropAdapter_title = Drag and Drop Problem
-DropAdapter_problemImporting = Problems occurred while importing resources.
-DropAdapter_problemsMoving = Problems occurred while moving resources.
-DropAdapter_question = Question
-DropAdapter_targetMustBeResource = Target must be a resource
-DropAdapter_canNotDropIntoClosedProject = Cannot drop a resource into closed project
-DropAdapter_resourcesCanNotBeSiblings = Resources cannot be siblings of projects
-DropAdapter_ok = ok
-DropAdapter_overwriteQuery = {0} already exists.  Would you like to overwrite it?
-DropAdapter_dropOperationErrorOther = An error occurred during the drop operation.
-
-DragAdapter_title = Check Move
-DragAdapter_checkDeleteMessage = {0} is read only. Do you still wish to delete it?
-
-CopyToClipboardProblemDialog_title=Problem Copying to Clipboard
-CopyToClipboardProblemDialog_message=There was a problem when accessing the system clipboard. Retry?
-
-MoveResourceAction_title = Check Move
-MoveResourceAction_checkMoveMessage = ''{0}'' is read only. Do you still wish to move it?
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/properties/IDEPropertiesMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/properties/IDEPropertiesMessages.java
deleted file mode 100644
index 4c2bf37..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/properties/IDEPropertiesMessages.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.ui.internal.views.properties;
-
-import org.eclipse.osgi.util.NLS;
-
-public class IDEPropertiesMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.views.properties.ideMessages";//$NON-NLS-1$
-
-	// ==============================================================================
-	// Properties View - IDE-specific strings
-	// ==============================================================================
-
-	public static String PropertySource_notLocal;
-	public static String PropertySource_notFound;
-	public static String PropertySource_readOnly;
-	public static String PropertySource_undefinedPathVariable;
-	public static String PropertySource_fileNotExist;
-
-	public static String IResourcePropertyConstants_name;
-	public static String IResourcePropertyConstants_path;
-	public static String IResourcePropertyConstants_editable;
-	public static String IResourcePropertyConstants_derived;
-	public static String IResourcePropertyConstants_size;
-	public static String IResourcePropertyConstants_lastModified;
-	public static String IResourcePropertyConstants_info;
-	public static String IResourcePropertyConstants_location;
-	public static String IResourcePropertyConstants_resolvedLocation;
-	public static String IResourcePropertyConstants_linked;
-	public static String ResourceProperty_false;
-	public static String ResourceProperty_true;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, IDEPropertiesMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/properties/ideMessages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/properties/ideMessages.properties
deleted file mode 100644
index cfadf74..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/properties/ideMessages.properties
+++ /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.views.properties
-
-# ==============================================================================
-# Properties View - IDE-specific strings
-# ==============================================================================
-
-PropertySource_notLocal = <not local>
-PropertySource_notFound = <resource does not exist>
-PropertySource_readOnly = Read only
-PropertySource_undefinedPathVariable = <undefined path variable>
-PropertySource_fileNotExist = - (does not exist)
-
-IResourcePropertyConstants_name = name
-IResourcePropertyConstants_path = path
-IResourcePropertyConstants_editable = editable
-IResourcePropertyConstants_derived = derived
-IResourcePropertyConstants_size = size
-IResourcePropertyConstants_lastModified = last modified
-IResourcePropertyConstants_info = Info
-IResourcePropertyConstants_location = location
-IResourcePropertyConstants_resolvedLocation = resolved location
-IResourcePropertyConstants_linked = linked
-ResourceProperty_false = false
-ResourceProperty_true = true
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/tasklist/TaskListMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/tasklist/TaskListMessages.java
deleted file mode 100644
index 74649b8..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/tasklist/TaskListMessages.java
+++ /dev/null
@@ -1,190 +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.internal.views.tasklist;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * TaskListMessages are the messages used in the TaskList.
- *
- */
-public class TaskListMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.views.tasklist.messages";//$NON-NLS-1$
-
-	// ==============================================================================
-	// TaskList
-	// ==============================================================================
-
-	public static String TaskList_line;
-	public static String TaskList_lineAndLocation;
-
-	public static String TaskList_statusSummaryVisible;
-	public static String TaskList_statusSummarySelected;
-	public static String TaskList_statusSummaryBreakdown;
-	public static String TaskList_titleSummaryUnfiltered;
-	public static String TaskList_titleSummaryFiltered;
-	public static String TaskList_headerIcon;
-	public static String TaskList_headerCompleted;
-	public static String TaskList_headerPriority;
-	public static String TaskList_headerDescription;
-	public static String TaskList_headerResource;
-	public static String TaskList_headerFolder;
-	public static String TaskList_headerLocation;
-
-	public static String TaskList_high;
-	public static String TaskList_low;
-	public static String TaskList_normal;
-
-	public static String TaskList_errorModifyingTask;
-
-	public static String TaskList_reportKind;
-	public static String TaskList_reportStatus;
-	public static String TaskList_reportPriority;
-
-	public static String TaskList_task;
-	public static String TaskList_error;
-	public static String TaskList_warning;
-	public static String TaskList_info;
-
-	public static String TaskList_completed;
-	public static String TaskList_notCompleted;
-
-	public static String TaskList_markerLimitExceeded;
-
-	// --- Actions ---
-	public static String NewTask_text;
-	public static String NewTask_tooltip;
-	public static String NewTask_notShownTitle;
-	public static String NewTask_notShownMsg;
-
-	public static String CopyTask_text;
-	public static String CopyTask_tooltip;
-
-	public static String PasteTask_text;
-	public static String PasteTask_tooltip;
-	public static String PasteTask_errorMessage;
-
-	public static String RemoveTask_text;
-	public static String RemoveTask_tooltip;
-	public static String RemoveTask_undoText;
-	public static String RemoveTask_errorMessage;
-
-	public static String Filters_text;
-	public static String Filters_tooltip;
-
-	public static String SortByMenu_text;
-	public static String SortByCategory_text;
-	public static String SortByCategory_tooltip;
-	public static String SortByCompleted_text;
-	public static String SortByCompleted_tooltip;
-	public static String SortByPriority_text;
-	public static String SortByPriority_tooltip;
-	public static String SortByDescription_text;
-	public static String SortByDescription_tooltip;
-	public static String SortByResource_text;
-	public static String SortByResource_tooltip;
-	public static String SortByContainer_text;
-	public static String SortByContainer_tooltip;
-	public static String SortByLocation_text;
-	public static String SortByLocation_tooltip;
-	public static String SortByCreationTime_text;
-	public static String SortByCreationTime_tooltip;
-	public static String SortAscending_text;
-	public static String SortAscending_tooltip;
-	public static String SortDescending_text;
-	public static String SortDescending_tooltip;
-
-	public static String GotoTask_text;
-	public static String GotoTask_tooltip;
-	public static String GotoTask_errorMessage;
-
-	public static String PurgeCompleted_text;
-	public static String PurgeCompleted_tooltip;
-	public static String PurgeCompleted_title;
-	public static String PurgeCompleted_noneCompleted;
-	public static String PurgeCompleted_permanent;
-	public static String PurgeCompleted_errorMessage;
-
-	public static String MarkCompleted_text;
-	public static String MarkCompleted_tooltip;
-
-	public static String SelectAll_text;
-	public static String SelectAll_tooltip;
-
-	public static String Resolve_text;
-	public static String Resolve_tooltip;
-	public static String Resolve_title;
-	public static String Resolve_noResolutionsLabel;
-
-	public static String Properties_text;
-	public static String Properties_tooltip;
-
-	// --- Filter Dialog ---
-	public static String TaskList_filter;
-	public static String TaskList_showItemsOfType;
-
-	public static String TaskList_anyResource;
-	public static String TaskList_anyResourceInSameProject;
-	public static String TaskList_selectedResource;
-	public static String TaskList_selectedAndChildren;
-	public static String TaskList_workingSet;
-	public static String TaskList_workingSetSelect;
-	public static String TaskList_noWorkingSet;
-
-	public static String TaskList_whereDescription;
-	public static String TaskList_contains;
-	public static String TaskList_doesNotContain;
-
-	public static String TaskList_severity_label;
-	public static String TaskList_severity_error;
-	public static String TaskList_severity_warning;
-	public static String TaskList_severity_info;
-
-	public static String TaskList_priority_label;
-	public static String TaskList_priority_high;
-	public static String TaskList_priority_low;
-	public static String TaskList_priority_normal;
-
-	public static String TaskList_status_label;
-	public static String TaskList_status_completed;
-	public static String TaskList_status_notCompleted;
-
-	public static String TaskList_resetText;
-
-	public static String TaskList_limitVisibleTasksTo;
-	public static String TaskList_titleMarkerLimitInvalid;
-	public static String TaskList_messageMarkerLimitInvalid;
-	public static String TaskPropertiesDialog_WorkingOnMarker;
-	public static String TaskPropertiesDialog_CreatingMarker;
-
-	// --- Properties Dialog ---
-	public static String TaskProp_newTaskTitle;
-	public static String TaskProp_propertiesTitle;
-	//TaskProp.titleFmt = {0} - {1}
-	public static String TaskProp_description;
-	public static String TaskProp_creationTime;
-	public static String TaskProp_priority;
-	public static String TaskProp_completed;
-	public static String TaskProp_severity;
-	public static String TaskProp_onResource;
-	public static String TaskProp_inFolder;
-	public static String TaskProp_location;
-	public static String TaskProp_errorMessage;
-
-	public static String CopyToClipboardProblemDialog_title;
-	public static String CopyToClipboardProblemDialog_message;
-
-	public static String TaskPropertiesDialog_UpdatingAttributes;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, TaskListMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/tasklist/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/tasklist/messages.properties
deleted file mode 100644
index 2fee2ba..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/tasklist/messages.properties
+++ /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
-#     Cagatay Kavukcuoglu <cagatayk@acm.org> - Filter for markers in same project
-# 	  Sebastian Davids <sdavids@gmx.de> - bug 132427 - [Markers] TaskPropertiesDialog problems
-###############################################################################
-
-# package: org.eclipse.ui.views.tasklist
-
-
-# ==============================================================================
-# TaskList
-# ==============================================================================
-
-TaskList_line = line {0}
-TaskList_lineAndLocation = line {0} in {1}
-
-TaskList_statusSummaryVisible = {0,choice,0#0 items|1#{0,number,integer} item|1<{0,number,integer} items}: {1}
-TaskList_statusSummarySelected = {0,choice,0#0 items|1#{0,number,integer} item|1<{0,number,integer} items} selected: {1}
-TaskList_statusSummaryBreakdown = {0,choice,0#0 tasks|1#{0,number,integer} task|1<{0,number,integer} tasks}, {1,choice,0#0 errors|1#{1,number,integer} error|1<{1,number,integer} errors}, {2,choice,0#0 warnings|1#{2,number,integer} warning|1<{2,number,integer} warnings}, {3,choice,0#0 infos|1#{3,number,integer} info|1<{3,number,integer} infos}
-TaskList_titleSummaryUnfiltered = {0,choice,0#0 items|1#{0,number,integer} item|1<{0,number,integer} items}
-TaskList_titleSummaryFiltered = Filter matched {0} of {1,choice,0#0 items|1#{1,number,integer} item|1<{1,number,integer} items}
-
-TaskList_headerIcon =
-TaskList_headerCompleted = C
-TaskList_headerPriority = !
-TaskList_headerDescription = Description
-TaskList_headerResource = Resource
-TaskList_headerFolder = In Folder
-TaskList_headerLocation = Location
-
-TaskList_high = High
-TaskList_low = Low
-TaskList_normal = Normal
-
-TaskList_errorModifyingTask = Error modifying task
-
-TaskList_reportKind = Kind
-TaskList_reportStatus = Status
-TaskList_reportPriority = Priority
-
-TaskList_task = Task
-TaskList_error = Error
-TaskList_warning = Warning
-TaskList_info = Info
-
-TaskList_completed = Completed
-TaskList_notCompleted = Not Completed
-
-TaskList_markerLimitExceeded = There are too many items to display.\n\
-To see items in this window, adjust the filter settings.
-
-# --- Actions ---
-NewTask_text = &New Task
-NewTask_tooltip = New Task
-NewTask_notShownTitle = New Task Not Visible
-NewTask_notShownMsg = The new task will not be visible, due to the current filter settings.\n\
-To see all tasks, choose Filter... then select the Reset button.
-
-CopyTask_text = &Copy
-CopyTask_tooltip = Copy
-
-PasteTask_text = &Paste
-PasteTask_tooltip = Paste
-PasteTask_errorMessage = Error pasting task
-
-RemoveTask_text = &Delete
-RemoveTask_tooltip = Delete
-RemoveTask_undoText = Delete Task
-RemoveTask_errorMessage = Error deleting task
-
-Filters_text = &Filters...
-Filters_tooltip = Filters...
-
-SortByMenu_text= &Sort
-SortByCategory_text= by &Type
-SortByCategory_tooltip= Sort by type column
-SortByCompleted_text= by &Completion
-SortByCompleted_tooltip= Sort by completion column
-SortByPriority_text= by &Priority
-SortByPriority_tooltip= Sort by priority column
-SortByDescription_text= by &Description
-SortByDescription_tooltip= Sort by description column
-SortByResource_text= by &Resource
-SortByResource_tooltip= Sort by resource column
-SortByContainer_text= by &Folder
-SortByContainer_tooltip= Sort by folder column
-SortByLocation_text= by &Location
-SortByLocation_tooltip= Sort by location column
-SortByCreationTime_text= by Cr&eation Time
-SortByCreationTime_tooltip= Sort by task creation time
-SortAscending_text= &Ascending
-SortAscending_tooltip= Sort ascending
-SortDescending_text= De&scending
-SortDescending_tooltip= Sort Descending
-
-GotoTask_text = &Go To
-GotoTask_tooltip = Go To
-GotoTask_errorMessage = Problems Opening Editor
-
-PurgeCompleted_text = Delete Completed &Tasks
-PurgeCompleted_tooltip = Delete Completed Tasks
-PurgeCompleted_title = Delete Completed Tasks
-PurgeCompleted_noneCompleted = No completed tasks to delete.
-PurgeCompleted_permanent = Do you want to permanently delete all {0} completed tasks?
-PurgeCompleted_errorMessage = Error deleting completed tasks
-
-MarkCompleted_text = &Mark Completed
-MarkCompleted_tooltip = Mark Completed
-
-SelectAll_text = Select A&ll
-SelectAll_tooltip = Select All
-
-Resolve_text = &Quick Fix...
-Resolve_tooltip = Quick Fix
-Resolve_title = Quick Fix
-Resolve_noResolutionsLabel = There are no quick fixes available for the selected marker.
-
-Properties_text = P&roperties
-Properties_tooltip = Properties
-
-# --- Filter Dialog ---
-TaskList_filter = Filter Tasks
-TaskList_showItemsOfType = Show items of &type:
-
-TaskList_anyResource = On &any resource
-TaskList_anyResourceInSameProject = On any resource in same &project
-TaskList_selectedResource = On selected resource &only
-TaskList_selectedAndChildren = On selected resource and its &children
-TaskList_workingSet = On wor&king set:  {0}
-TaskList_workingSetSelect = &Select...
-TaskList_noWorkingSet = On wor&king set:  <no working set selected>
-
-TaskList_whereDescription = Where &description
-TaskList_contains = contains
-TaskList_doesNotContain = does not contain
-
-TaskList_severity_label = Where problem se&verity is:
-TaskList_severity_error = &Error
-TaskList_severity_warning = Warnin&g
-TaskList_severity_info = &Info
-
-TaskList_priority_label = Where task priorit&y is:
-TaskList_priority_high = &High
-TaskList_priority_low = Lo&w
-TaskList_priority_normal = &Normal
-
-TaskList_status_label = Where task stat&us is:
-TaskList_status_completed = Co&mpleted
-TaskList_status_notCompleted = Not Comp&leted
-
-TaskList_resetText = &Restore Defaults
-
-TaskList_limitVisibleTasksTo = Limit visi&ble items to:
-TaskList_titleMarkerLimitInvalid = Error
-TaskList_messageMarkerLimitInvalid = The visible item limit must be a positive integer.
-TaskPropertiesDialog_WorkingOnMarker=Working on Marker
-TaskPropertiesDialog_CreatingMarker=Creating marker
-
-# --- Properties Dialog ---
-TaskProp_newTaskTitle = New Task
-TaskProp_propertiesTitle = {0} Properties
-#TaskProp.titleFmt = {0} - {1}
-TaskProp_description = &Description:
-TaskProp_creationTime = Creation &Time:
-TaskProp_priority = &Priority:
-TaskProp_completed = &Completed
-TaskProp_severity = Severit&y:
-TaskProp_onResource = On &Resource:
-TaskProp_inFolder = In &Folder:
-TaskProp_location = &Location:
-TaskProp_errorMessage = Error creating or modifying task
-
-CopyToClipboardProblemDialog_title=Problem Copying to Clipboard
-CopyToClipboardProblemDialog_message=There was a problem when accessing the system clipboard. Retry?
-
-TaskPropertiesDialog_UpdatingAttributes=Updating attributes
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ArchiveFileExportOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ArchiveFileExportOperation.java
deleted file mode 100644
index 1c3736e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ArchiveFileExportOperation.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-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.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.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- *	Operation for exporting a resource and its children to a new .zip or
- *  .tar.gz file.
- *  
- *  @since 3.1
- */
-public class ArchiveFileExportOperation implements IRunnableWithProgress {
-    private IFileExporter exporter;
-
-    private String destinationFilename;
-
-    private IProgressMonitor monitor;
-
-    private List resourcesToExport;
-
-    private IResource resource;
-
-    private List errorTable = new ArrayList(1); //IStatus
-
-    private boolean useCompression = true;
-    
-    private boolean useTarFormat = false;
-
-    private boolean createLeadupStructure = true;
-
-    /**
-     *	Create an instance of this class.  Use this constructor if you wish to
-     *	export specific resources without a common parent resource
-     *
-     *	@param resources java.util.Vector
-     *	@param filename java.lang.String
-     */
-    public ArchiveFileExportOperation(List resources, String filename) {
-        super();
-
-        // Eliminate redundancies in list of resources being exported
-        Iterator elementsEnum = resources.iterator();
-        while (elementsEnum.hasNext()) {
-            IResource currentResource = (IResource) elementsEnum.next();
-            if (isDescendent(resources, currentResource)) {
-				elementsEnum.remove(); //Removes currentResource;
-			}
-        }
-
-        resourcesToExport = resources;
-        destinationFilename = filename;
-    }
-
-    /**
-     *  Create an instance of this class.  Use this constructor if you wish
-     *  to recursively export a single resource.
-     *
-     *  @param res org.eclipse.core.resources.IResource;
-     *  @param filename java.lang.String
-     */
-    public ArchiveFileExportOperation(IResource res, String filename) {
-        super();
-        resource = res;
-        destinationFilename = filename;
-    }
-
-    /**
-     *  Create an instance of this class.  Use this constructor if you wish to
-     *  export specific resources with a common parent resource (affects container
-     *  directory creation)
-     *
-     *  @param res org.eclipse.core.resources.IResource
-     *  @param resources java.util.Vector
-     *  @param filename java.lang.String
-     */
-    public ArchiveFileExportOperation(IResource res, List resources, String filename) {
-        this(res, filename);
-        resourcesToExport = resources;
-    }
-
-    /**
-     * Add a new entry to the error table with the passed information
-     */
-    protected void addError(String message, Throwable e) {
-        errorTable.add(new Status(IStatus.ERROR,
-                IDEWorkbenchPlugin.IDE_WORKBENCH, 0, message, e));
-    }
-
-    /**
-     *  Answer the total number of file resources that exist at or below self
-     *  in the resources hierarchy.
-     *
-     *  @return int
-     *  @param checkResource org.eclipse.core.resources.IResource
-     */
-    protected int countChildrenOf(IResource checkResource) throws CoreException {
-        if (checkResource.getType() == IResource.FILE) {
-			return 1;
-		}
-
-        int count = 0;
-        if (checkResource.isAccessible()) {
-            IResource[] children = ((IContainer) checkResource).members();
-            for (int i = 0; i < children.length; i++) {
-				count += countChildrenOf(children[i]);
-			}
-        }
-
-        return count;
-    }
-
-    /**
-     *	Answer a boolean indicating the number of file resources that were
-     *	specified for export
-     *
-     *	@return int
-     */
-    protected int countSelectedResources() throws CoreException {
-        int result = 0;
-        Iterator resources = resourcesToExport.iterator();
-        while (resources.hasNext()) {
-			result += countChildrenOf((IResource) resources.next());
-		}
-
-        return result;
-    }
-
-    /**
-     *  Export the passed resource to the destination .zip. Export with
-     * no path leadup
-     *
-     *  @param exportResource org.eclipse.core.resources.IResource
-     */
-    protected void exportResource(IResource exportResource)
-            throws InterruptedException {
-        exportResource(exportResource, 1);
-    }
-
-    /**
-     *  Export the passed resource to the destination .zip
-     *
-     *  @param exportResource org.eclipse.core.resources.IResource
-     *  @param leadupDepth the number of resource levels to be included in
-     *                     the path including the resourse itself.
-     */
-    protected void exportResource(IResource exportResource, int leadupDepth)
-            throws InterruptedException {
-        if (!exportResource.isAccessible()) {
-			return;
-		}
-
-        if (exportResource.getType() == IResource.FILE) {
-            String destinationName;
-            IPath fullPath = exportResource.getFullPath();
-            if (createLeadupStructure) {
-				destinationName = fullPath.makeRelative().toString();
-			} else {
-				destinationName = fullPath.removeFirstSegments(
-                        fullPath.segmentCount() - leadupDepth).toString();
-			}
-            monitor.subTask(destinationName);
-
-            try {
-                exporter.write((IFile) exportResource, destinationName);
-            } catch (IOException e) {
-                addError(NLS.bind(DataTransferMessages.DataTransfer_errorExporting, exportResource.getFullPath().makeRelative(), e.getMessage()), e);
-            } catch (CoreException e) {
-                addError(NLS.bind(DataTransferMessages.DataTransfer_errorExporting, exportResource.getFullPath().makeRelative(), e.getMessage()), e);
-            }
-
-            monitor.worked(1);
-            ModalContext.checkCanceled(monitor);
-        } else {
-            IResource[] children = null;
-
-            try {
-                children = ((IContainer) exportResource).members();
-            } catch (CoreException e) {
-                // this should never happen because an #isAccessible check is done before #members is invoked
-                addError(NLS.bind(DataTransferMessages.DataTransfer_errorExporting, exportResource.getFullPath()), e);
-            }
-
-            for (int i = 0; i < children.length; i++) {
-				exportResource(children[i], leadupDepth + 1);
-			}
-
-        }
-    }
-
-    /**
-     *	Export the resources contained in the previously-defined
-     *	resourcesToExport collection
-     */
-    protected void exportSpecifiedResources() throws InterruptedException {
-        Iterator resources = resourcesToExport.iterator();
-
-        while (resources.hasNext()) {
-            IResource currentResource = (IResource) resources.next();
-            exportResource(currentResource);
-        }
-    }
-
-    /**
-     * Returns the status of the operation.
-     * If there were any errors, the result is a status object containing
-     * individual status objects for each error.
-     * If there were no errors, the result is a status object with error code <code>OK</code>.
-     *
-     * @return the status
-     */
-    public IStatus getStatus() {
-        IStatus[] errors = new IStatus[errorTable.size()];
-        errorTable.toArray(errors);
-        return new MultiStatus(
-                IDEWorkbenchPlugin.IDE_WORKBENCH,
-                IStatus.OK,
-                errors,
-                DataTransferMessages.FileSystemExportOperation_problemsExporting,
-                null);
-    }
-
-    /**
-     *	Initialize this operation
-     *
-     *	@exception java.io.IOException
-     */
-    protected void initialize() throws IOException {
-    	if(useTarFormat) {
-    		exporter = new TarFileExporter(destinationFilename, useCompression);
-    	} else {
-        	exporter = new ZipFileExporter(destinationFilename, useCompression);
-    	}
-    }
-
-    /**
-     *  Answer a boolean indicating whether the passed child is a descendent
-     *  of one or more members of the passed resources collection
-     *
-     *  @return boolean
-     *  @param resources java.util.Vector
-     *  @param child org.eclipse.core.resources.IResource
-     */
-    protected boolean isDescendent(List resources, IResource child) {
-        if (child.getType() == IResource.PROJECT) {
-			return false;
-		}
-
-        IResource parent = child.getParent();
-        if (resources.contains(parent)) {
-			return true;
-		}
-
-        return isDescendent(resources, parent);
-    }
-
-    /**
-     *	Export the resources that were previously specified for export
-     *	(or if a single resource was specified then export it recursively)
-     */
-    public void run(IProgressMonitor progressMonitor)
-            throws InvocationTargetException, InterruptedException {
-        this.monitor = progressMonitor;
-
-        try {
-            initialize();
-        } catch (IOException e) {
-            throw new InvocationTargetException(e, NLS.bind(DataTransferMessages.ZipExport_cannotOpen, e.getMessage()));
-        }
-
-        try {
-            // ie.- a single resource for recursive export was specified
-            int totalWork = IProgressMonitor.UNKNOWN;
-            try {
-                if (resourcesToExport == null) {
-					totalWork = countChildrenOf(resource);
-				} else {
-					totalWork = countSelectedResources();
-				}
-            } catch (CoreException e) {
-                // Should not happen
-            }
-            monitor.beginTask(DataTransferMessages.DataTransfer_exportingTitle, totalWork);
-            if (resourcesToExport == null) {
-                exportResource(resource);
-            } else {
-                // ie.- a list of specific resources to export was specified
-                exportSpecifiedResources();
-            }
-
-            try {
-                exporter.finished();
-            } catch (IOException e) {
-                throw new InvocationTargetException(
-                        e,
-                        NLS.bind(DataTransferMessages.ZipExport_cannotClose, e.getMessage()));
-            }
-        } finally {
-            monitor.done();
-        }
-    }
-
-    /**
-     *	Set this boolean indicating whether each exported resource's path should
-     *	include containment hierarchies as dictated by its parents
-     *
-     *	@param value boolean
-     */
-    public void setCreateLeadupStructure(boolean value) {
-        createLeadupStructure = value;
-    }
-
-    /**
-     *	Set this boolean indicating whether exported resources should
-     *	be compressed (as opposed to simply being stored)
-     *
-     *	@param value boolean
-     */
-    public void setUseCompression(boolean value) {
-        useCompression = value;
-    }
-    
-    /**
-     * Set this boolean indicating whether the file should be output
-     * in tar.gz format rather than .zip format.
-     * 
-     * @param value boolean
-     */
-    public void setUseTarFormat(boolean value) {
-    	useTarFormat = value;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ArchiveFileManipulations.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ArchiveFileManipulations.java
deleted file mode 100644
index 72cb086..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ArchiveFileManipulations.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 implementation
- *     Red Hat, Inc - Extracted methods from WizardArchiveFileResourceImportPage1
- *******************************************************************************/
-
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-import java.io.IOException;
-import java.util.zip.ZipFile;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * @since 3.1
- */
-public class ArchiveFileManipulations {
-
-	private static ZipLeveledStructureProvider zipProviderCache;
-
-	private static TarLeveledStructureProvider tarProviderCache;
-
-	/**
-	 * Determine whether the file with the given filename is in .tar.gz or .tar
-	 * format.
-	 * 
-	 * @param fileName
-	 *            file to test
-	 * @return true if the file is in tar format
-	 */
-	public static boolean isTarFile(String fileName) {
-		if (fileName.length() == 0) {
-			return false;
-		}
-
-		try {
-			new TarFile(fileName);
-		} catch (TarException tarException) {
-			return false;
-		} catch (IOException ioException) {
-			return false;
-		}
-
-		return true;
-	}
-
-	/**
-	 * Determine whether the file with the given filename is in .zip or .jar
-	 * format.
-	 * 
-	 * @param fileName
-	 *            file to test
-	 * @return true if the file is in tar format
-	 */
-	public static boolean isZipFile(String fileName) {
-		if (fileName.length() == 0) {
-			return false;
-		}
-
-		try {
-			new ZipFile(fileName);
-		} catch (IOException ioException) {
-			return false;
-		}
-
-		return true;
-	}
-
-	/**
-	 * Clears the cached structure provider after first finalizing it properly.
-	 * 
-	 * @param shell
-	 *            The shell to display any possible Dialogs in
-	 */
-	public static void clearProviderCache(Shell shell) {
-		if (zipProviderCache != null) {
-			closeZipFile(zipProviderCache.getZipFile(), shell);
-			zipProviderCache = null;
-		}
-		tarProviderCache = null;
-	}
-
-	/**
-	 * @param targetZip
-	 * @param shell
-	 * @return the structure provider
-	 */
-	public static ZipLeveledStructureProvider getZipStructureProvider(
-			ZipFile targetZip, Shell shell) {
-		if (zipProviderCache == null) {
-			zipProviderCache = new ZipLeveledStructureProvider(targetZip);
-		} else if (!zipProviderCache.getZipFile().getName().equals(
-				targetZip.getName())) {
-			clearProviderCache(shell);
-			// ie.- new value, so finalize&remove old value
-			zipProviderCache = new ZipLeveledStructureProvider(targetZip);
-		} else if (!zipProviderCache.getZipFile().equals(targetZip)) {
-			// duplicate handle to same zip
-			// dispose old zip and use new one in case old one is closed
-			zipProviderCache = new ZipLeveledStructureProvider(targetZip);
-		}
-
-		return zipProviderCache;
-	}
-
-	/**
-	 * Attempts to close the passed zip file, and answers a boolean indicating
-	 * success.
-	 * 
-	 * @param file
-	 *            The zip file to attempt to close
-	 * @param shell
-	 *            The shell to display error dialogs in
-	 * @return Returns true if the operation was successful
-	 */
-	public static boolean closeZipFile(ZipFile file, Shell shell) {
-		try {
-			file.close();
-		} catch (IOException e) {
-			displayErrorDialog(DataTransferMessages.ZipImport_couldNotClose,
-					shell);
-			return false;
-		}
-
-		return true;
-	}
-
-	/**
-	 * Returns a structure provider for the specified tar file.
-	 * 
-	 * @param targetTar
-	 *            The specified tar file
-	 * @param shell
-	 *            The shell to display dialogs in
-	 * @return the structure provider
-	 */
-	public static TarLeveledStructureProvider getTarStructureProvider(
-			TarFile targetTar, Shell shell) {
-		if (tarProviderCache == null) {
-			tarProviderCache = new TarLeveledStructureProvider(targetTar);
-		} else if (!tarProviderCache.getTarFile().getName().equals(
-				targetTar.getName())) {
-			ArchiveFileManipulations.clearProviderCache(shell);
-			// ie.- new value, so finalize&remove old value
-			tarProviderCache = new TarLeveledStructureProvider(targetTar);
-		}
-
-		return tarProviderCache;
-	}
-
-	/**
-	 * Display an error dialog with the specified message.
-	 * 
-	 * @param message
-	 *            the error message
-	 */
-	protected static void displayErrorDialog(String message, Shell shell) {
-		MessageDialog.openError(shell, getErrorDialogTitle(), message);
-	}
-
-	/**
-	 * Get the title for an error dialog. Subclasses should override.
-	 */
-	protected static String getErrorDialogTitle() {
-		return IDEWorkbenchMessages.WizardExportPage_internalErrorTitle;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/DataTransferMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/DataTransferMessages.java
deleted file mode 100644
index 47cd292..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/DataTransferMessages.java
+++ /dev/null
@@ -1,141 +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
- * Red Hat, Inc - WizardProjectsImportPage[_ArchiveSelectTitle,
- * 										   _SelectArchiveDialogTitle]
- **********************************************************************/
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-import org.eclipse.osgi.util.NLS;
-
-public class DataTransferMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.wizards.datatransfer.messages";//$NON-NLS-1$
-
-	// ==============================================================================
-	// Data Transfer Wizards
-	// ==============================================================================
-	public static String DataTransfer_fileSystemTitle;
-	public static String ZipExport_exportTitle;
-	public static String ArchiveExport_exportTitle;
-
-	public static String DataTransfer_browse;
-	public static String DataTransfer_selectTypes;
-	public static String DataTransfer_selectAll;
-	public static String DataTransfer_deselectAll;
-	public static String DataTransfer_refresh;
-	public static String DataTransfer_cannotOverwrite;
-	public static String DataTransfer_emptyString;
-	public static String DataTransfer_scanningMatching;
-	public static String DataTransfer_information;
-
-	// --- Import Wizards ---
-	public static String DataTransfer_importTitle;
-
-	public static String DataTransfer_importTask;
-	public static String ImportOperation_cannotCopy;
-	public static String ImportOperation_importProblems;
-	public static String ImportOperation_openStreamError;
-	public static String ImportOperation_closeStreamError;
-	public static String ImportOperation_coreImportError;
-	public static String ImportOperation_targetSameAsSourceError;
-	public static String ImportPage_filterSelections;
-
-	public static String FileImport_selectSource;
-	public static String FileImport_selectSourceTitle;
-	public static String FileImport_fromDirectory;
-	public static String FileImport_importFileSystem;
-	public static String FileImport_overwriteExisting;
-	public static String FileImport_createComplete;
-	public static String FileImport_createSelectedFolders;
-	public static String FileImport_noneSelected;
-	public static String FileImport_invalidSource;
-	public static String FileImport_sourceEmpty;
-	public static String FileImport_importProblems;
-	public static String ZipImport_description;
-	public static String ZipImport_couldNotClose;
-	public static String ZipImport_badFormat;
-	public static String ZipImport_couldNotRead;
-	public static String ZipImport_fromFile;
-	public static String ZipImportSource_title;
-
-	public static String ArchiveImport_description;
-	public static String ArchiveImport_fromFile;
-	public static String ArchiveImportSource_title;
-	public static String TarImport_badFormat;
-
-	public static String WizardExternalProjectImportPage_locationError;
-	public static String WizardExternalProjectImportPage_projectLocationEmpty;
-	public static String WizardExternalProjectImportPage_projectExistsMessage;
-	public static String WizardExternalProjectImportPage_projectContentsLabel;
-	public static String WizardExternalProjectImportPage_nameLabel;
-	public static String WizardProjectsImportPage_RootSelectTitle;
-	public static String WizardExternalProjectImportPage_title;
-	public static String WizardExternalProjectImportPage_description;
-	public static String WizardExternalProjectImportPage_notAProject;
-	public static String WizardProjectsImportPage_ProjectsListTitle;
-	public static String WizardProjectsImportPage_ProcessingMessage;
-	public static String WizardProjectsImportPage_SelectDialogTitle;
-	public static String WizardProjectsImportPage_SearchingMessage;
-	public static String WizardExternalProjectImportPage_errorMessage;
-	public static String WizardProjectsImportPage_ImportProjectsTitle;
-	public static String WizardExternalProjectImportPage_caseVariantExistsError;
-	public static String WizardExternalProjectImportPage_directoryLabel;
-	public static String WizardProjectsImportPage_ImportProjectsDescription;
-	public static String WizardProjectsImportPage_CheckingMessage;
-	public static String WizardProjectsImportPage_ArchiveSelectTitle;
-	public static String WizardProjectsImportPage_SelectArchiveDialogTitle;
-	public static String WizardProjectsImportPage_CreateProjectsTask;
-	public static String WizardProjectsImportPage_CopyProjectsIntoWorkspace;
-
-	// --- Export Wizards ---
-	public static String DataTransfer_export;
-
-	public static String DataTransfer_exportingTitle;
-	public static String DataTransfer_createTargetDirectory;
-	public static String DataTransfer_directoryCreationError;
-	public static String DataTransfer_errorExporting;
-	public static String DataTransfer_exportProblems;
-
-	public static String ExportFile_overwriteExisting;
-	public static String FileExport_selectDestinationTitle;
-	public static String FileExport_selectDestinationMessage;
-	public static String FileExport_exportLocalFileSystem;
-	public static String FileExport_destinationEmpty;
-	public static String FileExport_createDirectoryStructure;
-	public static String FileExport_createSelectedDirectories;
-	public static String FileExport_noneSelected;
-	public static String FileExport_directoryExists;
-	public static String FileExport_conflictingContainer;
-	public static String FileExport_rootName;
-	public static String FileSystemExportOperation_problemsExporting;
-	public static String FileExport_toDirectory;
-
-	public static String ZipExport_compressContents;
-	public static String ZipExport_destinationLabel;
-	public static String ZipExport_mustBeFile;
-	public static String ZipExport_alreadyExists;
-	public static String ZipExport_alreadyExistsError;
-	public static String ZipExport_cannotOpen;
-	public static String ZipExport_cannotClose;
-	public static String ZipExport_selectDestinationTitle;
-	public static String ZipExport_destinationEmpty;
-
-	public static String ArchiveExport_description;
-	public static String ArchiveExport_destinationLabel;
-	public static String ArchiveExport_selectDestinationTitle;
-	public static String ArchiveExport_destinationEmpty;
-	public static String ArchiveExport_saveInZipFormat;
-	public static String ArchiveExport_saveInTarFormat;
-
-	public static String TarImport_invalid_tar_format;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, DataTransferMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExportOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExportOperation.java
deleted file mode 100644
index a037493..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExportOperation.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.ui.internal.wizards.datatransfer;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-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.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.MultiStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-
-
-/**
- *	Operation for exporting the contents of a resource to the local file system.
- */
-public class FileSystemExportOperation implements IRunnableWithProgress {
-    private IPath path;
-
-    private IProgressMonitor monitor;
-
-    private FileSystemExporter exporter = new FileSystemExporter();
-
-    private List resourcesToExport;
-
-    private IOverwriteQuery overwriteCallback;
-
-    private IResource resource;
-
-    private List errorTable = new ArrayList(1);
-
-    //The constants for the overwrite 3 state
-    private static final int OVERWRITE_NOT_SET = 0;
-
-    private static final int OVERWRITE_NONE = 1;
-
-    private static final int OVERWRITE_ALL = 2;
-
-    private int overwriteState = OVERWRITE_NOT_SET;
-
-    private boolean createLeadupStructure = true;
-
-    private boolean createContainerDirectories = true;
-
-    /**
-     *  Create an instance of this class.  Use this constructor if you wish to
-     *  recursively export a single resource
-     */
-    public FileSystemExportOperation(IResource res, String destinationPath,
-            IOverwriteQuery overwriteImplementor) {
-        super();
-        resource = res;
-        path = new Path(destinationPath);
-        overwriteCallback = overwriteImplementor;
-    }
-
-    /**
-     *  Create an instance of this class.  Use this constructor if you wish to
-     *  export specific resources with a common parent resource (affects container
-     *  directory creation)
-     */
-    public FileSystemExportOperation(IResource res, List resources,
-            String destinationPath, IOverwriteQuery overwriteImplementor) {
-        this(res, destinationPath, overwriteImplementor);
-        resourcesToExport = resources;
-    }
-
-    /**
-     *  Answer the total number of file resources that exist at or below self in the
-     *  resources hierarchy.
-     *
-     *  @return int
-     *  @param parentResource org.eclipse.core.resources.IResource
-     */
-    protected int countChildrenOf(IResource parentResource)
-            throws CoreException {
-        if (parentResource.getType() == IResource.FILE) {
-			return 1;
-		}
-
-        int count = 0;
-        if (parentResource.isAccessible()) {
-            IResource[] children = ((IContainer) parentResource).members();
-            for (int i = 0; i < children.length; i++) {
-				count += countChildrenOf(children[i]);
-			}
-        }
-
-        return count;
-    }
-
-    /**
-     *	Answer a boolean indicating the number of file resources that were
-     *	specified for export
-     *
-     *	@return int
-     */
-    protected int countSelectedResources() throws CoreException {
-        int result = 0;
-        Iterator resources = resourcesToExport.iterator();
-
-        while (resources.hasNext()) {
-			result += countChildrenOf((IResource) resources.next());
-		}
-
-        return result;
-    }
-
-    /**
-     *  Create the directories required for exporting the passed resource,
-     *  based upon its container hierarchy
-     *
-     *  @param childResource org.eclipse.core.resources.IResource
-     */
-    protected void createLeadupDirectoriesFor(IResource childResource) {
-        IPath resourcePath = childResource.getFullPath().removeLastSegments(1);
-
-        for (int i = 0; i < resourcePath.segmentCount(); i++) {
-            path = path.append(resourcePath.segment(i));
-            exporter.createFolder(path);
-        }
-    }
-
-    /**
-     *	Recursively export the previously-specified resource
-     */
-    protected void exportAllResources() throws InterruptedException {
-        if (resource.getType() == IResource.FILE) {
-			exportFile((IFile) resource, path);
-		} else {
-            try {
-                exportChildren(((IContainer) resource).members(), path);
-            } catch (CoreException e) {
-                // not safe to show a dialog
-                // should never happen because the file system export wizard ensures that the
-                // single resource chosen for export is both existent and accessible
-                errorTable.add(e.getStatus());
-            }
-        }
-    }
-
-    /**
-     *	Export all of the resources contained in the passed collection
-     *
-     *	@param children java.util.Enumeration
-     *	@param currentPath IPath
-     */
-    protected void exportChildren(IResource[] children, IPath currentPath)
-            throws InterruptedException {
-        for (int i = 0; i < children.length; i++) {
-            IResource child = children[i];
-            if (!child.isAccessible()) {
-				continue;
-			}
-
-            if (child.getType() == IResource.FILE) {
-				exportFile((IFile) child, currentPath);
-			} else {
-                IPath destination = currentPath.append(child.getName());
-                exporter.createFolder(destination);
-                try {
-                    exportChildren(((IContainer) child).members(), destination);
-                } catch (CoreException e) {
-                    // not safe to show a dialog
-                    // should never happen because:
-                    // i. this method is called recursively iterating over the result of #members,
-                    //		which only answers existing children
-                    // ii. there is an #isAccessible check done before #members is invoked
-                    errorTable.add(e.getStatus());
-                }
-            }
-        }
-    }
-
-    /**
-     *  Export the passed file to the specified location
-     *
-     *  @param file org.eclipse.core.resources.IFile
-     *  @param location org.eclipse.core.runtime.IPath
-     */
-    protected void exportFile(IFile file, IPath location)
-            throws InterruptedException {
-        IPath fullPath = location.append(file.getName());
-        monitor.subTask(file.getFullPath().toString());
-        String properPathString = fullPath.toOSString();
-        File targetFile = new File(properPathString);
-
-        if (targetFile.exists()) {
-            if (!targetFile.canWrite()) {
-                errorTable.add(new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID,
-                        0, NLS.bind(DataTransferMessages.DataTransfer_cannotOverwrite, targetFile.getAbsolutePath()),
-                        null));
-                monitor.worked(1);
-                return;
-            }
-
-            if (overwriteState == OVERWRITE_NONE) {
-				return;
-			}
-
-            if (overwriteState != OVERWRITE_ALL) {
-                String overwriteAnswer = overwriteCallback
-                        .queryOverwrite(properPathString);
-
-                if (overwriteAnswer.equals(IOverwriteQuery.CANCEL)) {
-					throw new InterruptedException();
-				}
-
-                if (overwriteAnswer.equals(IOverwriteQuery.NO)) {
-                    monitor.worked(1);
-                    return;
-                }
-
-                if (overwriteAnswer.equals(IOverwriteQuery.NO_ALL)) {
-                    monitor.worked(1);
-                    overwriteState = OVERWRITE_NONE;
-                    return;
-                }
-
-                if (overwriteAnswer.equals(IOverwriteQuery.ALL)) {
-					overwriteState = OVERWRITE_ALL;
-				}
-            }
-        }
-
-        try {
-            exporter.write(file, fullPath);
-        } catch (IOException e) {
-            errorTable.add(new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID, 0,
-                    NLS.bind(DataTransferMessages.DataTransfer_errorExporting, fullPath, e.getMessage()), e));
-        } catch (CoreException e) {
-            errorTable.add(new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID, 0,
-                    NLS.bind(DataTransferMessages.DataTransfer_errorExporting, fullPath, e.getMessage()), e));
-        }
-
-        monitor.worked(1);
-        ModalContext.checkCanceled(monitor);
-    }
-
-    /**
-     *	Export the resources contained in the previously-defined
-     *	resourcesToExport collection
-     */
-    protected void exportSpecifiedResources() throws InterruptedException {
-        Iterator resources = resourcesToExport.iterator();
-        IPath initPath = (IPath) path.clone();
-
-        while (resources.hasNext()) {
-            IResource currentResource = (IResource) resources.next();
-            if (!currentResource.isAccessible()) {
-				continue;
-			}
-
-            path = initPath;
-
-            if (resource == null) {
-                // No root resource specified and creation of containment directories
-                // is required.  Create containers from depth 2 onwards (ie.- project's
-                // child inclusive) for each resource being exported.
-                if (createLeadupStructure) {
-					createLeadupDirectoriesFor(currentResource);
-				}
-
-            } else {
-                // Root resource specified.  Must create containment directories
-                // from this point onwards for each resource being exported
-                IPath containersToCreate = currentResource.getFullPath()
-                        .removeFirstSegments(
-                                resource.getFullPath().segmentCount())
-                        .removeLastSegments(1);
-
-                for (int i = 0; i < containersToCreate.segmentCount(); i++) {
-                    path = path.append(containersToCreate.segment(i));
-                    exporter.createFolder(path);
-                }
-            }
-
-            if (currentResource.getType() == IResource.FILE) {
-				exportFile((IFile) currentResource, path);
-			} else {
-                if (createContainerDirectories) {
-                    path = path.append(currentResource.getName());
-                    exporter.createFolder(path);
-                }
-
-                try {
-                    exportChildren(((IContainer) currentResource).members(),
-                            path);
-                } catch (CoreException e) {
-                    // should never happen because #isAccessible is called before #members is invoked,
-                    // which implicitly does an existence check
-                    errorTable.add(e.getStatus());
-                }
-            }
-        }
-    }
-
-    /**
-     * Returns the status of the export operation.
-     * If there were any errors, the result is a status object containing
-     * individual status objects for each error.
-     * If there were no errors, the result is a status object with error code <code>OK</code>.
-     *
-     * @return the status
-     */
-    public IStatus getStatus() {
-        IStatus[] errors = new IStatus[errorTable.size()];
-        errorTable.toArray(errors);
-        return new MultiStatus(
-                PlatformUI.PLUGIN_ID,
-                IStatus.OK,
-                errors,
-                DataTransferMessages.FileSystemExportOperation_problemsExporting,
-                null);
-    }
-
-    /**
-     *  Answer a boolean indicating whether the passed child is a descendent
-     *  of one or more members of the passed resources collection
-     *
-     *  @return boolean
-     *  @param resources java.util.List
-     *  @param child org.eclipse.core.resources.IResource
-     */
-    protected boolean isDescendent(List resources, IResource child) {
-        if (child.getType() == IResource.PROJECT) {
-			return false;
-		}
-
-        IResource parent = child.getParent();
-        if (resources.contains(parent)) {
-			return true;
-		}
-
-        return isDescendent(resources, parent);
-    }
-
-    /**
-     *	Export the resources that were previously specified for export
-     *	(or if a single resource was specified then export it recursively)
-     */
-    public void run(IProgressMonitor progressMonitor)
-            throws InterruptedException {
-        this.monitor = progressMonitor;
-
-        if (resource != null) {
-            if (createLeadupStructure) {
-				createLeadupDirectoriesFor(resource);
-			}
-
-            if (createContainerDirectories
-                    && resource.getType() != IResource.FILE) {
-                // ensure it's a container
-                path = path.append(resource.getName());
-                exporter.createFolder(path);
-            }
-        }
-
-        try {
-            int totalWork = IProgressMonitor.UNKNOWN;
-            try {
-                if (resourcesToExport == null) {
-					totalWork = countChildrenOf(resource);
-				} else {
-					totalWork = countSelectedResources();
-				}
-            } catch (CoreException e) {
-                // Should not happen
-                errorTable.add(e.getStatus());
-            }
-            monitor.beginTask(DataTransferMessages.DataTransfer_exportingTitle, totalWork);
-            if (resourcesToExport == null) {
-                exportAllResources();
-            } else {
-                exportSpecifiedResources();
-            }
-        } finally {
-            monitor.done();
-        }
-    }
-
-    /**
-     *	Set this boolean indicating whether a directory should be created for
-     *	Folder resources that are explicitly passed for export
-     *
-     *	@param value boolean
-     */
-    public void setCreateContainerDirectories(boolean value) {
-        createContainerDirectories = value;
-    }
-
-    /**
-     *	Set this boolean indicating whether each exported resource's complete path should
-     *	include containment hierarchies as dictated by its parents
-     *
-     *	@param value boolean
-     */
-    public void setCreateLeadupStructure(boolean value) {
-        createLeadupStructure = value;
-    }
-
-    /**
-     *	Set this boolean indicating whether exported resources should automatically
-     *	overwrite existing files when a conflict occurs. If not
-     *	query the user.
-     *
-     *	@param value boolean
-     */
-    public void setOverwriteFiles(boolean value) {
-        if (value) {
-			overwriteState = OVERWRITE_ALL;
-		}
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExporter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExporter.java
deleted file mode 100644
index a09666e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExporter.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.internal.wizards.datatransfer;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * Helper class for exporting resources to the file system.
- */
-public class FileSystemExporter {
-	private static final int DEFAULT_BUFFER_SIZE = 16*1024;
-	
-    /**
-     *  Creates the specified file system directory at <code>destinationPath</code>.
-     *  This creates a new file system directory.
-     *  
-     *  @param destinationPath location to which files will be written
-     */
-    public void createFolder(IPath destinationPath) {
-        new File(destinationPath.toOSString()).mkdir();
-    }
-
-    /**
-     *  Writes the passed resource to the specified location recursively.
-     *  
-     *  @param resource the resource to write out to the file system
-     *  @param destinationPath location where the resource will be written
-     *  @exception CoreException if the operation fails 
-     *  @exception IOException if an I/O error occurs when writing files
-     */
-    public void write(IResource resource, IPath destinationPath)
-            throws CoreException, IOException {
-        if (resource.getType() == IResource.FILE) {
-			writeFile((IFile) resource, destinationPath);
-		} else {
-			writeChildren((IContainer) resource, destinationPath);
-		}
-    }
-
-    /**
-     *  Exports the passed container's children
-     */
-    protected void writeChildren(IContainer folder, IPath destinationPath)
-            throws CoreException, IOException {
-        if (folder.isAccessible()) {
-            IResource[] children = folder.members();
-            for (int i = 0; i < children.length; i++) {
-                IResource child = children[i];
-                writeResource(child, destinationPath.append(child.getName()));
-            }
-        }
-    }
-
-    /**
-     *  Writes the passed file resource to the specified destination on the local
-     *  file system
-     */
-    protected void writeFile(IFile file, IPath destinationPath)
-            throws IOException, CoreException {
-        OutputStream output = null;
-        InputStream contentStream = null;
-
-        try {
-            contentStream = new BufferedInputStream(file.getContents(false));
-            output = new BufferedOutputStream(new FileOutputStream(destinationPath.toOSString()));
-            // for large files, need to make sure the chunk size can be handled by the VM
-            int available = contentStream.available();
-            available = available <= 0 ? DEFAULT_BUFFER_SIZE : available;
-            int chunkSize = Math.min(DEFAULT_BUFFER_SIZE, available);
-            byte[] readBuffer = new byte[chunkSize];
-            int n = contentStream.read(readBuffer);
-
-            while (n > 0) {
-            	// only write the number of bytes read
-                output.write(readBuffer, 0, n);
-                n = contentStream.read(readBuffer);
-            }
-        } finally {
-            if (contentStream != null) {
-            	// wrap in a try-catch to ensure attempt to close output stream
-            	try {
-            		contentStream.close();
-            	}
-            	catch(IOException e){
-            		IDEWorkbenchPlugin
-							.log(
-									"Error closing input stream for file: " + file.getLocation(), e); //$NON-NLS-1$
-            	}
-			}
-        	if (output != null) {
-        		// propogate this error to the user
-           		output.close();
-			}
-        }
-    }
-
-    /**
-     *  Writes the passed resource to the specified location recursively
-     */
-    protected void writeResource(IResource resource, IPath destinationPath)
-            throws CoreException, IOException {
-        if (resource.getType() == IResource.FILE) {
-			writeFile((IFile) resource, destinationPath);
-		} else {
-            createFolder(destinationPath);
-            writeChildren((IContainer) resource, destinationPath);
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/IDataTransferHelpContextIds.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/IDataTransferHelpContextIds.java
deleted file mode 100644
index 4b8f25d..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/IDataTransferHelpContextIds.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Help context ids for the data transfer wizards.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * 
- */
-public interface IDataTransferHelpContextIds {
-    public static final String PREFIX = PlatformUI.PLUGIN_ID + "."; //$NON-NLS-1$
-
-    // Wizard pages
-    public static final String FILE_SYSTEM_EXPORT_WIZARD_PAGE = PREFIX
-            + "file_system_export_wizard_page"; //$NON-NLS-1$
-
-    public static final String FILE_SYSTEM_IMPORT_WIZARD_PAGE = PREFIX
-            + "file_system_import_wizard_page"; //$NON-NLS-1$
-
-    public static final String ZIP_FILE_EXPORT_WIZARD_PAGE = PREFIX
-            + "zip_file_export_wizard_page"; //$NON-NLS-1$
-
-    public static final String ZIP_FILE_IMPORT_WIZARD_PAGE = PREFIX
-            + "zip_file_import_wizard_page"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/IFileExporter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/IFileExporter.java
deleted file mode 100644
index 303a726..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/IFileExporter.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.internal.wizards.datatransfer;
-
-import java.io.IOException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Interface for file exporters of different file formats.  Used by the
- * zip and tar.gz exporters.
- * 
- * @since 3.1
- */
-public interface IFileExporter {
-
-	/**
-	 * Do all required cleanup now that we are finished with the
-     * currently-open file.
-     * 
-	 * @throws IOException
-	 */
-	public void finished() throws IOException;
-	
-	/**
-	 * Write the passed resource to the current archive
-	 * 
-	 * @param resource
-	 * @param destinationPath
-	 * @throws IOException
-	 * @throws CoreException
-	 */
-    public void write(IFile resource, String destinationPath)
-    	throws IOException, CoreException;
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ILeveledImportStructureProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ILeveledImportStructureProvider.java
deleted file mode 100644
index e465884..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ILeveledImportStructureProvider.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
- *     Red Hat, Inc - setStrip(int), getStrip()
- *******************************************************************************/
-
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-
-import org.eclipse.ui.wizards.datatransfer.IImportStructureProvider;
-
-/**
- * Interface which can provide structure and content information for an archive 
- * element. Used by the import wizards to abstract the commonalities between 
- * importing from the a zip file and importing from a tar file.
- * 
- * @since 3.1
- */
-interface ILeveledImportStructureProvider extends IImportStructureProvider {
-	/**
-	 * Returns the entry that this importer uses as the root sentinel.
-	 * 
-	 * @return root entry of the archive file
-	 */
-	public abstract Object getRoot();
-
-	/**
-	 * Tells the provider to strip N number of directories from the path of any
-	 * path or file name returned by the IImportStructureProvider (Default=0).
-	 * 
-	 * @param level
-	 *            The number of directories to strip
-	 */
-	public abstract void setStrip(int level);
-
-	/**
-	 * Returns the number of directories that this IImportStructureProvider is
-	 * stripping from the file name
-	 * 
-	 * @return int Number of entries
-	 */
-	public abstract int getStrip();
-	
-	/**
-	 * Close the archive file that was used to create this leveled structure provider.
-	 * 
-	 * @return <code>true</code> if the archive was closed successfully
-	 */
-	public boolean closeArchive();
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/MinimizedFileSystemElement.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/MinimizedFileSystemElement.java
deleted file mode 100644
index eab3f70..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/MinimizedFileSystemElement.java
+++ /dev/null
@@ -1,101 +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.wizards.datatransfer;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.ui.dialogs.FileSystemElement;
-import org.eclipse.ui.model.AdaptableList;
-import org.eclipse.ui.wizards.datatransfer.IImportStructureProvider;
-
-/**
- * The <code>MinimizedFileSystemElement</code> is a <code>FileSystemElement</code> that knows
- * if it has been populated or not.
- */
-public class MinimizedFileSystemElement extends FileSystemElement {
-    private boolean populated = false;
-
-    /**
-     * Create a <code>MinimizedFileSystemElement</code> with the supplied name and parent.
-     * @param name the name of the file element this represents
-     * @param parent the containing parent
-     * @param isDirectory indicated if this could have children or not
-     */
-    public MinimizedFileSystemElement(String name, FileSystemElement parent,
-            boolean isDirectory) {
-        super(name, parent, isDirectory);
-    }
-
-    /**
-     * Returns a list of the files that are immediate children. Use the supplied provider
-     * if it needs to be populated.
-     * of this folder.
-     */
-    public AdaptableList getFiles(IImportStructureProvider provider) {
-        if (!populated) {
-            populate(provider);
-        }
-        return super.getFiles();
-    }
-
-    /**
-     * Returns a list of the folders that are immediate children. Use the supplied provider
-     * if it needs to be populated.
-     * of this folder.
-     */
-    public AdaptableList getFolders(IImportStructureProvider provider) {
-        if (!populated) {
-            populate(provider);
-        }
-        return super.getFolders();
-    }
-
-    /**
-     * Return whether or not population has happened for the receiver.
-     */
-    boolean isPopulated() {
-        return this.populated;
-    }
-
-    /**
-     * Populate the files and folders of the receiver using the suppliec structure provider.
-     * @param provider org.eclipse.ui.wizards.datatransfer.IImportStructureProvider
-     */
-    private void populate(IImportStructureProvider provider) {
-
-        Object fileSystemObject = getFileSystemObject();
-
-        List children = provider.getChildren(fileSystemObject);
-        if (children == null) {
-            children = new ArrayList(1);
-        }
-        Iterator childrenEnum = children.iterator();
-        while (childrenEnum.hasNext()) {
-            Object child = childrenEnum.next();
-
-            String elementLabel = provider.getLabel(child);
-            //Create one level below
-            MinimizedFileSystemElement result = new MinimizedFileSystemElement(
-                    elementLabel, this, provider.isFolder(child));
-            result.setFileSystemObject(child);
-        }
-        setPopulated();
-    }
-
-    /**
-     * Set whether or not population has happened for the receiver to true.
-     */
-   public void setPopulated() {
-        this.populated = true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarEntry.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarEntry.java
deleted file mode 100644
index 009151a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarEntry.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.internal.wizards.datatransfer;
-
-/**
- * Representation of a file in a tar archive.
- * 
- * @since 3.1
- */
-public class TarEntry implements Cloneable
-{	
-	private String name;
-	private long mode, time, size;
-	private int type;
-	int filepos;
-
-	/**
-	 * Entry type for normal files.
-	 */
-	public static final int FILE = '0';
-
-	/**
-	 * Entry type for directories.
-	 */
-	public static final int DIRECTORY = '5';
-	
-	/**
-	 * Create a new TarEntry for a file of the given name at the
-	 * given position in the file.
-	 * 
-	 * @param name filename
-	 * @param pos position in the file in bytes
-	 */
-	TarEntry(String name, int pos) {
-		this.name = name;
-		mode = 0644;
-		type = FILE;
-		filepos = pos;
-		time = System.currentTimeMillis() / 1000;
-	}
-
-	/**
-	 * Create a new TarEntry for a file of the given name.
-	 * 
-	 * @param name filename
-	 */
-	public TarEntry(String name) {
-		this(name, -1);
-	}
-
-	/**
-	 * Returns the type of this file, one of FILE, LINK, SYM_LINK,
-	 * CHAR_DEVICE, BLOCK_DEVICE, DIRECTORY or FIFO.
-	 * 
-	 * @return file type
-	 */
-	public int getFileType() {
-		return type;
-	}
-
-	/**
-	 * Returns the mode of the file in UNIX permissions format.
-	 * 
-	 * @return file mode
-	 */
-	public long getMode() {
-		return mode;
-	}
-
-	/**
-	 * Returns the name of the file.
-	 * 
-	 * @return filename
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Returns the size of the file in bytes.
-	 * 
-	 * @return filesize
-	 */
-	public long getSize() {
-		return size;
-	}
-
-	/**
-	 * Returns the modification time of the file in seconds since January
-	 * 1st 1970.
-	 * 
-	 * @return time
-	 */
-	public long getTime() {
-		return time;
-	}
-
-	/**
-	 * Sets the type of the file, one of FILE, LINK, SYMLINK, CHAR_DEVICE,
-	 * BLOCK_DEVICE, or DIRECTORY.
-	 * 
-	 * @param type
-	 */
-	public void setFileType(int type) {
-		this.type = type;
-	}
-
-	/**
-	 * Sets the mode of the file in UNIX permissions format.
-	 * 
-	 * @param mode
-	 */
-	public void setMode(long mode) {
-		this.mode = mode;
-	}
-
-	/**
-	 * Sets the size of the file in bytes.
-	 * 
-	 * @param size
-	 */
-	public void setSize(long size) {
-		this.size = size;
-	}
-
-	/**
-	 * Sets the modification time of the file in seconds since January
-	 * 1st 1970.
-	 * 
-	 * @param time
-	 */
-	public void setTime(long time) {
-		this.time = time;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarException.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarException.java
deleted file mode 100644
index 22054de..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarException.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.internal.wizards.datatransfer;
-
-/**
- * Exception generated upon encountering corrupted tar files.
- */
-public class TarException extends Exception {
-	/**
-	 * Generated serial version UID for this class.
-	 */
-	private static final long serialVersionUID = 2886671254518853528L;
-
-    /**
-     * Constructs a TarException without a detail string.
-     */
-    public TarException() {
-    	super();
-    }
-	
-	/**
-     * Constructs a TarException with the specified detail string.
-     *
-     * @param s the detail string
-     */
-    public TarException(String s) {
-    	super(s);
-    }
-	
-    /**
-     * Constructs a TarException with the specified detail string.
-     *
-     * @param s the detail string
-     * @param cause the cause
-     */
-    public TarException(String s, Throwable cause) {
-    	super(s, cause);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarFile.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarFile.java
deleted file mode 100644
index 31cef95..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarFile.java
+++ /dev/null
@@ -1,139 +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.wizards.datatransfer;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Enumeration;
-import java.util.zip.GZIPInputStream;
-
-/**
- * Reads a .tar or .tar.gz archive file, providing an index enumeration
- * and allows for accessing an InputStream for arbitrary files in the
- * archive.
- * 
- * @since 3.1
- */
-public class TarFile {
-	private File file;
-	private TarInputStream entryEnumerationStream;
-	private TarEntry curEntry;
-	private TarInputStream entryStream;
-	
-	/**
-	 * Create a new TarFile for the given file.
-	 * 
-	 * @param file
-	 * @throws TarException
-	 * @throws IOException
-	 */
-	public TarFile(File file) throws TarException, IOException {
-		this.file = file;
-
-		InputStream in = new FileInputStream(file);
-		// First, check if it's a GZIPInputStream.
-		try {
-			in = new GZIPInputStream(in);
-		} catch(IOException e) {
-			//If it is not compressed we close
-			//the old one and recreate
-			in.close();		
-			in = new FileInputStream(file);
-		}
-		entryEnumerationStream = new TarInputStream(in);
-		curEntry = entryEnumerationStream.getNextEntry();
-	}
-	
-	/**
-	 * Close the tar file input stream.
-	 * 
-	 * @throws IOException if the file cannot be successfully closed
-	 */
-	public void close() throws IOException {
-		entryEnumerationStream.close();
-	}
-
-	/**
-	 * Create a new TarFile for the given path name.
-	 * 
-	 * @param filename
-	 * @throws TarException
-	 * @throws IOException
-	 */
-	public TarFile(String filename) throws TarException, IOException {
-		this(new File(filename));
-	}
-
-	/**
-	 * Returns an enumeration cataloguing the tar archive.
-	 * 
-	 * @return enumeration of all files in the archive
-	 */
-	public Enumeration entries() {
-		return new Enumeration() {			
-			public boolean hasMoreElements() {
-				return (curEntry != null);
-			}
-			
-			public Object nextElement() {
-				TarEntry oldEntry = curEntry;
-				try {
-					curEntry = entryEnumerationStream.getNextEntry();
-				} catch(TarException e) {
-					curEntry = null;
-				} catch(IOException e) {
-					curEntry = null;
-				}
-				return oldEntry;
-			}
-		};
-	}
-
-	/**
-	 * Returns a new InputStream for the given file in the tar archive.
-	 * 
-	 * @param entry
-	 * @return an input stream for the given file
-	 * @throws TarException
-	 * @throws IOException
-	 */
-	public InputStream getInputStream(TarEntry entry) throws TarException, IOException {
-		if(entryStream == null || !entryStream.skipToEntry(entry)) {
-			InputStream in = new FileInputStream(file);
-			// First, check if it's a GZIPInputStream.
-			try {
-				in = new GZIPInputStream(in);
-			} catch(IOException e) {
-				in = new FileInputStream(file);
-			}
-			entryStream = new TarInputStream(in, entry) {
-				public void close() {
-					// Ignore close() since we want to reuse the stream.
-				}
-			};
-		}
-		if(entryStream == null) {
-			System.out.println("huh?"); //$NON-NLS-1$
-		}
-		return entryStream;
-	}
-
-	/**
-	 * Returns the path name of the file this archive represents.
-	 * 
-	 * @return path
-	 */
-	public String getName() {
-		return file.getPath();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarFileExporter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarFileExporter.java
deleted file mode 100644
index 42e92ee..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarFileExporter.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.internal.wizards.datatransfer;
-
-import java.io.BufferedOutputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.zip.GZIPOutputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourceAttributes;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-
-/**
- * Exports resources to a .tar.gz file.
- *
- * @since 3.1
- */
-public class TarFileExporter implements IFileExporter {
-    private TarOutputStream outputStream;
-    private GZIPOutputStream gzipOutputStream;
-    
-
-    /**
-     *	Create an instance of this class.
-     *
-     *	@param filename java.lang.String
-     *	@param compress boolean
-     *	@exception java.io.IOException
-     */
-    public TarFileExporter(String filename, boolean compress) throws IOException {
-    	if(compress) {
-    		gzipOutputStream = new GZIPOutputStream(new FileOutputStream(filename));
-    		outputStream = new TarOutputStream(new BufferedOutputStream(gzipOutputStream));
-    	} else {
-    		outputStream = new TarOutputStream(new BufferedOutputStream(new FileOutputStream(filename)));
-    	}
-    }
-
-    /**
-     *	Do all required cleanup now that we're finished with the
-     *	currently-open .tar.gz
-     *
-     *	@exception java.io.IOException
-     */
-    public void finished() throws IOException {
-        outputStream.close();
-        if(gzipOutputStream != null) {
-        	gzipOutputStream.close();
-        }
-    }
-
-    /**
-     *	Write the contents of the file to the tar archive.
-     *
-     *	@param entry
-     *	@param contents
-     *  @exception java.io.IOException
-     *  @exception org.eclipse.core.runtime.CoreException
-     */
-    private void write(TarEntry entry, IFile contents) throws IOException, CoreException {
-		IPath location = contents.getLocation();
-		if (location == null) {
-			throw new FileNotFoundException(contents.getFullPath().toOSString());
-		}
-		java.io.File localFile = location.toFile();
-    	
-    	entry.setSize(localFile.length());
-    	
-    	outputStream.putNextEntry(entry);
-    	InputStream contentStream = contents.getContents(false);
-        try {
-            int n;
-            byte[] readBuffer = new byte[4096];
-            while ((n = contentStream.read(readBuffer)) > 0) {
-                outputStream.write(readBuffer, 0, n);
-            }
-        } finally {
-            if (contentStream != null) {
-				contentStream.close();
-			}
-        }
-
-    	outputStream.closeEntry();    	
-    }
-
-    /**
-     *  Write the passed resource to the current archive.
-     *
-     *  @param resource org.eclipse.core.resources.IFile
-     *  @param destinationPath java.lang.String
-     *  @exception java.io.IOException
-     *  @exception org.eclipse.core.runtime.CoreException
-     */
-    public void write(IFile resource, String destinationPath)
-            throws IOException, CoreException {
-
-        TarEntry newEntry = new TarEntry(destinationPath);
-        if(resource.getLocalTimeStamp() != IResource.NULL_STAMP) {
-        	newEntry.setTime(resource.getLocalTimeStamp() / 1000);
-        }
-        ResourceAttributes attributes = resource.getResourceAttributes();
-        if (attributes != null && attributes.isExecutable()) {
-        	newEntry.setMode(newEntry.getMode() | 0111);
-        }
-        if (attributes != null && attributes.isReadOnly()) {
-        	newEntry.setMode(newEntry.getMode() & ~0222);
-        }
-        write(newEntry, resource);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarInputStream.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarInputStream.java
deleted file mode 100644
index 27ac0f9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarInputStream.java
+++ /dev/null
@@ -1,344 +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.wizards.datatransfer;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * Input stream for reading files in ustar format (tar) compatible
- * with the specification in IEEE Std 1003.1-2001.  Also supports
- * long filenames encoded using the GNU @LongLink extension.
- * 
- * @since 3.1
- */
-public class TarInputStream extends FilterInputStream
-{
-	private int nextEntry = 0;
-	private int nextEOF = 0;
-	private int filepos = 0;
-	private int bytesread = 0;
-	private TarEntry firstEntry = null;
-	private String longLinkName = null;
-
-	/**
-	 * Creates a new tar input stream on the given input stream.
-	 * 
-	 * @param in input stream
-	 * @throws TarException
-	 * @throws IOException
-	 */
-	public TarInputStream(InputStream in) throws TarException, IOException {
-		super(in);
-
-		// Read in the first TarEntry to make sure
-		// the input is a valid tar file stream.
-		firstEntry = getNextEntry();
-	}
-
-	/**
-	 * Create a new tar input stream, skipping ahead to the given entry
-	 * in the file.
-	 * 
-	 * @param in input stream
-	 * @param entry skips to this entry in the file
-	 * @throws TarException
-	 * @throws IOException
-	 */
-	TarInputStream(InputStream in, TarEntry entry) throws TarException, IOException {
-		super(in);
-		skipToEntry(entry);
-	}
-
-	/**
-	 *  The checksum of a tar file header is simply the sum of the bytes in
-	 *  the header.
-	 * 
-	 * @param header
-	 * @return checksum
-	 */
-	private long headerChecksum(byte[] header) {
-		long sum = 0;
-		for(int i = 0; i < 512; i++) {
-			sum += header[i] & 0xff;
-		}
-		return sum;
-	}
-
-	/**
-	 * Skips ahead to the position of the given entry in the file.
-	 * 
-	 * @param entry
-	 * @returns false if the entry has already been passed
-	 * @throws TarException
-	 * @throws IOException
-	 */
-	boolean skipToEntry(TarEntry entry) throws TarException, IOException {
-		int bytestoskip = entry.filepos - bytesread;
-		if(bytestoskip < 0) {
-			return false;
-		}
-		while(bytestoskip > 0) {
-			long ret = in.skip(bytestoskip);
-			if(ret < 0) {
-				throw new IOException("early end of stream"); //$NON-NLS-1$
-			}
-			bytestoskip -= ret;
-			bytesread += ret;
-		}
-		filepos = entry.filepos;
-		nextEntry = 0;
-		nextEOF = 0;
-		// Read next header to seek to file data.
-		getNextEntry();
-		return true;
-	}
-
-	/**
-	 * Returns true if the header checksum is correct.
-	 * 
-	 * @param header
-	 * @return true if this header has a valid checksum
-	 */
-	private boolean isValidTarHeader(byte[] header) {
-		long fileChecksum, calculatedChecksum;
-		int pos, i;
-		
-		pos = 148;
-		StringBuffer checksumString = new StringBuffer();
-		for(i = 0; i < 8; i++) {
-			if(header[pos + i] == ' ') {
-				continue;
-			}
-			if(header[pos + i] == 0 || !Character.isDigit((char) header[pos + i])) {
-				break;
-			}
-			checksumString.append((char) header[pos + i]);
-		}
-		if(checksumString.length() == 0) {
-			return false;
-		}
-		if(checksumString.charAt(0) != '0') {
-			checksumString.insert(0, '0');
-		}
-		try {
-			fileChecksum = Long.decode(checksumString.toString()).longValue();
-		} catch(NumberFormatException exception) {
-			//This is not valid if it cannot be parsed
-			return false;
-		}
-
-		// Blank out the checksum.
-		for(i = 0; i < 8; i++) {
-			header[pos + i] = ' ';
-		}
-		calculatedChecksum = headerChecksum(header);
-
-		return (fileChecksum == calculatedChecksum);
-	}
-
-	/**
-	 * Returns the next entry in the tar file.  Does not handle
-	 * GNU @LongLink extensions.
-	 * 
-	 * @return the next entry in the tar file
-	 * @throws TarException
-	 * @throws IOException
-	 */
-	TarEntry getNextEntryInternal() throws TarException, IOException {
-		byte[] header = new byte[512];
-		int pos = 0;
-		int i;
-
-		if(firstEntry != null) {
-			TarEntry entryReturn = firstEntry;
-			firstEntry = null;
-			return entryReturn;
-		}
-
-		while(nextEntry > 0) {
-			long ret = in.skip(nextEntry);
-			if(ret < 0) {
-				throw new IOException("early end of stream"); //$NON-NLS-1$
-			}
-			nextEntry -= ret;
-			bytesread += ret;
-		}
-
-		int bytestoread = 512;
-		while(bytestoread > 0) {
-			int ret = super.read(header, 512 - bytestoread, bytestoread);
-			if( ret < 0 ) {
-				throw new IOException("early end of stream"); //$NON-NLS-1$
-			}
-			bytestoread -= ret;
-			bytesread += ret;
-		}
-
-		// If we have a header of all zeros, this marks the end of the file.
-		if(headerChecksum(header) == 0) {
-			// We are at the end of the file.
-			if(filepos > 0) {
-				return null;
-			}
-			
-			// Invalid stream.
-			throw new TarException("not in tar format"); //$NON-NLS-1$
-		}
-		
-		// Validate checksum.
-		if(!isValidTarHeader(header)) {
-			throw new TarException("not in tar format"); //$NON-NLS-1$
-		}
-
-		while (pos < 100 && header[pos] != 0) {
-			pos++;
-		}
-		String name = new String(header, 0, pos, "UTF8"); //$NON-NLS-1$
-		// Prepend the prefix here.
-		pos = 345;
-		if(header[pos] != 0) {
-			while (pos < 500 && header[pos] != 0) {
-				pos++;
-			}
-			String prefix = new String(header, 345, pos - 345, "UTF8"); //$NON-NLS-1$
-			name = prefix + "/" + name; //$NON-NLS-1$
-		}
-		
-		TarEntry entry;
-		if(longLinkName != null) {
-			entry = new TarEntry(longLinkName, filepos);
-			longLinkName = null;
-		} else {
-			entry = new TarEntry(name, filepos);
-		}
-		if(header[156] != 0) {
-			entry.setFileType(header[156]);
-		}
-		
-		pos = 100;
-		StringBuffer mode = new StringBuffer();
-		for(i = 0; i < 8; i++) {
-			if(header[pos + i] == 0) {
-				break;
-			}
-			if(header[pos + i] == ' ') {
-				continue;
-			}
-			mode.append((char) header[pos + i]);
-		}
-		if(mode.length() > 0 && mode.charAt(0) != '0') {
-			mode.insert(0, '0');
-		}
-		try {
-			long fileMode = Long.decode(mode.toString()).longValue();
-			entry.setMode(fileMode);
-		} catch(NumberFormatException nfe) {
-			throw new TarException(DataTransferMessages.TarImport_invalid_tar_format, nfe);
-		}
-		
-		pos = 100 + 24;
-		StringBuffer size = new StringBuffer();
-		for(i = 0; i < 12; i++) {
-			if(header[pos + i] == 0) {
-				break;
-			}
-			if(header[pos + i] == ' ') {
-				continue;
-			}
-			size.append((char) header[pos + i]);
-		}
-		if(size.charAt(0) != '0') {
-			size.insert(0, '0');
-		}
-		int fileSize;
-		try {
-			fileSize = Integer.decode(size.toString()).intValue();
-		} catch(NumberFormatException nfe) {
-			throw new TarException(DataTransferMessages.TarImport_invalid_tar_format, nfe);
-		}
-
-		entry.setSize(fileSize);
-		nextEOF = fileSize;
-		if(fileSize % 512 > 0) {
-			nextEntry = fileSize + (512 - (fileSize % 512));
-		} else {
-			nextEntry = fileSize;
-		}
-		filepos += (nextEntry + 512);
-		return entry;
-	}
-
-	/**
-	 * Moves ahead to the next file in the tar archive and returns
-	 * a TarEntry object describing it.
-	 * 
-	 * @return the next entry in the tar file
-	 * @throws TarException
-	 * @throws IOException
-	 */
-	public TarEntry getNextEntry() throws TarException, IOException {
-		TarEntry entry = getNextEntryInternal();
-
-		if(entry != null && entry.getName().equals("././@LongLink")) { //$NON-NLS-1$
-			// This is a GNU extension for doing long filenames.
-			// We get a file called ././@LongLink which just contains
-			// the real pathname.
-			byte[] longNameData = new byte[(int) entry.getSize()];
-			int bytesread = 0;
-			while (bytesread < longNameData.length) {
-				int cur = read(longNameData, bytesread, longNameData.length - bytesread);
-				if (cur < 0) {
-					throw new IOException("early end of stream"); //$NON-NLS-1$
-				}
-				bytesread += cur;
-			}
-
-			int pos = 0;
-			while (pos < longNameData.length && longNameData[pos] != 0) {
-				pos++;
-			}
-			longLinkName = new String(longNameData, 0, pos, "UTF8"); //$NON-NLS-1$
-			return getNextEntryInternal();
-		}
-		return entry;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.io.FilterInputStream#read(byte[], int, int)
-	 */
-	public int read(byte[] b, int off, int len) throws IOException {
-		if(nextEOF == 0) {
-			return -1;
-		}
-		if(len > nextEOF) {
-			len = nextEOF;
-		}
-		int size = super.read(b, off, len);
-		nextEntry -= size;
-		nextEOF -= size;
-		bytesread += size;
-		return size;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.io.FilterInputStream#read()
-	 */
-	public int read() throws IOException {
-		byte[] data = new byte[1];
-		int size = read(data, 0, 1);
-		if (size < 0) {
-			return size;
-		}
-		return data[0];
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarLeveledStructureProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarLeveledStructureProvider.java
deleted file mode 100644
index 03a240e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarLeveledStructureProvider.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Red Hat, Inc - Was TarFileStructureProvider, performed changes from 
- *     IImportStructureProvider to ILeveledImportStructureProvider
- *******************************************************************************/
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.ResourceAttributes;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * This class provides information regarding the context structure and content
- * of specified tar file entry objects.
- * 
- * @since 3.1
- */
-public class TarLeveledStructureProvider implements
-		ILeveledImportStructureProvider {
-	private TarFile tarFile;
-
-	private TarEntry root = new TarEntry("/");//$NON-NLS-1$
-
-	private Map children;
-
-	private Map directoryEntryCache = new HashMap();
-
-	private int stripLevel;
-
-	/**
-	 * Creates a <code>TarFileStructureProvider</code>, which will operate on
-	 * the passed tar file.
-	 * 
-	 * @param sourceFile
-	 *            the source TarFile
-	 */
-	public TarLeveledStructureProvider(TarFile sourceFile) {
-		super();
-		tarFile = sourceFile;
-		root.setFileType(TarEntry.DIRECTORY);
-	}
-
-	/**
-	 * Creates a new container tar entry with the specified name, iff it has 
-	 * not already been created. If the parent of the given element does not
-	 * already exist it will be recursively created as well.
-	 * @param pathname The path representing the container
-	 * @return The element represented by this pathname (it may have already existed)
-	 */
-	protected TarEntry createContainer(IPath pathname) {
-		TarEntry existingEntry = (TarEntry) directoryEntryCache.get(pathname);
-		if (existingEntry != null) {
-			return existingEntry;
-		}
-
-		TarEntry parent;
-		if (pathname.segmentCount() == 1) {
-			parent = root;
-		} else {
-			parent = createContainer(pathname.removeLastSegments(1));
-		}
-		TarEntry newEntry = new TarEntry(pathname.toString());
-		newEntry.setFileType(TarEntry.DIRECTORY);
-		directoryEntryCache.put(pathname, newEntry);
-		List childList = new ArrayList();
-		children.put(newEntry, childList);
-
-		List parentChildList = (List) children.get(parent);
-		parentChildList.add(newEntry);
-		return newEntry;
-	}
-
-	/**
-	 * Creates a new tar file entry with the specified name.
-	 */
-	protected void createFile(TarEntry entry) {
-		IPath pathname = new Path(entry.getName());
-		TarEntry parent;
-		if (pathname.segmentCount() == 1) {
-			parent = root;
-		} else {
-			parent = (TarEntry) directoryEntryCache.get(pathname
-					.removeLastSegments(1));
-		}
-
-		List childList = (List) children.get(parent);
-		childList.add(entry);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IImportStructureProvider
-	 */
-	public List getChildren(Object element) {
-		if (children == null) {
-			initialize();
-		}
-
-		return ((List) children.get(element));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IImportStructureProvider
-	 */
-	public InputStream getContents(Object element) {
-		try {
-			return tarFile.getInputStream((TarEntry) element);
-		} catch (TarException e) {
-			IDEWorkbenchPlugin.log(e.getLocalizedMessage(), e);
-			return null;
-		} catch (IOException e) {
-			IDEWorkbenchPlugin.log(e.getLocalizedMessage(), e);
-			return null;
-		}
-	}
-
-	/**
-	 * Returns the resource attributes for this file.
-	 * 
-	 * @param element
-	 * @return the attributes of the file
-	 */
-	public ResourceAttributes getResourceAttributes(Object element) {
-		ResourceAttributes attributes = new ResourceAttributes();
-		TarEntry entry = (TarEntry) element;
-		attributes.setExecutable((entry.getMode() & 0100) != 0);
-		attributes.setReadOnly((entry.getMode() & 0200) == 0);
-		return attributes;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IImportStructureProvider
-	 */
-	public String getFullPath(Object element) {
-		return stripPath(((TarEntry) element).getName());
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IImportStructureProvider
-	 */
-	public String getLabel(Object element) {
-		if (element.equals(root)) {
-			return ((TarEntry) element).getName();
-		}
-
-		return stripPath(new Path(((TarEntry) element).getName()).lastSegment());
-	}
-
-	/**
-	 * Returns the entry that this importer uses as the root sentinel.
-	 * 
-	 * @return TarEntry entry
-	 */
-	public Object getRoot() {
-		return root;
-	}
-
-	/**
-	 * Returns the tar file that this provider provides structure for.
-	 * 
-	 * @return TarFile file
-	 */
-	public TarFile getTarFile() {
-		return tarFile;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.internal.wizards.datatransfer.ILeveledImportStructureProvider#closeArchive()
-	 */
-	public boolean closeArchive(){
-		try {
-			getTarFile().close();
-		} catch (IOException e) {
-			IDEWorkbenchPlugin.log(DataTransferMessages.ZipImport_couldNotClose
-					+ getTarFile().getName(), e);
-			return false;
-		}
-		return true;
-	}
-	
-	/**
-	 * Initializes this object's children table based on the contents of the
-	 * specified source file.
-	 */
-	protected void initialize() {
-		children = new HashMap(1000);
-		
-		children.put(root, new ArrayList());
-		Enumeration entries = tarFile.entries();
-		while (entries.hasMoreElements()) {
-			TarEntry entry = (TarEntry) entries.nextElement();
-			IPath path = new Path(entry.getName()).addTrailingSeparator();
-			
-			if (entry.getFileType() == TarEntry.DIRECTORY) {
-				createContainer(path);
-			} else
-			{
-				// Ensure the container structure for all levels above this is initialized
-				// Once we hit a higher-level container that's already added we need go no further
-				int pathSegmentCount = path.segmentCount();
-				if (pathSegmentCount > 1) {
-					createContainer(path.uptoSegment(pathSegmentCount - 1));
-				}
-				createFile(entry);
-			}
-		}
-	}
-	
-	/*
-	 * (non-Javadoc) Method declared on IImportStructureProvider
-	 */
-	public boolean isFolder(Object element) {
-		return (((TarEntry) element).getFileType() == TarEntry.DIRECTORY);
-	}
-
-	/*
-	 * Strip the leading directories from the path
-	 */
-	private String stripPath(String path) {
-		String pathOrig = new String(path);
-		for (int i = 0; i < stripLevel; i++) {
-			int firstSep = path.indexOf('/');
-			// If the first character was a seperator we must strip to the next
-			// seperator as well
-			if (firstSep == 0) {
-				path = path.substring(1);
-				firstSep = path.indexOf('/');
-			}
-			// No seperator wasw present so we're in a higher directory right
-			// now
-			if (firstSep == -1) {
-				return pathOrig;
-			}
-			path = path.substring(firstSep);
-		}
-		return path;
-	}
-
-	public void setStrip(int level) {
-		stripLevel = level;
-	}
-
-	public int getStrip() {
-		return stripLevel;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarOutputStream.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarOutputStream.java
deleted file mode 100644
index d2c184e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarOutputStream.java
+++ /dev/null
@@ -1,228 +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.wizards.datatransfer;
-
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * Output stream for writing ustar archive files (tar) compatible
- * with the specification in IEEE Std 1003.1-2001.
- *
- * @since 3.1
- */
-public class TarOutputStream extends FilterOutputStream {
-	
-	private int byteswritten = 0;
-	private int datapos = 0;
-	private long cursize = 0;
-
-	/**
-	 * Creates a new tar output stream.
-	 * 
-	 * @param out the stream to write to
-	 */
-	public TarOutputStream(OutputStream out) {
-		super(out);
-	}
-
-	/**
-	 * Close the output stream and write any necessary padding.
-	 */
-	public void close() throws IOException {
-		// Spec says to write 1024 bytes of zeros at the end.
-		byte[] zeros = new byte[1024];
-		cursize = 1024;
-		write(zeros, 0, 1024);
-
-		// Default block size for tar files is 10240, so we have to
-		// pad the end of the file to be a multiple of this size.
-		if((byteswritten % 10240) != 0) {
-			int length = 10240 - (byteswritten % 10240);
-			cursize = length;
-			zeros = new byte[length];
-			write(zeros, 0, length);
-		}
-		super.close();
-	}
-
-	/**
-	 * Close the current entry in the tar file.  Must be called
-	 * after each entry is completed.
-	 * 
-	 * @throws IOException
-	 */
-	public void closeEntry() throws IOException {
-		byte[] data = new byte[512];
-		int len = 512 - datapos;
-		if(len > 0 && datapos > 0) {
-			cursize = len;
-			write(data, 0, len);
-		}
-	}
-
-	/**
-	 *  The checksum of a tar file header is simply the sum of the bytes in
-	 *  the header.
-	 * 
-	 * @param header
-	 * @return checksum
-	 */
-	private long headerChecksum(byte[] header) {
-		long sum = 0;
-		for(int i = 0; i < 512; i++) {
-			sum += header[i] & 0xff;
-		}
-		return sum;
-	}
-
-	/**
-	 * Adds an entry for a new file in the tar archive.
-	 * 
-	 * @param e TarEntry describing the file
-	 * @throws IOException
-	 */
-	public void putNextEntry(TarEntry e) throws IOException {
-		byte[] header = new byte[512];
-		String filename = e.getName();
-		String prefix = null;
-		int pos, i;
-		
-		/* Split filename into name and prefix if necessary. */
-		byte[] filenameBytes = filename.getBytes("UTF8"); //$NON-NLS-1$
-		if (filenameBytes.length > 99) {
-			int seppos = filename.lastIndexOf('/');
-			if(seppos == -1) {
-				throw new IOException("filename too long"); //$NON-NLS-1$
-			}
-			prefix = filename.substring(0, seppos);
-			filename = filename.substring(seppos + 1);
-			filenameBytes = filename.getBytes("UTF8"); //$NON-NLS-1$
-			if (filenameBytes.length > 99) {
-				throw new IOException("filename too long"); //$NON-NLS-1$
-			}
-		}
-		
-		/* Filename. */
-		pos = 0;
-		System.arraycopy(filenameBytes, 0, header, 0, filenameBytes.length);
-		pos += 100;
-		
-		/* File mode. */
-		StringBuffer mode = new StringBuffer(Long.toOctalString(e.getMode()));
-		while(mode.length() < 7) {
-			mode.insert(0,'0');
-		}
-		for(i = 0; i < 7; i++) {
-			header[pos + i] = (byte) mode.charAt(i);
-		}
-		pos += 8;
-		
-		/* UID. */
-		header[pos] = '0';
-		pos += 8;
-		
-		/* GID. */
-		header[pos] = '0';
-		pos += 8;
-		
-		/* Length of the file. */
-		String length = Long.toOctalString(e.getSize());
-		for(i = 0; i < length.length(); i++) {
-			header[pos + i] = (byte) length.charAt(i);
-		}
-		pos += 12;
-		
-		/* mtime */
-		String mtime = Long.toOctalString(e.getTime());
-		for(i = 0; i < mtime.length(); i++) {
-			header[pos + i] = (byte) mtime.charAt(i);
-		}
-		pos += 12;
-		
-		/* "Blank" out the checksum. */
-		for(i = 0; i < 8; i++) {
-			header[pos + i] = ' ';
-		}
-		pos += 8;
-		
-		/* Link flag. */
-		header[pos] = (byte) e.getFileType();
-		pos += 1;
-
-		/* Link destination. */
-		pos += 100;
-
-		/* Add ustar header. */
-		String ustar = "ustar 00"; //$NON-NLS-1$
-		for(i = 0; i < ustar.length(); i++) {
-			header[pos + i] = (byte) ustar.charAt(i);
-		}
-		header[pos + 5] = 0;
-		pos += 8;
-		
-		/* Username. */
-		String uname = "nobody"; //$NON-NLS-1$
-		for(i = 0; i < uname.length(); i++) {
-			header[pos + i] = (byte) uname.charAt(i);
-		}
-		pos += 32;
-		
-		
-		/* Group name. */
-		String gname = "nobody"; //$NON-NLS-1$
-		for(i = 0; i < gname.length(); i++) {
-			header[pos + i] = (byte) gname.charAt(i);
-		}
-		pos += 32;
-		
-		/* Device major. */
-		pos += 8;
-
-		/* Device minor. */
-		pos += 8;
-
-		/* File prefix. */
-		if(prefix != null) {
-			byte[] prefixBytes = prefix.getBytes("UTF8"); //$NON-NLS-1$
-			if (prefixBytes.length > 155) {
-				throw new IOException("prefix too large"); //$NON-NLS-1$
-			}
-			System.arraycopy(prefixBytes, 0, header, pos, prefixBytes.length);
-		}
-
-		long sum = headerChecksum(header);
-		pos = 100 + 8 + 8 + 8 + 12 + 12;
-		String sumval = Long.toOctalString(sum);
-		for(i = 0; i < sumval.length(); i++) {
-			header[pos + i] = (byte) sumval.charAt(i);
-		}
-
-		cursize = 512;
-		write(header, 0, 512);
-		
-		cursize = e.getSize();
-	}
-
-	/**
-	 * Writes data for the current file into the archive.
-	 */
-	public void write(byte[] b, int off, int len) throws IOException {
-		super.write(b, off, len);
-		datapos = (datapos + len) % 512;
-		byteswritten += len;
-		cursize -= len;
-		if(cursize < 0) {
-			throw new IOException("too much data written for current file"); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardArchiveFileResourceExportPage1.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardArchiveFileResourceExportPage1.java
deleted file mode 100644
index d0b8d01..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardArchiveFileResourceExportPage1.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.IStructuredSelection;
-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.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-
-/**
- *	Page 1 of the base resource export-to-archive Wizard.
- *
- *	@since 3.1
- */
-public class WizardArchiveFileResourceExportPage1 extends
-		WizardFileSystemResourceExportPage1 {
-
-    // widgets
-    protected Button compressContentsCheckbox;
-    
-    private Button zipFormatButton;
-    private Button targzFormatButton;
-
-    // dialog store id constants
-    private final static String STORE_DESTINATION_NAMES_ID = "WizardZipFileResourceExportPage1.STORE_DESTINATION_NAMES_ID"; //$NON-NLS-1$
-
-    private final static String STORE_CREATE_STRUCTURE_ID = "WizardZipFileResourceExportPage1.STORE_CREATE_STRUCTURE_ID"; //$NON-NLS-1$
-
-    private final static String STORE_COMPRESS_CONTENTS_ID = "WizardZipFileResourceExportPage1.STORE_COMPRESS_CONTENTS_ID"; //$NON-NLS-1$
-
-    /**
-     *	Create an instance of this class. 
-     *
-     *	@param name java.lang.String
-     */
-    protected WizardArchiveFileResourceExportPage1(String name,
-            IStructuredSelection selection) {
-        super(name, selection);
-    }
-
-    /**
-     * Create an instance of this class
-     * @param selection the selection
-     */
-    public WizardArchiveFileResourceExportPage1(IStructuredSelection selection) {
-        this("zipFileExportPage1", selection); //$NON-NLS-1$
-        setTitle(DataTransferMessages.ArchiveExport_exportTitle);
-        setDescription(DataTransferMessages.ArchiveExport_description);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        super.createControl(parent);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-                IDataTransferHelpContextIds.ZIP_FILE_EXPORT_WIZARD_PAGE);
-    }
-
-    /**
-     *	Create the export options specification widgets.
-     *
-     */
-    protected void createOptionsGroupButtons(Group optionsGroup) {
-    	Font font = optionsGroup.getFont();
-    	optionsGroup.setLayout(new GridLayout(2, true));
-    	
-    	Composite left = new Composite(optionsGroup, SWT.NONE);
-    	left.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, false));
-    	left.setLayout(new GridLayout(1, true));
-
-        createFileFormatOptions(left, font);
-        
-        // compress... checkbox
-        compressContentsCheckbox = new Button(left, SWT.CHECK
-                | SWT.LEFT);
-        compressContentsCheckbox.setText(DataTransferMessages.ZipExport_compressContents);
-        compressContentsCheckbox.setFont(font);
-
-        Composite right = new Composite(optionsGroup, SWT.NONE);
-        right.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, false));
-        right.setLayout(new GridLayout(1, true));
-
-        createDirectoryStructureOptions(right, font);
-
-        // initial setup
-        createDirectoryStructureButton.setSelection(true);
-        createSelectionOnlyButton.setSelection(false);
-        compressContentsCheckbox.setSelection(true);
-    }
-
-    /**
-     * Create the buttons for the group that determine if the entire or
-     * selected directory structure should be created.
-     * @param optionsGroup
-     * @param font
-     */
-    protected void createFileFormatOptions(Composite optionsGroup, Font font) {
-        // create directory structure radios
-        zipFormatButton = new Button(optionsGroup, SWT.RADIO | SWT.LEFT);
-        zipFormatButton.setText(DataTransferMessages.ArchiveExport_saveInZipFormat);
-        zipFormatButton.setSelection(true);
-        zipFormatButton.setFont(font);
-
-        // create directory structure radios
-        targzFormatButton = new Button(optionsGroup, SWT.RADIO | SWT.LEFT);
-        targzFormatButton.setText(DataTransferMessages.ArchiveExport_saveInTarFormat);
-        targzFormatButton.setSelection(false);
-        targzFormatButton.setFont(font);
-    }    
-    
-    /**
-     * Returns a boolean indicating whether the directory portion of the
-     * passed pathname is valid and available for use.
-     */
-    protected boolean ensureTargetDirectoryIsValid(String fullPathname) {
-        int separatorIndex = fullPathname.lastIndexOf(File.separator);
-
-        if (separatorIndex == -1) {
-			return true;
-		}
-
-        return ensureTargetIsValid(new File(fullPathname.substring(0,
-                separatorIndex)));
-    }
-
-    /**
-     * Returns a boolean indicating whether the passed File handle is
-     * is valid and available for use.
-     */
-    protected boolean ensureTargetFileIsValid(File targetFile) {
-        if (targetFile.exists() && targetFile.isDirectory()) {
-            displayErrorDialog(DataTransferMessages.ZipExport_mustBeFile);
-            giveFocusToDestination();
-            return false;
-        }
-
-        if (targetFile.exists()) {
-            if (targetFile.canWrite()) {
-                if (!queryYesNoQuestion(DataTransferMessages.ZipExport_alreadyExists)) {
-					return false;
-				}
-            } else {
-                displayErrorDialog(DataTransferMessages.ZipExport_alreadyExistsError);
-                giveFocusToDestination();
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Ensures that the target output file and its containing directory are
-     * both valid and able to be used.  Answer a boolean indicating validity.
-     */
-    protected boolean ensureTargetIsValid() {
-        String targetPath = getDestinationValue();
-
-        if (!ensureTargetDirectoryIsValid(targetPath)) {
-			return false;
-		}
-
-        if (!ensureTargetFileIsValid(new File(targetPath))) {
-			return false;
-		}
-
-        return true;
-    }
-
-    /**
-     *  Export the passed resource and recursively export all of its child resources
-     *  (iff it's a container).  Answer a boolean indicating success.
-     */
-    protected boolean executeExportOperation(ArchiveFileExportOperation op) {
-        op.setCreateLeadupStructure(createDirectoryStructureButton
-                .getSelection());
-        op.setUseCompression(compressContentsCheckbox.getSelection());
-        op.setUseTarFormat(targzFormatButton.getSelection());
-
-        try {
-            getContainer().run(true, true, op);
-        } catch (InterruptedException e) {
-            return false;
-        } catch (InvocationTargetException e) {
-            displayErrorDialog(e.getTargetException());
-            return false;
-        }
-
-        IStatus status = op.getStatus();
-        if (!status.isOK()) {
-            ErrorDialog.openError(getContainer().getShell(),
-                    DataTransferMessages.DataTransfer_exportProblems,
-                    null, // no special message
-                    status);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * The Finish button was pressed.  Try to do the required work now and answer
-     * a boolean indicating success.  If false is returned then the wizard will
-     * not close.
-     * @returns boolean
-     */
-    public boolean finish() {
-    	List resourcesToExport = getWhiteCheckedResources();
-    	
-        if (!ensureTargetIsValid()) {
-			return false;
-		}
-
-        //Save dirty editors if possible but do not stop if not all are saved
-        saveDirtyEditors();
-        // about to invoke the operation so save our state
-        saveWidgetValues();
-
-        return executeExportOperation(new ArchiveFileExportOperation(null,
-                resourcesToExport, getDestinationValue()));
-    }
-
-    /**
-     *	Answer the string to display in the receiver as the destination type
-     */
-    protected String getDestinationLabel() {
-        return DataTransferMessages.ArchiveExport_destinationLabel;
-    }
-
-    /**
-     *	Answer the contents of self's destination specification widget.  If this
-     *	value does not have a suffix then add it first.
-     */
-    protected String getDestinationValue() {
-        String idealSuffix = getOutputSuffix();
-        String destinationText = super.getDestinationValue();
-
-        // only append a suffix if the destination doesn't already have a . in 
-        // its last path segment.  
-        // Also prevent the user from selecting a directory.  Allowing this will 
-        // create a ".zip" file in the directory
-        if (destinationText.length() != 0
-                && !destinationText.endsWith(File.separator)) {
-            int dotIndex = destinationText.lastIndexOf('.');
-            if (dotIndex != -1) {
-                // the last path seperator index
-                int pathSepIndex = destinationText.lastIndexOf(File.separator);
-                if (pathSepIndex != -1 && dotIndex < pathSepIndex) {
-                    destinationText += idealSuffix;
-                }
-            } else {
-                destinationText += idealSuffix;
-            }
-        }
-
-        return destinationText;
-    }
-
-    /**
-     *	Answer the suffix that files exported from this wizard should have.
-     *	If this suffix is a file extension (which is typically the case)
-     *	then it must include the leading period character.
-     *
-     */
-    protected String getOutputSuffix() {
-    	if(zipFormatButton.getSelection()) {
-        	return ".zip"; //$NON-NLS-1$
-    	} else if(compressContentsCheckbox.getSelection()) {
-    		return ".tar.gz"; //$NON-NLS-1$
-    	} else {
-    		return ".tar"; //$NON-NLS-1$
-    	}
-    }
-
-    /**
-     *	Open an appropriate destination browser so that the user can specify a source
-     *	to import from
-     */
-    protected void handleDestinationBrowseButtonPressed() {
-        FileDialog dialog = new FileDialog(getContainer().getShell(), SWT.SAVE);
-        dialog.setFilterExtensions(new String[] { "*.zip;*.tar.gz;*.tar;*.tgz", "*.*" }); //$NON-NLS-1$ //$NON-NLS-2$
-        dialog.setText(DataTransferMessages.ArchiveExport_selectDestinationTitle);
-        String currentSourceString = getDestinationValue();
-        int lastSeparatorIndex = currentSourceString
-                .lastIndexOf(File.separator);
-        if (lastSeparatorIndex != -1) {
-			dialog.setFilterPath(currentSourceString.substring(0,
-                    lastSeparatorIndex));
-		}
-        String selectedFileName = dialog.open();
-
-        if (selectedFileName != null) {
-            setErrorMessage(null);
-            setDestinationValue(selectedFileName);
-        }
-    }
-
-    /**
-     *	Hook method for saving widget values for restoration by the next instance
-     *	of this class.
-     */
-    protected void internalSaveWidgetValues() {
-        // update directory names history
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            String[] directoryNames = settings
-                    .getArray(STORE_DESTINATION_NAMES_ID);
-            if (directoryNames == null) {
-				directoryNames = new String[0];
-			}
-
-            directoryNames = addToHistory(directoryNames, getDestinationValue());
-            settings.put(STORE_DESTINATION_NAMES_ID, directoryNames);
-
-            settings.put(STORE_CREATE_STRUCTURE_ID,
-                    createDirectoryStructureButton.getSelection());
-
-            settings.put(STORE_COMPRESS_CONTENTS_ID, compressContentsCheckbox
-                    .getSelection());
-        }
-    }
-
-    /**
-     *	Hook method for restoring widget values to the values that they held
-     *	last time this wizard was used to completion.
-     */
-    protected void restoreWidgetValues() {
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            String[] directoryNames = settings
-                    .getArray(STORE_DESTINATION_NAMES_ID);
-            if (directoryNames == null || directoryNames.length == 0) {
-				return; // ie.- no settings stored
-			}
-
-            // destination
-            setDestinationValue(directoryNames[0]);
-            for (int i = 0; i < directoryNames.length; i++) {
-				addDestinationItem(directoryNames[i]);
-			}
-
-            boolean setStructure = settings
-                    .getBoolean(STORE_CREATE_STRUCTURE_ID);
-
-            createDirectoryStructureButton.setSelection(setStructure);
-            createSelectionOnlyButton.setSelection(!setStructure);
-
-            compressContentsCheckbox.setSelection(settings
-                    .getBoolean(STORE_COMPRESS_CONTENTS_ID));
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.wizards.datatransfer.WizardFileSystemResourceExportPage1#destinationEmptyMessage()
-     */
-    protected String destinationEmptyMessage() {
-        return DataTransferMessages.ArchiveExport_destinationEmpty;
-    }
-    
-    /**
-     *	Answer a boolean indicating whether the receivers destination specification
-     *	widgets currently all contain valid values.
-     */
-    protected boolean validateDestinationGroup() {
-    	String destinationValue = getDestinationValue();
-    	if (destinationValue.endsWith(".tar")) { //$NON-NLS-1$
-    		compressContentsCheckbox.setSelection(false);
-    		targzFormatButton.setSelection(true);
-    		zipFormatButton.setSelection(false);
-    	} else if (destinationValue.endsWith(".tar.gz") //$NON-NLS-1$
-				|| destinationValue.endsWith(".tgz")) { //$NON-NLS-1$
-    		compressContentsCheckbox.setSelection(true);
-    		targzFormatButton.setSelection(true);
-    		zipFormatButton.setSelection(false);
-    	} else if (destinationValue.endsWith(".zip")) { //$NON-NLS-1$
-    		zipFormatButton.setSelection(true);
-    		targzFormatButton.setSelection(false);
-    	}
-    	
-    	return super.validateDestinationGroup();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardArchiveFileResourceImportPage1.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardArchiveFileResourceImportPage1.java
deleted file mode 100644
index 95a4ecd..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardArchiveFileResourceImportPage1.java
+++ /dev/null
@@ -1,519 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Red Hat, Inc - Extracted several methods to ArchiveFileManipulations
- *******************************************************************************/
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.zip.ZipException;
-import java.util.zip.ZipFile;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.model.AdaptableList;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;
-
-
-/**
- *	Page 1 of the base resource import-from-archive Wizard.
- *
- *	Note that importing from .jar is identical to importing from .zip, so
- *	all references to .zip in this class are equally applicable to .jar
- *	references.
- *
- *	@since 3.1
- */
-public class WizardArchiveFileResourceImportPage1 extends
-        WizardFileSystemResourceImportPage1 implements Listener {
-
-    ZipLeveledStructureProvider zipCurrentProvider;
-    TarLeveledStructureProvider tarCurrentProvider;
-
-    // constants
-    private static final String[] FILE_IMPORT_MASK = { "*.jar;*.zip;*.tar;*.tar.gz;*.tgz", "*.*" }; //$NON-NLS-1$ //$NON-NLS-2$
-
-    // dialog store id constants
-    private final static String STORE_SOURCE_NAMES_ID = "WizardZipFileResourceImportPage1.STORE_SOURCE_NAMES_ID"; //$NON-NLS-1$
-
-    private final static String STORE_OVERWRITE_EXISTING_RESOURCES_ID = "WizardZipFileResourceImportPage1.STORE_OVERWRITE_EXISTING_RESOURCES_ID"; //$NON-NLS-1$
-
-    private final static String STORE_SELECTED_TYPES_ID = "WizardZipFileResourceImportPage1.STORE_SELECTED_TYPES_ID"; //$NON-NLS-1$
-
-    /**
-     *	Creates an instance of this class
-     * @param aWorkbench IWorkbench
-     * @param selection IStructuredSelection
-     */
-    public WizardArchiveFileResourceImportPage1(IWorkbench aWorkbench,
-            IStructuredSelection selection) {
-        super("zipFileImportPage1", aWorkbench, selection); //$NON-NLS-1$
-        setTitle(DataTransferMessages.ArchiveExport_exportTitle);
-        setDescription(DataTransferMessages.ArchiveImport_description);
-    }
-
-    /**
-     * Called when the user presses the Cancel button. Return a boolean
-     * indicating permission to close the wizard.
-     *
-     * @return boolean
-     */
-    public boolean cancel() {
-        clearProviderCache();
-        return true;
-    }
-
-    /**
-     * Clears the cached structure provider after first finalizing
-     * it properly.
-     */
-    protected void clearProviderCache() {
-        ArchiveFileManipulations.clearProviderCache(getContainer().getShell());
-    }
-
-    /**
-     * Attempts to close the passed zip file, and answers a boolean indicating success.
-     */
-    protected boolean closeZipFile(ZipFile file) {
-        try {
-            file.close();
-        } catch (IOException e) {
-            displayErrorDialog(NLS.bind(DataTransferMessages.ZipImport_couldNotClose, file.getName()));
-            return false;
-        }
-
-        return true;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        super.createControl(parent);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-                IDataTransferHelpContextIds.ZIP_FILE_IMPORT_WIZARD_PAGE);
-    }
-
-    /**
-     *	Create the options specification widgets. There is only one
-     * in this case so create no group.
-     *
-     *	@param parent org.eclipse.swt.widgets.Composite
-     */
-    protected void createOptionsGroup(Composite parent) {
-
-        // overwrite... checkbox
-        overwriteExistingResourcesCheckbox = new Button(parent, SWT.CHECK);
-        overwriteExistingResourcesCheckbox.setText(DataTransferMessages.FileImport_overwriteExisting);
-        overwriteExistingResourcesCheckbox.setFont(parent.getFont());
-    }
-
-    private boolean validateSourceFile(String fileName) {
-    	if(ArchiveFileManipulations.isTarFile(fileName)) {
-    		TarFile tarFile = getSpecifiedTarSourceFile(fileName);
-    		return (tarFile != null);
-    	}
-    	ZipFile zipFile = getSpecifiedZipSourceFile(fileName);
-    	if(zipFile != null) {
-    		ArchiveFileManipulations.closeZipFile(zipFile, getContainer()
-					.getShell());
-    		return true;
-    	}
-    	return false;
-    }
-
-    /**
-     *	Answer a boolean indicating whether the specified source currently exists
-     *	and is valid (ie.- proper format)
-     */
-    private boolean ensureZipSourceIsValid() {
-        ZipFile specifiedFile = getSpecifiedZipSourceFile();
-        if (specifiedFile == null) {
-            return false;
-        }
-        return ArchiveFileManipulations.closeZipFile(specifiedFile,
-				getContainer().getShell());
-    }
-
-    private boolean ensureTarSourceIsValid() {
-    	TarFile specifiedFile = getSpecifiedTarSourceFile();
-    	if( specifiedFile == null ) {
-    		return false;
-    	}
-    	return true;
-    }
-
-    /**
-     *	Answer a boolean indicating whether the specified source currently exists
-     *	and is valid (ie.- proper format)
-     */
-    protected boolean ensureSourceIsValid() {
-    	if (ArchiveFileManipulations.isTarFile(sourceNameField.getText())) {
-    		return ensureTarSourceIsValid();
-    	}
-    	return ensureZipSourceIsValid();
-    }
-    
-    /**
-     * The Finish button was pressed.  Try to do the required work now and answer
-     * a boolean indicating success.  If <code>false</code> is returned then the
-     * wizard will not close.
-     *
-     * @return boolean
-     */
-    public boolean finish() {
-        if (!super.finish()) {
-			return false;
-		}
-
-        ArchiveFileManipulations.clearProviderCache(getContainer().getShell());
-        return true;
-    }
-
-    /**
-     * Returns a content provider for <code>FileSystemElement</code>s that returns 
-     * only files as children.
-     */
-    protected ITreeContentProvider getFileProvider() {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object o) {
-                if (o instanceof MinimizedFileSystemElement) {
-                    MinimizedFileSystemElement element = (MinimizedFileSystemElement) o;
-                    AdaptableList l;
-                    if(zipCurrentProvider != null) {
-                    	l = element.getFiles(zipCurrentProvider);
-                    } else {
-                    	l = element.getFiles(tarCurrentProvider);
-                    }
-                    return l.getChildren(element);
-                }
-                return new Object[0];
-            }
-        };
-    }
-
-    /**
-     *	Answer the root FileSystemElement that represents the contents of the
-     *	currently-specified .zip file.  If this FileSystemElement is not
-     *	currently defined then create and return it.
-     */
-    protected MinimizedFileSystemElement getFileSystemTree() {
-    	if(ArchiveFileManipulations.isTarFile(sourceNameField.getText())) {    		
-        	TarFile sourceTarFile = getSpecifiedTarSourceFile();
-        	if (sourceTarFile == null) {
-                //Clear out the provider as well
-                this.zipCurrentProvider = null;
-                this.tarCurrentProvider = null;
-                return null;
-        	}
-	
-            TarLeveledStructureProvider provider = ArchiveFileManipulations
-					.getTarStructureProvider(sourceTarFile, getContainer()
-							.getShell());
-            this.tarCurrentProvider = provider;
-            this.zipCurrentProvider = null;
-            return selectFiles(provider.getRoot(), provider);
-    	}
-
-        ZipFile sourceFile = getSpecifiedZipSourceFile();
-        if (sourceFile == null) {
-            //Clear out the provider as well
-            this.zipCurrentProvider = null;
-            this.tarCurrentProvider = null;
-            return null;
-        }
-
-        ZipLeveledStructureProvider provider = ArchiveFileManipulations
-				.getZipStructureProvider(sourceFile, getContainer().getShell());
-        this.zipCurrentProvider = provider;
-        this.tarCurrentProvider = null;
-        return selectFiles(provider.getRoot(), provider);
-    }
-
-    /**
-     * Returns a content provider for <code>FileSystemElement</code>s that returns 
-     * only folders as children.
-     */
-    protected ITreeContentProvider getFolderProvider() {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object o) {
-                if (o instanceof MinimizedFileSystemElement) {
-                    MinimizedFileSystemElement element = (MinimizedFileSystemElement) o;
-                    AdaptableList l;
-                    if(zipCurrentProvider != null) {
-                    	l = element.getFolders(zipCurrentProvider);
-                    } else {
-                    	l = element.getFolders(tarCurrentProvider);
-                    }
-                    return l.getChildren(element);
-                }
-                return new Object[0];
-            }
-
-            public boolean hasChildren(Object o) {
-                if (o instanceof MinimizedFileSystemElement) {
-                    MinimizedFileSystemElement element = (MinimizedFileSystemElement) o;
-                    if (element.isPopulated()) {
-						return getChildren(element).length > 0;
-					}
-
-                    //If we have not populated then wait until asked
-                    return true;
-                }
-                return false;
-            }
-        };
-    }
-
-    /**
-     *	Answer the string to display as the label for the source specification field
-     */
-    protected String getSourceLabel() {
-        return DataTransferMessages.ArchiveImport_fromFile;
-    }
-
-    /**
-     *	Answer a handle to the zip file currently specified as being the source.
-     *	Return null if this file does not exist or is not of valid format.
-     */
-    protected ZipFile getSpecifiedZipSourceFile() {
-        return getSpecifiedZipSourceFile(sourceNameField.getText());
-    }
-
-    /**
-     *	Answer a handle to the zip file currently specified as being the source.
-     *	Return null if this file does not exist or is not of valid format.
-     */
-    private ZipFile getSpecifiedZipSourceFile(String fileName) {
-        if (fileName.length() == 0) {
-			return null;
-		}
-
-        try {
-            return new ZipFile(fileName);
-        } catch (ZipException e) {
-            displayErrorDialog(DataTransferMessages.ZipImport_badFormat);
-        } catch (IOException e) {
-            displayErrorDialog(DataTransferMessages.ZipImport_couldNotRead);
-        }
-
-        sourceNameField.setFocus();
-        return null;
-    }
-
-    /**
-     *	Answer a handle to the zip file currently specified as being the source.
-     *	Return null if this file does not exist or is not of valid format.
-     */
-    protected TarFile getSpecifiedTarSourceFile() {
-        return getSpecifiedTarSourceFile(sourceNameField.getText());
-    }
-
-    /**
-     *	Answer a handle to the zip file currently specified as being the source.
-     *	Return null if this file does not exist or is not of valid format.
-     */
-    private TarFile getSpecifiedTarSourceFile(String fileName) {
-        if (fileName.length() == 0) {
-			return null;
-		}
-
-        try {
-            return new TarFile(fileName);
-        } catch (TarException e) {
-        	displayErrorDialog(DataTransferMessages.TarImport_badFormat);
-        } catch (IOException e) {
-            displayErrorDialog(DataTransferMessages.ZipImport_couldNotRead);
-        }
-
-        sourceNameField.setFocus();
-        return null;
-    }
-
-    /**
-     *	Open a FileDialog so that the user can specify the source
-     *	file to import from
-     */
-    protected void handleSourceBrowseButtonPressed() {
-        String selectedFile = queryZipFileToImport();
-
-        if (selectedFile != null) {
-            //Be sure it is valid before we go setting any names
-            if (!selectedFile.equals(sourceNameField.getText())
-					&& validateSourceFile(selectedFile)) {
-                setSourceName(selectedFile);
-                selectionGroup.setFocus();
-            }
-        }
-    }
-
-    /**
-     *  Import the resources with extensions as specified by the user
-     */
-    protected boolean importResources(List fileSystemObjects) {
-    	boolean result = false;
-
-    	if (ArchiveFileManipulations.isTarFile(sourceNameField.getText())) {
-    		if( ensureTarSourceIsValid()) {
-	    		TarFile tarFile = getSpecifiedTarSourceFile();
-	    		TarLeveledStructureProvider structureProvider = ArchiveFileManipulations
-						.getTarStructureProvider(tarFile, getContainer()
-								.getShell());
-	    		ImportOperation operation = new ImportOperation(getContainerFullPath(),
-	    				structureProvider.getRoot(), structureProvider, this,
-						fileSystemObjects);
-	
-	    		operation.setContext(getShell());
-	    		return executeImportOperation(operation);
-    		}
-    	}
-
-    	if(ensureZipSourceIsValid()) {
-    		ZipFile zipFile = getSpecifiedZipSourceFile();
-            ZipLeveledStructureProvider structureProvider = ArchiveFileManipulations
-					.getZipStructureProvider(zipFile, getContainer().getShell());
-			ImportOperation operation = new ImportOperation(
-					getContainerFullPath(), structureProvider.getRoot(),
-					structureProvider, this, fileSystemObjects);
-
-    		operation.setContext(getShell());
-    		result = executeImportOperation(operation);
-
-    		closeZipFile(zipFile);
-    	}
-    	return result;
-    }
-
-    /**
-     * Initializes the specified operation appropriately.
-     */
-    protected void initializeOperation(ImportOperation op) {
-        op.setOverwriteResources(overwriteExistingResourcesCheckbox
-                .getSelection());
-    }
-
-    /**
-     * Opens a file selection dialog and returns a string representing the
-     * selected file, or <code>null</code> if the dialog was canceled.
-     */
-    protected String queryZipFileToImport() {
-        FileDialog dialog = new FileDialog(sourceNameField.getShell(), SWT.OPEN);
-        dialog.setFilterExtensions(FILE_IMPORT_MASK);
-        dialog.setText(DataTransferMessages.ArchiveImportSource_title);
-
-        String currentSourceString = sourceNameField.getText();
-        int lastSeparatorIndex = currentSourceString
-                .lastIndexOf(File.separator);
-        if (lastSeparatorIndex != -1) {
-			dialog.setFilterPath(currentSourceString.substring(0,
-                    lastSeparatorIndex));
-		}
-
-        return dialog.open();
-    }
-
-    /**
-     *	Repopulate the view based on the currently entered directory.
-     */
-    protected void resetSelection() {
-
-        super.resetSelection();
-        setAllSelections(true);
-    }
-
-    /**
-     *	Use the dialog store to restore widget values to the values that they held
-     *	last time this wizard was used to completion
-     */
-    protected void restoreWidgetValues() {
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            String[] sourceNames = settings.getArray(STORE_SOURCE_NAMES_ID);
-            if (sourceNames == null) {
-				return; // ie.- no settings stored
-			}
-
-            // set filenames history
-            for (int i = 0; i < sourceNames.length; i++) {
-				sourceNameField.add(sourceNames[i]);
-			}
-
-            // radio buttons and checkboxes	
-            overwriteExistingResourcesCheckbox.setSelection(settings
-                    .getBoolean(STORE_OVERWRITE_EXISTING_RESOURCES_ID));
-        }
-    }
-
-    /**
-     * 	Since Finish was pressed, write widget values to the dialog store so that they
-     *	will persist into the next invocation of this wizard page.
-     *
-     *	Note that this method is identical to the one that appears in the superclass.
-     *	This is necessary because proper overriding of instance variables is not occurring.
-     */
-    protected void saveWidgetValues() {
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            // update source names history
-            String[] sourceNames = settings.getArray(STORE_SOURCE_NAMES_ID);
-            if (sourceNames == null) {
-				sourceNames = new String[0];
-			}
-
-            sourceNames = addToHistory(sourceNames, sourceNameField.getText());
-            settings.put(STORE_SOURCE_NAMES_ID, sourceNames);
-
-            // update specific types to import history
-            String[] selectedTypesNames = settings
-                    .getArray(STORE_SELECTED_TYPES_ID);
-            if (selectedTypesNames == null) {
-				selectedTypesNames = new String[0];
-			}
-
-            settings.put(STORE_OVERWRITE_EXISTING_RESOURCES_ID,
-                    overwriteExistingResourcesCheckbox.getSelection());
-        }
-    }
-
-    /**
-     *	Answer a boolean indicating whether self's source specification
-     *	widgets currently all contain valid values.
-     */
-    protected boolean validateSourceGroup() {
-
-        //If there is nothing being provided to the input then there is a problem
-        if (this.zipCurrentProvider == null && this.tarCurrentProvider == null) {
-            setMessage(SOURCE_EMPTY_MESSAGE);
-            enableButtonGroup(false);
-            return false;
-        } 
-        
-        List resourcesToExport = selectionGroup.getAllWhiteCheckedItems();
-        if (resourcesToExport.size() == 0){
-        	setErrorMessage(DataTransferMessages.FileImport_noneSelected);
-        	return false;
-        }
-        
-        enableButtonGroup(true);
-        setErrorMessage(null);
-        return true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceExportPage1.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceExportPage1.java
deleted file mode 100644
index c94e5e5..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceExportPage1.java
+++ /dev/null
@@ -1,491 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-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.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.WizardExportResourcesPage;
-
-
-/**
- *	Page 1 of the base resource export-to-file-system Wizard
- */
-public class WizardFileSystemResourceExportPage1 extends
-        WizardExportResourcesPage implements Listener {
-
-    // widgets
-    private Combo destinationNameField;
-
-    private Button destinationBrowseButton;
-
-    protected Button overwriteExistingFilesCheckbox;
-
-    protected Button createDirectoryStructureButton;
-
-    protected Button createSelectionOnlyButton;
-
-    // dialog store id constants
-    private static final String STORE_DESTINATION_NAMES_ID = "WizardFileSystemResourceExportPage1.STORE_DESTINATION_NAMES_ID"; //$NON-NLS-1$
-
-    private static final String STORE_OVERWRITE_EXISTING_FILES_ID = "WizardFileSystemResourceExportPage1.STORE_OVERWRITE_EXISTING_FILES_ID"; //$NON-NLS-1$
-
-    private static final String STORE_CREATE_STRUCTURE_ID = "WizardFileSystemResourceExportPage1.STORE_CREATE_STRUCTURE_ID"; //$NON-NLS-1$
-
-    //messages
-    private static final String SELECT_DESTINATION_MESSAGE = DataTransferMessages.FileExport_selectDestinationMessage;
-
-    private static final String SELECT_DESTINATION_TITLE = DataTransferMessages.FileExport_selectDestinationTitle;
-
-    /**
-     *	Create an instance of this class
-     */
-    protected WizardFileSystemResourceExportPage1(String name,
-            IStructuredSelection selection) {
-        super(name, selection);
-    }
-
-    /**
-     * Create an instance of this class.
-     *
-     * @param selection the selection
-     */
-    public WizardFileSystemResourceExportPage1(IStructuredSelection selection) {
-        this("fileSystemExportPage1", selection); //$NON-NLS-1$
-        setTitle(DataTransferMessages.DataTransfer_fileSystemTitle);
-        setDescription(DataTransferMessages.FileExport_exportLocalFileSystem);
-    }
-
-    /**
-     *	Add the passed value to self's destination widget's history
-     *
-     *	@param value java.lang.String
-     */
-    protected void addDestinationItem(String value) {
-        destinationNameField.add(value);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        super.createControl(parent);
-        giveFocusToDestination();
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-                IDataTransferHelpContextIds.FILE_SYSTEM_EXPORT_WIZARD_PAGE);
-    }
-
-    /**
-     *	Create the export destination specification widgets
-     *
-     *	@param parent org.eclipse.swt.widgets.Composite
-     */
-    protected void createDestinationGroup(Composite parent) {
-
-        Font font = parent.getFont();
-        // destination specification group
-        Composite destinationSelectionGroup = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        destinationSelectionGroup.setLayout(layout);
-        destinationSelectionGroup.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-        destinationSelectionGroup.setFont(font);
-
-        Label destinationLabel = new Label(destinationSelectionGroup, SWT.NONE);
-        destinationLabel.setText(getDestinationLabel());
-        destinationLabel.setFont(font);
-
-        // destination name entry field
-        destinationNameField = new Combo(destinationSelectionGroup, SWT.SINGLE
-                | SWT.BORDER);
-        destinationNameField.addListener(SWT.Modify, this);
-        destinationNameField.addListener(SWT.Selection, this);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-        destinationNameField.setLayoutData(data);
-        destinationNameField.setFont(font);
-
-        // destination browse button
-        destinationBrowseButton = new Button(destinationSelectionGroup,
-                SWT.PUSH);
-        destinationBrowseButton.setText(DataTransferMessages.DataTransfer_browse);
-        destinationBrowseButton.addListener(SWT.Selection, this);
-        destinationBrowseButton.setFont(font);
-        setButtonLayoutData(destinationBrowseButton);
-
-        new Label(parent, SWT.NONE); // vertical spacer
-    }
-
-    /**
-     * Create the buttons in the options group.
-     */
-
-    protected void createOptionsGroupButtons(Group optionsGroup) {
-
-        Font font = optionsGroup.getFont();
-        createOverwriteExisting(optionsGroup, font);
-
-        createDirectoryStructureOptions(optionsGroup, font);
-    }
-
-    /**
-     * Create the buttons for the group that determine if the entire or
-     * selected directory structure should be created.
-     * @param optionsGroup
-     * @param font
-     */
-    protected void createDirectoryStructureOptions(Composite optionsGroup, Font font) {
-        // create directory structure radios
-        createDirectoryStructureButton = new Button(optionsGroup, SWT.RADIO
-                | SWT.LEFT);
-        createDirectoryStructureButton.setText(DataTransferMessages.FileExport_createDirectoryStructure);
-        createDirectoryStructureButton.setSelection(false);
-        createDirectoryStructureButton.setFont(font);
-
-        // create directory structure radios
-        createSelectionOnlyButton = new Button(optionsGroup, SWT.RADIO
-                | SWT.LEFT);
-        createSelectionOnlyButton.setText(DataTransferMessages.FileExport_createSelectedDirectories);
-        createSelectionOnlyButton.setSelection(true);
-        createSelectionOnlyButton.setFont(font);
-    }
-
-    /**
-     * Create the button for checking if we should ask if we are going to
-     * overwrite existing files.
-     * @param optionsGroup
-     * @param font
-     */
-    protected void createOverwriteExisting(Group optionsGroup, Font font) {
-        // overwrite... checkbox
-        overwriteExistingFilesCheckbox = new Button(optionsGroup, SWT.CHECK
-                | SWT.LEFT);
-        overwriteExistingFilesCheckbox.setText(DataTransferMessages.ExportFile_overwriteExisting);
-        overwriteExistingFilesCheckbox.setFont(font);
-    }
-
-    /**
-     * Attempts to ensure that the specified directory exists on the local file system.
-     * Answers a boolean indicating success.
-     *
-     * @return boolean
-     * @param directory java.io.File
-     */
-    protected boolean ensureDirectoryExists(File directory) {
-        if (!directory.exists()) {
-            if (!queryYesNoQuestion(DataTransferMessages.DataTransfer_createTargetDirectory)) {
-				return false;
-			}
-
-            if (!directory.mkdirs()) {
-                displayErrorDialog(DataTransferMessages.DataTransfer_directoryCreationError);
-                giveFocusToDestination();
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     *	If the target for export does not exist then attempt to create it.
-     *	Answer a boolean indicating whether the target exists (ie.- if it
-     *	either pre-existed or this method was able to create it)
-     *
-     *	@return boolean
-     */
-    protected boolean ensureTargetIsValid(File targetDirectory) {
-        if (targetDirectory.exists() && !targetDirectory.isDirectory()) {
-            displayErrorDialog(DataTransferMessages.FileExport_directoryExists);
-            giveFocusToDestination();
-            return false;
-        }
-
-        return ensureDirectoryExists(targetDirectory);
-    }
-
-    /**
-     *  Set up and execute the passed Operation.  Answer a boolean indicating success.
-     *
-     *  @return boolean
-     */
-    protected boolean executeExportOperation(FileSystemExportOperation op) {
-        op.setCreateLeadupStructure(createDirectoryStructureButton
-                .getSelection());
-        op.setOverwriteFiles(overwriteExistingFilesCheckbox.getSelection());
-
-        try {
-            getContainer().run(true, true, op);
-        } catch (InterruptedException e) {
-            return false;
-        } catch (InvocationTargetException e) {
-            displayErrorDialog(e.getTargetException());
-            return false;
-        }
-
-        IStatus status = op.getStatus();
-        if (!status.isOK()) {
-            ErrorDialog.openError(getContainer().getShell(),
-                    DataTransferMessages.DataTransfer_exportProblems,
-                    null, // no special message
-                    status);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     *	The Finish button was pressed.  Try to do the required work now and answer
-     *	a boolean indicating success.  If false is returned then the wizard will
-     *	not close.
-     *
-     *	@return boolean
-     */
-    public boolean finish() {
-        List resourcesToExport = getWhiteCheckedResources();
-        if (!ensureTargetIsValid(new File(getDestinationValue()))) {
-			return false;
-		}
-
-
-        //Save dirty editors if possible but do not stop if not all are saved
-        saveDirtyEditors();
-        // about to invoke the operation so save our state
-        saveWidgetValues();
-
-        return executeExportOperation(new FileSystemExportOperation(null,
-                resourcesToExport, getDestinationValue(), this));
-    }
-
-    /**
-     *	Answer the string to display in self as the destination type
-     *
-     *	@return java.lang.String
-     */
-    protected String getDestinationLabel() {
-        return DataTransferMessages.FileExport_toDirectory;
-    }
-
-    /**
-     *	Answer the contents of self's destination specification widget
-     *
-     *	@return java.lang.String
-     */
-    protected String getDestinationValue() {
-        return destinationNameField.getText().trim();
-    }
-
-    /**
-     *	Set the current input focus to self's destination entry field
-     */
-    protected void giveFocusToDestination() {
-        destinationNameField.setFocus();
-    }
-
-    /**
-     *	Open an appropriate destination browser so that the user can specify a source
-     *	to import from
-     */
-    protected void handleDestinationBrowseButtonPressed() {
-        DirectoryDialog dialog = new DirectoryDialog(getContainer().getShell(),
-                SWT.SAVE);
-        dialog.setMessage(SELECT_DESTINATION_MESSAGE);
-        dialog.setText(SELECT_DESTINATION_TITLE);
-        dialog.setFilterPath(getDestinationValue());
-        String selectedDirectoryName = dialog.open();
-
-        if (selectedDirectoryName != null) {
-            setErrorMessage(null);
-            setDestinationValue(selectedDirectoryName);
-        }
-    }
-
-    /**
-     * Handle all events and enablements for widgets in this page
-     * @param e Event
-     */
-    public void handleEvent(Event e) {
-        Widget source = e.widget;
-
-        if (source == destinationBrowseButton) {
-			handleDestinationBrowseButtonPressed();
-		}
-
-        updatePageCompletion();
-    }
-
-    /**
-     *	Hook method for saving widget values for restoration by the next instance
-     *	of this class.
-     */
-    protected void internalSaveWidgetValues() {
-        // update directory names history
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            String[] directoryNames = settings
-                    .getArray(STORE_DESTINATION_NAMES_ID);
-            if (directoryNames == null) {
-				directoryNames = new String[0];
-			}
-
-            directoryNames = addToHistory(directoryNames, getDestinationValue());
-            settings.put(STORE_DESTINATION_NAMES_ID, directoryNames);
-
-            // options
-            settings.put(STORE_OVERWRITE_EXISTING_FILES_ID,
-                    overwriteExistingFilesCheckbox.getSelection());
-
-            settings.put(STORE_CREATE_STRUCTURE_ID,
-                    createDirectoryStructureButton.getSelection());
-
-        }
-    }
-
-    /**
-     *	Hook method for restoring widget values to the values that they held
-     *	last time this wizard was used to completion.
-     */
-    protected void restoreWidgetValues() {
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            String[] directoryNames = settings
-                    .getArray(STORE_DESTINATION_NAMES_ID);
-            if (directoryNames == null) {
-				return; // ie.- no settings stored
-			}
-
-            // destination
-            setDestinationValue(directoryNames[0]);
-            for (int i = 0; i < directoryNames.length; i++) {
-				addDestinationItem(directoryNames[i]);
-			}
-
-            // options
-            overwriteExistingFilesCheckbox.setSelection(settings
-                    .getBoolean(STORE_OVERWRITE_EXISTING_FILES_ID));
-
-            boolean createDirectories = settings
-                    .getBoolean(STORE_CREATE_STRUCTURE_ID);
-            createDirectoryStructureButton.setSelection(createDirectories);
-            createSelectionOnlyButton.setSelection(!createDirectories);
-        }
-    }
-
-    /**
-     *	Set the contents of the receivers destination specification widget to
-     *	the passed value
-     *
-     */
-    protected void setDestinationValue(String value) {
-        destinationNameField.setText(value);
-    }
-
-    /**
-     *	Answer a boolean indicating whether the receivers destination specification
-     *	widgets currently all contain valid values.
-     */
-    protected boolean validateDestinationGroup() {
-        String destinationValue = getDestinationValue();
-        if (destinationValue.length() == 0) {
-            setMessage(destinationEmptyMessage());
-            return false;
-        }
-
-        String conflictingContainer = getConflictingContainerNameFor(destinationValue);
-        if (conflictingContainer == null) {
-			setErrorMessage(null);
-		} else {
-            setErrorMessage(NLS.bind(DataTransferMessages.FileExport_conflictingContainer, conflictingContainer));
-            giveFocusToDestination();
-            return false;
-        }
-
-        return true;
-    }
-
-    /*
-     * (non-Javadoc)
-     * @see org.eclipse.ui.dialogs.WizardDataTransferPage#validateSourceGroup()
-     */
-    protected boolean validateSourceGroup() {
-    	// there must be some resources selected for Export
-    	boolean isValid = true;
-        List resourcesToExport = getWhiteCheckedResources();
-    	if (resourcesToExport.size() == 0){
-    		setErrorMessage(DataTransferMessages.FileExport_noneSelected);
-            isValid =  false;
-    	} else {
-			setErrorMessage(null);
-		}
-		return super.validateSourceGroup() && isValid;
-	}
-
-	/**
-     * Get the message used to denote an empty destination.
-     */
-    protected String destinationEmptyMessage() {
-        return DataTransferMessages.FileExport_destinationEmpty;
-    }
-
-    /**
-     * Returns the name of a container with a location that encompasses targetDirectory.
-     * Returns null if there is no conflict.
-     * 
-     * @param targetDirectory the path of the directory to check.
-     * @return the conflicting container name or <code>null</code>
-     */
-    protected String getConflictingContainerNameFor(String targetDirectory) {
-
-        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-        IPath testPath = new Path(targetDirectory);
-
-        if (root.getLocation().isPrefixOf(testPath)) {
-			return DataTransferMessages.FileExport_rootName;
-		}
-
-	    IContainer[] containers = root.findContainersForLocation(testPath);
-	    if (containers.length > 0){
-    		return containers[0].getName();
-	    }
-
-        return null;
-
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1.java
deleted file mode 100644
index 336fa80..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1.java
+++ /dev/null
@@ -1,983 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IContainer;
-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.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-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.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.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.FileSystemElement;
-import org.eclipse.ui.dialogs.WizardResourceImportPage;
-import org.eclipse.ui.internal.ide.dialogs.IElementFilter;
-import org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.IImportStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;
-
-/**
- *	Page 1 of the base resource import-from-file-system Wizard
- */
-public class WizardFileSystemResourceImportPage1 extends WizardResourceImportPage
-        implements Listener {
-    // widgets
-    protected Combo sourceNameField;
-
-    protected Button overwriteExistingResourcesCheckbox;
-
-    protected Button createContainerStructureButton;
-
-    protected Button createOnlySelectedButton;
-
-    protected Button sourceBrowseButton;
-
-    protected Button selectTypesButton;
-
-    protected Button selectAllButton;
-
-    protected Button deselectAllButton;
-
-    //A boolean to indicate if the user has typed anything
-    private boolean entryChanged = false;
-
-    // dialog store id constants
-    private final static String STORE_SOURCE_NAMES_ID = "WizardFileSystemResourceImportPage1.STORE_SOURCE_NAMES_ID";//$NON-NLS-1$
-
-    private final static String STORE_OVERWRITE_EXISTING_RESOURCES_ID = "WizardFileSystemResourceImportPage1.STORE_OVERWRITE_EXISTING_RESOURCES_ID";//$NON-NLS-1$
-
-    private final static String STORE_CREATE_CONTAINER_STRUCTURE_ID = "WizardFileSystemResourceImportPage1.STORE_CREATE_CONTAINER_STRUCTURE_ID";//$NON-NLS-1$
-
-    private static final String SELECT_TYPES_TITLE = DataTransferMessages.DataTransfer_selectTypes;
-
-    private static final String SELECT_ALL_TITLE = DataTransferMessages.DataTransfer_selectAll;
-
-    private static final String DESELECT_ALL_TITLE = DataTransferMessages.DataTransfer_deselectAll;
-
-    private static final String SELECT_SOURCE_TITLE = DataTransferMessages.FileImport_selectSourceTitle;
-
-    private static final String SELECT_SOURCE_MESSAGE = DataTransferMessages.FileImport_selectSource;
-
-    protected static final String SOURCE_EMPTY_MESSAGE = DataTransferMessages.FileImport_sourceEmpty;
-
-    /**
-     *	Creates an instance of this class
-     */
-    protected WizardFileSystemResourceImportPage1(String name,
-            IWorkbench aWorkbench, IStructuredSelection selection) {
-        super(name, selection);
-    }
-
-    /**
-     *	Creates an instance of this class
-     *
-     * @param aWorkbench IWorkbench
-     * @param selection IStructuredSelection
-     */
-    public WizardFileSystemResourceImportPage1(IWorkbench aWorkbench,
-            IStructuredSelection selection) {
-        this("fileSystemImportPage1", aWorkbench, selection);//$NON-NLS-1$
-        setTitle(DataTransferMessages.DataTransfer_fileSystemTitle);
-        setDescription(DataTransferMessages.FileImport_importFileSystem);
-    }
-
-    /**
-     * Creates a new button with the given id.
-     * <p>
-     * The <code>Dialog</code> implementation of this framework method
-     * creates a standard push button, registers for selection events
-     * including button presses and registers
-     * default buttons with its shell.
-     * The button id is stored as the buttons client data.
-     * Note that the parent's layout is assumed to be a GridLayout 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
-     */
-    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.setFont(parent.getFont());
-
-        GridData buttonData = new GridData(GridData.FILL_HORIZONTAL);
-        button.setLayoutData(buttonData);
-
-        button.setData(new Integer(id));
-        button.setText(label);
-
-        if (defaultButton) {
-            Shell shell = parent.getShell();
-            if (shell != null) {
-                shell.setDefaultButton(button);
-            }
-            button.setFocus();
-        }
-        return button;
-    }
-
-    /**
-     * Creates the buttons for selecting specific types or selecting all or none of the
-     * elements.
-     *
-     * @param parent the parent control
-     */
-    protected final void createButtonsGroup(Composite parent) {
-        // top level group
-        Composite buttonComposite = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        layout.makeColumnsEqualWidth = true;
-        buttonComposite.setLayout(layout);
-        buttonComposite.setFont(parent.getFont());
-        GridData buttonData = new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL);
-        buttonData.horizontalSpan = 2;
-        buttonComposite.setLayoutData(buttonData);
-
-        // types edit button
-        selectTypesButton = createButton(buttonComposite,
-                IDialogConstants.SELECT_TYPES_ID, SELECT_TYPES_TITLE, false);
-
-        SelectionListener listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                handleTypesEditButtonPressed();
-            }
-        };
-        selectTypesButton.addSelectionListener(listener);
-        setButtonLayoutData(selectTypesButton);
-
-        selectAllButton = createButton(buttonComposite,
-                IDialogConstants.SELECT_ALL_ID, SELECT_ALL_TITLE, false);
-
-        listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setAllSelections(true);
-                updateWidgetEnablements();
-            }
-        };
-        selectAllButton.addSelectionListener(listener);
-        setButtonLayoutData(selectAllButton);
-
-        deselectAllButton = createButton(buttonComposite,
-                IDialogConstants.DESELECT_ALL_ID, DESELECT_ALL_TITLE, false);
-
-        listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setAllSelections(false);
-                updateWidgetEnablements();
-            }
-        };
-        deselectAllButton.addSelectionListener(listener);
-        setButtonLayoutData(deselectAllButton);
-
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        super.createControl(parent);
-        validateSourceGroup();
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-                IDataTransferHelpContextIds.FILE_SYSTEM_IMPORT_WIZARD_PAGE);
-    }
-
-    /**
-     *	Create the import options specification widgets.
-     */
-    protected void createOptionsGroupButtons(Group optionsGroup) {
-
-        // overwrite... checkbox
-        overwriteExistingResourcesCheckbox = new Button(optionsGroup, SWT.CHECK);
-        overwriteExistingResourcesCheckbox.setFont(optionsGroup.getFont());
-        overwriteExistingResourcesCheckbox.setText(DataTransferMessages.FileImport_overwriteExisting);
-
-        // create containers radio
-        createContainerStructureButton = new Button(optionsGroup, SWT.RADIO);
-        createContainerStructureButton.setFont(optionsGroup.getFont());
-        createContainerStructureButton.setText(DataTransferMessages.FileImport_createComplete);
-        createContainerStructureButton.setSelection(false);
-
-        // create selection only radio
-        createOnlySelectedButton = new Button(optionsGroup, SWT.RADIO);
-        createOnlySelectedButton.setFont(optionsGroup.getFont());
-        createOnlySelectedButton.setText(DataTransferMessages.FileImport_createSelectedFolders);
-        createOnlySelectedButton.setSelection(true);
-
-    }
-
-    /**
-     *	Create the group for creating the root directory
-     */
-    protected void createRootDirectoryGroup(Composite parent) {
-        Composite sourceContainerGroup = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        sourceContainerGroup.setLayout(layout);
-        sourceContainerGroup.setFont(parent.getFont());
-        sourceContainerGroup.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-
-        Label groupLabel = new Label(sourceContainerGroup, SWT.NONE);
-        groupLabel.setText(getSourceLabel());
-        groupLabel.setFont(parent.getFont());
-
-        // source name entry field
-        sourceNameField = new Combo(sourceContainerGroup, SWT.BORDER);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-        sourceNameField.setLayoutData(data);
-        sourceNameField.setFont(parent.getFont());
-
-        sourceNameField.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                updateFromSourceField();
-            }
-        });
-
-        sourceNameField.addKeyListener(new KeyListener() {
-            /*
-             * @see KeyListener.keyPressed
-             */
-            public void keyPressed(KeyEvent e) {
-                //If there has been a key pressed then mark as dirty
-                entryChanged = true;
-            }
-
-            /*
-             * @see KeyListener.keyReleased
-             */
-            public void keyReleased(KeyEvent e) {
-            }
-        });
-
-        sourceNameField.addFocusListener(new FocusListener() {
-            /*
-             * @see FocusListener.focusGained(FocusEvent)
-             */
-            public void focusGained(FocusEvent e) {
-                //Do nothing when getting focus
-            }
-
-            /*
-             * @see FocusListener.focusLost(FocusEvent)
-             */
-            public void focusLost(FocusEvent e) {
-                //Clear the flag to prevent constant update
-                if (entryChanged) {
-                    entryChanged = false;
-                    updateFromSourceField();
-                }
-
-            }
-        });
-
-        // source browse button
-        sourceBrowseButton = new Button(sourceContainerGroup, SWT.PUSH);
-        sourceBrowseButton.setText(DataTransferMessages.DataTransfer_browse);
-        sourceBrowseButton.addListener(SWT.Selection, this);
-        sourceBrowseButton.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL));
-        sourceBrowseButton.setFont(parent.getFont());
-        setButtonLayoutData(sourceBrowseButton);
-    }
-
-    /**
-     * Update the receiver from the source name field.
-     */
-
-    private void updateFromSourceField() {
-
-        setSourceName(sourceNameField.getText());
-        //Update enablements when this is selected
-        updateWidgetEnablements();
-    }
-
-    /**
-     * Creates and returns a <code>FileSystemElement</code> if the specified
-     * file system object merits one.  The criteria for this are:
-     * Also create the children.
-     */
-    protected MinimizedFileSystemElement createRootElement(
-            Object fileSystemObject, IImportStructureProvider provider) {
-        boolean isContainer = provider.isFolder(fileSystemObject);
-        String elementLabel = provider.getLabel(fileSystemObject);
-
-        // Use an empty label so that display of the element's full name
-        // doesn't include a confusing label
-        MinimizedFileSystemElement dummyParent = new MinimizedFileSystemElement(
-                "", null, true);//$NON-NLS-1$
-        dummyParent.setPopulated();
-        MinimizedFileSystemElement result = new MinimizedFileSystemElement(
-                elementLabel, dummyParent, isContainer);
-        result.setFileSystemObject(fileSystemObject);
-
-        //Get the files for the element so as to build the first level
-        result.getFiles(provider);
-
-        return dummyParent;
-    }
-
-    /**
-     *	Create the import source specification widgets
-     */
-    protected void createSourceGroup(Composite parent) {
-
-        createRootDirectoryGroup(parent);
-        createFileSelectionGroup(parent);
-        createButtonsGroup(parent);
-    }
-
-    /**
-     * Enable or disable the button group.
-     */
-    protected void enableButtonGroup(boolean enable) {
-        selectTypesButton.setEnabled(enable);
-        selectAllButton.setEnabled(enable);
-        deselectAllButton.setEnabled(enable);
-    }
-
-    /**
-     *	Answer a boolean indicating whether the specified source currently exists
-     *	and is valid
-     */
-    protected boolean ensureSourceIsValid() {
-        if (new File(getSourceDirectoryName()).isDirectory()) {
-			return true;
-		}
-
-        setErrorMessage(DataTransferMessages.FileImport_invalidSource);
-        sourceNameField.setFocus();
-        return false;
-    }
-
-    /**
-     *	Execute the passed import operation.  Answer a boolean indicating success.
-     */
-    protected boolean executeImportOperation(ImportOperation op) {
-        initializeOperation(op);
-
-        try {
-            getContainer().run(true, true, op);
-        } catch (InterruptedException e) {
-            return false;
-        } catch (InvocationTargetException e) {
-            displayErrorDialog(e.getTargetException());
-            return false;
-        }
-
-        IStatus status = op.getStatus();
-        if (!status.isOK()) {
-            ErrorDialog
-                    .openError(getContainer().getShell(), DataTransferMessages.FileImport_importProblems,
-                            null, // no special message
-                            status);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     *	The Finish button was pressed.  Try to do the required work now and answer
-     *	a boolean indicating success.  If false is returned then the wizard will
-     *	not close.
-     *
-     * @return boolean
-     */
-    public boolean finish() {
-        if (!ensureSourceIsValid()) {
-			return false;
-		}
-
-        saveWidgetValues();
-
-        Iterator resourcesEnum = getSelectedResources().iterator();
-        List fileSystemObjects = new ArrayList();
-        while (resourcesEnum.hasNext()) {
-            fileSystemObjects.add(((FileSystemElement) resourcesEnum.next())
-                    .getFileSystemObject());
-        }
-
-        if (fileSystemObjects.size() > 0) {
-			return importResources(fileSystemObjects);
-		}
-
-        MessageDialog.openInformation(getContainer().getShell(),
-                DataTransferMessages.DataTransfer_information,
-                DataTransferMessages.FileImport_noneSelected);
-
-        return false;
-    }
-
-    /**
-     * Returns a content provider for <code>FileSystemElement</code>s that returns 
-     * only files as children.
-     */
-    protected ITreeContentProvider getFileProvider() {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object o) {
-                if (o instanceof MinimizedFileSystemElement) {
-                    MinimizedFileSystemElement element = (MinimizedFileSystemElement) o;
-                    return element.getFiles(
-                            FileSystemStructureProvider.INSTANCE).getChildren(
-                            element);
-                }
-                return new Object[0];
-            }
-        };
-    }
-
-    /**
-     *	Answer the root FileSystemElement that represents the contents of
-     *	the currently-specified source.  If this FileSystemElement is not
-     *	currently defined then create and return it.
-     */
-    protected MinimizedFileSystemElement getFileSystemTree() {
-
-        File sourceDirectory = getSourceDirectory();
-        if (sourceDirectory == null) {
-			return null;
-		}
-
-        return selectFiles(sourceDirectory,
-                FileSystemStructureProvider.INSTANCE);
-    }
-
-    /**
-     * Returns a content provider for <code>FileSystemElement</code>s that returns 
-     * only folders as children.
-     */
-    protected ITreeContentProvider getFolderProvider() {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object o) {
-                if (o instanceof MinimizedFileSystemElement) {
-                    MinimizedFileSystemElement element = (MinimizedFileSystemElement) o;
-                    return element.getFolders(
-                            FileSystemStructureProvider.INSTANCE).getChildren(
-                            element);
-                }
-                return new Object[0];
-            }
-
-            public boolean hasChildren(Object o) {
-                if (o instanceof MinimizedFileSystemElement) {
-                    MinimizedFileSystemElement element = (MinimizedFileSystemElement) o;
-                    if (element.isPopulated()) {
-						return getChildren(element).length > 0;
-					}
-
-                    //If we have not populated then wait until asked
-                    return true;
-                }
-                return false;
-            }
-        };
-    }
-
-    /**
-     * Returns a File object representing the currently-named source directory iff
-     * it exists as a valid directory, or <code>null</code> otherwise.
-     */
-    protected File getSourceDirectory() {
-        return getSourceDirectory(this.sourceNameField.getText());
-    }
-
-    /**
-     * Returns a File object representing the currently-named source directory iff
-     * it exists as a valid directory, or <code>null</code> otherwise.
-     *
-     * @param path a String not yet formatted for java.io.File compatability
-     */
-    private File getSourceDirectory(String path) {
-        File sourceDirectory = new File(getSourceDirectoryName(path));
-        if (!sourceDirectory.exists() || !sourceDirectory.isDirectory()) {
-            return null;
-        }
-
-        return sourceDirectory;
-    }
-
-    /**
-     *	Answer the directory name specified as being the import source.
-     *	Note that if it ends with a separator then the separator is first
-     *	removed so that java treats it as a proper directory
-     */
-    private String getSourceDirectoryName() {
-        return getSourceDirectoryName(this.sourceNameField.getText());
-    }
-
-    /**
-     *	Answer the directory name specified as being the import source.
-     *	Note that if it ends with a separator then the separator is first
-     *	removed so that java treats it as a proper directory
-     */
-    private String getSourceDirectoryName(String sourceName) {
-        IPath result = new Path(sourceName.trim());
-
-        if (result.getDevice() != null && result.segmentCount() == 0) {
-			result = result.addTrailingSeparator();
-		} else {
-			result = result.removeTrailingSeparator();
-		}
-
-        return result.toOSString();
-    }
-
-    /**
-     *	Answer the string to display as the label for the source specification field
-     */
-    protected String getSourceLabel() {
-        return DataTransferMessages.FileImport_fromDirectory;
-    }
-
-    /**
-     *	Handle all events and enablements for widgets in this dialog
-     *
-     * @param event Event
-     */
-    public void handleEvent(Event event) {
-        if (event.widget == sourceBrowseButton) {
-			handleSourceBrowseButtonPressed();
-		}
-
-        super.handleEvent(event);
-    }
-
-    /**
-     *	Open an appropriate source browser so that the user can specify a source
-     *	to import from
-     */
-    protected void handleSourceBrowseButtonPressed() {
-
-        String currentSource = this.sourceNameField.getText();
-        DirectoryDialog dialog = new DirectoryDialog(
-                sourceNameField.getShell(), SWT.SAVE);
-        dialog.setText(SELECT_SOURCE_TITLE);
-        dialog.setMessage(SELECT_SOURCE_MESSAGE);
-        dialog.setFilterPath(getSourceDirectoryName(currentSource));
-
-        String selectedDirectory = dialog.open();
-        if (selectedDirectory != null) {
-            //Just quit if the directory is not valid
-            if ((getSourceDirectory(selectedDirectory) == null)
-                    || selectedDirectory.equals(currentSource)) {
-				return;
-			}
-            //If it is valid then proceed to populate
-            setErrorMessage(null);
-            setSourceName(selectedDirectory);
-            selectionGroup.setFocus();
-        }
-    }
-
-    /**
-     * Open a registered type selection dialog and note the selections
-     * in the receivers types-to-export field.,
-     * Added here so that inner classes can have access
-     */
-    protected void handleTypesEditButtonPressed() {
-
-        super.handleTypesEditButtonPressed();
-    }
-
-    /**
-     *  Import the resources with extensions as specified by the user
-     */
-    protected boolean importResources(List fileSystemObjects) {
-        ImportOperation operation = new ImportOperation(getContainerFullPath(),
-                getSourceDirectory(), FileSystemStructureProvider.INSTANCE,
-                this, fileSystemObjects);
-
-        operation.setContext(getShell());
-        return executeImportOperation(operation);
-    }
-
-    /**
-     * Initializes the specified operation appropriately.
-     */
-    protected void initializeOperation(ImportOperation op) {
-        op.setCreateContainerStructure(createContainerStructureButton
-                .getSelection());
-        op.setOverwriteResources(overwriteExistingResourcesCheckbox
-                .getSelection());
-    }
-
-    /**
-     * Returns whether the extension provided is an extension that
-     * has been specified for export by the user.
-     *
-     * @param extension the resource name
-     * @return <code>true</code> if the resource name is suitable for export based 
-     *   upon its extension
-     */
-    protected boolean isExportableExtension(String extension) {
-        if (selectedTypes == null) {
-			return true;
-		}
-
-        Iterator itr = selectedTypes.iterator();
-        while (itr.hasNext()) {
-            if (extension.equalsIgnoreCase((String) itr.next())) {
-				return true;
-			}
-        }
-
-        return false;
-    }
-
-    /**
-     *	Repopulate the view based on the currently entered directory.
-     */
-    protected void resetSelection() {
-
-        MinimizedFileSystemElement currentRoot = getFileSystemTree();
-        this.selectionGroup.setRoot(currentRoot);
-
-    }
-
-    /**
-     *	Use the dialog store to restore widget values to the values that they held
-     *	last time this wizard was used to completion
-     */
-    protected void restoreWidgetValues() {
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            String[] sourceNames = settings.getArray(STORE_SOURCE_NAMES_ID);
-            if (sourceNames == null) {
-				return; // ie.- no values stored, so stop
-			}
-
-            // set filenames history
-            for (int i = 0; i < sourceNames.length; i++) {
-				sourceNameField.add(sourceNames[i]);
-			}
-
-            // radio buttons and checkboxes	
-            overwriteExistingResourcesCheckbox.setSelection(settings
-                    .getBoolean(STORE_OVERWRITE_EXISTING_RESOURCES_ID));
-
-            boolean createStructure = settings
-                    .getBoolean(STORE_CREATE_CONTAINER_STRUCTURE_ID);
-            createContainerStructureButton.setSelection(createStructure);
-            createOnlySelectedButton.setSelection(!createStructure);
-
-        }
-    }
-
-    /**
-     * 	Since Finish was pressed, write widget values to the dialog store so that they
-     *	will persist into the next invocation of this wizard page
-     */
-    protected void saveWidgetValues() {
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            // update source names history
-            String[] sourceNames = settings.getArray(STORE_SOURCE_NAMES_ID);
-            if (sourceNames == null) {
-				sourceNames = new String[0];
-			}
-
-            sourceNames = addToHistory(sourceNames, getSourceDirectoryName());
-            settings.put(STORE_SOURCE_NAMES_ID, sourceNames);
-
-            // radio buttons and checkboxes	
-            settings.put(STORE_OVERWRITE_EXISTING_RESOURCES_ID,
-                    overwriteExistingResourcesCheckbox.getSelection());
-
-            settings.put(STORE_CREATE_CONTAINER_STRUCTURE_ID,
-                    createContainerStructureButton.getSelection());
-
-        }
-    }
-
-    /**
-     * Invokes a file selection operation using the specified file system and
-     * structure provider.  If the user specifies files to be imported then
-     * this selection is cached for later retrieval and is returned.
-     */
-    protected MinimizedFileSystemElement selectFiles(
-            final Object rootFileSystemObject,
-            final IImportStructureProvider structureProvider) {
-
-        final MinimizedFileSystemElement[] results = new MinimizedFileSystemElement[1];
-
-        BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-            public void run() {
-                //Create the root element from the supplied file system object
-                results[0] = createRootElement(rootFileSystemObject,
-                        structureProvider);
-            }
-        });
-
-        return results[0];
-    }
-
-    /**
-     * Set all of the selections in the selection group to value. Implemented here
-     * to provide access for inner classes.
-     * @param value boolean
-     */
-    protected void setAllSelections(boolean value) {
-        super.setAllSelections(value);
-    }
-
-    /**
-     * Sets the source name of the import to be the supplied path.
-     * Adds the name of the path to the list of items in the
-     * source combo and selects it.
-     *
-     * @param path the path to be added
-     */
-    protected void setSourceName(String path) {
-
-        if (path.length() > 0) {
-
-            String[] currentItems = this.sourceNameField.getItems();
-            int selectionIndex = -1;
-            for (int i = 0; i < currentItems.length; i++) {
-                if (currentItems[i].equals(path)) {
-					selectionIndex = i;
-				}
-            }
-            if (selectionIndex < 0) {
-                int oldLength = currentItems.length;
-                String[] newItems = new String[oldLength + 1];
-                System.arraycopy(currentItems, 0, newItems, 0, oldLength);
-                newItems[oldLength] = path;
-                this.sourceNameField.setItems(newItems);
-                selectionIndex = oldLength;
-            }
-            this.sourceNameField.select(selectionIndex);
-
-            resetSelection();
-        }
-    }
-
-    /**
-     * Update the tree to only select those elements that match the selected types
-     */
-    protected void setupSelectionsBasedOnSelectedTypes() {
-        ProgressMonitorDialog dialog = new ProgressMonitorJobsDialog(
-                getContainer().getShell());
-        final Map selectionMap = new Hashtable();
-
-        final IElementFilter filter = new IElementFilter() {
-
-            public void filterElements(Collection files,
-                    IProgressMonitor monitor) throws InterruptedException {
-                if (files == null) {
-                    throw new InterruptedException();
-                }
-                Iterator filesList = files.iterator();
-                while (filesList.hasNext()) {
-                    if (monitor.isCanceled()) {
-						throw new InterruptedException();
-					}
-                    checkFile(filesList.next());
-                }
-            }
-
-            public void filterElements(Object[] files, IProgressMonitor monitor)
-                    throws InterruptedException {
-                if (files == null) {
-                    throw new InterruptedException();
-                }
-                for (int i = 0; i < files.length; i++) {
-                    if (monitor.isCanceled()) {
-						throw new InterruptedException();
-					}
-                    checkFile(files[i]);
-                }
-            }
-
-            private void checkFile(Object fileElement) {
-                MinimizedFileSystemElement file = (MinimizedFileSystemElement) fileElement;
-                if (isExportableExtension(file.getFileNameExtension())) {
-                    List elements = new ArrayList();
-                    FileSystemElement parent = file.getParent();
-                    if (selectionMap.containsKey(parent)) {
-						elements = (List) selectionMap.get(parent);
-					}
-                    elements.add(file);
-                    selectionMap.put(parent, elements);
-                }
-            }
-
-        };
-
-        IRunnableWithProgress runnable = new IRunnableWithProgress() {
-            public void run(final IProgressMonitor monitor)
-                    throws InterruptedException {
-                monitor
-                        .beginTask(
-                                DataTransferMessages.ImportPage_filterSelections, IProgressMonitor.UNKNOWN);
-                getSelectedResources(filter, monitor);
-            }
-        };
-
-        try {
-            dialog.run(true, true, runnable);
-        } catch (InvocationTargetException exception) {
-            //Couldn't start. Do nothing.
-            return;
-        } catch (InterruptedException exception) {
-            //Got interrupted. Do nothing.
-            return;
-        }
-        // make sure that all paint operations caused by closing the progress 
-        // dialog get flushed, otherwise extra pixels will remain on the screen until 
-        // updateSelections is completed
-        getShell().update();
-        // The updateSelections method accesses SWT widgets so cannot be executed
-        // as part of the above progress dialog operation since the operation forks
-        // a new process.	
-        if (selectionMap != null) {
-            updateSelections(selectionMap);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogPage. Set the selection up when it becomes visible.
-     */
-    public void setVisible(boolean visible) {
-        super.setVisible(visible);
-        resetSelection();
-        if (visible) {
-			this.sourceNameField.setFocus();
-		}
-    }
-
-    /**
-     * Update the selections with those in map . Implemented here to give inner class
-     * visibility
-     * @param map Map - key tree elements, values Lists of list elements
-     */
-    protected void updateSelections(Map map) {
-        super.updateSelections(map);
-    }
-
-    /**
-     * Check if widgets are enabled or disabled by a change in the dialog.
-     * Provided here to give access to inner classes.
-     */
-    protected void updateWidgetEnablements() {
-        super.updateWidgetEnablements();
-        enableButtonGroup(ensureSourceIsValid());
-    }
-
-    /**
-     *	Answer a boolean indicating whether self's source specification
-     *	widgets currently all contain valid values.
-     */
-    protected boolean validateSourceGroup() {
-        File sourceDirectory = getSourceDirectory();
-        if (sourceDirectory == null) {
-            setMessage(SOURCE_EMPTY_MESSAGE);
-            enableButtonGroup(false);
-            return false;
-        }
-
-        if (sourceConflictsWithDestination(new Path(sourceDirectory.getPath()))) {
-        	setMessage(null);
-            setErrorMessage(getSourceConflictMessage());
-            enableButtonGroup(false);
-            return false;
-        }
-
-        List resourcesToExport = selectionGroup.getAllWhiteCheckedItems();
-        if (resourcesToExport.size() == 0){
-        	setMessage(null);
-        	setErrorMessage(DataTransferMessages.FileImport_noneSelected);
-        	return false;
-        }
-        
-		enableButtonGroup(true);
-		setErrorMessage(null);
-        return true;
-    }
-
-    /**
-     * Returns whether the source location conflicts
-     * with the destination resource. This will occur if
-     * the source is already under the destination.
-     * 
-     * @param sourcePath the path to check
-     * @return <code>true</code> if there is a conflict, <code>false</code> if not
-     */
-    protected boolean sourceConflictsWithDestination(IPath sourcePath) {
-
-        IContainer container = getSpecifiedContainer();
-        if (container == null) {
-			return false;
-		}
-        
-        IPath destinationLocation = getSpecifiedContainer().getLocation();
-        if (destinationLocation != null) {
-            return destinationLocation.isPrefixOf(sourcePath);
-        }
-        // null destination location is handled in 
-        // WizardResourceImportPage 
-        return false;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java
deleted file mode 100644
index fcf6886..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java
+++ /dev/null
@@ -1,1348 +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
- *     Red Hat, Inc - extensive changes to allow importing of Archive Files
- *     Philippe Ombredanne (pombredanne@nexb.com)
- *     		- Bug 101180 [Import/Export] Import Existing Project into Workspace default widget is back button , should be text field
- *******************************************************************************/
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.zip.ZipException;
-import java.util.zip.ZipFile;
-
-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.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.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusAdapter;
-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.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.DirectoryDialog;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.internal.ide.IDEApplication;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.IImportStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;
-
-/**
- * The WizardProjectsImportPage is the page that allows the user to import
- * projects from a particular location.
- */
-public class WizardProjectsImportPage extends WizardPage implements
-		IOverwriteQuery {
-
-	/**
-	 * Class declared public only for test suite. 
-	 *
-	 */
-	public class ProjectRecord {
-		File projectSystemFile;
-
-		Object projectArchiveFile;
-
-		String projectName;
-
-		Object parent;
-
-		int level;
-
-		IProjectDescription description;
-
-		ILeveledImportStructureProvider provider;
-
-		/**
-		 * Create a record for a project based on the info in the file.
-		 * 
-		 * @param file
-		 */
-		ProjectRecord(File file) {
-			projectSystemFile = file;
-			setProjectName();
-		}
-
-		/**
-		 * @param file
-		 *            The Object representing the .project file
-		 * @param parent
-		 *            The parent folder of the .project file
-		 * @param level
-		 *            The number of levels deep in the provider the file is
-		 * @param entryProvider
-		 *            The provider for the archive file that contains it
-		 */
-		ProjectRecord(Object file, Object parent, int level,
-				ILeveledImportStructureProvider entryProvider) {
-			this.projectArchiveFile = file;
-			this.parent = parent;
-			this.level = level;
-			this.provider = entryProvider;
-			setProjectName();
-		}
-
-		/**
-		 * Set the name of the project based on the projectFile.
-		 */
-		private void setProjectName() {
-			IProjectDescription newDescription = null;
-			try {
-				if (projectArchiveFile != null) {
-					InputStream stream = provider
-							.getContents(projectArchiveFile);
-					if (stream != null){
-						newDescription = IDEWorkbenchPlugin.getPluginWorkspace()
-								.loadProjectDescription(stream);
-						stream.close();
-					}					
-				} else {
-					IPath path = new Path(projectSystemFile.getPath());
-					//if the file is in the default location, use the directory name as the project name
-					if (isDefaultLocation(path)) {
-						projectName = path.segment(path.segmentCount()-2);
-						newDescription = IDEWorkbenchPlugin.getPluginWorkspace().newProjectDescription(projectName);
-					} else {
-						newDescription = IDEWorkbenchPlugin.getPluginWorkspace()
-								.loadProjectDescription(path);
-					}
-				}
-			} catch (CoreException e) {
-				// no good couldn't get the name
-			} catch (IOException e) {
-				// no good couldn't get the name
-			}
-
-			if (newDescription == null) {
-				this.description = null;
-				projectName = ""; //$NON-NLS-1$
-			} else {
-				this.description = newDescription;
-				projectName = this.description.getName();
-			}
-		}
-
-		/**
-		 * Returns whether the given project description file path is in the default location for a project
-		 * @param path The path to examine
-		 * @return Whether the given path is the default location for a project
-		 */
-		private boolean isDefaultLocation(IPath path) {
-			//The project description file must at least be within the project, which is within the workspace location
-			if (path.segmentCount() < 2)
-				return false;
-			return path.removeLastSegments(2).toFile().equals(Platform.getLocation().toFile());
-		}
-
-		/**
-		 * Get the name of the project
-		 * 
-		 * @return String
-		 */
-		public String getProjectName() {
-			return projectName;
-		}
-	}
-    
-    // dialog store id constants
-    private final static String STORE_COPY_PROJECT_ID = "WizardProjectsImportPage.STORE_COPY_PROJECT_ID"; //$NON-NLS-1$
-	
-    private final static String STORE_ARCHIVE_SELECTED = "WizardProjectsImportPage.STORE_ARCHIVE_SELECTED";	//$NON-NLS-1$
-    
-	private Text directoryPathField;
-
-	private CheckboxTreeViewer projectsList;
-	
-	private Button copyCheckbox;
-	
-	private boolean copyFiles = false;
-
-	private ProjectRecord[] selectedProjects = new ProjectRecord[0];
-
-	// Keep track of the directory that we browsed to last time
-	// the wizard was invoked.
-	private static String previouslyBrowsedDirectory = ""; //$NON-NLS-1$
-
-	// Keep track of the archive that we browsed to last time
-	// the wizard was invoked.
-	private static String previouslyBrowsedArchive = ""; //$NON-NLS-1$
-
-	private Button projectFromDirectoryRadio;
-
-	private Button projectFromArchiveRadio;
-
-	private Text archivePathField;
-
-	private Button browseDirectoriesButton;
-
-	private Button browseArchivesButton;
-	
-	private IProject[] wsProjects;
-
-	// constant from WizardArchiveFileResourceImportPage1
-	private static final String[] FILE_IMPORT_MASK = {
-			"*.jar;*.zip;*.tar;*.tar.gz;*.tgz", "*.*" }; //$NON-NLS-1$ //$NON-NLS-2$
-
-	//The last selected path to mimize searches
-	private String lastPath;
-
-	/**
-	 * Creates a new project creation wizard page.
-	 * 
-	 */
-	public WizardProjectsImportPage() {
-		this("wizardExternalProjectsPage"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param pageName
-	 */
-	public WizardProjectsImportPage(String pageName) {
-		super(pageName);
-		setPageComplete(false);
-		setTitle(DataTransferMessages.WizardProjectsImportPage_ImportProjectsTitle);
-		setDescription(DataTransferMessages.WizardProjectsImportPage_ImportProjectsDescription);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-
-		initializeDialogUnits(parent);
-
-		Composite workArea = new Composite(parent, SWT.NONE);
-		setControl(workArea);
-
-		workArea.setLayout(new GridLayout());
-		workArea.setLayoutData(new GridData(GridData.FILL_BOTH
-				| GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
-
-		createProjectsRoot(workArea);
-		createProjectsList(workArea);
-		createOptionsArea(workArea);
-		restoreWidgetValues();
-		Dialog.applyDialogFont(workArea);
-
-	}
-	
-	/**
-	 * Create the area with the extra options.
-	 * @param workArea
-	 */
-	private void createOptionsArea(Composite workArea){
-		Composite optionsGroup = new Composite(workArea, SWT.NONE);
-		optionsGroup.setLayout(new GridLayout());
-		optionsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		
-		copyCheckbox = new Button(optionsGroup, SWT.CHECK);
-		copyCheckbox.setText(DataTransferMessages.WizardProjectsImportPage_CopyProjectsIntoWorkspace);
-		copyCheckbox.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		copyCheckbox.addSelectionListener(new SelectionAdapter(){
-			public void widgetSelected(SelectionEvent e) {
-				copyFiles = copyCheckbox.getSelection();
-			}
-		});
-	}
-
-	/**
-	 * Create the checkbox list for the found projects.
-	 * 
-	 * @param workArea
-	 */
-	private void createProjectsList(Composite workArea) {
-
-		Label title = new Label(workArea, SWT.NONE);
-		title
-				.setText(DataTransferMessages.WizardProjectsImportPage_ProjectsListTitle);
-
-		Composite listComposite = new Composite(workArea, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = 0;
-		layout.makeColumnsEqualWidth = false;
-		listComposite.setLayout(layout);
-
-		listComposite.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH));
-
-		projectsList = new CheckboxTreeViewer(listComposite, SWT.BORDER);
-		GridData listData = new GridData(GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
-		projectsList.getControl().setLayoutData(listData);
-
-		projectsList.setContentProvider(new ITreeContentProvider() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-			 */
-			public Object[] getChildren(Object parentElement) {
-				return null;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				return getValidProjects();
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-			 */
-			public boolean hasChildren(Object element) {
-				return false;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-			 */
-			public Object getParent(Object element) {
-				return null;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.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) {
-			}
-
-		});
-
-		projectsList.setLabelProvider(new LabelProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-			 */
-			public String getText(Object element) {
-				return ((ProjectRecord) element).getProjectName();
-			}
-		});
-		
-		projectsList.addCheckStateListener(new ICheckStateListener() {
-			/*
-			 * (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
-			 */
-			public void checkStateChanged(CheckStateChangedEvent event) {
-				setPageComplete(projectsList.getCheckedElements().length > 0);		
-			}
-		});
-
-		projectsList.setInput(this);
-		projectsList.setComparator(new ViewerComparator());
-		createSelectionButtons(listComposite);
-	}
-
-	/**
-	 * Create the selection buttons in the listComposite.
-	 * 
-	 * @param listComposite
-	 */
-	private void createSelectionButtons(Composite listComposite) {
-		Composite buttonsComposite = new Composite(listComposite, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		buttonsComposite.setLayout(layout);
-
-		buttonsComposite.setLayoutData(new GridData(
-				GridData.VERTICAL_ALIGN_BEGINNING));
-
-		Button selectAll = new Button(buttonsComposite, SWT.PUSH);
-		selectAll.setText(DataTransferMessages.DataTransfer_selectAll);
-		selectAll.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				projectsList.setCheckedElements(selectedProjects);
-				setPageComplete(projectsList.getCheckedElements().length > 0);
-			}
-		});
-		Dialog.applyDialogFont(selectAll);
-		setButtonLayoutData(selectAll);
-
-		Button deselectAll = new Button(buttonsComposite, SWT.PUSH);
-		deselectAll.setText(DataTransferMessages.DataTransfer_deselectAll);
-		deselectAll.addSelectionListener(new SelectionAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-
-				projectsList.setCheckedElements(new Object[0]);
-				setPageComplete(false);
-			}
-		});
-		Dialog.applyDialogFont(deselectAll);
-		setButtonLayoutData(deselectAll);
-
-		Button refresh = new Button(buttonsComposite, SWT.PUSH);
-		refresh.setText(DataTransferMessages.DataTransfer_refresh);
-		refresh.addSelectionListener(new SelectionAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				if (projectFromDirectoryRadio.getSelection()) {
-					updateProjectsList(directoryPathField.getText().trim());
-				} else {
-					updateProjectsList(archivePathField.getText().trim());
-				}
-			}
-		});
-		Dialog.applyDialogFont(refresh);
-		setButtonLayoutData(refresh);
-	}
-
-	/**
-	 * Create the area where you select the root directory for the projects.
-	 * 
-	 * @param workArea
-	 *            Composite
-	 */
-	private void createProjectsRoot(Composite workArea) {
-
-		// project specification group
-		Composite projectGroup = new Composite(workArea, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		layout.makeColumnsEqualWidth = false;
-		layout.marginWidth = 0;
-		projectGroup.setLayout(layout);
-		projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		// new project from directory radio button
-		projectFromDirectoryRadio = new Button(projectGroup, SWT.RADIO);
-		projectFromDirectoryRadio
-				.setText(DataTransferMessages.WizardProjectsImportPage_RootSelectTitle);
-
-		// project location entry field
-		this.directoryPathField = new Text(projectGroup, SWT.BORDER);
-
-		this.directoryPathField.setLayoutData(new GridData(
-				GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
-
-		// browse button
-		browseDirectoriesButton = new Button(projectGroup, SWT.PUSH);
-		browseDirectoriesButton
-				.setText(DataTransferMessages.DataTransfer_browse);
-		setButtonLayoutData(browseDirectoriesButton);
-
-		// new project from archive radio button
-		projectFromArchiveRadio = new Button(projectGroup, SWT.RADIO);
-		projectFromArchiveRadio
-				.setText(DataTransferMessages.WizardProjectsImportPage_ArchiveSelectTitle);
-
-		// project location entry field
-		archivePathField = new Text(projectGroup, SWT.BORDER);
-
-		archivePathField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL
-				| GridData.GRAB_HORIZONTAL));
-		// browse button
-		browseArchivesButton = new Button(projectGroup, SWT.PUSH);
-		browseArchivesButton.setText(DataTransferMessages.DataTransfer_browse);
-		setButtonLayoutData(browseArchivesButton);
-
-		projectFromDirectoryRadio.setSelection(true);
-		archivePathField.setEnabled(false);
-		browseArchivesButton.setEnabled(false);
-
-		browseDirectoriesButton.addSelectionListener(new SelectionAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionAdapter#widgetS
-			 *      elected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				handleLocationDirectoryButtonPressed();
-			}
-
-		});
-
-		browseArchivesButton.addSelectionListener(new SelectionAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				handleLocationArchiveButtonPressed();
-			}
-
-		});
-
-		directoryPathField.addTraverseListener(new TraverseListener() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.TraverseListener#keyTraversed(org.eclipse.swt.events.TraverseEvent)
-			 */
-			public void keyTraversed(TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_RETURN) {
-					e.doit = false;
-					updateProjectsList(directoryPathField.getText().trim());
-				}
-			}
-
-		});
-
-		directoryPathField.addFocusListener(new FocusAdapter() {
-			
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.FocusListener#focusLost(org.eclipse.swt.events.FocusEvent)
-			 */
-			public void focusLost(org.eclipse.swt.events.FocusEvent e) {
-				updateProjectsList(directoryPathField.getText().trim());
-			}
-			
-		});
-
-		archivePathField.addTraverseListener(new TraverseListener() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.TraverseListener#keyTraversed(org.eclipse.swt.events.TraverseEvent)
-			 */
-			public void keyTraversed(TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_RETURN) {
-					e.doit = false;
-					updateProjectsList(archivePathField.getText().trim());
-				}
-			}
-
-		});
-
-		archivePathField.addFocusListener(new FocusAdapter() {
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.FocusListener#focusLost(org.eclipse.swt.events.FocusEvent)
-			 */
-			public void focusLost(org.eclipse.swt.events.FocusEvent e) {
-				updateProjectsList(archivePathField.getText().trim());
-			}
-		});
-
-		projectFromDirectoryRadio.addSelectionListener(new SelectionAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				directoryRadioSelected();
-			}
-		});
-
-		projectFromArchiveRadio.addSelectionListener(new SelectionAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				archiveRadioSelected();
-			}
-		});
-	}
-	
-	private void archiveRadioSelected(){
-		if (projectFromArchiveRadio.getSelection()) {
-			directoryPathField.setEnabled(false);
-			browseDirectoriesButton.setEnabled(false);
-			archivePathField.setEnabled(true);
-			browseArchivesButton.setEnabled(true);
-			updateProjectsList(archivePathField.getText());
-			archivePathField.setFocus();
-			copyCheckbox.setSelection(true);
-			copyCheckbox.setEnabled(false);
-		}		
-	}
-	
-	private void directoryRadioSelected(){
-		if (projectFromDirectoryRadio.getSelection()) {
-			directoryPathField.setEnabled(true);
-			browseDirectoriesButton.setEnabled(true);
-			archivePathField.setEnabled(false);
-			browseArchivesButton.setEnabled(false);
-			updateProjectsList(directoryPathField.getText());
-			directoryPathField.setFocus();
-			copyCheckbox.setEnabled(true);
-			copyCheckbox.setSelection(copyFiles);
-		}		
-	}
-	
-
-	/* (non-Javadoc)
-     * Method declared on IDialogPage. Set the focus on path fields when page becomes visible.
-     */
-    public void setVisible(boolean visible) {
-        super.setVisible(visible);
-        if (visible && this.projectFromDirectoryRadio.getSelection()) {
-        	this.directoryPathField.setFocus();
-        } 
-        if (visible && this.projectFromArchiveRadio.getSelection()) {
-        	this.archivePathField.setFocus();
-        }  
-    }
-
-	/**
-	 * Update the list of projects based on path.
-	 * Method declared public only for test suite.
-	 * 
-	 * @param path
-	 */
-	public void updateProjectsList(final String path) {
-		
-		if(path.equals(lastPath)) {
-			return;
-		}
-		
-		lastPath = path;
-		
-		// on an empty path empty selectedProjects
-		if (path == null || path.length() == 0) {
-			selectedProjects = new ProjectRecord[0];
-			projectsList.refresh(true);
-			projectsList.setCheckedElements(selectedProjects);
-			setPageComplete(projectsList.getCheckedElements().length > 0);
-			return;
-		}
-		// We can't access the radio button from the inner class so get the
-		// status beforehand
-		final boolean dirSelected = this.projectFromDirectoryRadio
-				.getSelection();
-		try {
-			getContainer().run(true, true, new IRunnableWithProgress() {
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor)
-				 */
-				public void run(IProgressMonitor monitor) {
-
-					monitor
-							.beginTask(
-									DataTransferMessages.WizardProjectsImportPage_SearchingMessage,
-									100);
-					File directory = new File(path);
-					selectedProjects = new ProjectRecord[0];
-					Collection files = new ArrayList();
-					monitor.worked(10);
-					if (!dirSelected
-							&& ArchiveFileManipulations.isTarFile(path)) {
-						TarFile sourceTarFile = getSpecifiedTarSourceFile(path);
-						if (sourceTarFile == null) {
-							return;
-						}
-
-						TarLeveledStructureProvider provider = ArchiveFileManipulations
-								.getTarStructureProvider(sourceTarFile,
-										getContainer().getShell());
-						Object child = provider.getRoot();
-
-						if (!collectProjectFilesFromProvider(files, provider,
-								child, 0, monitor)) {
-							return;
-						}
-						Iterator filesIterator = files.iterator();
-						selectedProjects = new ProjectRecord[files.size()];
-						int index = 0;
-						monitor.worked(50);
-						monitor
-								.subTask(DataTransferMessages.WizardProjectsImportPage_ProcessingMessage);
-						while (filesIterator.hasNext()) {
-							selectedProjects[index++] = (ProjectRecord) filesIterator
-									.next();
-						}
-					} else if (!dirSelected
-							&& ArchiveFileManipulations.isZipFile(path)) {
-						ZipFile sourceFile = getSpecifiedZipSourceFile(path);
-						if (sourceFile == null) {
-							return;
-						}
-						ZipLeveledStructureProvider provider = ArchiveFileManipulations
-								.getZipStructureProvider(sourceFile,
-										getContainer().getShell());
-						Object child = provider.getRoot();
-
-						if (!collectProjectFilesFromProvider(files, provider,
-								child, 0, monitor)) {
-							return;
-						}
-						Iterator filesIterator = files.iterator();
-						selectedProjects = new ProjectRecord[files.size()];
-						int index = 0;
-						monitor.worked(50);
-						monitor
-								.subTask(DataTransferMessages.WizardProjectsImportPage_ProcessingMessage);
-						while (filesIterator.hasNext()) {
-							selectedProjects[index++] = (ProjectRecord) filesIterator
-									.next();
-						}
-					}
-
-					else if (dirSelected && directory.isDirectory()) {
-
-						if (!collectProjectFilesFromDirectory(files, directory,
-								monitor)) {
-							return;
-						}
-						Iterator filesIterator = files.iterator();
-						selectedProjects = new ProjectRecord[files.size()];
-						int index = 0;
-						monitor.worked(50);
-						monitor
-								.subTask(DataTransferMessages.WizardProjectsImportPage_ProcessingMessage);
-						while (filesIterator.hasNext()) {
-							File file = (File) filesIterator.next();
-							selectedProjects[index] = new ProjectRecord(file);
-							index++;
-						}
-					} else {
-						monitor.worked(60);
-					}
-					monitor.done();
-				}
-
-			});
-		} catch (InvocationTargetException e) {
-			IDEWorkbenchPlugin.log(e.getMessage(), e);
-		} catch (InterruptedException e) {
-			// Nothing to do if the user interrupts.
-		}
-
-		projectsList.refresh(true);
-		projectsList.setCheckedElements(getValidProjects());
-		setPageComplete(projectsList.getCheckedElements().length > 0);
-	}
-
-	/**
-	 * Answer a handle to the zip file currently specified as being the source.
-	 * Return null if this file does not exist or is not of valid format.
-	 */
-	private ZipFile getSpecifiedZipSourceFile(String fileName) {
-		if (fileName.length() == 0) {
-			return null;
-		}
-
-		try {
-			return new ZipFile(fileName);
-		} catch (ZipException e) {
-			displayErrorDialog(DataTransferMessages.ZipImport_badFormat);
-		} catch (IOException e) {
-			displayErrorDialog(DataTransferMessages.ZipImport_couldNotRead);
-		}
-
-		archivePathField.setFocus();
-		return null;
-	}
-
-	/**
-	 * Answer a handle to the zip file currently specified as being the source.
-	 * Return null if this file does not exist or is not of valid format.
-	 */
-	private TarFile getSpecifiedTarSourceFile(String fileName) {
-		if (fileName.length() == 0) {
-			return null;
-		}
-
-		try {
-			return new TarFile(fileName);
-		} catch (TarException e) {
-			displayErrorDialog(DataTransferMessages.TarImport_badFormat);
-		} catch (IOException e) {
-			displayErrorDialog(DataTransferMessages.ZipImport_couldNotRead);
-		}
-
-		archivePathField.setFocus();
-		return null;
-	}
-
-	/**
-	 * Display an error dialog with the specified message.
-	 * 
-	 * @param message
-	 *            the error message
-	 */
-	protected void displayErrorDialog(String message) {
-		MessageDialog.openError(getContainer().getShell(),
-				getErrorDialogTitle(), message);
-	}
-
-	/**
-	 * Get the title for an error dialog. Subclasses should override.
-	 */
-	protected String getErrorDialogTitle() {
-		return IDEWorkbenchMessages.WizardExportPage_internalErrorTitle;
-	}
-
-	/**
-	 * Collect the list of .project files that are under directory into files.
-	 * 
-	 * @param files
-	 * @param directory
-	 * @param monitor
-	 *            The monitor to report to
-	 * @return boolean <code>true</code> if the operation was completed.
-	 */
-	private boolean collectProjectFilesFromDirectory(Collection files,
-			File directory, IProgressMonitor monitor) {
-
-		if (monitor.isCanceled()) {
-			return false;
-		}
-		monitor.subTask(NLS.bind(
-				DataTransferMessages.WizardProjectsImportPage_CheckingMessage,
-				directory.getPath()));
-		File[] contents = directory.listFiles();
-		// first look for project description files
-		final String dotProject = IProjectDescription.DESCRIPTION_FILE_NAME;
-		for (int i = 0; i < contents.length; i++) {
-			File file = contents[i];
-			if (file.isFile() && file.getName().equals(dotProject)) {
-				files.add(file);
-				// don't search sub-directories since we can't have nested
-				// projects
-				return true;
-			}
-		}
-		// no project description found, so recurse into sub-directories
-		for (int i = 0; i < contents.length; i++) {
-			if (contents[i].isDirectory()) {
-				if (!contents[i].getName().equals(
-						IDEApplication.METADATA_FOLDER)) {
-					collectProjectFilesFromDirectory(files, contents[i],
-							monitor);
-				}
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Collect the list of .project files that are under directory into files.
-	 * 
-	 * @param files
-	 * @param monitor
-	 *            The monitor to report to
-	 * @return boolean <code>true</code> if the operation was completed.
-	 */
-	private boolean collectProjectFilesFromProvider(Collection files,
-			ILeveledImportStructureProvider provider, Object entry, int level,
-			IProgressMonitor monitor) {
-
-		if (monitor.isCanceled()) {
-			return false;
-		}
-		monitor.subTask(NLS.bind(
-				DataTransferMessages.WizardProjectsImportPage_CheckingMessage,
-				provider.getLabel(entry)));
-		List children = provider.getChildren(entry);
-		if (children == null) {
-			children = new ArrayList(1);
-		}
-		Iterator childrenEnum = children.iterator();
-		while (childrenEnum.hasNext()) {
-			Object child = childrenEnum.next();
-			if (provider.isFolder(child)) {
-				collectProjectFilesFromProvider(files, provider, child,
-						level + 1, monitor);
-			}
-			String elementLabel = provider.getLabel(child);
-			if (elementLabel.equals(IProjectDescription.DESCRIPTION_FILE_NAME)) {
-				files.add(new ProjectRecord(child, entry, level, provider));
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * The browse button has been selected. Select the location.
-	 */
-	protected void handleLocationDirectoryButtonPressed() {
-
-		DirectoryDialog dialog = new DirectoryDialog(directoryPathField
-				.getShell());
-		dialog
-				.setMessage(DataTransferMessages.WizardProjectsImportPage_SelectDialogTitle);
-
-		String dirName = directoryPathField.getText().trim();
-		if (dirName.length() == 0) {
-			dirName = previouslyBrowsedDirectory;
-		}
-
-		if (dirName.length() == 0) {
-			dialog.setFilterPath(IDEWorkbenchPlugin.getPluginWorkspace()
-					.getRoot().getLocation().toOSString());
-		} else {
-			File path = new File(dirName);
-			if (path.exists()) {
-				dialog.setFilterPath(new Path(dirName).toOSString());
-			}
-		}
-
-		String selectedDirectory = dialog.open();
-		if (selectedDirectory != null) {
-			previouslyBrowsedDirectory = selectedDirectory;
-			directoryPathField.setText(previouslyBrowsedDirectory);
-			updateProjectsList(selectedDirectory);
-		}
-
-	}
-
-	/**
-	 * The browse button has been selected. Select the location.
-	 */
-	protected void handleLocationArchiveButtonPressed() {
-
-		FileDialog dialog = new FileDialog(archivePathField.getShell());
-		dialog.setFilterExtensions(FILE_IMPORT_MASK);
-		dialog
-				.setText(DataTransferMessages.WizardProjectsImportPage_SelectArchiveDialogTitle);
-
-		String fileName = archivePathField.getText().trim();
-		if (fileName.length() == 0) {
-			fileName = previouslyBrowsedArchive;
-		}
-
-		if (fileName.length() == 0) {
-			dialog.setFilterPath(IDEWorkbenchPlugin.getPluginWorkspace()
-					.getRoot().getLocation().toOSString());
-		} else {
-			File path = new File(fileName);
-			if (path.exists()) {
-				dialog.setFilterPath(new Path(fileName).toOSString());
-			}
-		}
-
-		String selectedArchive = dialog.open();
-		if (selectedArchive != null) {
-			previouslyBrowsedArchive = selectedArchive;
-			archivePathField.setText(previouslyBrowsedArchive);
-			updateProjectsList(selectedArchive);
-		}
-
-	}
-
-	/**
-	 * Create the selected projects
-	 * 
-	 * @return boolean <code>true</code> if all project creations were
-	 *         successful.
-	 */
-	public boolean createProjects() {
-		saveWidgetValues();
-		final Object[] selected = projectsList.getCheckedElements();
-		WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-			protected void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-				try {
-					monitor.beginTask("", selected.length);	//$NON-NLS-1$
-					if (monitor.isCanceled()) {
-						throw new OperationCanceledException();
-					}
-					for (int i = 0; i < selected.length; i++) {
-						createExistingProject((ProjectRecord) selected[i], new SubProgressMonitor(monitor, 1));
-					}
-				} finally {
-					monitor.done();
-				}
-			}
-		};
-		// run the new project creation operation
-		try {
-			getContainer().run(true, true, op);
-		} catch (InterruptedException e) {
-			return false;
-		} catch (InvocationTargetException e) {
-			// one of the steps resulted in a core exception
-			Throwable t = e.getTargetException();
-			String message = DataTransferMessages.WizardExternalProjectImportPage_errorMessage;
-			IStatus status;
-			if (t instanceof CoreException) {
-				status = ((CoreException)t).getStatus();
-			} else {
-				status = new Status(IStatus.ERROR, IDEWorkbenchPlugin.IDE_WORKBENCH, 1, message, t);
-			}
-			ErrorDialog.openError(getShell(), 
-				message,
-				null,
-				status);
-			return false;
-		}
-		return true;
-	}
-	
-	/**
-	 * Performs clean-up if the user cancels the wizard without doing anything
-	 */
-	public void performCancel() {
-		ArchiveFileManipulations.clearProviderCache(getContainer().getShell());		
-	}
-
-	/**
-	 * Create the project described in record. If it is successful return true.
-	 * 
-	 * @param record
-	 * @return boolean <code>true</code> if successful
-	 * @throws InterruptedException 
-	 */
-	private boolean createExistingProject(final ProjectRecord record, IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-		String projectName = record.getProjectName();
-		final IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		final IProject project = workspace.getRoot().getProject(projectName);
-		if (record.description == null) {
-			// error case
-			record.description = workspace.newProjectDescription(projectName);
-			IPath locationPath = new Path(record.projectSystemFile
-					.getAbsolutePath());
-
-			// If it is under the root use the default location
-			if (Platform.getLocation().isPrefixOf(locationPath)) {
-				record.description.setLocation(null);
-			} else {
-				record.description.setLocation(locationPath);
-			}
-		} else {
-			record.description.setName(projectName);
-		}
-		if (record.projectArchiveFile != null) {
-			//import from archive
-			ArrayList fileSystemObjects = new ArrayList();
-			getFilesForProject(fileSystemObjects, record.provider,
-					record.parent);
-			record.provider.setStrip(record.level);
-			ImportOperation operation = new ImportOperation(project
-					.getFullPath(), record.provider.getRoot(), record.provider,
-					this, fileSystemObjects);
-			operation.setContext(getShell());
-			operation.run(monitor);
-			return true;
-		}
-		//import from file system
-		File importSource = null;
-		if (copyFiles){
-			// import project from location copying files - use default project location for this workspace
-			URI locationURI = record.description.getLocationURI();
-			// if location is null, project already exists in this location or 
-			// some error condition occured.
-			if (locationURI != null){
-				importSource = new File(locationURI);
-				IProjectDescription desc = workspace.newProjectDescription(projectName);
-				desc.setBuildSpec(record.description.getBuildSpec());
-				desc.setComment(record.description.getComment());
-				desc.setDynamicReferences(record.description.getDynamicReferences());
-				desc.setNatureIds(record.description.getNatureIds());
-				desc.setReferencedProjects(record.description.getReferencedProjects());
-				record.description = desc;
-			}
-		}
-
-		try {
-			monitor.beginTask(
-					DataTransferMessages.WizardProjectsImportPage_CreateProjectsTask, 
-					100); 
-			project.create(record.description, new SubProgressMonitor(
-					monitor, 30));
-			project.open(IResource.BACKGROUND_REFRESH,
-					new SubProgressMonitor(monitor, 70));
-		} catch (CoreException e) {
-			throw new InvocationTargetException(e);
-		} finally {
-			monitor.done();
-		}
-
-		// import operation to import project files if copy checkbox is selected
-		if (copyFiles && importSource != null){
-			List filesToImport = new ArrayList();
-			FileSystemStructureProvider provider = FileSystemStructureProvider.INSTANCE;
-			getFilesForProject(filesToImport, provider, importSource);
-			ImportOperation operation = new ImportOperation(project.getFullPath(), 
-					importSource, 
-					FileSystemStructureProvider.INSTANCE, this, filesToImport);
-			operation.setContext(getShell());
-			operation.setOverwriteResources(true);	// need to overwrite .project, .classpath files
-			operation.setCreateContainerStructure(false);
-			operation.run(monitor);				
-		}
-		
-		return true;
-	}
-
-	/**
-	 * Return a list of all files in the project
-	 * 
-	 * @param provider
-	 *            The provider for the parent file
-	 * @param entry
-	 *            The root directory of the project
-	 * @return A list of all files in the project
-	 */
-	protected boolean getFilesForProject(Collection files,
-			IImportStructureProvider provider, Object entry) {
-		List children = provider.getChildren(entry);
-		Iterator childrenEnum = children.iterator();
-
-		while (childrenEnum.hasNext()) {
-			Object child = childrenEnum.next();
-			// Add the child, this way we get every files except the project
-			// folder itself which we don't want
-			files.add(child);
-			// We don't have isDirectory for tar so must check for children
-			// instead
-			if (provider.isFolder(child)) {
-				getFilesForProject(files, provider, child);
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * The <code>WizardDataTransfer</code> implementation of this
-	 * <code>IOverwriteQuery</code> method asks the user whether the existing
-	 * resource at the given path should be overwritten.
-	 * 
-	 * @param pathString
-	 * @return the user's reply: one of <code>"YES"</code>, <code>"NO"</code>,
-	 *         <code>"ALL"</code>, or <code>"CANCEL"</code>
-	 */
-	public String queryOverwrite(String pathString) {
-
-		Path path = new Path(pathString);
-
-		String messageString;
-		// Break the message up if there is a file name and a directory
-		// and there are at least 2 segments.
-		if (path.getFileExtension() == null || path.segmentCount() < 2) {
-			messageString = NLS.bind(
-					IDEWorkbenchMessages.WizardDataTransfer_existsQuestion,
-					pathString);
-		} else {
-			messageString = NLS
-					.bind(
-							IDEWorkbenchMessages.WizardDataTransfer_overwriteNameAndPathQuestion,
-							path.lastSegment(), path.removeLastSegments(1)
-									.toOSString());
-		}
-
-		final MessageDialog dialog = new MessageDialog(getContainer()
-				.getShell(), IDEWorkbenchMessages.Question, null,
-				messageString, MessageDialog.QUESTION, new String[] {
-						IDialogConstants.YES_LABEL,
-						IDialogConstants.YES_TO_ALL_LABEL,
-						IDialogConstants.NO_LABEL,
-						IDialogConstants.NO_TO_ALL_LABEL,
-						IDialogConstants.CANCEL_LABEL }, 0);
-		String[] response = new String[] { YES, ALL, NO, NO_ALL, CANCEL };
-		// run in syncExec because callback is from an operation,
-		// which is probably not running in the UI thread.
-		getControl().getDisplay().syncExec(new Runnable() {
-			public void run() {
-				dialog.open();
-			}
-		});
-		return dialog.getReturnCode() < 0 ? CANCEL : response[dialog
-				.getReturnCode()];
-	}
-
-	/**
-	 * Method used for test suite.
-	 * @return Button the Import from Directory RadioButton
-	 */
-	public Button getProjectFromDirectoryRadio() {
-		return projectFromDirectoryRadio;
-	}
-
-	/**
-	 * Method used for test suite.
-	 * @return CheckboxTreeViewer the viewer containing all the projects found 
-	 */
-	public CheckboxTreeViewer getProjectsList() {
-		return projectsList;
-	}
-	
-	/**
-	 * Retrieve all the projects in the current workspace.
-	 * 
-	 * @return IProject[] array of IProject in the current workspace
-	 */
-	private IProject[] getProjectsInWorkspace(){
-		if (wsProjects == null) {
-			wsProjects = IDEWorkbenchPlugin.getPluginWorkspace().getRoot().getProjects();
-		}
-		return wsProjects;
-	}
-
-	/**
-	 * Get the array of valid project records that can be imported 
-	 * from the source workspace or archive, selected by the user.
-	 * If a project with the same name exists in both the source workspace and the 
-	 * current workspace, it will not appear in the list of projects to import and 
-	 * thus cannot be selected for import.
-	 * 
-	 * Method declared public for test suite.
-	 * 
-	 * @return ProjectRecord[] array of projects that can be imported into the workspace
-	 */
-	public ProjectRecord[] getValidProjects(){
-		List validProjects = new ArrayList();
-		for (int i = 0; i < selectedProjects.length; i++){
-			if (!isProjectInWorkspace(selectedProjects[i].getProjectName())) {
-				validProjects.add(selectedProjects[i]);
-			}
-		}
-		return (ProjectRecord[]) validProjects.toArray(new ProjectRecord[validProjects.size()]);
-	}
-	
-	/**
-	 * Determine if the project with the given name is in the current workspace.
-	 * 
-	 * @param projectName String the project name to check
-	 * @return boolean true if the project with the given name is in this workspace
-	 */
-	private boolean isProjectInWorkspace(String projectName){
-		if (projectName == null) {
-			return false;
-		}
-		IProject[] workspaceProjects = getProjectsInWorkspace();
-		for (int i = 0; i <workspaceProjects.length; i++){
-			if (projectName.equals(workspaceProjects[i].getName())) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-    /**
-     *	Use the dialog store to restore widget values to the values that they held
-     *	last time this wizard was used to completion.
-     *	
-     *	Method declared public only for use of tests.
-     */	
-    public void restoreWidgetValues() {
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            // checkbox	
-        	copyFiles = settings.getBoolean(STORE_COPY_PROJECT_ID);
-            copyCheckbox.setSelection(copyFiles);
-            
-            // radio selection
-            boolean archiveSelected = settings.getBoolean(STORE_ARCHIVE_SELECTED);
-            projectFromDirectoryRadio.setSelection(!archiveSelected);
-            projectFromArchiveRadio.setSelection(archiveSelected);
-            if (archiveSelected) {
-				archiveRadioSelected();
-			} else {
-				directoryRadioSelected();
-			}
-        }
-    }
-
-    /**
-     * 	Since Finish was pressed, write widget values to the dialog store so that they
-     *	will persist into the next invocation of this wizard page.
-     *
-     *	Method declared public only for use of tests.
-     */
-    public void saveWidgetValues() {
-        IDialogSettings settings = getDialogSettings();
-        if (settings != null) {
-            settings.put(STORE_COPY_PROJECT_ID,
-                    copyCheckbox.getSelection());
-            
-            settings.put(STORE_ARCHIVE_SELECTED, 
-            		projectFromArchiveRadio.getSelection());
-        }
-    }
-
-    /**
-     * Method used for test suite.
-     * @return Button copy checkbox
-     */
-	public Button getCopyCheckbox() {
-		return copyCheckbox;
-	}    
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipFileExporter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipFileExporter.java
deleted file mode 100644
index 7133d7b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipFileExporter.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.internal.wizards.datatransfer;
-
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.zip.CRC32;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-
-
-/**
- *	Exports resources to a .zip file
- */
-public class ZipFileExporter implements IFileExporter {
-    private ZipOutputStream outputStream;
-
-    private boolean useCompression = true;
-
-    /**
-     *	Create an instance of this class.
-     *
-     *	@param filename java.lang.String
-     *	@param compress boolean
-     *	@exception java.io.IOException
-     */
-    public ZipFileExporter(String filename, boolean compress) throws IOException {
-        outputStream = new ZipOutputStream(new FileOutputStream(filename));
-        useCompression = compress;
-    }
-
-    /**
-     *	Do all required cleanup now that we're finished with the
-     *	currently-open .zip
-     *
-     *	@exception java.io.IOException
-     */
-    public void finished() throws IOException {
-        outputStream.close();
-    }
-
-    /**
-     *	Write the contents of the file to the tar archive.
-     *
-     *	@param entry
-     *	@param contents
-     *  @exception java.io.IOException
-     *  @exception org.eclipse.core.runtime.CoreException
-     */
-    private void write(ZipEntry entry, IFile contents) throws IOException, CoreException {
-        byte[] readBuffer = new byte[4096];
-
-        // If the contents are being compressed then we get the below for free.
-        if (!useCompression) {
-            entry.setMethod(ZipEntry.STORED);
-        	InputStream contentStream = contents.getContents(false);
-        	int length = 0;
-            CRC32 checksumCalculator = new CRC32();
-            try {
-                int n;
-                while ((n = contentStream.read(readBuffer)) > 0) {
-                    checksumCalculator.update(readBuffer, 0, n);
-                    length += n;
-                }
-            } finally {
-                if (contentStream != null) {
-					contentStream.close();
-				}
-            }
-
-            entry.setSize(length);
-            entry.setCrc(checksumCalculator.getValue());
-        }
-
-        outputStream.putNextEntry(entry);
-    	InputStream contentStream = contents.getContents(false);
-        try {
-            int n;
-            while ((n = contentStream.read(readBuffer)) > 0) {
-                outputStream.write(readBuffer, 0, n);
-            }
-        } finally {
-            if (contentStream != null) {
-				contentStream.close();
-			}
-        }
-        outputStream.closeEntry();
-    }
-
-    /**
-     *  Write the passed resource to the current archive.
-     *
-     *  @param resource org.eclipse.core.resources.IFile
-     *  @param destinationPath java.lang.String
-     *  @exception java.io.IOException
-     *  @exception org.eclipse.core.runtime.CoreException
-     */
-    public void write(IFile resource, String destinationPath)
-            throws IOException, CoreException {
-        ZipEntry newEntry = new ZipEntry(destinationPath);
-        write(newEntry, resource);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipLeveledStructureProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipLeveledStructureProvider.java
deleted file mode 100644
index de1430b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipLeveledStructureProvider.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Red Hat, Inc - Was ZipFileStructureProvider, performed changes from 
- *     IImportStructureProvider to ILeveledImportStructureProvider
- *******************************************************************************/
-package org.eclipse.ui.internal.wizards.datatransfer;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * This class provides information regarding the context structure and content
- * of specified zip file entry objects.
- * 
- * @since 3.1
- */
-public class ZipLeveledStructureProvider implements
-		ILeveledImportStructureProvider {
-	private ZipFile zipFile;
-
-	private ZipEntry root = new ZipEntry("/");//$NON-NLS-1$
-
-	private Map children;
-
-	private Map directoryEntryCache = new HashMap();
-
-	private int stripLevel;
-
-	/**
-	 * Creates a <code>ZipFileStructureProvider</code>, which will operate on
-	 * the passed zip file.
-	 * 
-	 * @param sourceFile
-	 *            The source file to create the ZipLeveledStructureProvider
-	 *            around
-	 */
-	public ZipLeveledStructureProvider(ZipFile sourceFile) {
-		super();
-		zipFile = sourceFile;
-		stripLevel = 0;
-	}
-
-	/**
-	 * Creates a new container zip entry with the specified name, iff it has 
-	 * not already been created. If the parent of the given element does not
-	 * already exist it will be recursively created as well.
-	 * @param pathname The path representing the container
-	 * @return The element represented by this pathname (it may have already existed)
-	 */
-	protected ZipEntry createContainer(IPath pathname) {
-		ZipEntry existingEntry = (ZipEntry) directoryEntryCache.get(pathname);
-		if (existingEntry != null) {
-			return existingEntry;
-		}
-
-		ZipEntry parent;
-		if (pathname.segmentCount() == 1) {
-			parent = root;
-		} else {
-			parent = createContainer(pathname.removeLastSegments(1));
-		}
-		ZipEntry newEntry = new ZipEntry(pathname.toString());
-		directoryEntryCache.put(pathname, newEntry);
-		List childList = new ArrayList();
-		children.put(newEntry, childList);
-
-		List parentChildList = (List) children.get(parent);
-		parentChildList.add(newEntry);
-		return newEntry;
-	}
-
-	/**
-	 * Creates a new file zip entry with the specified name.
-	 */
-	protected void createFile(ZipEntry entry) {
-		IPath pathname = new Path(entry.getName());
-		ZipEntry parent;
-		if (pathname.segmentCount() == 1) {
-			parent = root;
-		} else {
-			parent = (ZipEntry) directoryEntryCache.get(pathname
-					.removeLastSegments(1));
-		}
-
-		List childList = (List) children.get(parent);
-		childList.add(entry);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IImportStructureProvider
-	 */
-	public List getChildren(Object element) {
-		if (children == null) {
-			initialize();
-		}
-
-		return ((List) children.get(element));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IImportStructureProvider
-	 */
-	public InputStream getContents(Object element) {
-		try {
-			return zipFile.getInputStream((ZipEntry) element);
-		} catch (IOException e) {
-			IDEWorkbenchPlugin.log(e.getLocalizedMessage(), e);
-			return null;
-		}
-	}
-
-	/*
-	 * Strip the leading directories from the path
-	 */
-	private String stripPath(String path) {
-		String pathOrig = new String(path);
-		for (int i = 0; i < stripLevel; i++) {
-			int firstSep = path.indexOf('/');
-			// If the first character was a seperator we must strip to the next
-			// seperator as well
-			if (firstSep == 0) {
-				path = path.substring(1);
-				firstSep = path.indexOf('/');
-			}
-			// No seperator wasw present so we're in a higher directory right
-			// now
-			if (firstSep == -1) {
-				return pathOrig;
-			}
-			path = path.substring(firstSep);
-		}
-		return path;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IImportStructureProvider
-	 */
-	public String getFullPath(Object element) {
-		return stripPath(((ZipEntry) element).getName());
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IImportStructureProvider
-	 */
-	public String getLabel(Object element) {
-		if (element.equals(root)) {
-			return ((ZipEntry) element).getName();
-		}
-
-		return stripPath(new Path(((ZipEntry) element).getName()).lastSegment());
-	}
-
-	/**
-	 * Returns the entry that this importer uses as the root sentinel.
-	 * 
-	 * @return java.util.zip.ZipEntry
-	 */
-	public Object getRoot() {
-		return root;
-	}
-
-	/**
-	 * Returns the zip file that this provider provides structure for.
-	 * 
-	 * @return The zip file
-	 */
-	public ZipFile getZipFile() {
-		return zipFile;
-	}
-
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.internal.wizards.datatransfer.ILeveledImportStructureProvider#closeArchive()
-	 */
-	public boolean closeArchive(){
-		try {
-			getZipFile().close();
-		} catch (IOException e) {
-			IDEWorkbenchPlugin.log(DataTransferMessages.ZipImport_couldNotClose
-					+ getZipFile().getName(), e);
-			return false;
-		}
-		return true;
-	}
-	
-	/**
-	 * Initializes this object's children table based on the contents of the
-	 * specified source file.
-	 */
-	protected void initialize() {
-		children = new HashMap(1000);
-
-		children.put(root, new ArrayList());
-		Enumeration entries = zipFile.entries();
-		while (entries.hasMoreElements()) {
-			ZipEntry entry = (ZipEntry) entries.nextElement();
-			IPath path = new Path(entry.getName()).addTrailingSeparator();
-
-			if (entry.isDirectory()) {
-				createContainer(path);
-			} else
-			{
-				// Ensure the container structure for all levels above this is initialized
-				// Once we hit a higher-level container that's already added we need go no further
-				int pathSegmentCount = path.segmentCount();
-				if (pathSegmentCount > 1) {
-					createContainer(path.uptoSegment(pathSegmentCount - 1));
-				}
-				createFile(entry);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IImportStructureProvider
-	 */
-	public boolean isFolder(Object element) {
-		return ((ZipEntry) element).isDirectory();
-	}
-
-	public void setStrip(int level) {
-		stripLevel = level;
-	}
-
-	public int getStrip() {
-		return stripLevel;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/messages.properties
deleted file mode 100644
index 25680c1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/messages.properties
+++ /dev/null
@@ -1,135 +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

-#     Red Hat, Inc - WizardProjectsImportPage[_ArchiveSelectTitle,

-#											  _SelectArchiveDialogTitle]

-###############################################################################

-

-# package: org.eclipse.ui.wizards.datatransfer

-

-

-# ==============================================================================

-# Data Transfer Wizards

-# ==============================================================================

-DataTransfer_fileSystemTitle = File system

-ZipExport_exportTitle = Zip file

-ArchiveExport_exportTitle = Archive file

-

-DataTransfer_browse = B&rowse...

-DataTransfer_selectTypes = Filter &Types...

-DataTransfer_selectAll = &Select All

-DataTransfer_deselectAll = &Deselect All

-DataTransfer_refresh = R&efresh

-

-DataTransfer_cannotOverwrite = Cannot overwrite file: {0}

-DataTransfer_emptyString =

-DataTransfer_scanningMatching = Scanning for matching files...

-DataTransfer_information = Information

-

-# --- Import Wizards ---

-DataTransfer_importTitle = Import

-

-DataTransfer_importTask = Importing:

-ImportOperation_cannotCopy = Cannot copy root file system.

-ImportOperation_importProblems = Problems were encountered during import:

-ImportOperation_openStreamError = Error opening input stream for {0}

-ImportOperation_closeStreamError = Could not close input stream for {0}

-ImportOperation_coreImportError = Unable to import {0}.  Reason: {1}

-ImportOperation_targetSameAsSourceError = Unable to import {0}. The file cannot be copied onto itself

-ImportPage_filterSelections = Filtering selection

-

-FileImport_selectSource = Select a directory to import from.

-FileImport_selectSourceTitle = Import from directory

-FileImport_fromDirectory = From director&y:

-FileImport_importFileSystem = Import resources from the local file system.

-FileImport_overwriteExisting = &Overwrite existing resources without warning

-FileImport_createComplete = &Create complete folder structure

-FileImport_createSelectedFolders = Create s&elected folders only

-FileImport_noneSelected = There are no resources currently selected for import.

-FileImport_invalidSource = Source directory is not valid or has not been specified.

-FileImport_sourceEmpty = Source must not be empty.

-FileImport_importProblems = Import Problems

-

-ZipImport_description = Import the contents of a Zip file from the local file system.

-ZipImport_couldNotClose = Could not close file {0}

-ZipImport_badFormat = Source file is not a valid Zip file.

-ZipImport_couldNotRead = Source file could not be read.

-ZipImport_fromFile = From &zip file:

-ZipImportSource_title = Import from Zip File

-

-ArchiveImport_description = Import the contents of an archive file in zip or tar format from the local file system.

-ArchiveImport_fromFile = From &archive file:

-ArchiveImportSource_title = Import from Archive File

-TarImport_badFormat = Source file is not a valid tar file.

-TarImport_invalid_tar_format = Not a valid tar format

-

-WizardExternalProjectImportPage_locationError = Invalid project contents directory

-WizardExternalProjectImportPage_projectLocationEmpty = Project contents directory must be specified

-WizardExternalProjectImportPage_projectExistsMessage = Project already exists.

-WizardExternalProjectImportPage_projectContentsLabel = Project &contents:

-WizardExternalProjectImportPage_nameLabel = &Project name:

-WizardProjectsImportPage_RootSelectTitle=Select roo&t directory:

-WizardExternalProjectImportPage_title = Import Project from File System

-WizardExternalProjectImportPage_description = Create a new Project from an Eclipse project in the file system.

-WizardExternalProjectImportPage_notAProject = {0} does not have a .project file.

-WizardProjectsImportPage_ArchiveSelectTitle=Select &archive file:

-WizardProjectsImportPage_SelectArchiveDialogTitle=Select archive containing the projects to import

-WizardProjectsImportPage_ProjectsListTitle=&Projects:

-WizardProjectsImportPage_ProcessingMessage=Processing results

-WizardProjectsImportPage_SelectDialogTitle=Select root directory of the projects to import

-WizardProjectsImportPage_SearchingMessage=Searching for projects

-WizardExternalProjectImportPage_errorMessage = Creation Problems

-WizardProjectsImportPage_ImportProjectsTitle=Import Projects

-WizardProjectsImportPage_CreateProjectsTask=Creating Projects

-WizardExternalProjectImportPage_caseVariantExistsError = The name of {0} conflicts with another project in the workbench. Project names are case-insensitive.

-WizardExternalProjectImportPage_directoryLabel = Select the Project location.

-WizardProjectsImportPage_ImportProjectsDescription=Select a directory to search for existing Eclipse projects.

-WizardProjectsImportPage_CheckingMessage= Checking: {0}

-WizardProjectsImportPage_CopyProjectsIntoWorkspace=&Copy projects into workspace

-

-# --- Export Wizards ---

-DataTransfer_export = Export

-

-DataTransfer_exportingTitle = Exporting:

-DataTransfer_createTargetDirectory = Target directory does not exist.  Would you like to create it?

-DataTransfer_directoryCreationError = Target directory could not be created.

-DataTransfer_errorExporting = Error exporting {0}: {1}

-DataTransfer_exportProblems = Export Problems

-

-ExportFile_overwriteExisting = &Overwrite existing files without warning

-

-FileExport_selectDestinationTitle= Export to Directory

-FileExport_selectDestinationMessage=Select a directory to export to.

-FileExport_exportLocalFileSystem = Export resources to the local file system.

-FileExport_destinationEmpty = Please enter a destination directory.

-FileExport_createDirectoryStructure = &Create directory structure for files

-FileExport_createSelectedDirectories = Create on&ly selected directories

-FileExport_noneSelected = There are no resources currently selected for export.

-FileExport_directoryExists = Target directory already exists as a file.

-FileExport_conflictingContainer = Destination directory conflicts with location of {0}.

-FileExport_rootName = workspace root

-FileSystemExportOperation_problemsExporting = Problems were encountered during export:

-FileExport_toDirectory = To director&y:

-

-ZipExport_compressContents = Co&mpress the contents of the file

-ZipExport_destinationLabel = To &zip file:

-ZipExport_mustBeFile = Export destination must be a file, not a directory.

-ZipExport_alreadyExists = Target file already exists.  Would you like to overwrite it?

-ZipExport_alreadyExistsError = Export destination already exists and cannot be overwritten.

-ZipExport_cannotOpen = Unable to open destination file: {0}

-ZipExport_cannotClose = Unable to close destination file: {0}

-ZipExport_selectDestinationTitle = Export to Zip File

-ZipExport_destinationEmpty = Please enter a destination zip file.

-

-ArchiveExport_description = Export resources to an archive file on the local file system.

-ArchiveExport_destinationLabel = To &archive file:

-ArchiveExport_selectDestinationTitle = Export to Archive File

-ArchiveExport_destinationEmpty = Please enter a destination archive file.

-ArchiveExport_saveInZipFormat = Save in &zip format

-ArchiveExport_saveInTarFormat = Sa&ve in tar format

diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/package.html
deleted file mode 100644
index ffec71c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/package.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="Author" content="IBM">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<title>Package-level Javadoc</title>
-</head>
-
-<body>
-Internal implementation of the data transfer support 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.ide/src/org/eclipse/ui/internal/wizards/newresource/ResourceMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/newresource/ResourceMessages.java
deleted file mode 100644
index 2c2cabe..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/newresource/ResourceMessages.java
+++ /dev/null
@@ -1,53 +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 - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.wizards.newresource;
-
-import org.eclipse.osgi.util.NLS;
-
-public class ResourceMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.wizards.newresource.messages";//$NON-NLS-1$
-	
-	// ==============================================================================
-	// New Resource Wizards
-	// ==============================================================================
-	public static String FileResource_shellTitle;
-	public static String FileResource_pageTitle;
-	public static String FileResource_description;
-	public static String FileResource_errorMessage;
-
-	public static String NewFolder_title;
-	public static String NewFolder_text;
-
-	public static String NewProject_windowTitle;
-	public static String NewProject_title;
-	public static String NewProject_description;
-	public static String NewProject_referenceTitle;
-	public static String NewProject_referenceDescription;
-	public static String NewProject_errorOpeningWindow;
-	public static String NewProject_errorMessage;
-	public static String NewProject_internalError;
-	public static String NewProject_caseVariantExistsError;
-	public static String NewProject_perspSwitchTitle;
-	/**
-	 * Combines a perspective name and text for introducing a perspective switch
-	 */
-	public static String NewProject_perspSwitchMessage;
-	/**
-	 * Combines a perspective name and description with text for introducing 
-	 * a perspective switch
-	 */
-	public static String NewProject_perspSwitchMessageWithDesc;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, ResourceMessages.class);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/newresource/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/newresource/messages.properties
deleted file mode 100644
index 9a5e08c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/newresource/messages.properties
+++ /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.wizards.newresource
-
-
-# ==============================================================================
-# New Resource Wizards
-# ==============================================================================
-FileResource_shellTitle = New File
-FileResource_pageTitle = File
-FileResource_description = Create a new file resource.
-FileResource_errorMessage = Problems Opening Editor
-
-NewFolder_title = New Folder
-NewFolder_text = Folder
-
-NewProject_windowTitle = New Project
-NewProject_title = Project
-NewProject_description = Create a new project resource.
-NewProject_referenceTitle = Project References
-NewProject_referenceDescription = Select referenced projects.
-NewProject_errorOpeningWindow = Problems Opening Window
-NewProject_errorMessage = Creation Problems
-NewProject_internalError = Internal error: {0}
-NewProject_caseVariantExistsError = The underlying file system is case insensitive. There is an existing project which conflicts with ''{0}''.
-NewProject_perspSwitchTitle = Open Associated Perspective?
-NewProject_perspSwitchMessage = This kind of project is associated with the {0} perspective.  Do you want to open this perspective now?
-NewProject_perspSwitchMessageWithDesc = This kind of project is associated with the {0} perspective.\n\n{1}\n\nDo you want to open this perspective now?
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkAction.java
deleted file mode 100644
index 7366aba..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkAction.java
+++ /dev/null
@@ -1,56 +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.bookmarkexplorer;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.SelectionProviderAction;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * An abstract class for all bookmark view actions.
- */
-abstract class BookmarkAction extends SelectionProviderAction {
-    private BookmarkNavigator view;
-
-    /**
-     * Creates a bookmark action.
-     */
-    protected BookmarkAction(BookmarkNavigator view, String label) {
-        super(view.getViewer(), label);
-        this.view = view;
-    }
-
-    /**
-     * Returns the bookmarks view.
-     */
-    public BookmarkNavigator getView() {
-        return view;
-    }
-    
-	/**
-	 * Execute the specified undoable operation
-	 */
-	void execute(IUndoableOperation operation, String message,
-			IProgressMonitor monitor, IAdaptable uiInfo) {
-		try {
-			PlatformUI.getWorkbench().getOperationSupport()
-					.getOperationHistory().execute(operation, monitor, uiInfo);
-		} catch (ExecutionException e) {
-			IDEWorkbenchPlugin.log(message, e);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkContentProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkContentProvider.java
deleted file mode 100644
index 96d6328..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkContentProvider.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.views.bookmarkexplorer;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IMarkerDelta;
-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.core.runtime.CoreException;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Provides content for the bookmark navigator
- */
-class BookmarkContentProvider implements IStructuredContentProvider,
-        IResourceChangeListener, IBasicPropertyConstants {
-
-    private IResource input;
-
-    private Viewer viewer;
-
-    /**
-     * The constructor.
-     */
-    public BookmarkContentProvider(BookmarkNavigator bookmarksView) {
-        super();
-    }
-
-    /**
-     * The visual part that is using this content provider is about
-     * to be disposed. Deallocate all allocated SWT resources.
-     */
-    public void dispose() {
-        IResource resource = (IResource) viewer.getInput();
-        if (resource != null) {
-            resource.getWorkspace().removeResourceChangeListener(this);
-        }
-    }
-
-    /**
-     * Returns all the bookmarks that should be shown for
-     * the current settings.
-     */
-    Object[] getBookmarks(IResource resource) {
-        try {
-            return resource.findMarkers(IMarker.BOOKMARK, true,
-                    IResource.DEPTH_INFINITE);
-        } catch (CoreException e) {
-            return new Object[0];
-        }
-    }
-
-    public Object[] getChildren(Object element) {
-        // If the input element is a workbench return a list
-        // of the existing bookmarks.  Otherwise, return an empty list.
-        if (element instanceof IResource) {
-			return getBookmarks((IResource) element);
-		} else {
-			return new Object[0];
-		}
-    }
-
-    public Object[] getElements(Object element) {
-        return getChildren(element);
-    }
-
-    /**
-     * Recursively walks over the resource delta and gathers all marker deltas.  Marker
-     * deltas are placed into one of the three given vectors depending on
-     * the type of delta (add, remove, or change).
-     */
-    void getMarkerDeltas(IResourceDelta delta, List additions, List removals,
-            List changes) {
-        IMarkerDelta[] markerDeltas = delta.getMarkerDeltas();
-        for (int i = 0; i < markerDeltas.length; i++) {
-            IMarkerDelta markerDelta = markerDeltas[i];
-            IMarker marker = markerDelta.getMarker();
-            switch (markerDelta.getKind()) {
-            case IResourceDelta.ADDED:
-                if (markerDelta.isSubtypeOf(IMarker.BOOKMARK)) {
-                    additions.add(marker);
-                }
-                break;
-            case IResourceDelta.REMOVED:
-                if (markerDelta.isSubtypeOf(IMarker.BOOKMARK)) {
-                    removals.add(marker);
-                }
-                break;
-            case IResourceDelta.CHANGED:
-                if (markerDelta.isSubtypeOf(IMarker.BOOKMARK)) {
-                    changes.add(marker);
-                }
-                break;
-            }
-        }
-
-        //recurse on child deltas
-        IResourceDelta[] children = delta.getAffectedChildren();
-        for (int i = 0; i < children.length; i++) {
-            getMarkerDeltas(children[i], additions, removals, changes);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ITreeContentProvider,
-     */
-    public Object getParent(Object element) {
-        return input;
-    }
-
-    /**
-     * hasChildren method comment.
-     */
-    public boolean hasChildren(Object element) {
-        if (element instanceof IWorkspace) {
-			return true;
-		} else {
-			return false;
-		}
-    }
-
-    public void inputChanged(Viewer newViewer, Object oldInput, Object newInput) {
-        if (oldInput == null) {
-            IResource resource = (IResource) newInput;
-            resource.getWorkspace().addResourceChangeListener(this);
-        }
-        this.viewer = newViewer;
-        this.input = (IResource) newInput;
-    }
-
-    /**
-     * The workbench has changed.  Process the delta and provide updates to the viewer,
-     * inside the UI thread.
-     *
-     * @see IResourceChangeListener#resourceChanged
-     */
-    public void resourceChanged(final IResourceChangeEvent event) {
-
-        // gather all marker changes from the delta.
-        // be sure to do this in the calling thread, 
-        // as the delta is destroyed when this method returns
-        final List additions = new ArrayList();
-        final List removals = new ArrayList();
-        final List changes = new ArrayList();
-
-        IResourceDelta delta = event.getDelta();
-        if (delta == null) {
-			return;
-		}
-        getMarkerDeltas(delta, additions, removals, changes);
-
-        // update the viewer based on the marker changes, in the UI thread
-        if (additions.size() + removals.size() + changes.size() > 0) {
-            viewer.getControl().getDisplay().asyncExec(new Runnable() {
-                public void run() {
-                    // This method runs inside an asyncExec.  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;
-					}
-
-                    viewer.refresh();
-                }
-            });
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkLabelProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkLabelProvider.java
deleted file mode 100644
index c2cb68c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkLabelProvider.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.bookmarkexplorer;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.views.bookmarkexplorer.BookmarkMessages;
-
-/**
- * Provides labels for the bookmark navigator table
- */
-class BookmarkLabelProvider extends LabelProvider implements
-        ITableLabelProvider {
-
-    private Image image;
-    private ImageDescriptor desc;
-
-    final static int COLUMN_ICON = 0;
-
-    final static int COLUMN_DESCRIPTION = 1;
-
-    final static int COLUMN_RESOURCE = 2;
-
-    final static int COLUMN_FOLDER = 3;
-
-    final static int COLUMN_LOCATION = 4;
-
-    public BookmarkLabelProvider(BookmarkNavigator view) {
-        desc = IDEWorkbenchPlugin.getIDEImageDescriptor("obj16/bkmrk_tsk.gif"); //$NON-NLS-1$
-        image = JFaceResources.getResources().createImageWithDefault(desc);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on LabelProvider.
-     */
-    public void dispose() {
-        if (image != null) {
-            JFaceResources.getResources().destroyImage(desc);
-            image = null;
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on LabelProvider.
-     */
-    public Image getImage(Object element) {
-        return image;
-    }
-
-    public String getColumnText(Object element, int columnIndex) {
-        if (!(element instanceof IMarker)) {
-			return ""; //$NON-NLS-1$
-		}
-        IMarker marker = (IMarker) element;
-
-        switch (columnIndex) {
-        case COLUMN_DESCRIPTION:
-            return marker.getAttribute(IMarker.MESSAGE, ""); //$NON-NLS-1$
-        case COLUMN_RESOURCE:
-            return marker.getResource().getName();
-        case COLUMN_FOLDER:
-            return getContainerName(marker);
-        case COLUMN_LOCATION: {
-            int line = marker.getAttribute(IMarker.LINE_NUMBER, -1);
-            if (line == -1) {
-				return ""; //$NON-NLS-1$
-			}
-            return NLS.bind(BookmarkMessages.LineIndicator_text, String.valueOf(line));
-        }
-        }
-        return ""; //$NON-NLS-1$ 
-    }
-
-    public Image getColumnImage(Object element, int index) {
-        if (index == COLUMN_ICON) {
-			return image;
-		}
-        return null;
-    }
-
-    /**
-     * Returns the container name if it is defined, or empty string if not.
-     */
-    public static String getContainerName(IMarker marker) {
-        IPath path = marker.getResource().getFullPath();
-        int n = path.segmentCount() - 1;
-        // n is the number of segments in container, not path
-        if (n <= 0) {
-			return ""; //$NON-NLS-1$
-		}
-        int len = 0;
-        for (int i = 0; i < n; ++i) {
-			len += path.segment(i).length();
-		}
-        // account for /'s
-        if (n > 1) {
-			len += n - 1;
-		}
-        StringBuffer sb = new StringBuffer(len);
-        for (int i = 0; i < n; ++i) {
-            if (i != 0) {
-				sb.append('/');
-			}
-            sb.append(path.segment(i));
-        }
-        return sb.toString();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkMessages.java
deleted file mode 100644
index 825b297..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkMessages.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.views.bookmarkexplorer;
-
-
-/**
- * Utility class which helps managing messages
- * @deprecated These messages are not API and should not be referenced
- * outside of this plug-in.
- */
-class BookmarkMessages {
-
-    private BookmarkMessages() {
-        // 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 key;
-    }
-
-    /**
-     * 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) {
-       return key;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkNavigator.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkNavigator.java
deleted file mode 100644
index 31cef40..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkNavigator.java
+++ /dev/null
@@ -1,748 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.bookmarkexplorer;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IMarker;
-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.Platform;
-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.IDialogSettings;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.OpenEvent;
-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.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.DND;
-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.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.views.bookmarkexplorer.BookmarkMessages;
-import org.eclipse.ui.part.IShowInSource;
-import org.eclipse.ui.part.IShowInTargetList;
-import org.eclipse.ui.part.MarkerTransfer;
-import org.eclipse.ui.part.ShowInContext;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.views.navigator.ShowInNavigatorAction;
-
-/**
- * Main class for the bookmark navigator for displaying bookmarks on
- * resources and opening an editor on the bookmarked resource when the user
- * commands.
- * <p>
- * This standard view has id <code>"org.eclipse.ui.views.BookmarkNavigator"</code>.
- * </p>
- * <p>
- * The workbench will automatically instantiate this class when a bookmark
- * navigator is needed for a workbench window. This class is not intended
- * to be instantiated or subclassed by clients.
- * </p>
- */
-public class BookmarkNavigator extends ViewPart {
-    private Table table;
-
-    private TableViewer viewer;
-
-    private OpenBookmarkAction openAction;
-
-    private CopyBookmarkAction copyAction;
-
-    private PasteBookmarkAction pasteAction;
-
-    private RemoveBookmarkAction removeAction;
-
-    private EditBookmarkAction editAction;
-
-    private SelectAllAction selectAllAction;
-
-    private ShowInNavigatorAction showInNavigatorAction;
-
-    private SortByAction sortByDescriptionAction;
-
-    private SortByAction sortByResourceAction;
-
-    private SortByAction sortByFolderAction;
-
-    private SortByAction sortByLineAction;
-
-    private SortByAction sortByCreationTime;
-
-    private ChangeSortDirectionAction sortAscendingAction;
-
-    private ChangeSortDirectionAction sortDescendingAction;
-
-    private IMemento memento;
-
-    private BookmarkSorter comparator;
-
-    private Clipboard clipboard;
-
-    private final String columnHeaders[] = {
-            BookmarkMessages.ColumnIcon_header,
-            BookmarkMessages.ColumnDescription_header,
-            BookmarkMessages.ColumnResource_header,
-            BookmarkMessages.ColumnFolder_header,
-            BookmarkMessages.ColumnLocation_header };
-
-    private ColumnLayoutData columnLayouts[] = {
-			new ColumnPixelData(16, false, true), new ColumnWeightData(200),
-			new ColumnWeightData(75), new ColumnWeightData(150),
-			new ColumnWeightData(60) };
-
-    // Persistance tags.
-    private static final String TAG_SELECTION = "selection"; //$NON-NLS-1$
-
-    private static final String TAG_ID = "id";//$NON-NLS-1$
-
-    private static final String TAG_MARKER = "marker";//$NON-NLS-1$
-
-    private static final String TAG_RESOURCE = "resource";//$NON-NLS-1$
-
-    private static final String TAG_VERTICAL_POSITION = "verticalPosition";//$NON-NLS-1$
-
-    private static final String TAG_HORIZONTAL_POSITION = "horizontalPosition";//$NON-NLS-1$
-	
-    class SortByAction extends Action {
-
-        private int column;
-
-        /**
-         * @param column
-         */
-        public SortByAction(int column) {
-            this.column = column;
-        }
-
-        public void run() {
-        	comparator.setTopPriority(column);
-            updateSortState();
-            viewer.refresh();
-            IDialogSettings workbenchSettings = getPlugin().getDialogSettings();
-            IDialogSettings settings = workbenchSettings
-                    .getSection("BookmarkSortState");//$NON-NLS-1$
-            if (settings == null) {
-				settings = workbenchSettings.addNewSection("BookmarkSortState");//$NON-NLS-1$
-			}
-            comparator.saveState(settings);
-        }
-    }
-
-    class ChangeSortDirectionAction extends Action {
-
-        private int direction;
-
-        /**
-         * @param direction
-         */
-        public ChangeSortDirectionAction(int direction) {
-            this.direction = direction;
-        }
-
-        public void run() {
-        	comparator.setTopPriorityDirection(direction);
-            updateSortState();
-            viewer.refresh();
-            IDialogSettings workbenchSettings = getPlugin().getDialogSettings();
-            IDialogSettings settings = workbenchSettings
-                    .getSection("BookmarkSortState");//$NON-NLS-1$
-            if (settings == null) {
-				settings = workbenchSettings.addNewSection("BookmarkSortState");//$NON-NLS-1$
-			}
-            comparator.saveState(settings);
-        }
-    }
-
-    /**
-     * Creates the bookmarks view.
-     */
-    public BookmarkNavigator() {
-        super();
-    }
-
-    /**
-     * Adds this views contributions to the workbench.
-     */
-    void addContributions() {
-        ISharedImages sharedImages = PlatformUI.getWorkbench()
-                .getSharedImages();
-
-        // Create the actions.
-        openAction = new OpenBookmarkAction(this);
-        openAction
-                .setImageDescriptor(IDEWorkbenchPlugin.getIDEImageDescriptor("elcl16/gotoobj_tsk.gif"));//$NON-NLS-1$
-
-        copyAction = new CopyBookmarkAction(this);
-        copyAction.setImageDescriptor(sharedImages
-                .getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
-
-        pasteAction = new PasteBookmarkAction(this);
-        pasteAction.setImageDescriptor(sharedImages
-                .getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
-
-        removeAction = new RemoveBookmarkAction(this);
-        removeAction.setImageDescriptor(sharedImages
-                .getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
-        removeAction.setDisabledImageDescriptor(sharedImages
-                .getImageDescriptor(ISharedImages.IMG_TOOL_DELETE_DISABLED));
-
-        editAction = new EditBookmarkAction(this);
-
-        selectAllAction = new SelectAllAction(this);
-        showInNavigatorAction = new ShowInNavigatorAction(getViewSite()
-                .getPage(), viewer);
-
-        // initializes action enabled state
-        handleSelectionChanged(StructuredSelection.EMPTY);
-
-        // Create dynamic menu mgr.  Dynamic is currently required to
-        // support action contributions.
-        MenuManager mgr = new MenuManager();
-        mgr.setRemoveAllWhenShown(true);
-        mgr.addMenuListener(new IMenuListener() {
-            public void menuAboutToShow(IMenuManager mgr) {
-                fillContextMenu(mgr);
-            }
-        });
-        Menu menu = mgr.createContextMenu(viewer.getControl());
-        viewer.getControl().setMenu(menu);
-        getSite().registerContextMenu(mgr, viewer);
-
-        // Add actions to the local tool bar
-        IToolBarManager tbm = getViewSite().getActionBars().getToolBarManager();
-        tbm.add(removeAction);
-        tbm.add(openAction);
-        tbm.update(false);
-
-        // Register with action service.
-        IActionBars actionBars = getViewSite().getActionBars();
-        actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(),
-                copyAction);
-        actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(),
-                pasteAction);
-        actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(),
-                removeAction);
-        actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(),
-                selectAllAction);
-
-        // Set the double click action.
-        viewer.addOpenListener(new IOpenListener() {
-            public void open(OpenEvent event) {
-                openAction.run();
-            }
-        });
-        viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-            public void selectionChanged(SelectionChangedEvent event) {
-                handleSelectionChanged((IStructuredSelection) event
-                        .getSelection());
-            }
-        });
-        viewer.getControl().addKeyListener(new KeyAdapter() {
-            public void keyPressed(KeyEvent e) {
-                handleKeyPressed(e);
-            }
-        });
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart.
-     */
-    public void createPartControl(Composite parent) {
-        clipboard = new Clipboard(parent.getDisplay());
-        createTable(parent);
-        viewer = new TableViewer(table);
-        createColumns();
-
-        comparator = new BookmarkSorter();
-        viewer.setContentProvider(new BookmarkContentProvider(this));
-        viewer.setLabelProvider(new BookmarkLabelProvider(this));
-        viewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
-        viewer.setComparator(comparator);
-
-        IDialogSettings workbenchSettings = getPlugin().getDialogSettings();
-        IDialogSettings settings = workbenchSettings
-                .getSection("BookmarkSortState");//$NON-NLS-1$
-        comparator.restoreState(settings);
-
-        addContributions();
-        initDragAndDrop();
-        createSortActions();
-        fillActionBars();
-        updateSortState();
-        updatePasteEnablement();
-
-        getSite().setSelectionProvider(viewer);
-
-        if (memento != null) {
-			restoreState(memento);
-		}
-        memento = null;
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(),
-                IBookmarkHelpContextIds.BOOKMARK_VIEW);
-    }
-
-    public void dispose() {
-        if (clipboard != null) {
-			clipboard.dispose();
-		}
-    }
-
-    /**
-     * Notifies this listener that the menu is about to be shown by
-     * the given menu manager.
-     *
-     * @param manager the menu manager
-     */
-    void fillContextMenu(IMenuManager manager) {
-        manager.add(openAction);
-        manager.add(copyAction);
-        updatePasteEnablement();
-        manager.add(pasteAction);
-        manager.add(removeAction);
-        manager.add(selectAllAction);
-        manager.add(showInNavigatorAction);
-        manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-        manager.add(new Separator());
-        manager.add(editAction);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IShowInSource.class) {
-            return new IShowInSource() {
-                public ShowInContext getShowInContext() {
-                    return new ShowInContext(null, getViewer().getSelection());
-                }
-            };
-        }
-        if (adapter == IShowInTargetList.class) {
-            return new IShowInTargetList() {
-                public String[] getShowInTargetIds() {
-                    return new String[] { IPageLayout.ID_RES_NAV };
-                }
-
-            };
-        }
-        return super.getAdapter(adapter);
-    }
-
-    /**
-     * Returns the UI plugin for the bookmarks view.
-     */
-    static AbstractUIPlugin getPlugin() {
-        return (AbstractUIPlugin) Platform.getPlugin(PlatformUI.PLUGIN_ID);
-    }
-
-    /**
-     * Returns the shell.
-     */
-    Shell getShell() {
-        return getViewSite().getShell();
-    }
-
-    /**
-     * Returns the viewer used to display bookmarks.
-     *
-     * @return the viewer, or <code>null</code> if this view's controls
-     *  have not been created yet
-     */
-    StructuredViewer getViewer() {
-        return viewer;
-    }
-
-    /**
-     * Returns the workspace.
-     */
-    IWorkspace getWorkspace() {
-        return ResourcesPlugin.getWorkspace();
-    }
-
-    /**
-     * Handles key events in viewer.
-     */
-    void handleKeyPressed(KeyEvent event) {
-        if (event.character == SWT.DEL && event.stateMask == 0
-                && removeAction.isEnabled()) {
-			removeAction.run();
-		}
-    }
-
-    /**
-     * Handles a selection change.
-     *
-     * @param selection the new selection
-     */
-    void handleSelectionChanged(IStructuredSelection selection) {
-        //update the actions
-        openAction.selectionChanged(selection);
-        removeAction.selectionChanged(selection);
-        editAction.selectionChanged(selection);
-        selectAllAction.selectionChanged(selection);
-        showInNavigatorAction.selectionChanged(selection);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IViewPart.
-     */
-    public void init(IViewSite site, IMemento memento) throws PartInitException {
-        super.init(site, memento);
-        this.memento = memento;
-    }
-
-    /**
-     * Adds drag and drop support to the bookmark navigator.
-     */
-    protected void initDragAndDrop() {
-        int operations = DND.DROP_COPY;
-        Transfer[] transferTypes = new Transfer[] {
-                MarkerTransfer.getInstance(), TextTransfer.getInstance() };
-        DragSourceListener listener = new DragSourceAdapter() {
-            public void dragSetData(DragSourceEvent event) {
-                performDragSetData(event);
-            }
-
-            public void dragFinished(DragSourceEvent event) {
-            }
-        };
-        viewer.addDragSupport(operations, transferTypes, listener);
-    }
-
-    /**
-     * The user is attempting to drag marker data.  Add the appropriate
-     * data to the event depending on the transfer type.
-     */
-    void performDragSetData(DragSourceEvent event) {
-        if (MarkerTransfer.getInstance().isSupportedType(event.dataType)) {
-            event.data = ((IStructuredSelection) viewer.getSelection())
-                    .toArray();
-            return;
-        }
-        if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
-            Object[] markers = ((IStructuredSelection) viewer.getSelection())
-                    .toArray();
-            if (markers != null) {
-                StringBuffer buffer = new StringBuffer();
-                ILabelProvider provider = (ILabelProvider) getViewer()
-                        .getLabelProvider();
-                for (int i = 0; i < markers.length; i++) {
-                    if (i > 0) {
-						buffer.append(System.getProperty("line.separator")); //$NON-NLS-1$
-					}
-                    String text = provider.getText(markers[i]);
-                    if(text != null) {
-						buffer.append(text);
-					}
-                }
-                event.data = buffer.toString();
-            }
-            return;
-        }
-    }
-
-    void restoreState(IMemento memento) {
-        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-        IMemento selectionMem = memento.getChild(TAG_SELECTION);
-        if (selectionMem != null) {
-            ArrayList selectionList = new ArrayList();
-            IMemento markerMems[] = selectionMem.getChildren(TAG_MARKER);
-            for (int i = 0; i < markerMems.length; i++) {
-                try {
-                    long id = new Long(markerMems[i].getString(TAG_ID))
-                            .longValue();
-                    IResource resource = root.findMember(markerMems[i]
-                            .getString(TAG_RESOURCE));
-                    if (resource != null) {
-                        IMarker marker = resource.findMarker(id);
-                        if (marker != null) {
-							selectionList.add(marker);
-						}
-                    }
-                } catch (CoreException e) {
-                }
-            }
-            viewer.setSelection(new StructuredSelection(selectionList));
-        }
-
-        Scrollable scrollable = (Scrollable) viewer.getControl();
-        //save vertical position
-        ScrollBar bar = scrollable.getVerticalBar();
-        if (bar != null) {
-            try {
-                String posStr = memento.getString(TAG_VERTICAL_POSITION);
-                int position;
-                position = new Integer(posStr).intValue();
-                bar.setSelection(position);
-            } catch (NumberFormatException e) {
-            }
-        }
-        bar = scrollable.getHorizontalBar();
-        if (bar != null) {
-            try {
-                String posStr = memento.getString(TAG_HORIZONTAL_POSITION);
-                int position;
-                position = new Integer(posStr).intValue();
-                bar.setSelection(position);
-            } catch (NumberFormatException e) {
-            }
-        }
-
-        updateSortState();
-        viewer.refresh();
-    }
-
-    public void saveState(IMemento memento) {
-        if (viewer == null) {
-            if (this.memento != null) {
-				memento.putMemento(this.memento);
-			}
-            return;
-        }
-
-        Scrollable scrollable = (Scrollable) viewer.getControl();
-        Object markers[] = ((IStructuredSelection) viewer.getSelection())
-                .toArray();
-        if (markers.length > 0) {
-            IMemento selectionMem = memento.createChild(TAG_SELECTION);
-            for (int i = 0; i < markers.length; i++) {
-                IMemento elementMem = selectionMem.createChild(TAG_MARKER);
-                IMarker marker = (IMarker) markers[i];
-                elementMem.putString(TAG_RESOURCE, marker.getResource()
-                        .getFullPath().toString());
-                elementMem.putString(TAG_ID, String.valueOf(marker.getId()));
-            }
-        }
-
-        //save vertical position
-        ScrollBar bar = scrollable.getVerticalBar();
-        int position = bar != null ? bar.getSelection() : 0;
-        memento.putString(TAG_VERTICAL_POSITION, String.valueOf(position));
-        //save horizontal position
-        bar = scrollable.getHorizontalBar();
-        position = bar != null ? bar.getSelection() : 0;
-        memento.putString(TAG_HORIZONTAL_POSITION, String.valueOf(position));
-
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart.
-     */
-    public void setFocus() {
-        if (viewer != null) {
-			viewer.getControl().setFocus();
-		}
-    }
-
-    void createColumns() {
-        SelectionListener headerListener = new SelectionAdapter() {
-            /**
-             * Handles the case of user selecting the
-             * header area.
-             * <p>If the column has not been selected previously,
-             * it will set the sorter of that column to be
-             * the current tasklist sorter. Repeated
-             * presses on the same column header will
-             * toggle sorting order (ascending/descending).
-             */
-            public void widgetSelected(SelectionEvent e) {
-                // column selected - first column doesn't count
-                int column = table.indexOf((TableColumn) e.widget) - 1;
-                if (column == comparator.getTopPriority()) {
-                	comparator.reverseTopPriority();
-				} else {
-					comparator.setTopPriority(column);
-                }
-                updateSortState();
-                viewer.refresh();
-                IDialogSettings workbenchSettings = getPlugin()
-                        .getDialogSettings();
-                IDialogSettings settings = workbenchSettings
-                        .getSection("BookmarkSortState");//$NON-NLS-1$
-                if (settings == null) {
-					settings = workbenchSettings
-                            .addNewSection("BookmarkSortState");//$NON-NLS-1$
-				}
-                comparator.saveState(settings);
-            }
-        };
-
-        TableLayout layout = new TableLayout();
-        table.setLayout(layout);
-        table.setHeaderVisible(true);
-        for (int i = 0; i < columnHeaders.length; i++) {
-            layout.addColumnData(columnLayouts[i]);
-            TableColumn tc = new TableColumn(table, SWT.NONE, i);
-            tc.setResizable(columnLayouts[i].resizable);
-            tc.setText(columnHeaders[i]);
-            if (i > 0) {
-				tc.addSelectionListener(headerListener);
-			}
-        }
-    }
-
-    /**
-     * Creates the table control.
-     */
-    void createTable(Composite parent) {
-        table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI
-                | SWT.FULL_SELECTION);
-        table.setLinesVisible(true);
-        //table.setLayout(new TableLayout());
-    }
-
-    /**
-     * Fills the local tool bar and menu manager with actions.
-     */
-    void fillActionBars() {
-        IActionBars actionBars = getViewSite().getActionBars();
-        IMenuManager menu = actionBars.getMenuManager();
-        IMenuManager submenu = new MenuManager(BookmarkMessages.SortMenuGroup_text);
-        menu.add(submenu);
-        submenu.add(sortByDescriptionAction);
-        submenu.add(sortByResourceAction);
-        submenu.add(sortByFolderAction);
-        submenu.add(sortByLineAction);
-        submenu.add(sortByCreationTime);
-        submenu.add(new Separator());
-        submenu.add(sortAscendingAction);
-        submenu.add(sortDescendingAction);
-    }
-
-    void createSortActions() {
-        sortByDescriptionAction = new SortByAction(BookmarkSorter.DESCRIPTION);
-        sortByDescriptionAction.setText(BookmarkMessages.ColumnDescription_text);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(
-				sortByDescriptionAction,
-				IBookmarkHelpContextIds.SORT_DESCRIPTION_ACTION);
-
-        sortByResourceAction = new SortByAction(BookmarkSorter.RESOURCE);
-        sortByResourceAction.setText(BookmarkMessages.ColumnResource_text);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortByResourceAction,
-                IBookmarkHelpContextIds.SORT_RESOURCE_ACTION);
-
-        sortByFolderAction = new SortByAction(BookmarkSorter.FOLDER);
-        sortByFolderAction.setText(BookmarkMessages.ColumnFolder_text);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortByFolderAction,
-                IBookmarkHelpContextIds.SORT_FOLDER_ACTION);
-
-        sortByLineAction = new SortByAction(BookmarkSorter.LOCATION);
-        sortByLineAction.setText(BookmarkMessages.ColumnLocation_text);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortByLineAction,
-                IBookmarkHelpContextIds.SORT_LOCATION_ACTION);
-
-        sortByCreationTime = new SortByAction(BookmarkSorter.CREATION_TIME);
-        sortByCreationTime.setText(BookmarkMessages.ColumnCreationTime_text);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortByCreationTime,
-                IBookmarkHelpContextIds.SORT_CREATION_TIME_ACTION);
-
-        sortAscendingAction = new ChangeSortDirectionAction(
-                BookmarkSorter.ASCENDING);
-        sortAscendingAction.setText(BookmarkMessages.SortDirectionAscending_text);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortAscendingAction,
-                IBookmarkHelpContextIds.SORT_ASCENDING_ACTION);
-
-        sortDescendingAction = new ChangeSortDirectionAction(
-                BookmarkSorter.DESCENDING);
-        sortDescendingAction.setText(BookmarkMessages.SortDirectionDescending_text);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortDescendingAction,
-                IBookmarkHelpContextIds.SORT_DESCENDING_ACTION);
-    }
-
-    void updateSortState() {
-        int column = comparator.getTopPriority();
-        sortByDescriptionAction
-                .setChecked(column == BookmarkSorter.DESCRIPTION);
-        sortByResourceAction.setChecked(column == BookmarkSorter.RESOURCE);
-        sortByFolderAction.setChecked(column == BookmarkSorter.FOLDER);
-        sortByLineAction.setChecked(column == BookmarkSorter.LOCATION);
-        sortByCreationTime.setChecked(column == BookmarkSorter.CREATION_TIME);
-
-        int direction = comparator.getTopPriorityDirection();
-        sortAscendingAction.setChecked(direction == BookmarkSorter.ASCENDING);
-        sortDescendingAction.setChecked(direction == BookmarkSorter.DESCENDING);
-    }
-
-    /**
-     * Updates the enablement of the paste action
-     */
-    void updatePasteEnablement() {
-        // Paste if clipboard contains tasks
-        MarkerTransfer transfer = MarkerTransfer.getInstance();
-        IMarker[] markerData = (IMarker[]) getClipboard().getContents(transfer);
-        boolean canPaste = false;
-        if (markerData != null) {
-            for (int i = 0; i < markerData.length; i++) {
-                try {
-                    if (markerData[i].getType().equals(IMarker.BOOKMARK)) {
-                        canPaste = true;
-                        break;
-                    }
-                } catch (CoreException e) {
-                    canPaste = false;
-                }
-            }
-        }
-        pasteAction.setEnabled(canPaste);
-    }
-
-    Clipboard getClipboard() {
-        return clipboard;
-    }
-
-}
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkPropertiesDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkPropertiesDialog.java
deleted file mode 100644
index dbb730b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkPropertiesDialog.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.bookmarkexplorer;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.views.bookmarkexplorer.BookmarkMessages;
-import org.eclipse.ui.views.markers.internal.DialogMarkerProperties;
-
-/**
- * Shows the properties of a new or existing bookmark
- * This class was made public in 3.3.
- * 
- * @since 3.3 
- */
-public class BookmarkPropertiesDialog extends DialogMarkerProperties {
-
-
-
-    /**
-     * Creates the dialog.  By default this dialog creates a new bookmark.
-     * To set the resource and initial attributes for the new bookmark, 
-     * use <code>setResource</code> and <code>setInitialAttributes</code>.
-     * To show or modify an existing bookmark, use <code>setMarker</code>.
-     * 
-     * @param parentShell the parent shell
-     */
-    public BookmarkPropertiesDialog(Shell parentShell) {
-        this(parentShell, BookmarkMessages.PropertiesDialogTitle_text);
-    }
-
-    /**
-     * Creates the dialog.  By default this dialog creates a new bookmark.
-     * To set the resource and initial attributes for the new bookmark, 
-     * use <code>setResource</code> and <code>setInitialAttributes</code>.
-     * To show or modify an existing bookmark, use <code>setMarker</code>.
-     * 
-     * @param parentShell the parent shell
-     * @param title the title for the dialog
-     */
-    public BookmarkPropertiesDialog(Shell parentShell, String title) {
-        super(parentShell, title);
-    	setType(IMarker.BOOKMARK);
-    }
-    
-    /**
-     * Sets the marker to show or modify.
-     * 
-     * @param marker the marker, or <code>null</code> to create a new marker
-     */
-    public void setMarker(IMarker marker) {
-    	// Method is overridden because API is being inherited from an internal class.
-        super.setMarker(marker);
-    }
-
-    /**
-     * Returns the marker being created or modified.
-     * For a new marker, this returns <code>null</code> until
-     * the dialog returns, but is non-null after.
-     * 
-     * @return the marker
-     */
-    public IMarker getMarker() {
-    	// Method is overridden because API is being inherited from an internal class.
-        return super.getMarker();
-    }
-
-    /**
-     * Sets the resource to use when creating a new bookmark.
-     * If not set, the new bookmark is created on the workspace root.
-     * 
-     * @param resource the resource
-     */
-    public void setResource(IResource resource) {
-    	// Method is overridden because API is being inherited from an internal class.
-        super.setResource(resource);
-    }
-
-    /**
-     * Returns the resource to use when creating a new bookmark,
-     * or <code>null</code> if none has been set.
-     * If not set, the new bookmark is created on the workspace root.
-     * 
-     * @return the resource
-     */
-    public IResource getResource() {
-    	// Method is overridden because API is being inherited from an internal class.
-        return super.getResource();
-    }
-
-    /**
-     * Sets initial attributes to use when creating a new bookmark.
-     * If not set, the new bookmark is created with default attributes.
-     * 
-     * @param initialAttributes the initial attributes
-     */
-    public void setInitialAttributes(Map initialAttributes) {
-    	// Method is overridden because API is being inherited from an internal class.
-        super.setInitialAttributes(initialAttributes);
-    }
-
-    /**
-     * Returns the initial attributes to use when creating a new bookmark,
-     * or <code>null</code> if not set.
-     * If not set, the new bookmark is created with default attributes.
-     * 
-     * @return the initial attributes
-     */
-    public Map getInitialAttributes() {
-    	// Method is overridden because API is being inherited from an internal class.
-        return super.getInitialAttributes();
-    }
-    
-	/* (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.DialogMarkerProperties.getModifyOperationTitle()
-     * 
-     * @since 3.3
-     */
-	protected String getModifyOperationTitle() {
-		return BookmarkMessages.ModifyBookmark_undoText;
-	}
-	
-	/* (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.DialogMarkerProperties.getCreateOperationTitle()
-     * 
-     * @since 3.3
-     */
-	protected String getCreateOperationTitle() {
-		return BookmarkMessages.CreateBookmark_undoText;
-		
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkSorter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkSorter.java
deleted file mode 100644
index 7a27d41..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/BookmarkSorter.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.bookmarkexplorer;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-
-class BookmarkSorter extends ViewerComparator {
-
-    private int[] directions;
-
-    private int[] priorities;
-
-    final static int ASCENDING = 1;
-
-    final static int DESCENDING = -1;
-
-    final static int DESCRIPTION = 0;
-
-    final static int RESOURCE = 1;
-
-    final static int FOLDER = 2;
-
-    final static int LOCATION = 3;
-
-    final static int CREATION_TIME = 4;
-
-    final static int[] DEFAULT_PRIORITIES = { FOLDER, RESOURCE, LOCATION,
-            DESCRIPTION, CREATION_TIME };
-
-    final static int[] DEFAULT_DIRECTIONS = { ASCENDING, //description
-            ASCENDING, //resource
-            ASCENDING, //folder
-            ASCENDING, //location
-            ASCENDING, }; //creation time
-
-    public BookmarkSorter() {
-        resetState();
-    }
-
-    public void reverseTopPriority() {
-        directions[priorities[0]] *= -1;
-    }
-
-    public void setTopPriority(int priority) {
-        if (priority < 0 || priority >= priorities.length) {
-			return;
-		}
-
-        int index = -1;
-        for (int i = 0; i < priorities.length; i++) {
-            if (priorities[i] == priority) {
-				index = i;
-			}
-        }
-
-        if (index == -1) {
-            resetState();
-            return;
-        }
-
-        //shift the array
-        for (int i = index; i > 0; i--) {
-            priorities[i] = priorities[i - 1];
-        }
-        priorities[0] = priority;
-        directions[priority] = DEFAULT_DIRECTIONS[priority];
-    }
-
-    public void setTopPriorityDirection(int direction) {
-        if (direction == ASCENDING || direction == DESCENDING) {
-			directions[priorities[0]] = direction;
-		}
-    }
-
-    public int getTopPriorityDirection() {
-        return directions[priorities[0]];
-    }
-
-    public int getTopPriority() {
-        return priorities[0];
-    }
-
-    public int[] getPriorities() {
-        return priorities;
-    }
-
-    public void resetState() {
-        priorities = new int[DEFAULT_PRIORITIES.length];
-        System.arraycopy(DEFAULT_PRIORITIES, 0, priorities, 0,
-                priorities.length);
-        directions = new int[DEFAULT_DIRECTIONS.length];
-        System.arraycopy(DEFAULT_DIRECTIONS, 0, directions, 0,
-                directions.length);
-    }
-
-    private int compare(IMarker marker1, IMarker marker2, int depth) {
-        if (depth >= priorities.length) {
-			return 0;
-		}
-
-        int column = priorities[depth];
-        switch (column) {
-        case DESCRIPTION: {
-            String desc1 = marker1.getAttribute(IMarker.MESSAGE, "");//$NON-NLS-1$
-            String desc2 = marker2.getAttribute(IMarker.MESSAGE, "");//$NON-NLS-1$
-            int result = getComparator().compare(desc1, desc2);
-            if (result == 0) {
-				return compare(marker1, marker2, depth + 1);
-			}
-            return result * directions[column];
-        }
-        case RESOURCE: {
-            String res1 = marker1.getResource().getName();
-            String res2 = marker2.getResource().getName();
-            int result = getComparator().compare(res1, res2);
-            if (result == 0) {
-				return compare(marker1, marker2, depth + 1);
-			}
-            return result * directions[column];
-        }
-        case FOLDER: {
-            String folder1 = BookmarkLabelProvider.getContainerName(marker1);
-            String folder2 = BookmarkLabelProvider.getContainerName(marker2);
-            int result = getComparator().compare(folder1, folder2);
-            if (result == 0) {
-				return compare(marker1, marker2, depth + 1);
-			}
-            return result * directions[column];
-        }
-        case LOCATION: {
-            int line1 = marker1.getAttribute(IMarker.LINE_NUMBER, -1);
-            int line2 = marker2.getAttribute(IMarker.LINE_NUMBER, -1);
-            int result = line1 - line2;
-            if (result == 0) {
-				return compare(marker1, marker2, depth + 1);
-			}
-            return result * directions[column];
-        }
-        case CREATION_TIME: {
-            long result;
-            try {
-                result = marker1.getCreationTime() - marker2.getCreationTime();
-            } catch (CoreException e) {
-                result = 0;
-            }
-            if (result == 0) {
-				return compare(marker1, marker2, depth + 1);
-			}
-            return ((int) result) * directions[column];
-        }
-        }
-
-        return 0;
-    }
-
-    public int compare(Viewer viewer, Object e1, Object e2) {
-        IMarker marker1 = (IMarker) e1;
-        IMarker marker2 = (IMarker) e2;
-
-        return compare(marker1, marker2, 0);
-    }
-
-    public void saveState(IDialogSettings settings) {
-        if (settings == null) {
-			return;
-		}
-
-        for (int i = 0; i < priorities.length; i++) {
-            settings.put("priority" + i, priorities[i]);//$NON-NLS-1$
-            settings.put("direction" + i, directions[i]);//$NON-NLS-1$
-        }
-    }
-
-    public void restoreState(IDialogSettings settings) {
-        if (settings == null) {
-			return;
-		}
-
-        try {
-            for (int i = 0; i < priorities.length; i++) {
-                priorities[i] = settings.getInt("priority" + i);//$NON-NLS-1$
-                directions[i] = settings.getInt("direction" + i);//$NON-NLS-1$
-            }
-        } catch (NumberFormatException e) {
-            resetState();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/CopyBookmarkAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/CopyBookmarkAction.java
deleted file mode 100644
index fd54a35..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/CopyBookmarkAction.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.views.bookmarkexplorer;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWTError;
-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.bookmarkexplorer.BookmarkMessages;
-import org.eclipse.ui.part.MarkerTransfer;
-
-/**
- * Copies one or more bookmark(s) to the clipboard.
- */
-class CopyBookmarkAction extends BookmarkAction {
-
-    /**
-     * Creates the action.
-     * 
-     * @param bookmarkNavigator the view
-     */
-    public CopyBookmarkAction(BookmarkNavigator bookmarkNavigator) {
-        super(bookmarkNavigator, BookmarkMessages.CopyBookmark_text);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                IBookmarkHelpContextIds.COPY_BOOKMARK_ACTION);
-        setEnabled(false);
-    }
-
-    /**
-     * Performs this action.
-     */
-    public void run() {
-        // Get the selected markers
-        BookmarkNavigator bookmarkNavigator = getView();
-        StructuredViewer viewer = bookmarkNavigator.getViewer();
-        IStructuredSelection selection = (IStructuredSelection) viewer
-                .getSelection();
-        if (selection.isEmpty()) {
-            return;
-        }
-        List list = selection.toList();
-        IMarker[] markers = new IMarker[list.size()];
-        list.toArray(markers);
-
-        setClipboard(markers, createBookmarkReport(markers));
-    }
-
-    /** 
-     * Updates enablement based on the current selection
-     */
-    public void selectionChanged(IStructuredSelection sel) {
-        setEnabled(!sel.isEmpty());
-    }
-
-    private void setClipboard(IMarker[] markers, String markerReport) {
-        try {
-            // Place the markers on the clipboard
-            Object[] data = new Object[] { markers, markerReport };
-            Transfer[] transferTypes = new Transfer[] {
-                    MarkerTransfer.getInstance(), TextTransfer.getInstance() };
-
-            // set the clipboard contents
-            getView().getClipboard().setContents(data, transferTypes);
-        } catch (SWTError e) {
-            if (e.code != DND.ERROR_CANNOT_SET_CLIPBOARD) {
-				throw e;
-			}
-            if (MessageDialog
-                    .openQuestion(
-                            getView().getShell(),
-                            BookmarkMessages.CopyToClipboardProblemDialog_title, BookmarkMessages.CopyToClipboardProblemDialog_message)) {
-				setClipboard(markers, markerReport);
-			}
-        }
-    }
-
-    private String createBookmarkReport(IMarker[] markers) {
-        String report = ""; //$NON-NLS-1$
-
-        //write header
-        report += BookmarkMessages.ColumnDescription_header + '\t';
-        report += BookmarkMessages.ColumnResource_header + '\t';
-        report += BookmarkMessages.ColumnFolder_header + '\t';
-        report += BookmarkMessages.ColumnLocation_header;
-        report += System.getProperty("line.separator"); //$NON-NLS-1$
-
-        //write markers
-        for (int i = 0; i < markers.length; i++) {
-            report += MarkerUtil.getMessage(markers[i]) + '\t';
-            report += MarkerUtil.getResourceName(markers[i]) + '\t';
-            report += MarkerUtil.getContainerName(markers[i]) + '\t';
-            int line = MarkerUtil.getLineNumber(markers[i]);
-            report += NLS.bind(BookmarkMessages.LineIndicator_text, String.valueOf(line));
-            report += System.getProperty("line.separator"); //$NON-NLS-1$
-        }
-
-        return report;
-    }
-}
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/EditBookmarkAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/EditBookmarkAction.java
deleted file mode 100644
index 381ee57..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/EditBookmarkAction.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.views.bookmarkexplorer;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.bookmarkexplorer.BookmarkMessages;
-
-/**
- * Opens a properties dialog allowing the user to edit the bookmark's description.
- */
-class EditBookmarkAction extends BookmarkAction {
-
-    protected EditBookmarkAction(BookmarkNavigator view) {
-        super(view, BookmarkMessages.Properties_text);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                IBookmarkHelpContextIds.BOOKMARK_PROPERTIES_ACTION);
-        setEnabled(false);
-    }
-
-    private IMarker marker;
-
-    public void run() {
-        if (marker != null) {
-			editBookmark();
-		}
-    }
-
-    /**
-     * Sets marker to the current selection if the selection is an instance of 
-     * <code>org.eclipse.core.resources.IMarker<code> and the selected marker's 
-     * resource is an instance of <code>org.eclipse.core.resources.IFile<code>.
-     * Otherwise sets marker to null.
-     */
-    public void selectionChanged(IStructuredSelection selection) {
-        marker = null;
-        setEnabled(false);
-
-        if (selection.size() != 1) {
-			return;
-		}
-
-        Object o = selection.getFirstElement();
-        if (!(o instanceof IMarker)) {
-			return;
-		}
-
-        IMarker selectedMarker = (IMarker) o;
-        IResource resource = selectedMarker.getResource();
-        if (resource instanceof IFile) {
-            marker = selectedMarker;
-            setEnabled(true);
-        }
-    }
-
-    private void editBookmark() {
-    	BookmarkPropertiesDialog dialog = new BookmarkPropertiesDialog(
-    			getView().getSite().getShell());
-    	dialog.setMarker(marker);
-    	dialog.open();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/IBookmarkHelpContextIds.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/IBookmarkHelpContextIds.java
deleted file mode 100644
index 501fc85..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/IBookmarkHelpContextIds.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.views.bookmarkexplorer;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Help context ids for the bookmark view.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * 
- */
-interface IBookmarkHelpContextIds {
-    public static final String PREFIX = PlatformUI.PLUGIN_ID + "."; //$NON-NLS-1$
-
-    // Actions
-    public static final String COPY_BOOKMARK_ACTION = PREFIX
-            + "copy_bookmark_action_context"; //$NON-NLS-1$
-
-    public static final String PASTE_BOOKMARK_ACTION = PREFIX
-            + "paste_bookmark_action_context"; //$NON-NLS-1$
-
-    public static final String REMOVE_BOOKMARK_ACTION = PREFIX
-            + "remove_bookmark_action_context"; //$NON-NLS-1$
-
-    public static final String OPEN_BOOKMARK_ACTION = PREFIX
-            + "open_bookmark_action_context"; //$NON-NLS-1$
-
-    public static final String SELECT_ALL_BOOKMARK_ACTION = PREFIX
-            + "select_all_bookmark_action_context"; //$NON-NLS-1$
-
-    public static final String BOOKMARK_PROPERTIES_ACTION = PREFIX
-            + "bookmark_properties_action_context"; //$NON-NLS-1$
-
-    public static final String SORT_ASCENDING_ACTION = PREFIX
-            + "bookmark_sort_ascending_action_context"; //$NON-NLS-1$
-
-    public static final String SORT_DESCENDING_ACTION = PREFIX
-            + "bookmark_sort_descending_action_context"; //$NON-NLS-1$
-
-    public static final String SORT_DESCRIPTION_ACTION = PREFIX
-            + "bookmark_sort_description_action_context"; //$NON-NLS-1$
-
-    public static final String SORT_RESOURCE_ACTION = PREFIX
-            + "bookmark_sort_resource_action_context"; //$NON-NLS-1$
-
-    public static final String SORT_FOLDER_ACTION = PREFIX
-            + "bookmark_sort_folder_action_context"; //$NON-NLS-1$
-
-    public static final String SORT_LOCATION_ACTION = PREFIX
-            + "bookmark_sort_location_action_context"; //$NON-NLS-1$
-
-    public static final String SORT_CREATION_TIME_ACTION = PREFIX
-            + "bookmark_sort_creation_time_action_context"; //$NON-NLS-1$
-
-    // Views
-    public static final String BOOKMARK_VIEW = PREFIX + "bookmark_view_context"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/MarkerUtil.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/MarkerUtil.java
deleted file mode 100644
index f4be0ee..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/MarkerUtil.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.views.bookmarkexplorer;
-
-import com.ibm.icu.text.DateFormat;
-import java.util.Date;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-
-/**
- * Utility class for accessing marker attributes.
- */
-class MarkerUtil {
-
-    /**
-     * Don't allow instantiation.
-     */
-    private MarkerUtil() {
-    }
-
-    /**
-     * Returns the ending character offset of the given marker.
-     */
-    static int getCharEnd(IMarker marker) {
-        return marker.getAttribute(IMarker.CHAR_END, -1);
-    }
-
-    /**
-     * Returns the starting character offset of the given marker.
-     */
-    static int getCharStart(IMarker marker) {
-        return marker.getAttribute(IMarker.CHAR_START, -1);
-    }
-
-    /**
-     * Returns the container name if it is defined, or empty string if not.
-     */
-    static String getContainerName(IMarker marker) {
-        IPath path = marker.getResource().getFullPath();
-        int n = path.segmentCount() - 1; // n is the number of segments in container, not path
-        if (n <= 0) {
-			return ""; //$NON-NLS-1$
-		}
-        int len = 0;
-        for (int i = 0; i < n; ++i) {
-			len += path.segment(i).length();
-		}
-        // account for /'s
-        if (n > 1) {
-			len += n - 1;
-		}
-        StringBuffer sb = new StringBuffer(len);
-        for (int i = 0; i < n; ++i) {
-            if (i != 0) {
-				sb.append('/');
-			}
-            sb.append(path.segment(i));
-        }
-        return sb.toString();
-    }
-
-    /**
-     * Returns the line number of the given marker.
-     */
-    static int getLineNumber(IMarker marker) {
-        return marker.getAttribute(IMarker.LINE_NUMBER, -1);
-    }
-
-    /**
-     * Returns the text for the location field.
-     */
-    static String getLocation(IMarker marker) {
-        return marker.getAttribute(IMarker.LOCATION, "");//$NON-NLS-1$
-    }
-
-    /**
-     * Returns the message attribute of the given marker,
-     * or the empty string if the message attribute is not defined.
-     */
-    static String getMessage(IMarker marker) {
-        return marker.getAttribute(IMarker.MESSAGE, "");//$NON-NLS-1$
-    }
-
-    /**
-     * Returns the numeric value of the given string, which is assumed to represent a numeric value.
-     *
-     * @return <code>true</code> if numeric, <code>false</code> if not
-     */
-    static int getNumericValue(String value) {
-        boolean negative = false;
-        int i = 0;
-        int len = value.length();
-
-        // skip any leading '#'
-        // workaround for 1GCE69U: ITPJCORE:ALL - Java problems should not have '#' in location.
-        if (i < len && value.charAt(i) == '#') {
-			++i;
-		}
-
-        if (i < len && value.charAt(i) == '-') {
-            negative = true;
-            ++i;
-        }
-
-        int result = 0;
-        while (i < len) {
-            int digit = Character.digit(value.charAt(i++), 10);
-            if (digit < 0) {
-                return result;
-            }
-            result = result * 10 + digit;
-        }
-        if (negative) {
-            result = -result;
-        }
-        return result;
-    }
-
-    /**
-     * Implements IProvider interface by supporting a number of
-     * properties required for visual representation of markers
-     * in the tasklist.
-     */
-
-    /**
-     * Returns name if it is defined, or
-     * blank string if not.
-     */
-    static String getResourceName(IMarker marker) {
-        return marker.getResource().getName();
-    }
-
-    /**
-     * Returns the creation time of the marker as a string.
-     */
-    static String getCreationTime(IMarker marker) {
-        try {
-            return DateFormat.getDateTimeInstance(DateFormat.LONG,
-                    DateFormat.MEDIUM).format(
-                    new Date(marker.getCreationTime()));
-        } catch (CoreException e) {
-            return null;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/OpenBookmarkAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/OpenBookmarkAction.java
deleted file mode 100644
index 7dd59e0..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/OpenBookmarkAction.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.views.bookmarkexplorer;
-
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.util.OpenStrategy;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.views.bookmarkexplorer.BookmarkMessages;
-
-/**
- * Action to open an editor on the selected bookmarks.
- */
-class OpenBookmarkAction extends BookmarkAction {
-
-    /**
-     * Create a new instance of this class.
-     * 
-     * @param view the view
-     */
-    public OpenBookmarkAction(BookmarkNavigator view) {
-        super(view, BookmarkMessages.OpenBookmark_text);
-        setToolTipText(BookmarkMessages.OpenBookmark_toolTip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                IBookmarkHelpContextIds.OPEN_BOOKMARK_ACTION);
-        setEnabled(false);
-    }
-
-    public void run() {
-        IWorkbenchPage page = getView().getSite().getPage();
-        for (Iterator i = getStructuredSelection().iterator(); i.hasNext();) {
-            IMarker marker = (IMarker) i.next();
-            try {
-                IDE.openEditor(page, marker, OpenStrategy.activateOnOpen());
-            } catch (PartInitException e) {
-                // Open an error style dialog for PartInitException by
-                // including any extra information from the nested
-                // CoreException if present.
-
-                // Check for a nested CoreException
-                CoreException nestedException = null;
-                IStatus status = e.getStatus();
-                if (status != null
-                        && status.getException() instanceof CoreException) {
-					nestedException = (CoreException) status.getException();
-				}
-
-                if (nestedException != null) {
-                    // Open an error dialog and include the extra
-                    // status information from the nested CoreException
-                    ErrorDialog.openError(getView().getShell(),
-                            BookmarkMessages.OpenBookmark_errorTitle,
-                            e.getMessage(), nestedException.getStatus());
-                } else {
-                    // Open a regular error dialog since there is no
-                    // extra information to display
-                    MessageDialog.openError(getView().getShell(),
-                            BookmarkMessages.OpenBookmark_errorTitle,
-                            e.getMessage());
-                }
-            }
-        }
-    }
-
-    public void selectionChanged(IStructuredSelection sel) {
-        setEnabled(!sel.isEmpty());
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/PasteBookmarkAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/PasteBookmarkAction.java
deleted file mode 100644
index cc9f4b7..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/PasteBookmarkAction.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.bookmarkexplorer;
-
-import java.util.ArrayList;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-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.ErrorDialog;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.CreateMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-import org.eclipse.ui.internal.views.bookmarkexplorer.BookmarkMessages;
-import org.eclipse.ui.part.MarkerTransfer;
-
-/**
- * Pastes one or more bookmark(s) from the clipboard into the bookmark navigator.
- */
-class PasteBookmarkAction extends BookmarkAction {
-
-    private BookmarkNavigator view;
-
-    /**
-     * The constructor.
-     * 
-     * @param view the view
-     */
-    public PasteBookmarkAction(BookmarkNavigator view) {
-        super(view, BookmarkMessages.PasteBookmark_text);
-        this.view = view;
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                IBookmarkHelpContextIds.PASTE_BOOKMARK_ACTION);
-        setEnabled(false);
-    }
-
-    /**
-     * Copies the marker(s) from the clipboard to the bookmark navigator view.
-     */
-    public void run() {
-        // Get the markers from the clipboard
-        MarkerTransfer transfer = MarkerTransfer.getInstance();
-        final IMarker[] markerData = (IMarker[]) view.getClipboard()
-                .getContents(transfer);
-
-        if (markerData == null) {
-			return;
-		}
-        final ArrayList newMarkerAttributes = new ArrayList();
-        final ArrayList newMarkerResources = new ArrayList();
-        try {   
-            ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-                public void run(IProgressMonitor monitor) throws CoreException {
-					for (int i = 0; i < markerData.length; i++) {
-						// Collect the info about the markers to be pasted.
-						// Ignore any markers that aren't bookmarks.
-						if (!markerData[i].getType().equals(IMarker.BOOKMARK)) {
-							continue;
-						}
-						newMarkerResources.add(markerData[i].getResource());
-						newMarkerAttributes.add(markerData[i].getAttributes());
-					}
-                }
-            }, null);
-        } catch (CoreException e) {
-            ErrorDialog.openError(view.getShell(), BookmarkMessages.PasteBookmark_errorTitle,
-                    null, e.getStatus());
-            return;
-        }
-		final Map [] attrs = (Map []) newMarkerAttributes.toArray(new Map [newMarkerAttributes.size()]);
-		final IResource [] resources = (IResource []) newMarkerResources.toArray(new IResource [newMarkerResources.size()]);
-		final CreateMarkersOperation op = new CreateMarkersOperation(IMarker.BOOKMARK, attrs,
-				resources, BookmarkMessages.PasteBookmark_undoText);
-		execute(op, BookmarkMessages.PasteBookmark_errorTitle, null,
-				WorkspaceUndoUtil.getUIInfoAdapter(view.getShell()));
-
-        // Need to do this in an asyncExec, even though we're in the UI thread here,
-        // since the bookmark navigator updates itself with the addition in an asyncExec,
-        // which hasn't been processed yet.
-        // Must be done outside the create marker operation above since notification for add is
-        // sent after the operation is executed.
-        if (op.getMarkers() != null) {
-            view.getShell().getDisplay().asyncExec(new Runnable() {
-                public void run() {
-                    view.getViewer().setSelection(
-                            new StructuredSelection(op.getMarkers()));
-                    view.updatePasteEnablement();
-                }
-            });
-        }
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/RemoveBookmarkAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/RemoveBookmarkAction.java
deleted file mode 100644
index 32bf00e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/RemoveBookmarkAction.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.views.bookmarkexplorer;
-
-import java.util.List;
-
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.DeleteMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-import org.eclipse.ui.internal.views.bookmarkexplorer.BookmarkMessages;
-
-/**
- * Action to remove the selected bookmarks.
- */
-class RemoveBookmarkAction extends BookmarkAction {
-
-    /**
-     * Create a new instance of this class.
-     * 
-     * @param view the view
-     */
-    public RemoveBookmarkAction(BookmarkNavigator view) {
-        super(view, BookmarkMessages.RemoveBookmark_text);
-        setToolTipText(BookmarkMessages.RemoveBookmark_toolTip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                IBookmarkHelpContextIds.REMOVE_BOOKMARK_ACTION);
-        setEnabled(false);
-    }
-
-    /**
-     * Delete the marker selection.
-     */
-    public void run() {
-        final IStructuredSelection sel = getStructuredSelection();
-        if (sel.isEmpty()) {
-			return;
-		}
-        List list = sel.toList();
-        IMarker[] markers = new IMarker[list.size()];
-        list.toArray(markers);
-     	IUndoableOperation op = new DeleteMarkersOperation(markers, BookmarkMessages.RemoveBookmark_undoText);
-   		execute(op, BookmarkMessages.RemoveBookmark_errorTitle, null,
-   				WorkspaceUndoUtil.getUIInfoAdapter(getView().getShell()));
-    }
-
-    public void selectionChanged(IStructuredSelection sel) {
-        setEnabled(!sel.isEmpty());
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/SelectAllAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/SelectAllAction.java
deleted file mode 100644
index 79e2aa2..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/SelectAllAction.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.bookmarkexplorer;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.bookmarkexplorer.BookmarkMessages;
-
-/**
- * Action to select all bookmarks.
- */
-class SelectAllAction extends BookmarkAction {
-
-    /**
-     * Create a new instance of this class.
-     * 
-     * @param view the view
-     */
-    public SelectAllAction(BookmarkNavigator view) {
-        super(view, BookmarkMessages.SelectAll_text);
-        setToolTipText(BookmarkMessages.SelectAll_toolTip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                IBookmarkHelpContextIds.SELECT_ALL_BOOKMARK_ACTION);
-        setEnabled(true);
-    }
-
-    public void run() {
-        Viewer viewer = getView().getViewer();
-        Control control = viewer.getControl();
-        if (control instanceof Table) {
-            ((Table) control).selectAll();
-            viewer.setSelection(viewer.getSelection(), false);
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/package.html
deleted file mode 100644
index 9d24b87..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/bookmarkexplorer/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 Bookmarks view which displays
-bookmarks on resources.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/BackAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/BackAction.java
deleted file mode 100644
index 76a6f45..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/BackAction.java
+++ /dev/null
@@ -1,75 +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.framelist;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.framelist.FrameListMessages;
-
-/**
- * Generic "Back" action which goes back one frame,
- */
-public class BackAction extends FrameAction {
-
-    /**
-     * Constructs a new action for the specified frame list.
-     * 
-     * @param frameList the frame list
-     */
-    public BackAction(FrameList frameList) {
-        super(frameList);
-        setText(FrameListMessages.Back_text);
-        ISharedImages images = PlatformUI.getWorkbench().getSharedImages();
-        setImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_BACK));
-        setDisabledImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_BACK_DISABLED));
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IFrameListHelpContextIds.BACK_ACTION);
-        update();
-    }
-
-    private Frame getPreviousFrame() {
-        FrameList list = getFrameList();
-        return list.getFrame(list.getCurrentIndex() - 1);
-    }
-
-    private String getToolTipText(Frame previousFrame) {
-        if (previousFrame != null) {
-            String text = previousFrame.getToolTipText();
-            if (text != null && text.length() > 0) {
-                return NLS.bind(FrameListMessages.Back_toolTipOneArg, text);
-            }
-        }
-        return FrameListMessages.Back_toolTip;
-    }
-
-    /**
-     * Calls <code>back()</code> on the frame list.
-     */
-    public void run() {
-        getFrameList().back();
-    }
-
-    /**
-     * Updates this action's enabled state and tool tip text.
-     * This action is enabled only when there is a previous frame in the frame list.
-     * The tool tip text is "Back to " plus the tool tip text for the previous frame.
-     */
-    public void update() {
-        super.update();
-        Frame previousFrame = getPreviousFrame();
-        setEnabled(previousFrame != null);
-        setToolTipText(getToolTipText(previousFrame));
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/ForwardAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/ForwardAction.java
deleted file mode 100644
index 82c59b6..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/ForwardAction.java
+++ /dev/null
@@ -1,76 +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.framelist;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.framelist.FrameListMessages;
-
-/**
- * Generic "Forward" action which goes forward one frame.
- */
-public class ForwardAction extends FrameAction {
-
-    /**
-     * Constructs a new action for the specified frame list.
-     * 
-     * @param frameList the frame list
-     */
-    public ForwardAction(FrameList frameList) {
-        super(frameList);
-        setText(FrameListMessages.Forward_text);
-        ISharedImages images = PlatformUI.getWorkbench().getSharedImages();
-        setImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD));
-        setDisabledImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD_DISABLED));
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IFrameListHelpContextIds.FORWARD_ACTION);
-        update();
-    }
-
-    private Frame getNextFrame() {
-        FrameList list = getFrameList();
-        return list.getFrame(list.getCurrentIndex() + 1);
-    }
-
-    private String getToolTipText(Frame nextFrame) {
-        if (nextFrame != null) {
-            String text = nextFrame.getToolTipText();
-            if (text != null && text.length() > 0) {
-                return NLS.bind(FrameListMessages.Forward_toolTipOneArg, text);
-            }
-        }
-        return FrameListMessages.Forward_toolTip;
-    }
-
-    /**
-     * Calls <code>forward()</code> on the frame list.
-     */
-    public void run() {
-        getFrameList().forward();
-    }
-
-    /**
-     * Updates this action's enabled state and tool tip text.
-     * This action is enabled only when there is a next frame in the frame list.
-     * The tool tip text is "Forward to " plus the tool tip text for the next
-     * frame.
-     */
-    public void update() {
-        super.update();
-        Frame nextFrame = getNextFrame();
-        setEnabled(nextFrame != null);
-        setToolTipText(getToolTipText(nextFrame));
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/Frame.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/Frame.java
deleted file mode 100644
index 5a5cbd5..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/Frame.java
+++ /dev/null
@@ -1,112 +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.framelist;
-
-/**
- * Generic frame, which captures the state for one frame in the frame list.
- * Clients may subclass this frame to add their own state.
- */
-public class Frame {
-
-    private int index = -1;
-
-    private FrameList parent;
-
-    private String name = ""; //$NON-NLS-1$
-
-    private String toolTipText;
-
-    /**
-     * Constructs a new frame. <p>
-     * 
-     * This implementation does nothing.
-     */
-    public Frame() {
-    }
-
-    /**
-     * Returns the index of the frame in the frame list.
-     * Only valid once the frame has been added to the frame list.
-     * 
-     * @return the index of the frame in the frame list.
-     */
-    public int getIndex() {
-        return index;
-    }
-
-    /**
-     * Returns the displayable name for the frame.
-     *
-     * @return the displayable name for the frame.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Returns the frame list.
-     * 
-     * @return the frame list
-     */
-    public FrameList getParent() {
-        return parent;
-    }
-
-    /**
-     * Returns the tool tip text to show for the frame.
-     * This can form part of the tool tip for actions like the back and forward
-     * actions.
-     * 
-     * @return the tool tip text to show for the frame
-     */
-    public String getToolTipText() {
-        return toolTipText;
-    }
-
-    /**
-     * Sets the index of the frame in the frame list.
-     * Should only be called by the frame list.
-     * 
-     * @param index the index of the frame in the frame list
-     */
-    public void setIndex(int index) {
-        this.index = index;
-    }
-
-    /**
-     * Sets the displayable name for the frame.
-     * 
-     * @param name the displayable name
-     */
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    /**
-     * Sets the frame list.
-     * 
-     * @param parent the frame list
-     */
-    public void setParent(FrameList parent) {
-        this.parent = parent;
-    }
-
-    /**
-     * Sets the tool tip text to show for the frame.
-     * This can form part of the tool tip for actions like the back and forward
-     * actions.
-     * 
-     * @param toolTipText the tool tip text to show for the frame.
-     */
-    public void setToolTipText(String toolTipText) {
-        this.toolTipText = toolTipText;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameAction.java
deleted file mode 100644
index e8a3423..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameAction.java
+++ /dev/null
@@ -1,72 +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.framelist;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-/**
- * Abstract superclass for actions dealing with frames or a frame list.
- * This listens for changes to the frame list and updates itself
- * accordingly.
- */
-public abstract class FrameAction extends Action {
-    private FrameList frameList;
-	
-    private IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent event) {
-            FrameAction.this.handlePropertyChange(event);
-        }
-    };
-
-    /**
-     * Constructs a new action for the specified frame list.
-     * and adds a property change listener on it.
-     * 
-     * @param frameList the frame list
-     */
-    protected FrameAction(FrameList frameList) {
-        this.frameList = frameList;
-        frameList.addPropertyChangeListener(propertyChangeListener);
-    }
-
-    /**
-     * Disposes this frame action.
-     * This implementation removes the property change listener from the frame list.
-     */
-    public void dispose() {
-        frameList.removePropertyChangeListener(propertyChangeListener);
-    }
-
-    /**
-     * Returns the frame list.
-     */
-    public FrameList getFrameList() {
-        return frameList;
-    }
-
-    /**
-     * Handles a property change event from the frame list.
-     * This implementation calls <code>update()</code>.
-     */
-    protected void handlePropertyChange(PropertyChangeEvent event) {
-        update();
-    }
-
-    /**
-     * Updates this action.  This implementation does nothing.
-     * Most implementations will override this method.
-     */
-    public void update() {
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameList.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameList.java
deleted file mode 100644
index a722e03..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameList.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.framelist;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-/**
- * Supports a web-browser style of navigation by maintaining a list
- * of frames.  Each frame holds a snapshot of a view at some point 
- * in time.
- * <p>
- * The frame list obtains a snapshot of the current frame from a frame source
- * on creation, and whenever switching to a different frame.
- * </p>
- * <p>
- * A property change notification is sent whenever the current page changes.
- * </p>
- */
-public class FrameList extends EventManager {
-
-    /** Property name constant for the current frame. */
-    public static final String P_CURRENT_FRAME = "currentFrame"; //$NON-NLS-1$
-
-    private IFrameSource source;
-
-    private List frames;
-
-    private int current;
-
-    /**
-     * Creates a new frame list with the given source.
-     *
-     * @param source the frame source
-     */
-    public FrameList(IFrameSource source) {
-        this.source = source;
-        Frame frame = source.getFrame(IFrameSource.CURRENT_FRAME, 0);
-        frame.setParent(this);
-        frame.setIndex(0);
-        frames = new ArrayList();
-        frames.add(frame);
-        current = 0;
-    }
-
-    /**
-     * Adds a property change listener.
-     * Has no effect if an identical listener is already registered.
-     *
-     * @param listener a property change listener
-     */
-    public void addPropertyChangeListener(IPropertyChangeListener listener) {
-    	addListenerObject(listener);
-    }
-
-    /**
-     * Moves the frame pointer back by one.
-     * Has no effect if there is no frame before the current one.
-     * Fires a <code>P_CURRENT_FRAME</code> property change event.
-     */
-    public void back() {
-        if (current > 0) {
-            setCurrent(current - 1);
-        }
-    }
-
-    /**
-     * 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 IPropertyChangeListener#propertyChange
-     */
-    protected void firePropertyChange(PropertyChangeEvent event) {
-        Object[] listeners = getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            ((IPropertyChangeListener) listeners[i]).propertyChange(event);
-        }
-    }
-
-    /**
-     * Moves the frame pointer forward by one.
-     * Has no effect if there is no frame after the current one.
-     * Fires a <code>P_CURRENT_FRAME</code> property change event.
-     */
-    public void forward() {
-        if (current < frames.size() - 1) {
-            setCurrent(current + 1);
-        }
-    }
-
-    /**
-     * Returns the current frame.
-     * Returns <code>null</code> if there is no current frame.
-     *
-     * @return the current frame, or <code>null</code>
-     */
-    public Frame getCurrentFrame() {
-        return getFrame(current);
-    }
-
-    /**
-     * Returns the index of the current frame.
-     *
-     * @return the index of the current frame
-     */
-    public int getCurrentIndex() {
-        return current;
-    }
-
-    /**
-     * Returns the frame at the given index, or <code>null</code>
-     * if the index is &le; 0 or &ge; <code>size()</code>.
-     *
-     * @param index the index of the requested frame
-     * @return the frame at the given index or <code>null</code>
-     */
-    public Frame getFrame(int index) {
-        if (index < 0 || index >= frames.size()) {
-			return null;
-		}
-        return (Frame) frames.get(index);
-    }
-
-    /**
-     * Returns the frame source.
-     */
-    public IFrameSource getSource() {
-        return source;
-    }
-
-    /**
-     * Adds the given frame after the current frame,
-     * and advances the pointer to the new frame.
-     * Before doing so, updates the current frame, and removes any frames following the current frame.
-     * Fires a <code>P_CURRENT_FRAME</code> property change event.
-     *
-     * @param frame the frame to add
-     */
-    public void gotoFrame(Frame frame) {
-        for (int i = frames.size(); --i > current;) {
-            frames.remove(i);
-        }
-        frame.setParent(this);
-        int index = frames.size();
-        frame.setIndex(index);
-        frames.add(frame);
-        setCurrent(index);
-    }
-
-    /**
-     * Removes a property change listener.
-     * Has no effect if an identical listener is not registered.
-     *
-     * @param listener a property change listener
-     */
-    public void removePropertyChangeListener(IPropertyChangeListener listener) {
-        removeListenerObject(listener);
-    }
-
-    /**
-     * Sets the current frame to the one with the given index.
-     * Updates the old current frame, and fires a <code>P_CURRENT_FRAME</code> property change event
-     * if the current frame changes.
-     *
-     * @param newCurrent the index of the frame
-     */
-    void setCurrent(int newCurrent) {
-        Assert.isTrue(newCurrent >= 0 && newCurrent < frames.size());
-        int oldCurrent = this.current;
-        if (oldCurrent != newCurrent) {
-            updateCurrentFrame();
-            this.current = newCurrent;
-            firePropertyChange(new PropertyChangeEvent(this, P_CURRENT_FRAME,
-                    getFrame(oldCurrent), getFrame(newCurrent)));
-        }
-    }
-
-    /**
-     * Sets the current frame to the frame with the given index.
-     * Fires a <code>P_CURRENT_FRAME</code> property change event
-     * if the current frame changes.
-     */
-    public void setCurrentIndex(int index) {
-        if (index != -1 && index != current) {
-			setCurrent(index);
-		}
-    }
-
-    /**
-     * Returns the number of frames in the frame list.
-     */
-    public int size() {
-        return frames.size();
-    }
-
-    /**
-     * Replaces the current frame in this list with the current frame 
-     * from the frame source.  No event is fired.
-     */
-    public void updateCurrentFrame() {
-        Assert.isTrue(current >= 0);
-        Frame frame = source.getFrame(IFrameSource.CURRENT_FRAME,
-                IFrameSource.FULL_CONTEXT);
-        frame.setParent(this);
-        frame.setIndex(current);
-        frames.set(current, frame);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameListMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameListMessages.java
deleted file mode 100644
index 8e6d6b5..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/FrameListMessages.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.views.framelist;
-
-
-/**
- * Utility class which helps with managing messages.
- * @deprecated These messages are not API and should not be referenced
- * outside of this plug-in.
- */
-class FrameListMessages {
-
-    private FrameListMessages() {
-        // 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 key;
-    }
-
-    /**
-     * 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) {
-      return key;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/GoIntoAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/GoIntoAction.java
deleted file mode 100644
index c8043ae..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/GoIntoAction.java
+++ /dev/null
@@ -1,60 +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.framelist;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.framelist.FrameListMessages;
-
-/**
- * Generic "Go Into" action which goes to the frame for the current selection. 
- */
-public class GoIntoAction extends FrameAction {
-
-    /**
-     * Constructs a new action for the specified frame list.
-     * 
-     * @param frameList the frame list
-     */
-    public GoIntoAction(FrameList frameList) {
-        super(frameList);
-        setText(FrameListMessages.GoInto_text);
-        setToolTipText(FrameListMessages.GoInto_toolTip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IFrameListHelpContextIds.GO_INTO_ACTION);
-        update();
-    }
-
-    private Frame getSelectionFrame(int flags) {
-        return getFrameList().getSource().getFrame(
-                IFrameSource.SELECTION_FRAME, flags);
-    }
-
-    /**
-     * Calls <code>gotoFrame</code> on the frame list with a frame
-     * representing the currently selected container.
-     */
-    public void run() {
-        Frame selectionFrame = getSelectionFrame(IFrameSource.FULL_CONTEXT);
-        if (selectionFrame != null) {
-            getFrameList().gotoFrame(selectionFrame);
-        }
-    }
-
-    /**
-     * Updates this action's enabled state.
-     * This action is enabled only when there is a frame for the current selection.
-     */
-    public void update() {
-        super.update();
-        Frame selectionFrame = getSelectionFrame(0);
-        setEnabled(selectionFrame != null);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/IFrameListHelpContextIds.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/IFrameListHelpContextIds.java
deleted file mode 100644
index 4d65181..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/IFrameListHelpContextIds.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.ui.views.framelist;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Help context ids for the frame list.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * 
- */
-/*package*/interface IFrameListHelpContextIds {
-    public static final String PREFIX = PlatformUI.PLUGIN_ID + "."; //$NON-NLS-1$
-
-    // Actions
-    public static final String BACK_ACTION = PREFIX + "back_action_context"; //$NON-NLS-1$
-
-    public static final String FORWARD_ACTION = PREFIX
-            + "forward_action_context"; //$NON-NLS-1$
-
-    public static final String GO_INTO_ACTION = PREFIX
-            + "go_into_action_context"; //$NON-NLS-1$
-
-    public static final String UP_ACTION = PREFIX + "up_action_context"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/IFrameSource.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/IFrameSource.java
deleted file mode 100644
index 7f61bd0..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/IFrameSource.java
+++ /dev/null
@@ -1,55 +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.framelist;
-
-/**
- * A frame source is the source of frames which appear in a frame list.
- * The frame list asks for the current frame whenever it switches
- * to another frame, so that the context can be restored when the
- * frame becomes current again.
- *
- * @see FrameList
- */
-public interface IFrameSource {
-
-    /**
-     * Frame constant indicating the current frame.
-     */
-    public static final int CURRENT_FRAME = 0x0001;
-
-    /**
-     * Frame constant indicating the frame for the selection.
-     */
-    public static final int SELECTION_FRAME = 0x0002;
-
-    /**
-     * Frame constant indicating the parent frame.
-     */
-    public static final int PARENT_FRAME = 0x0003;
-
-    /**
-     * Flag constant indicating that the full context should be captured.
-     */
-    public static final int FULL_CONTEXT = 0x0001;
-
-    /**
-     * Returns a new frame describing the state of the source.
-     * If the <code>FULL_CONTEXT</code> flag is specified, then the full
-     * context of the source should be captured by the frame.
-     * Otherwise, only the visible aspects of the frame, such as the name and tool tip text,
-     * will be used.
-     *
-     * @param whichFrame one of the frame constants defined in this interface
-     * @param flags a bit-wise OR of the flag constants defined in this interface
-     * @return a new frame describing the current state of the source
-     */
-    public Frame getFrame(int whichFrame, int flags);
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/TreeFrame.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/TreeFrame.java
deleted file mode 100644
index fefedfa..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/TreeFrame.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.framelist;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IElementFactory;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Frame for tree viewers.  This capture the viewer's input element, selection,
- * and expanded elements.
- */
-public class TreeFrame extends Frame {
-    private static final String TAG_SELECTION = "selection"; //$NON-NLS-1$
-
-    private static final String TAG_EXPANDED = "expanded"; //$NON-NLS-1$
-
-    private static final String TAG_ELEMENT = "element"; //$NON-NLS-1$
-
-    private static final String TAG_FRAME_INPUT = "frameInput"; //$NON-NLS-1$
-
-    private static final String TAG_FACTORY_ID = "factoryID"; //$NON-NLS-1$
-
-    private AbstractTreeViewer viewer;
-
-    private Object input;
-
-    private ISelection selection;
-
-    private Object[] expandedElements;
-
-    /**
-     * Constructs a frame for the specified tree viewer.
-     * The frame's input, name and tool tip text are not set.
-     * 
-     * @param viewer the tree viewer
-     */
-    public TreeFrame(AbstractTreeViewer viewer) {
-        this.viewer = viewer;
-    }
-
-    /**
-     * Constructs a frame for the specified tree viewer.
-     * The frame's input element is set to the specified input element.
-     * The frame's name and tool tip text are set to the text for the input 
-     * element, as provided by the viewer's label provider.
-     * 
-     * @param viewer the tree viewer
-     * @param input the input element
-     */
-    public TreeFrame(AbstractTreeViewer viewer, Object input) {
-        this(viewer);
-        setInput(input);
-        ILabelProvider provider = (ILabelProvider) viewer.getLabelProvider();
-        String name = provider.getText(input);
-        if(name == null) {
-			name = "";//$NON-NLS-1$
-		}
-        setName(name);
-        setToolTipText(name);
-    }
-
-    /**
-     * Returns the expanded elements.
-     * 
-     * @return the expanded elements
-     */
-    public Object[] getExpandedElements() {
-        return expandedElements;
-    }
-
-    /**
-     * Returns the input element.
-     * 
-     * @return the input element
-     */
-    public Object getInput() {
-        return input;
-    }
-
-    /**
-     * Returns the selection.
-     * 
-     * @return the selection
-     */
-    public ISelection getSelection() {
-        return selection;
-    }
-
-    /**
-     * Returns the tree viewer.
-     * 
-     * @return the tree viewer
-     */
-    public AbstractTreeViewer getViewer() {
-        return viewer;
-    }
-
-    /**
-     * Restore IPersistableElements from the specified memento.
-     * 
-     * @param memento memento to restore elements from
-     * @return list of restored elements. May be empty.
-     */
-    private List restoreElements(IMemento memento) {
-        IMemento[] elementMem = memento.getChildren(TAG_ELEMENT);
-        List elements = new ArrayList(elementMem.length);
-
-        for (int i = 0; i < elementMem.length; i++) {
-            String factoryID = elementMem[i].getString(TAG_FACTORY_ID);
-            if (factoryID != null) {
-                IElementFactory factory = PlatformUI.getWorkbench()
-                        .getElementFactory(factoryID);
-                if (factory != null) {
-					elements.add(factory.createElement(elementMem[i]));
-				}
-            }
-        }
-        return elements;
-    }
-
-    /**
-     * Restore the frame from the specified memento.
-     * 
-     * @param memento memento to restore frame from
-     */
-    public void restoreState(IMemento memento) {
-        IMemento childMem = memento.getChild(TAG_FRAME_INPUT);
-
-        if (childMem == null) {
-			return;
-		}
-
-        String factoryID = childMem.getString(TAG_FACTORY_ID);
-        IAdaptable frameInput = null;
-        if (factoryID != null) {
-            IElementFactory factory = PlatformUI.getWorkbench()
-                    .getElementFactory(factoryID);
-            if (factory != null) {
-				frameInput = factory.createElement(childMem);
-			}
-        }
-        if (frameInput != null) {
-            input = frameInput;
-        }
-        IMemento expandedMem = memento.getChild(TAG_EXPANDED);
-        if (expandedMem != null) {
-            List elements = restoreElements(expandedMem);
-            expandedElements = elements.toArray(new Object[elements.size()]);
-        } else {
-            expandedElements = new Object[0];
-        }
-        IMemento selectionMem = memento.getChild(TAG_SELECTION);
-        if (selectionMem != null) {
-            List elements = restoreElements(selectionMem);
-            selection = new StructuredSelection(elements);
-        } else {
-            selection = StructuredSelection.EMPTY;
-        }
-    }
-
-    /**
-     * Save the specified elements to the given memento.
-     * The elements have to be adaptable to IPersistableElement.
-     * 
-     * @param elements elements to persist
-     * @param memento memento to persist elements in
-     */
-    private void saveElements(Object[] elements, IMemento memento) {
-        for (int i = 0; i < elements.length; i++) {
-            if (elements[i] instanceof IAdaptable) {
-                IPersistableElement persistable = (IPersistableElement) ((IAdaptable) elements[i])
-                        .getAdapter(IPersistableElement.class);
-                if (persistable != null) {
-                    IMemento elementMem = memento.createChild(TAG_ELEMENT);
-                    elementMem.putString(TAG_FACTORY_ID, persistable
-                            .getFactoryId());
-                    persistable.saveState(elementMem);
-                }
-            }
-        }
-    }
-
-    /**
-     * Save the frame state in the given memento.
-     * 
-     * @param memento memento to persist the frame state in.
-     */
-    public void saveState(IMemento memento) {
-        if (!(input instanceof IAdaptable)) {
-			return;
-		}
-
-        IPersistableElement persistable = (IPersistableElement) ((IAdaptable) input)
-                .getAdapter(IPersistableElement.class);
-        if (persistable != null) {
-            IMemento frameMemento = memento.createChild(TAG_FRAME_INPUT);
-
-            frameMemento.putString(TAG_FACTORY_ID, persistable.getFactoryId());
-            persistable.saveState(frameMemento);
-
-            if (expandedElements.length > 0) {
-                IMemento expandedMem = memento.createChild(TAG_EXPANDED);
-                saveElements(expandedElements, expandedMem);
-            }
-            // always IStructuredSelection since we only deal with tree viewers
-            if (selection instanceof IStructuredSelection) {
-                Object[] elements = ((IStructuredSelection) selection)
-                        .toArray();
-                if (elements.length > 0) {
-                    IMemento selectionMem = memento.createChild(TAG_SELECTION);
-                    saveElements(elements, selectionMem);
-                }
-            }
-        }
-    }
-
-    /**
-     * Sets the input element.
-     * 
-     * @param input the input element
-     */
-    public void setInput(Object input) {
-        this.input = input;
-    }
-
-    /**
-     * Sets the expanded elements.
-     * 
-     * @param expandedElements the expanded elements
-     */
-    public void setExpandedElements(Object[] expandedElements) {
-        this.expandedElements = expandedElements;
-    }
-
-    /**
-     * Sets the selection.
-     * 
-     * @param selection the selection
-     */
-    public void setSelection(ISelection selection) {
-        this.selection = selection;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/TreeViewerFrameSource.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/TreeViewerFrameSource.java
deleted file mode 100644
index 8010094..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/TreeViewerFrameSource.java
+++ /dev/null
@@ -1,174 +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.framelist;
-
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-
-/** 
- * Frame source for tree viewers, which uses <code>TreeFrame</code> to capture
- * the state of the tree viewer.
- * 
- * @see TreeFrame
- */
-public class TreeViewerFrameSource implements IFrameSource {
-
-    private AbstractTreeViewer viewer;
-
-    /**
-     * Constructs a new tree viewer frame source for the specified tree viewer.
-     * 
-     * @param viewer the tree viewer
-     */
-    public TreeViewerFrameSource(AbstractTreeViewer viewer) {
-        this.viewer = viewer;
-    }
-
-    /**
-     * Connects this source as a listener on the frame list,
-     * so that when the current frame changes, the viewer is updated.
-     */
-    public void connectTo(FrameList frameList) {
-        frameList.addPropertyChangeListener(new IPropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent event) {
-                TreeViewerFrameSource.this.handlePropertyChange(event);
-            }
-        });
-    }
-
-    /**
-     * Returns a new tree frame capturing the specified input element.
-     * 
-     * @param input the input element
-     * @return the tree frame
-     */
-    protected TreeFrame createFrame(Object input) {
-        return new TreeFrame(viewer, input);
-    }
-
-    /**
-     * Updates the viewer in response to the current frame changing.
-     * 
-     * @param frame the new value for the current frame
-     */
-    protected void frameChanged(TreeFrame frame) {
-        viewer.getControl().setRedraw(false);
-        viewer.setInput(frame.getInput());
-        viewer.setExpandedElements(frame.getExpandedElements());
-        viewer.setSelection(frame.getSelection(), true);
-        viewer.getControl().setRedraw(true);
-    }
-
-    /**
-     * Returns the current frame.
-     * 
-     * @param flags a bit-wise OR of the frame source flag constants
-     * @return the current frame
-     */
-    protected Frame getCurrentFrame(int flags) {
-        Object input = viewer.getInput();
-        TreeFrame frame = createFrame(input);
-        if ((flags & IFrameSource.FULL_CONTEXT) != 0) {
-            frame.setSelection(viewer.getSelection());
-            frame.setExpandedElements(viewer.getExpandedElements());
-        }
-        return frame;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IFrameSource.
-     */
-    public Frame getFrame(int whichFrame, int flags) {
-        switch (whichFrame) {
-        case IFrameSource.CURRENT_FRAME:
-            return getCurrentFrame(flags);
-        case IFrameSource.PARENT_FRAME:
-            return getParentFrame(flags);
-        case IFrameSource.SELECTION_FRAME:
-            return getSelectionFrame(flags);
-        default:
-            return null;
-        }
-    }
-
-    /**
-     * Returns the parent frame, or <code>null</code> if there is no parent frame.
-     * 
-     * @param flags a bit-wise OR of the frame source flag constants
-     * @return the parent frame, or <code>null</code>
-     */
-    protected Frame getParentFrame(int flags) {
-        Object input = viewer.getInput();
-        ITreeContentProvider provider = (ITreeContentProvider) viewer
-                .getContentProvider();
-        Object parent = provider.getParent(input);
-        if (parent == null) {
-            return null;
-        } else {
-            TreeFrame frame = createFrame(parent);
-            if ((flags & IFrameSource.FULL_CONTEXT) != 0) {
-                frame.setSelection(viewer.getSelection());
-                // include current input in expanded set
-                Object[] expanded = viewer.getExpandedElements();
-                Object[] newExpanded = new Object[expanded.length + 1];
-                System.arraycopy(expanded, 0, newExpanded, 0, expanded.length);
-                newExpanded[newExpanded.length - 1] = input;
-                frame.setExpandedElements(newExpanded);
-            }
-            return frame;
-        }
-    }
-
-    /**
-     * Returns the frame for the selection, or <code>null</code> if there is no
-     * frame for the selection.
-     * 
-     * @param flags a bit-wise OR of the frame source flag constants
-     * @return the selection frame, or <code>null</code>
-     */
-    protected Frame getSelectionFrame(int flags) {
-        IStructuredSelection sel = (IStructuredSelection) viewer.getSelection();
-        if (sel.size() == 1) {
-            Object o = sel.getFirstElement();
-            if (viewer.isExpandable(o)) {
-                TreeFrame frame = createFrame(o);
-                if ((flags & IFrameSource.FULL_CONTEXT) != 0) {
-                    frame.setSelection(viewer.getSelection());
-                    frame.setExpandedElements(viewer.getExpandedElements());
-                }
-                return frame;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the tree viewer.
-     * 
-     * @return the tree viewer
-     */
-    public AbstractTreeViewer getViewer() {
-        return viewer;
-    }
-
-    /**
-     * Handles a property change event from the frame list.
-     * Calls <code>frameChanged</code> when the current frame changes.
-     */
-    protected void handlePropertyChange(PropertyChangeEvent event) {
-        if (FrameList.P_CURRENT_FRAME.equals(event.getProperty())) {
-            frameChanged((TreeFrame) event.getNewValue());
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/UpAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/UpAction.java
deleted file mode 100644
index 0350d64..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/UpAction.java
+++ /dev/null
@@ -1,80 +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.framelist;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.framelist.FrameListMessages;
-
-/**
- * Generic "Up" action which goes to the parent frame for the current frame.
- */
-public class UpAction extends FrameAction {
-
-    /**
-     * Constructs a new action for the specified frame list.
-     * 
-     * @param frameList the frame list
-     */
-    public UpAction(FrameList frameList) {
-        super(frameList);
-        setText(FrameListMessages.Up_text);
-        ISharedImages images = PlatformUI.getWorkbench().getSharedImages();
-        setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_UP));
-        setDisabledImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_UP_DISABLED));
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IFrameListHelpContextIds.UP_ACTION);
-        update();
-    }
-
-    Frame getParentFrame(int flags) {
-        return getFrameList().getSource().getFrame(IFrameSource.PARENT_FRAME,
-                flags);
-    }
-
-    String getToolTipText(Frame parentFrame) {
-        if (parentFrame != null) {
-            String text = parentFrame.getToolTipText();
-            if (text != null && text.length() > 0) {
-                return NLS.bind(FrameListMessages.Up_toolTipOneArg, text);
-            }
-        }
-        return FrameListMessages.Up_toolTip;
-
-    }
-
-    /**
-     * Calls <code>gotoFrame</code> on the frame list with a frame
-     * representing the parent of the current input.
-     */
-    public void run() {
-        Frame parentFrame = getParentFrame(IFrameSource.FULL_CONTEXT);
-        if (parentFrame != null) {
-            getFrameList().gotoFrame(parentFrame);
-        }
-    }
-
-    /**
-     * Updates this action's enabled state and tool tip text.
-     * This action is enabled only when there is a parent frame for the current
-     * frame in the frame list.
-     * The tool tip text is "Up to " plus the tool tip text for the parent
-     * frame.
-     */
-    public void update() {
-        super.update();
-        Frame parentFrame = getParentFrame(0);
-        setEnabled(parentFrame != null);
-        setToolTipText(getToolTipText(parentFrame));
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/package.html
deleted file mode 100644
index 2ca0f96..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/framelist/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="Microsoft FrontPage 4.0">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-<p>Provides support for a web-browser style of navigation within a view by maintaining a list
-of frames.  Each frame holds a snapshot of a view at some point in time.
-Includes support for use with a tree viewer.</p>
-<p>
-<br>&nbsp;</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/MarkerViewUtil.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/MarkerViewUtil.java
deleted file mode 100644
index 3b70e36..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/MarkerViewUtil.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.views.markers;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.views.markers.internal.MarkerView;
-
-/**
- * Utility class for showing markers in the marker views.
- */
-public class MarkerViewUtil {
-	
-	/**
-	 * The PATH_ATTRIBUTE is the tag for the attribute on a marker 
-	 * that can be used to supply the String for the path rather than
-	 * using the path of the underlying resource.
-	 * @see IMarker#getAttribute(java.lang.String)
-	 * @since 3.2
-	 */
-	public static final String PATH_ATTRIBUTE = "org.eclipse.ui.views.markers.path";//$NON-NLS-1$
-	
-	/**
-	 * The NAME_ATTRIBUTE is the tag for the attribute on a marker 
-	 * that can be used to supply the String for the name rather than
-	 * using the name of the underlying resource.
-	 * @see IMarker#getAttribute(java.lang.String)
-	 * @since 3.2
-	 */
-	public static final String NAME_ATTRIBUTE = "org.eclipse.ui.views.markers.name";//$NON-NLS-1$
-
-    /**
-     * Returns the id of the view used to show markers of the
-     * same type as the given marker.
-     * 
-     * @param marker the marker
-     * @return the view id or <code>null</code> if no appropriate view could be determined
-     * @throws CoreException if an exception occurs testing the type of the marker
-     */
-    public static String getViewId(IMarker marker) throws CoreException {
-        if (marker.isSubtypeOf(IMarker.TASK)) {
-            return IPageLayout.ID_TASK_LIST;
-        } else if (marker.isSubtypeOf(IMarker.PROBLEM)) {
-            return IPageLayout.ID_PROBLEM_VIEW;
-        } else if (marker.isSubtypeOf(IMarker.BOOKMARK)) {
-            return IPageLayout.ID_BOOKMARKS;
-        }
-        return null;
-    }
-
-    /**
-     * Shows the given marker in the appropriate view in the given page.
-     * This must be called from the UI thread.
-     * 
-     * @param page the workbench page in which to show the marker
-     * @param marker the marker to show
-     * @param showView <code>true</code> if the view should be shown first
-     *   <code>false</code> to only show the marker if the view is already showing 
-     * @return <code>true</code> if the marker was successfully shown,
-     *   <code>false</code> if not
-     *   
-     */
-    public static boolean showMarker(IWorkbenchPage page, IMarker marker,
-            boolean showView) {
-        try {
-            String viewId = getViewId(marker);
-            if (viewId != null) {
-                IViewPart view = showView ? page.showView(viewId) : page
-                        .findView(viewId);
-                if (view instanceof MarkerView) {
-                    StructuredSelection selection = new StructuredSelection(
-                            marker);
-                    MarkerView markerView = (MarkerView) view;
-                    markerView.setSelection(selection, true);
-                    return true;
-
-                    //return markerView.getSelection().equals(selection); 
-                }
-            }
-        } catch (CoreException e) {
-            // ignore
-        }
-        return false;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/WorkbenchMarkerResolution.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/WorkbenchMarkerResolution.java
deleted file mode 100644
index d71a350..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/WorkbenchMarkerResolution.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.views.markers;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ui.IMarkerResolution2;
-import org.eclipse.ui.views.markers.internal.Util;
-
-/**
- * WorkbenchMarkerResolution is the resolution that can be grouped
- * with others that are similar to allow multi selection.
- * @since 3.2
- *
- */
-public abstract class WorkbenchMarkerResolution implements IMarkerResolution2 {
-	
-	/**
-	 * Iterate through the list of supplied markers. Return any that can also have
-	 * the receiver applied to them.
-	 * @param markers
-	 * @return IMarker[]
-	 * 	 
-	 * */
-	public abstract IMarker[] findOtherMarkers(IMarker[] markers);
-
-    /**
-     * Runs this resolution. Resolve all <code>markers</code>.
-     * <code>markers</code> must be a subset of the markers returned
-     * by <code>findOtherMarkers(IMarker[])</code>.
-	 * 
-	 * @param markers The markers to resolve, not null
-	 * @param monitor The monitor to report progress
-	 */
-	public void run(IMarker[] markers, IProgressMonitor monitor) {
-		
-		for (int i = 0; i < markers.length; i++) {
-			monitor.subTask(Util.getProperty(IMarker.MESSAGE, markers[i]));
-			run(markers[i]);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/AbstractField.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/AbstractField.java
deleted file mode 100644
index 966d6ff..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/AbstractField.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.views.markers.internal;
-
-
-/**
- * AbstractField is the abstract superclass for fields.
- * @since 3.2
- *
- */
-public abstract class AbstractField implements IField {
-	
-	boolean visible = true;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#isShowing()
-	 */
-	public boolean isShowing() {
-		return visible;
-	}
-	
-	/**
-	 * Set whether or not the receiver is showing.
-	 * @param showing
-	 */
-	public void setShowing(boolean showing){
-		visible = showing;
-		
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionAddGlobalTask.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionAddGlobalTask.java
deleted file mode 100644
index 3d1cc9f..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionAddGlobalTask.java
+++ /dev/null
@@ -1,44 +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.markers.internal;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * The ActionAddGlobalTask is the action for adding a global task.
- *
- */
-public class ActionAddGlobalTask extends Action {
-
-    private static final String ENABLED_IMAGE_PATH = "elcl16/addtsk_tsk.gif"; //$NON-NLS-1$
-
-    private IWorkbenchPart part;
-
-    /**
-     * Create a new instance of the global task.
-     * @param part
-     */
-    public ActionAddGlobalTask(IWorkbenchPart part) {
-        setText(MarkerMessages.addGlobalTaskAction_title); 
-        setImageDescriptor(IDEWorkbenchPlugin.getIDEImageDescriptor(ENABLED_IMAGE_PATH));
-        setToolTipText(MarkerMessages.addGlobalTaskAction_tooltip);
-        this.part = part;
-    }
-
-    public void run() {
-        DialogTaskProperties dialog = new DialogTaskProperties(part.getSite()
-                .getShell(), MarkerMessages.addGlobalTaskDialog_title);
-        dialog.open();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionCopyMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionCopyMarker.java
deleted file mode 100644
index 9c2ed33..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionCopyMarker.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelectionProvider;
-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.ISharedImages;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.MarkerTransfer;
-
-/**
- * Copies one or more marker to the clipboard.
- */
-public class ActionCopyMarker extends MarkerSelectionProviderAction {
-
-	private IWorkbenchPart part;
-
-	private Clipboard clipboard;
-
-	private IField[] properties;
-
-	/**
-	 * Creates the action.
-	 * 
-	 * @param part
-	 * @param provider
-	 */
-	public ActionCopyMarker(IWorkbenchPart part, ISelectionProvider provider) {
-		super(provider, MarkerMessages.copyAction_title);
-		this.part = part;
-		setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-				.getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
-		setEnabled(false);
-	}
-
-	/**
-	 * Sets the clipboard that the marker(s) will be copied to.
-	 * 
-	 * @param clipboard
-	 *            the clipboard
-	 */
-	void setClipboard(Clipboard clipboard) {
-		this.clipboard = clipboard;
-	}
-
-	/**
-	 * Sets the properties to be added to the plain-text marker report that will
-	 * be copied to the clipboard.
-	 * 
-	 * @param properties
-	 */
-	void setProperties(IField[] properties) {
-		this.properties = properties;
-	}
-
-	/**
-	 * Copies the selected IMarker objects to the clipboard. If properties have
-	 * been set, also copies a plain-text report of the selected markers to the
-	 * clipboard.
-	 */
-	public void run() {
-		IMarker[] markers = getSelectedMarkers();
-		setClipboard(markers, createMarkerReport(markers));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionProviderAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IStructuredSelection selection) {
-		setEnabled(Util.allConcreteSelection(selection));
-	}
-
-	private void setClipboard(IMarker[] markers, String markerReport) {
-		try {
-			// Place the markers on the clipboard
-			Object[] data;
-			Transfer[] transferTypes;
-			if (markerReport == null) {
-				data = new Object[] { markers };
-				transferTypes = new Transfer[] { MarkerTransfer.getInstance() };
-			} else {
-				data = new Object[] { markers, markerReport };
-				transferTypes = new Transfer[] { MarkerTransfer.getInstance(),
-						TextTransfer.getInstance() };
-			}
-
-			clipboard.setContents(data, transferTypes);
-		} catch (SWTError e) {
-			if (e.code != DND.ERROR_CANNOT_SET_CLIPBOARD) {
-				throw e;
-			}
-			if (MessageDialog.openQuestion(part.getSite().getShell(),
-					MarkerMessages.CopyToClipboardProblemDialog_title,
-					MarkerMessages.CopyToClipboardProblemDialog_message)) {
-				setClipboard(markers, markerReport);
-			}
-		}
-	}
-
-	/**
-	 * Creates a plain-text report of the selected markers based on predefined
-	 * properties.
-	 * 
-	 * @param rawMarkers
-	 * @return the marker report
-	 */
-	String createMarkerReport(IMarker[] rawMarkers) {
-		ConcreteMarker[] markers;
-		try {
-			markers = MarkerList.createMarkers(rawMarkers);
-		} catch (CoreException e) {
-			ErrorDialog.openError(part.getSite().getShell(),
-					MarkerMessages.Error, null, e.getStatus());
-			return ""; //$NON-NLS-1$
-		}
-
-		StringBuffer report = new StringBuffer();
-
-		final String NEWLINE = System.getProperty("line.separator"); //$NON-NLS-1$
-		final char DELIMITER = '\t';
-
-		if (properties == null) {
-			return null;
-		}
-
-		// create header
-		for (int i = 0; i < properties.length; i++) {
-			report.append(properties[i].getDescription());
-			if (i == properties.length - 1) {
-				report.append(NEWLINE);
-			} else {
-				report.append(DELIMITER);
-			}
-		}
-
-		for (int i = 0; i < markers.length; i++) {
-			ConcreteMarker marker = markers[i];
-			for (int j = 0; j < properties.length; j++) {
-				report.append(properties[j].getValue(marker));
-				if (j == properties.length - 1) {
-					report.append(NEWLINE);
-				} else {
-					report.append(DELIMITER);
-				}
-			}
-		}
-
-		return report.toString();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionDeleteCompleted.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionDeleteCompleted.java
deleted file mode 100644
index d107c5c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionDeleteCompleted.java
+++ /dev/null
@@ -1,110 +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.markers.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.ide.undo.DeleteMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-
-/**
- * ActionDeleteCompleted is the action for deleting completed markers.
- * 
- */
-public class ActionDeleteCompleted extends MarkerSelectionProviderAction {
-
-	private TaskView part;
-
-	/**
-	 * Constructs an ActionDeleteCompleted instance
-	 * 
-	 * @param part
-	 * @param provider
-	 */
-	public ActionDeleteCompleted(TaskView part, ISelectionProvider provider) {
-		super(provider, MarkerMessages.deleteCompletedAction_title);
-		this.part = part;
-		setEnabled(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		final List completed = getCompletedTasks();
-		// Check if there is anything to do
-		if (completed.size() == 0) {
-			MessageDialog.openInformation(part.getSite().getShell(),
-					MarkerMessages.deleteCompletedTasks_dialogTitle,
-					MarkerMessages.deleteCompletedTasks_noneCompleted);
-			return;
-		}
-		String message;
-		if (completed.size() == 1) {
-			message = MarkerMessages.deleteCompletedTasks_permanentSingular;
-		} else {
-			message = NLS.bind(
-					MarkerMessages.deleteCompletedTasks_permanentPlural, String
-							.valueOf(completed.size()));
-		}
-		// Verify.
-		if (!MessageDialog.openConfirm(part.getSite().getShell(),
-				MarkerMessages.deleteCompletedTasks_dialogTitle, message)) {
-			return;
-		}
-		IMarker[] markers = (IMarker[]) completed.toArray(new IMarker[completed
-				.size()]);
-		IUndoableOperation op = new DeleteMarkersOperation(markers, getText());
-		execute(op, MarkerMessages.deleteCompletedTasks_errorMessage, null,
-				WorkspaceUndoUtil.getUIInfoAdapter(part.getSite().getShell()));
-	}
-
-	private List getCompletedTasks() {
-		List completed = new ArrayList();
-
-		MarkerList markerList = part.getVisibleMarkers();
-
-		ConcreteMarker[] markers = markerList.toArray();
-
-		for (int i = 0; i < markers.length; i++) {
-			ConcreteMarker marker = markers[i];
-			if (marker instanceof TaskMarker) {
-				TaskMarker taskMarker = (TaskMarker) marker;
-
-				if (taskMarker.getDone() == 1) {
-					completed.add(taskMarker.getMarker());
-				}
-			}
-		}
-
-		return completed;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionProviderAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IStructuredSelection selection) {
-		setEnabled(!selection.isEmpty());
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionMarkCompleted.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionMarkCompleted.java
deleted file mode 100644
index 4d9203e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionMarkCompleted.java
+++ /dev/null
@@ -1,80 +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.markers.internal;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.ide.undo.UpdateMarkersOperation;
-
-/**
- * ActionMarkCompleted is the action for marking task completion.
- * 
- */
-public class ActionMarkCompleted extends MarkerSelectionProviderAction {
-
-	/**
-	 * Create a new instance of the reciever.
-	 * 
-	 * @param provider
-	 */
-	public ActionMarkCompleted(ISelectionProvider provider) {
-		super(provider, MarkerMessages.markCompletedAction_title);
-		setEnabled(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		IMarker[] markers = getSelectedMarkers();
-		Map attrs = new HashMap();
-		attrs.put(IMarker.DONE, Boolean.TRUE);
-		IUndoableOperation op = new UpdateMarkersOperation(markers, attrs,
-				getText(), true);
-		execute(op, getText(), null, null);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionProviderAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IStructuredSelection selection) {
-		setEnabled(false);
-		if (selection == null || selection.isEmpty()) {
-			return;
-		}
-		for (Iterator iterator = selection.iterator(); iterator.hasNext();) {
-			Object obj = iterator.next();
-			if (!(obj instanceof ConcreteMarker)) {
-				return;
-			}
-			IMarker marker = ((ConcreteMarker) obj).getMarker();
-			if (!marker.getAttribute(IMarker.USER_EDITABLE, true)) {
-				return;
-			}
-			if (marker.getAttribute(IMarker.DONE, false)) {
-				return;
-			}
-		}
-		setEnabled(true);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionMarkerProperties.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionMarkerProperties.java
deleted file mode 100644
index b21dcd9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionMarkerProperties.java
+++ /dev/null
@@ -1,73 +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.markers.internal;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.actions.SelectionProviderAction;
-
-/**
- * ActionMarkerProperties is the action for opening a properties dialog.
- * 
- */
-public class ActionMarkerProperties extends SelectionProviderAction {
-
-	private IWorkbenchPart part;
-
-	private String markerName;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param part
-	 * @param provider
-	 * @param markerName
-	 *            the name describing the specific type of marker.
-	 */
-	public ActionMarkerProperties(IWorkbenchPart part,
-			ISelectionProvider provider, String markerName) {
-		super(provider, MarkerMessages.propertiesAction_title);
-		setEnabled(false);
-		this.part = part;
-		this.markerName = markerName;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		if (!isEnabled()) {
-			return;
-		}
-		Object obj = getStructuredSelection().getFirstElement();
-		if (!(obj instanceof ConcreteMarker)) {
-			return;
-		}
-		ConcreteMarker marker = (ConcreteMarker) obj;
-		DialogMarkerProperties dialog = new DialogMarkerProperties(part
-				.getSite().getShell(), MarkerMessages.propertiesDialog_title, markerName);
-		dialog.setMarker(marker.getMarker());
-		dialog.open();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionProviderAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IStructuredSelection selection) {
-		setEnabled(selection != null && selection.size() == 1);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionOpenMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionOpenMarker.java
deleted file mode 100644
index e9e2586..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionOpenMarker.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
- *     Sebastian Davids <sdavids@gmx.de> - Fix for Bug 73612  
- *        	[Markers] "Open All" does not work with multi-select in the bookmarks view
- *******************************************************************************/
-
-package org.eclipse.ui.views.markers.internal;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.util.OpenStrategy;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.ResourceUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * Action to open an editor on the selected bookmarks.
- */
-public class ActionOpenMarker extends MarkerSelectionProviderAction {
-
-	private final String IMAGE_PATH = "elcl16/gotoobj_tsk.gif"; //$NON-NLS-1$
-
-	private final String DISABLED_IMAGE_PATH = "dlcl16/gotoobj_tsk.gif"; //$NON-NLS-1$
-
-	protected IWorkbenchPart part;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param part
-	 * @param provider
-	 */
-	public ActionOpenMarker(IWorkbenchPart part, ISelectionProvider provider) {
-		super(provider, MarkerMessages.openAction_title);
-		this.part = part;
-		setImageDescriptor(IDEWorkbenchPlugin.getIDEImageDescriptor(IMAGE_PATH));
-		setDisabledImageDescriptor(IDEWorkbenchPlugin
-				.getIDEImageDescriptor(DISABLED_IMAGE_PATH));
-		setEnabled(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		IMarker[] markers = getSelectedMarkers();
-		for (int i = 0; i < markers.length; i++) {
-			IMarker marker = markers[i];
-
-			// optimization: if the active editor has the same input as the
-			// selected marker then
-			// RevealMarkerAction would have been run and we only need to
-			// activate the editor
-			IEditorPart editor = part.getSite().getPage().getActiveEditor();
-			if (editor != null) {
-				IEditorInput input = editor.getEditorInput();
-				IFile file = ResourceUtil.getFile(input);
-				if (file != null) {
-					if (marker.getResource().equals(file)) {
-						part.getSite().getPage().activate(editor);
-					}
-				}
-			}
-
-			if (marker.getResource() instanceof IFile) {
-				try {
-					IDE.openEditor(part.getSite().getPage(), marker,
-							OpenStrategy.activateOnOpen());
-				} catch (PartInitException e) {
-					// Open an error style dialog for PartInitException by
-					// including any extra information from the nested
-					// CoreException if present.
-
-					// Check for a nested CoreException
-					CoreException nestedException = null;
-					IStatus status = e.getStatus();
-					if (status != null
-							&& status.getException() instanceof CoreException) {
-						nestedException = (CoreException) status.getException();
-					}
-
-					if (nestedException != null) {
-						// Open an error dialog and include the extra
-						// status information from the nested CoreException
-						ErrorDialog.openError(part.getSite().getShell(),
-								MarkerMessages.OpenMarker_errorTitle, e
-										.getMessage(), nestedException
-										.getStatus());
-					} else {
-						// Open a regular error dialog since there is no
-						// extra information to display
-						MessageDialog.openError(part.getSite().getShell(),
-								MarkerMessages.OpenMarker_errorTitle, e
-										.getMessage());
-					}
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionProviderAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IStructuredSelection selection) {
-		setEnabled(Util.allConcreteSelection(selection));
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionPasteMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionPasteMarker.java
deleted file mode 100644
index 61090c9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionPasteMarker.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.views.markers.internal;
-
-import java.util.ArrayList;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-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.ErrorDialog;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.CreateMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-import org.eclipse.ui.part.MarkerTransfer;
-
-/**
- * Pastes one or more bookmark(s) from the clipboard into the bookmark
- * navigator.
- */
-public class ActionPasteMarker extends MarkerSelectionProviderAction {
-
-	private IWorkbenchPart part;
-
-	private Clipboard clipboard;
-
-	private String[] pastableTypes;
-
-	private String markerName;
-
-	/**
-	 * Creates the action.
-	 * 
-	 * @param part
-	 * @param provider
-	 * @param markerName
-	 *            the name used to describe the specific kind of marker being
-	 *            pasted.
-	 */
-	public ActionPasteMarker(IWorkbenchPart part, ISelectionProvider provider,
-			String markerName) {
-		super(provider, MarkerMessages.pasteAction_title);
-		this.part = part;
-		this.pastableTypes = new String[0];
-		this.markerName = markerName;
-		setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-				.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
-		setEnabled(false);
-	}
-
-	void setClipboard(Clipboard clipboard) {
-		this.clipboard = clipboard;
-	}
-
-	/**
-	 * Copies the marker(s) from the clipboard to the bookmark navigator view.
-	 */
-	public void run() {
-		// Get the markers from the clipboard
-		MarkerTransfer transfer = MarkerTransfer.getInstance();
-		IMarker[] markerData = (IMarker[]) clipboard.getContents(transfer);
-		paste(markerData);
-	}
-
-	void paste(final IMarker[] markers) {
-		if (markers == null) {
-			return;
-		}
-
-		final ArrayList newMarkerTypes = new ArrayList();
-		final ArrayList newMarkerAttributes = new ArrayList();
-		final ArrayList newMarkerResources = new ArrayList();
-
-		try {
-			ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					for (int i = 0; i < markers.length; i++) {
-						// Collect info about the markers to be pasted.
-						newMarkerTypes.add(markers[i].getType());
-						newMarkerResources.add(markers[i].getResource());
-						newMarkerAttributes.add(markers[i].getAttributes());
-
-					}
-				}
-			}, null);
-		} catch (CoreException e) {
-			ErrorDialog.openError(part.getSite().getShell(),
-					MarkerMessages.PasteMarker_errorTitle, null, e.getStatus());
-			return;
-		}
-
-		final String[] types = (String[]) newMarkerTypes
-				.toArray(new String[newMarkerTypes.size()]);
-		final Map[] attrs = (Map[]) newMarkerAttributes
-				.toArray(new Map[newMarkerAttributes.size()]);
-		final IResource[] resources = (IResource[]) newMarkerResources
-				.toArray(new IResource[newMarkerResources.size()]);
-		String operationTitle = NLS.bind(MarkerMessages.qualifiedMarkerCommand_title,
-				MarkerMessages.pasteAction_title, markerName);
-		final CreateMarkersOperation op = new CreateMarkersOperation(types,
-				attrs, resources, operationTitle);
-		execute(op, MarkerMessages.PasteMarker_errorTitle, null,
-				WorkspaceUndoUtil.getUIInfoAdapter(part.getSite().getShell()));
-
-		// Need to do this in an asyncExec, even though we're in the UI thread
-		// here,
-		// since the marker view updates itself with the addition in an
-		// asyncExec,
-		// which hasn't been processed yet.
-		// Must be done outside the create marker operation above since
-		// notification for add is
-		// sent after the operation is executed.
-		if (getSelectionProvider() != null && op.getMarkers() != null) {
-			part.getSite().getShell().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					getSelectionProvider().setSelection(
-							new StructuredSelection(op.getMarkers()));
-				}
-			});
-		}
-	}
-
-	void updateEnablement() {
-		setEnabled(false);
-		if (clipboard == null) {
-			return;
-		}
-
-		// Paste if clipboard contains pastable markers
-		MarkerTransfer transfer = MarkerTransfer.getInstance();
-		IMarker[] markerData = (IMarker[]) clipboard.getContents(transfer);
-		if (markerData == null || markerData.length < 1
-				|| pastableTypes == null) {
-			return;
-		}
-		for (int i = 0; i < markerData.length; i++) {
-			try {
-				IMarker marker = markerData[i];
-				if (!marker.exists()) {
-					break;
-				}
-				boolean pastable = false;
-				for (int j = 0; j < pastableTypes.length; j++) {
-					if (marker.isSubtypeOf(pastableTypes[j])) {
-						pastable = true;
-						break;
-					}
-				}
-				if (!pastable) {
-					return;
-				}
-				if (!Util.isEditable(marker)) {
-					return;
-				}
-			} catch (CoreException e) {
-				return;
-			}
-		}
-		setEnabled(true);
-	}
-
-	/**
-	 * @param strings
-	 */
-	void setPastableTypes(String[] strings) {
-		pastableTypes = strings;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionProblemProperties.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionProblemProperties.java
deleted file mode 100644
index be6e631..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionProblemProperties.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.views.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * ActionProblemProperties is the action for opening the properties
- * in the problems view.
- *
- */
-public class ActionProblemProperties extends MarkerSelectionProviderAction {
-
-    private IWorkbenchPart part;
-
-    /**
-     * Create a new instance of the receiver.
-     * @param part
-     * @param provider
-     */
-    public ActionProblemProperties(IWorkbenchPart part,
-            ISelectionProvider provider) {
-        super(provider, MarkerMessages.propertiesAction_title);
-        setEnabled(false);
-        this.part = part;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.Action#run()
-     */
-    public void run() {
- 
-    	IMarker marker = getSelectedMarker();
-        DialogMarkerProperties dialog = new DialogProblemProperties(part
-                .getSite().getShell());
-        dialog.setMarker(marker);
-        dialog.open();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.actions.SelectionProviderAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection)
-     */
-    public void selectionChanged(IStructuredSelection selection) {
-        setEnabled(Util.isSingleConcreteSelection(selection));
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionRemoveMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionRemoveMarker.java
deleted file mode 100644
index ea40564..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionRemoveMarker.java
+++ /dev/null
@@ -1,84 +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.markers.internal;
-
-import java.util.Iterator;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.DeleteMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-
-/**
- * Action to remove the selected bookmarks.
- */
-public class ActionRemoveMarker extends MarkerSelectionProviderAction {
-
-	private IWorkbenchPart part;
-	
-	private String markerName;
-
-	/**
-	 * Creates the action.
-	 * 
-	 * @param part
-	 * @param provider
-	 * @param markerName
-	 *            the name describing the specific kind of marker being removed
-	 */
-	public ActionRemoveMarker(IWorkbenchPart part, ISelectionProvider provider,
-			String markerName) {
-		super(provider, MarkerMessages.deleteAction_title);
-		this.part = part;
-		this.markerName = markerName;
-		setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-				.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
-		setDisabledImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-				.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE_DISABLED));
-		setToolTipText(MarkerMessages.deleteAction_tooltip);
-		setEnabled(false);
-	}
-
-	/**
-	 * Delete the marker selection.
-	 */
-	public void run() {
-		String operationTitle = NLS.bind(MarkerMessages.qualifiedMarkerCommand_title,
-				MarkerMessages.deleteAction_title, markerName);
-		DeleteMarkersOperation op = new DeleteMarkersOperation(
-				getSelectedMarkers(), operationTitle);
-		execute(op, MarkerMessages.RemoveMarker_errorTitle, null,
-				WorkspaceUndoUtil.getUIInfoAdapter(part.getSite().getShell()));
-	}
-
-	public void selectionChanged(IStructuredSelection selection) {
-		setEnabled(false);
-		if (selection == null || selection.isEmpty()) {
-			return;
-		}
-		for (Iterator iterator = selection.iterator(); iterator.hasNext();) {
-			Object obj = iterator.next();
-			if (!(obj instanceof ConcreteMarker)) {
-				return;
-			}
-
-			if (!Util.isEditable(((ConcreteMarker) obj).getMarker())) {
-				return;
-			}
-		}
-		setEnabled(true);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionResolveMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionResolveMarker.java
deleted file mode 100644
index 2484c8e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionResolveMarker.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.views.markers.internal;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-
-/**
- * This action displays a list of resolutions for the selected marker
- * 
- * @since 2.0
- */
-public class ActionResolveMarker extends MarkerSelectionProviderAction {
-
-	private MarkerView view;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param markerView
-	 * @param provider
-	 */
-	public ActionResolveMarker(MarkerView markerView,
-			ISelectionProvider provider) {
-		super(provider, MarkerMessages.resolveMarkerAction_title);
-		setEnabled(false);
-		setImageDescriptor(IDEInternalWorkbenchImages
-				.getImageDescriptor(IDEInternalWorkbenchImages.IMG_ELCL_QUICK_FIX_ENABLED));
-		setDisabledImageDescriptor(IDEInternalWorkbenchImages
-				.getImageDescriptor(IDEInternalWorkbenchImages.IMG_DLCL_QUICK_FIX_DISABLED));
-		view = markerView;
-	}
-
-	/**
-	 * Displays a list of resolutions and performs the selection.
-	 */
-	public void run() {
-
-		IRunnableContext context = new ProgressMonitorDialog(view.getSite()
-				.getShell());
-		final Object[] resolutions = new Object[1];
-
-		IRunnableWithProgress resolutionsRunnable = new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) {
-				monitor.beginTask(NLS.bind(
-						MarkerMessages.resolveMarkerAction_computationAction,
-						getMarkerDescription()), 100);
-				monitor.worked(25);
-				resolutions[0] = IDE.getMarkerHelpRegistry().getResolutions(
-						getSelectedMarker());
-				monitor.done();
-			}
-		};
-
-		Object service = view.getSite().getAdapter(
-				IWorkbenchSiteProgressService.class);
-
-		try {
-			if (service == null) {
-				PlatformUI.getWorkbench().getProgressService().runInUI(context,
-						resolutionsRunnable, null);
-			} else {
-				((IWorkbenchSiteProgressService) service).runInUI(context,
-						resolutionsRunnable, null);
-			}
-		} catch (InvocationTargetException exception) {
-			handleException(exception);
-			return;
-		} catch (InterruptedException exception) {
-			handleException(exception);
-			return;
-		}
-
-		IMarkerResolution[] foundResolutions = (IMarkerResolution[]) resolutions[0];
-		if (foundResolutions.length == 0)
-			MessageDialog
-					.openInformation(
-							view.getSite().getShell(),
-							MarkerMessages.MarkerResolutionDialog_CannotFixTitle,
-							NLS
-									.bind(
-											MarkerMessages.MarkerResolutionDialog_CannotFixMessage,
-											getMarkerDescription()));
-		else {
-			Dialog dialog = new MarkerResolutionDialog(view.getSite()
-					.getShell(), getSelectedMarker(), foundResolutions, view);
-			dialog.open();
-		}
-
-	}
-
-	/**
-	 * Handle the exception.
-	 * 
-	 * @param exception
-	 */
-	private void handleException(Exception exception) {
-		IDEWorkbenchPlugin.log(exception.getLocalizedMessage(), exception);
-		ErrorDialog.openError(view.getSite().getShell(), MarkerMessages.Error,
-				NLS.bind(
-						MarkerMessages.MarkerResolutionDialog_CannotFixMessage,
-						getMarkerDescription()), Util.errorStatus(exception));
-	}
-
-	/**
-	 * Return the description of the marker.
-	 * 
-	 * @return String
-	 */
-	private String getMarkerDescription() {
-		return Util.getProperty(IMarker.MESSAGE, getSelectedMarker());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionProviderAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IStructuredSelection selection) {
-
-		if (Util.isSingleConcreteSelection(selection)) {
-			if (IDE.getMarkerHelpRegistry().hasResolutions(getSelectedMarker())) {
-				setEnabled(true);
-				return;
-			}
-		}
-
-		setEnabled(false);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionRevealMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionRevealMarker.java
deleted file mode 100644
index d8e9071..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionRevealMarker.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.views.markers.internal;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.ResourceUtil;
-
-/**
- * ActionRevealMarker is the action for opening the editor on
- * a marker.
- *
- */
-public class ActionRevealMarker extends MarkerSelectionProviderAction {
-
-	protected IWorkbenchPart part;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * @param part
-	 * @param provider
-	 */
-	public ActionRevealMarker(IWorkbenchPart part, ISelectionProvider provider) {
-		super(provider, Util.EMPTY_STRING); 
-		this.part = part;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		
-		IEditorPart editor = part.getSite().getPage().getActiveEditor();
-		if (editor == null) {
-			return;
-		}
-		IFile file = ResourceUtil.getFile(editor.getEditorInput());
-		if (file != null) {
-			IMarker marker = getSelectedMarker();
-			if (marker.getResource().equals(file)) {
-				try {
-					IDE.openEditor(part.getSite().getPage(),
-							marker, false);
-				} catch (CoreException e) {
-				}
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.SelectionProviderAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IStructuredSelection selection) {
-		setEnabled(Util.isSingleConcreteSelection(selection));
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionSelectAll.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionSelectAll.java
deleted file mode 100644
index 45e1262..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionSelectAll.java
+++ /dev/null
@@ -1,56 +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.markers.internal;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-/**
- * The ActionSelectAll is the action for selecting all 
- * of the entries.
- *
- */
-public class ActionSelectAll extends MarkerSelectionProviderAction {
-
-	private MarkerView view;
-
-	/**
-	 * Create a new instance of the receiver with the supplied
-	 * 
-	 * @param markerView
-	 */
-	public ActionSelectAll(MarkerView markerView) {
-		super(markerView.getViewer(),
-				MarkerMessages.selectAllAction_title);
-		setEnabled(true);
-		view = markerView;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		super.getSelectionProvider().setSelection(
-				new StructuredSelection(view.getCurrentMarkers().asList()));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionProviderAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IStructuredSelection selection) {
-		setEnabled(!selection.isEmpty());
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionTaskProperties.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionTaskProperties.java
deleted file mode 100644
index 836a739..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ActionTaskProperties.java
+++ /dev/null
@@ -1,59 +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.markers.internal;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * ActionTaskProperties is the action for setting a tasks properties.
- * 
- */
-public class ActionTaskProperties extends MarkerSelectionProviderAction {
-
-	private IWorkbenchPart part;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param part
-	 * @param provider
-	 */
-	public ActionTaskProperties(IWorkbenchPart part, ISelectionProvider provider) {
-		super(provider, MarkerMessages.propertiesAction_title);
-		setEnabled(false);
-		this.part = part;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-
-		DialogMarkerProperties dialog = new DialogTaskProperties(part.getSite()
-				.getShell());
-		dialog.setMarker(getSelectedMarker());
-		dialog.open();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.SelectionProviderAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IStructuredSelection selection) {
-		setEnabled(Util.isSingleConcreteSelection(selection));
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/AttributeMarkerGrouping.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/AttributeMarkerGrouping.java
deleted file mode 100644
index 4805e1f..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/AttributeMarkerGrouping.java
+++ /dev/null
@@ -1,83 +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.markers.internal;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * AttributeMarkerGrouping is the configuration element for the
- * markerAttributeGrouping extension.
- * 
- * @since 3.2
- * 
- */
-public class AttributeMarkerGrouping {
-
-	private String attribute;
-
-	private String markerType;
-
-	private String defaultGroupingEntry;
-
-	private IConfigurationElement element;
-
-	/**
-	 * Create a new instance of the receiver for the given attribute on the
-	 * markerType with an optional default grouping.
-	 * 
-	 * @param attributeId
-	 * @param markerId
-	 * @param defaultEntry
-	 * @param configElement
-	 */
-	public AttributeMarkerGrouping(String attributeId, String markerId,
-			String defaultEntry, IConfigurationElement configElement) {
-		attribute = attributeId;
-		markerType = markerId;
-		defaultGroupingEntry = defaultEntry;
-		element = configElement;
-
-	}
-
-	/**
-	 * Return the id of the default grouping.
-	 * @return String or <code>null</code> if it is not defined.
-	 */
-	public String getDefaultGroupingEntry() {
-		return defaultGroupingEntry;
-	}
-
-	/**
-	 * Return the id of the marker type for this type.
-	 * @return String
-	 */
-	public String getMarkerType() {
-		return markerType;
-	}
-
-	/**
-	 * Return the name of the attribute for the receiver.
-	 * @return String
-	 */
-	public String getAttribute() {
-		return attribute;
-	}
-
-	/**
-	 * Return the IConfigurationElement for the receiver.
-	 * @return IConfigurationElement
-	 */
-	public IConfigurationElement getElement() {
-		return element;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkFilter.java
deleted file mode 100644
index c7d5069..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkFilter.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.ui.IMemento;
-
-public class BookmarkFilter extends MarkerFilter {
-
-	private final static String TAG_CONTAINS = "contains"; //$NON-NLS-1$
-
-	private final static String TAG_DESCRIPTION = "description"; //$NON-NLS-1$
-
-	final static boolean DEFAULT_CONTAINS = true;
-
-	final static String DEFAULT_DESCRIPTION = ""; //$NON-NLS-1$
-
-	private boolean contains;
-
-	private String description;
-
-	/**
-	 * Create a new instance of the recevier with the default name.
-	 * 
-	 */
-	public BookmarkFilter() {
-		this(MarkerMessages.MarkerFilter_defaultFilterName);
-	}
-
-	/**
-	 * Create a new instance of the recevier with the filterName
-	 * 
-	 * @param filterName
-	 */
-	public BookmarkFilter(String filterName) {
-		super(filterName, new String[] { IMarker.BOOKMARK });
-	}
-
-	/**
-	 * Returns true iff the given marker is accepted by this filter
-	 */
-	public boolean selectMarker(ConcreteMarker marker) {
-		return !isEnabled()
-				|| (super.selectMarker(marker) && selectByDescription(marker));
-	}
-
-	private boolean selectByDescription(ConcreteMarker marker) {
-		if (description == null || description.equals("")) { //$NON-NLS-1$
-			return true;
-		}
-
-		String markerDescription = marker.getDescription();
-		int index = markerDescription.indexOf(description);
-		return contains ? (index >= 0) : (index < 0);
-	}
-
-	boolean getContains() {
-		return contains;
-	}
-
-	String getDescription() {
-		return description;
-	}
-
-	void setContains(boolean contains) {
-		this.contains = contains;
-	}
-
-	void setDescription(String description) {
-		this.description = description;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#resetState()
-	 */
-	void resetState() {
-		super.resetState();
-		contains = DEFAULT_CONTAINS;
-		description = DEFAULT_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#restoreFilterSettings(org.eclipse.jface.dialogs.IDialogSettings)
-	 */
-	public void restoreFilterSettings(IDialogSettings settings) {
-
-		super.restoreFilterSettings(settings);
-
-		String setting = settings.get(TAG_CONTAINS);
-
-		if (setting != null) {
-			contains = Boolean.valueOf(setting).booleanValue();
-		}
-
-		setting = settings.get(TAG_DESCRIPTION);
-
-		if (setting != null) {
-			description = new String(setting);
-		}
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#restoreFilterSettings(org.eclipse.ui.IMemento)
-	 */
-	protected void restoreFilterSettings(IMemento memento) {
-		super.restoreFilterSettings(memento);
-
-		String setting = memento.getString(TAG_CONTAINS);
-
-		if (setting != null) {
-			contains = Boolean.valueOf(setting).booleanValue();
-		}
-
-		setting = memento.getString(TAG_DESCRIPTION);
-
-		if (setting != null) {
-			description = new String(setting);
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#saveFilterSettings(org.eclipse.ui.IMemento)
-	 */
-	public void saveFilterSettings(IMemento memento) {
-		super.saveFilterSettings(memento);
-		memento.putString(TAG_CONTAINS, String.valueOf(contains));
-		memento.putString(TAG_DESCRIPTION, description);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkMarker.java
deleted file mode 100644
index 8e80d9a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkMarker.java
+++ /dev/null
@@ -1,30 +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.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-
-/**
- * Represents a marker visible in the Bookmarks view. Currently, this adds no additional
- * fields to the ConcreteMarker class. However, if additional fields were added to the
- * bookmark view that are not general to all views, these fields would be added to this
- * class.
- */
-public class BookmarkMarker extends ConcreteMarker {
-
-    /**
-     * @param toCopy
-     */
-    public BookmarkMarker(IMarker toCopy) {
-        super(toCopy);
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkView.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkView.java
deleted file mode 100644
index 477135a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/BookmarkView.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
- *     Tom Schindl <tom.schindl@bestsolution.at> - Fix for
- *     		Bug 154289 [Viewers] - NPE in TreeEditorImpl.activateCellEditor
- *******************************************************************************/
-
-package org.eclipse.ui.views.markers.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.UpdateMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-import org.eclipse.ui.internal.ide.IDEInternalPreferences;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.part.CellEditorActionHandler;
-
-/**
- * The BookmarkView is the marker view for bookmarks.
- *
- */
-public class BookmarkView extends MarkerView {
-
-	private final IField[] HIDDEN_FIELDS = { new FieldCreationTime() };
-
-	private final static String[] ROOT_TYPES = { IMarker.BOOKMARK };
-
-	private final static String[] TABLE_COLUMN_PROPERTIES = {IMarker.MESSAGE,
-		Util.EMPTY_STRING,
-		Util.EMPTY_STRING,
-		Util.EMPTY_STRING
-	};
-
-	private final static String TAG_DIALOG_SECTION = "org.eclipse.ui.views.bookmark"; //$NON-NLS-1$
-
-	private final IField[] VISIBLE_FIELDS = {new FieldMessage(),
-			new FieldResource(), new FieldFolder(), new FieldLineNumber() };
-
-	private ICellModifier cellModifier = new ICellModifier() {
-		/* (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 ConcreteMarker
-					&& IMarker.MESSAGE.equals(property)) {
-				return ((ConcreteMarker) element).getDescription();
-			}
-			return null;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
-		 */
-		public boolean canModify(Object element, String property) {
-			return element instanceof ConcreteMarker && IMarker.MESSAGE.equals(property);
-		}
-
-		/* (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) {
-			if (element instanceof Item) {
-				Item item = (Item) element;
-				Object data = item.getData();
-
-				if (data instanceof ConcreteMarker) {
-					IMarker marker = ((ConcreteMarker) data).getMarker();
-
-					try {
-						if (!marker.getAttribute(property).equals(value)) {
-							if (IMarker.MESSAGE.equals(property)) {
-								Map attrs = new HashMap();
-								attrs.put(IMarker.MESSAGE, value);
-								IUndoableOperation op = new UpdateMarkersOperation(marker, attrs, MarkerMessages.modifyBookmark_title, true);
-						           PlatformUI.getWorkbench().getOperationSupport().getOperationHistory().execute(
-						        		   op, null, WorkspaceUndoUtil.getUIInfoAdapter(getSite().getShell()));
-							}
-						}
-					} catch (ExecutionException e) {
-						IDEWorkbenchPlugin.log(MarkerMessages.errorModifyingBookmark, e); 
-					} catch (CoreException e) {
-						IDEWorkbenchPlugin.log(MarkerMessages.errorModifyingBookmark, e); 
-										
-					}
-				}
-			}
-		}
-	};
-
-	private CellEditorActionHandler cellEditorActionHandler;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		super.createPartControl(parent);
-
-		TreeViewer treeViewer = getViewer();
-		CellEditor cellEditors[] = new CellEditor[treeViewer.getTree()
-				.getColumnCount()];
-		CellEditor descriptionCellEditor = new TextCellEditor(treeViewer
-				.getTree());
-		cellEditors[0] = descriptionCellEditor;
-		treeViewer.setCellEditors(cellEditors);
-		treeViewer.setCellModifier(cellModifier);
-		treeViewer.setColumnProperties(TABLE_COLUMN_PROPERTIES);
-
-		cellEditorActionHandler = new CellEditorActionHandler(getViewSite()
-				.getActionBars());
-		cellEditorActionHandler.addCellEditor(descriptionCellEditor);
-		cellEditorActionHandler.setCopyAction(copyAction);
-		cellEditorActionHandler.setPasteAction(pasteAction);
-		cellEditorActionHandler.setDeleteAction(deleteAction);
-		cellEditorActionHandler.setSelectAllAction(selectAllAction);
-		cellEditorActionHandler.setUndoAction(undoAction);
-		cellEditorActionHandler.setRedoAction(redoAction);
-	}
-
-	public void dispose() {
-		if (cellEditorActionHandler != null) {
-			cellEditorActionHandler.dispose();
-		}
-
-		super.dispose();
-	}
-
-	protected IDialogSettings getDialogSettings() {
-		IDialogSettings workbenchSettings = IDEWorkbenchPlugin.getDefault().getDialogSettings();
-		IDialogSettings settings = workbenchSettings
-				.getSection(TAG_DIALOG_SECTION);
-
-		if (settings == null) {
-			settings = workbenchSettings.addNewSection(TAG_DIALOG_SECTION);
-		}
-
-		return settings;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.TableView#getSortingFields()
-	 */
-	protected IField[] getSortingFields() {
-		IField[] all = new IField[VISIBLE_FIELDS.length + HIDDEN_FIELDS.length];
-		
-		System.arraycopy(VISIBLE_FIELDS, 0, all, 0, VISIBLE_FIELDS.length);
-		System.arraycopy(HIDDEN_FIELDS, 0, all, VISIBLE_FIELDS.length, HIDDEN_FIELDS.length);
-		
-		return all;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.TableView#getAllFields()
-	 */
-	protected IField[] getAllFields() {
-		return getSortingFields();
-	}
-
-	protected String[] getRootTypes() {
-		return ROOT_TYPES;
-	}
-
-
-	public void setSelection(IStructuredSelection structuredSelection,
-			boolean reveal) {
-		// TODO: added because nick doesn't like public API inherited from
-		// internal classes
-		super.setSelection(structuredSelection, reveal);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerTypes()
-	 */
-	protected String[] getMarkerTypes() {
-		return new String[] { IMarker.BOOKMARK };
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#createFiltersDialog()
-	 */
-	protected DialogMarkerFilter createFiltersDialog() {
-
-		MarkerFilter[] filters = getUserFilters();
-		BookmarkFilter[] bookmarkFilters = new BookmarkFilter[filters.length];
-		System.arraycopy(filters, 0, bookmarkFilters, 0, filters.length);
-		return new DialogBookmarkFilter(getSite().getShell(), bookmarkFilters);
-	}
-
-	protected String getStaticContextId() {
-		return PlatformUI.PLUGIN_ID + ".bookmark_view_context"; //$NON-NLS-1$
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#createFilter(java.lang.String)
-	 */
-	protected MarkerFilter createFilter(String name) {
-		return new BookmarkFilter(name);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getSectionTag()
-	 */
-	protected String getSectionTag() {
-		return TAG_DIALOG_SECTION;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#fillContextMenuAdditions(org.eclipse.jface.action.IMenuManager)
-	 */
-	void fillContextMenuAdditions(IMenuManager manager) {
-		//Do nothing in this view
-		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerEnablementPreferenceName()
-	 */
-	String getMarkerEnablementPreferenceName() {
-		return IDEInternalPreferences.LIMIT_BOOKMARKS;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerLimitPreferenceName()
-	 */
-	String getMarkerLimitPreferenceName() {
-		return IDEInternalPreferences.BOOKMARKS_LIMIT;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getFiltersPreferenceName()
-	 */
-	String getFiltersPreferenceName() {
-		return IDEInternalPreferences.BOOKMARKS_FILTERS;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerName()
-	 */
-	protected String getMarkerName() {
-		return MarkerMessages.bookmark_title;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getUndoContext()
-	 */
-	protected IUndoContext getUndoContext() {
-		return WorkspaceUndoUtil.getBookmarksUndoContext();
-	}
-	
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/CategoryComparator.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/CategoryComparator.java
deleted file mode 100644
index 9d5d9c1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/CategoryComparator.java
+++ /dev/null
@@ -1,179 +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.views.markers.internal;
-
-import java.util.Comparator;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-
-/**
- * CategorySorter is the sorter that takes categories and the viewer into
- * account.
- * 
- */
-public class CategoryComparator extends ViewerComparator implements Comparator {
-	TableComparator innerSorter;
-
-	IField categoryField;
-
-	private final String TAG_FIELD = "categoryField"; //$NON-NLS-1$
-
-	/**
-	 * Create a new instance of the receiver wrapping a sorter.
-	 * 
-	 * @param sorter
-	 */
-	CategoryComparator(TableComparator sorter) {
-		innerSorter = sorter;
-	}
-
-	/**
-	 * Compare obj1 and obj starting with field depth.
-	 * 
-	 * @param obj1
-	 * @param obj2
-	 * @param depth
-	 * @param continueSearching
-	 * @return int
-	 * @see ViewerComparator#compare(Viewer, Object, Object)
-	 */
-	int compare(Object obj1, Object obj2, int depth, boolean continueSearching) {
-
-		if (obj1 == null || obj2 == null || !(obj1 instanceof MarkerNode)
-				|| !(obj2 instanceof MarkerNode)) {
-			return 0;
-		}
-
-		MarkerNode marker1;
-		MarkerNode marker2;
-
-		marker1 = (MarkerNode) obj1;
-		marker2 = (MarkerNode) obj2;
-
-		if (categoryField == null) {
-			return innerSorter.compare(marker1, marker2, depth,
-					continueSearching);
-		}
-
-		int result = categoryField.compare(marker1, marker2);
-		if (continueSearching && result == 0) {
-			return innerSorter.compare(marker1, marker2, 0, continueSearching);
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer,
-	 *      java.lang.Object, java.lang.Object)
-	 */
-	public int compare(Viewer viewer, Object e1, Object e2) {
-		return compare(e1, e2, 0, true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-	 */
-	public int compare(Object arg0, Object arg1) {
-		return compare(arg0, arg1, 0, true);
-	}
-
-	/**
-	 * Get the category field.
-	 * 
-	 * @return IField
-	 */
-	public IField getCategoryField() {
-		return categoryField;
-	}
-
-	/**
-	 * Set the field that we are categorizing by.
-	 * 
-	 * @param field
-	 */
-	public void setCategoryField(IField field) {
-		this.categoryField = field;
-	}
-
-	/**
-	 * Set the inner sorter to the new sorter.
-	 * 
-	 * @param sorter2
-	 */
-	public void setTableSorter(TableComparator sorter2) {
-		innerSorter = sorter2;
-
-	}
-
-	/**
-	 * Save the state of the receiver.
-	 * 
-	 * @param dialogSettings
-	 */
-	public void saveState(IDialogSettings dialogSettings) {
-		if (dialogSettings == null) {
-			return;
-		}
-
-		IDialogSettings settings = dialogSettings
-				.getSection(TableComparator.TAG_DIALOG_SECTION);
-		if (settings == null) {
-			settings = dialogSettings
-					.addNewSection(TableComparator.TAG_DIALOG_SECTION);
-		}
-
-		String description = Util.EMPTY_STRING;
-		if (categoryField != null) {
-			description = categoryField.getDescription();
-		}
-
-		settings.put(TAG_FIELD, description);
-
-	}
-
-	/**
-	 * Restore the state of the receiver from the dialog settings.
-	 * 
-	 * @param dialogSettings
-	 * @param view
-	 */
-	public void restoreState(IDialogSettings dialogSettings, ProblemView view) {
-		if (dialogSettings == null) {
-			selectDefaultGrouping(view);
-			return;
-		}
-
-		IDialogSettings settings = dialogSettings
-				.getSection(TableComparator.TAG_DIALOG_SECTION);
-		if (settings == null) {
-			selectDefaultGrouping(view);
-			return;
-		}
-
-		String description = settings.get(TAG_FIELD);
-		view.selectCategory(description, this);
-	}
-
-	/**
-	 * Select the default grouping in the problem view
-	 * @param view
-	 */
-	private void selectDefaultGrouping(ProblemView view) {
-		view.selectCategoryField(MarkerSupportRegistry.getInstance()
-				.getDefaultGroup(), this);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ConcreteMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ConcreteMarker.java
deleted file mode 100644
index 3e923bf..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ConcreteMarker.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import com.ibm.icu.text.CollationKey; 
-import com.ibm.icu.text.Collator; 
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * This is a concrete class that stores the same type of information as the IMarkers
- * used by the IDE. This class exists as an optimization. The various get* methods
- * on IMarker are extremely slow, which makes it very slow to sort markers (for example,
- * in the problems view). This marker class stores the fields in the most efficient form
- * for sorting and display, but necessarily removes some generality from IMarker.
- */
-public class ConcreteMarker extends MarkerNode{
-
-    private String description;
-
-    private String resourceName;
-
-    private String inFolder;
-
-    private CollationKey descriptionKey;
-
-    private CollationKey resourceNameKey;
-
-    private int line;
-    
-    private String locationString;
-
-    private long creationTime;
-
-    private String type;
-
-    private IMarker marker;
-
-    /**
-     * Cache for the marker ID.
-     */
-	private long id = -1L;
-
-	private MarkerNode markerCategory;
-
-	private String shortFolder;
-	
-	private Object group;
-
-	public ConcreteMarker(IMarker toCopy) {
-        marker = toCopy;
-        refresh();
-    }
-
-    /**
-     * Clears any cached information. This frees up some memory, but will slow down
-     * the next comparison operation. It is a good idea to call this on a set of markers
-     * after sorting them, in order to reduce their memory cost. 
-     */
-    public void clearCache() {
-        resourceNameKey = null;
-        descriptionKey = null;
-    }
-
-    /**
-     * Refresh the properties of this marker from the underlying IMarker instance
-     */
-    public void refresh() {
-        clearCache();
-
-        description = Util.getProperty(IMarker.MESSAGE, marker);
-        resourceName = Util.getResourceName(marker);
-        inFolder = Util.getContainerName(marker);
-        shortFolder = null;
-        line = marker.getAttribute(IMarker.LINE_NUMBER, -1);  
-        locationString = marker.getAttribute(IMarker.LOCATION,
-				Util.EMPTY_STRING);
-		
-        try {
-            creationTime = marker.getCreationTime();
-        } catch (CoreException e) {
-            creationTime = 0;
-        }
-
-        try {
-            type = marker.getType();
-        } catch (CoreException e1) {
-            type = Util.EMPTY_STRING; 
-        }
-        
-        // store the marker ID locally
-        id = marker.getId();
-    }
-
-    public IResource getResource() {
-        return marker.getResource();
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.MarkerNode#getDescription()
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    public CollationKey getDescriptionKey() {
-        if (descriptionKey == null) {
-            descriptionKey = Collator.getInstance()
-                    .getCollationKey(description);
-        }
-
-        return descriptionKey;
-    }
-
-    public String getResourceName() {
-        return resourceName;
-    }
-
-    public CollationKey getResourceNameKey() {
-        if (resourceNameKey == null) {
-            resourceNameKey = Collator.getInstance().getCollationKey(
-                    resourceName);
-        }
-        return resourceNameKey;
-    }
-
-    public int getLine() {
-        return line;
-    }
-
-    public String getFolder() {
-        return inFolder;
-    }
-
-    public long getCreationTime() {
-        return creationTime;
-    }
-    
-    /**
-     * The underlying marker ID value.
-     * @return the marker's ID.
-     */
-    public long getId() {
-    	return id;
-    }
-
-    public IMarker getMarker() {
-        return marker;
-    }
-
-    public boolean equals(Object object) {
-        if (!(object instanceof ConcreteMarker)) {
-            return false;
-        }
-
-        ConcreteMarker other = (ConcreteMarker) object;
-
-        return other.getMarker().equals(getMarker());
-    }
-
-    public int hashCode() {
-        return getMarker().hashCode();
-    }
-
-	/**
-	 * Set the category the receiver is in.
-	 * @param category
-	 */
-	public void setCategory(MarkerNode category) {
-		markerCategory = category;
-		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerNode#getChildren()
-	 */
-	public MarkerNode[] getChildren() {
-		return Util.EMPTY_MARKER_ARRAY;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerNode#getParent()
-	 */
-	public MarkerNode getParent() {
-		return markerCategory;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerNode#isConcrete()
-	 */
-	public boolean isConcrete() {
-		return true;
-	}
-
-	/**
-	 * Return the short name for the folder.
-	 * @return String
-	 */
-	public String getShortFolder() {
-		if(shortFolder == null) {
-			shortFolder = Util.getShortContainerName(marker);
-		}
-		return shortFolder;
-	}
-
-
-	/**
-	 * Get the location string. If the {@link IMarker#LOCATION }
-	 * attribute was not set then return an empty String.
-	 * @return String
-	 */
-	public String getLocationString() {
-		return locationString;
-	}
-
-
-	/**
-	 * Get the group for the reciever.
-	 * @return Returns the group.
-	 */
-	public Object getGroup() {
-		return group;
-	}
-
-	/**
-	 * Set the group name.
-	 * @param group the group name
-	 */
-	public void setGroup(Object group) {
-		this.group = group;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerNode#getConcreteRepresentative()
-	 */
-	public ConcreteMarker getConcreteRepresentative() {
-		return this;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DefaultMarkerResourceAdapter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DefaultMarkerResourceAdapter.java
deleted file mode 100644
index f8fc41c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DefaultMarkerResourceAdapter.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.views.markers.internal;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.views.tasklist.ITaskListResourceAdapter;
-
-/**
- * The DefaultMarkerResourceAdapter is the default
- * implementation of the IMarkerResourceAdapter used by the
- * MarkerView for resource adaption.
- */
-class DefaultMarkerResourceAdapter implements ITaskListResourceAdapter {
-
-    private static ITaskListResourceAdapter singleton;
-
-    /**
-     * Constructor for DefaultMarkerResourceAdapter.
-     */
-    DefaultMarkerResourceAdapter() {
-        super();
-    }
-
-    /**
-     * Return the default instance used for MarkerView adapting.
-     */
-    static ITaskListResourceAdapter getDefault() {
-        if (singleton == null) {
-			singleton = new DefaultMarkerResourceAdapter();
-		}
-        return singleton;
-    }
-
-    /**
-     * @see IMarkerResourceAdapter#getAffectedResource(IAdaptable)
-     */
-    public IResource getAffectedResource(IAdaptable adaptable) {
-        IResource resource = (IResource) adaptable.getAdapter(IResource.class);
-
-        if (resource == null) {
-			return (IFile) adaptable.getAdapter(IFile.class);
-		} else {
-			return resource;
-		}
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogBookmarkFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogBookmarkFilter.java
deleted file mode 100644
index 086f987..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogBookmarkFilter.java
+++ /dev/null
@@ -1,207 +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.markers.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * DialogBookmarkFilter is the filter dialog for bookmarks
- * 
- */
-public class DialogBookmarkFilter extends DialogMarkerFilter {
-
-	private DescriptionGroup descriptionGroup;
-
-	private class DescriptionGroup {
-		private Label descriptionLabel;
-
-		private Combo combo;
-
-		private Text description;
-
-		private String contains = MarkerMessages.filtersDialog_contains;
-
-		private String doesNotContain = 
-			MarkerMessages.filtersDialog_doesNotContain;
-
-		/**
-		 * Create a description group.
-		 * 
-		 * @param parent
-		 */
-		public DescriptionGroup(Composite parent) {
-			descriptionLabel = new Label(parent, SWT.NONE);
-			descriptionLabel.setFont(parent.getFont());
-			descriptionLabel.setText(
-				MarkerMessages.filtersDialog_descriptionLabel);
-
-			combo = new Combo(parent, SWT.READ_ONLY);
-			combo.setFont(parent.getFont());
-			combo.add(contains);
-			combo.add(doesNotContain);
-			combo.addSelectionListener(new SelectionAdapter(){
-	        	/* (non-Javadoc)
-	        	 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-	        	 */
-	        	public void widgetSelected(SelectionEvent e) {
-	        		  updateForSelection();
-	        	}
-	          });
-			// Prevent Esc and Return from closing the dialog when the combo is
-			// active.
-			combo.addTraverseListener(new TraverseListener() {
-				public void keyTraversed(TraverseEvent e) {
-					if (e.detail == SWT.TRAVERSE_ESCAPE
-							|| e.detail == SWT.TRAVERSE_RETURN) {
-						e.doit = false;
-					}
-				}
-			});
-
-			description = new Text(parent, SWT.SINGLE | SWT.BORDER);
-			description.setFont(parent.getFont());
-			GridData data = new GridData(GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 3;
-			description.setLayoutData(data);
-			description.addModifyListener(new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					DialogBookmarkFilter.this.markDirty();
-				}
-			});
-		}
-
-		public boolean getContains() {
-			return combo.getSelectionIndex() == combo.indexOf(contains);
-		}
-
-		public void setContains(boolean value) {
-			if (value) {
-				combo.select(combo.indexOf(contains));
-			} else {
-				combo.select(combo.indexOf(doesNotContain));
-			}
-		}
-
-		public void setDescription(String text) {
-			if (text == null) {
-				description.setText(""); //$NON-NLS-1$ 
-			} else {
-				description.setText(text);
-			}
-		}
-
-		public String getDescription() {
-			return description.getText();
-		}
-
-		/**
-		 * Update the enablement based on enabled.
-		 * @param enabled
-		 */
-		public void updateEnablement(boolean enabled) {
-			descriptionLabel.setEnabled(enabled);
-			combo.setEnabled(enabled);
-			description.setEnabled(enabled);
-		}
-	}
-
-	/**
-	 * @param parentShell
-	 * @param filters
-	 */
-	public DialogBookmarkFilter(Shell parentShell, BookmarkFilter[] filters) {
-		super(parentShell, filters);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#createAttributesArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected void createAttributesArea(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setFont(parent.getFont());
-		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		GridLayout layout = new GridLayout(5, false);
-		layout.verticalSpacing = 7;
-		composite.setLayout(layout);
-
-		descriptionGroup = new DescriptionGroup(composite);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#updateFilterFromUI(org.eclipse.ui.views.markers.internal.MarkerFilter)
-	 */
-	protected void updateFilterFromUI(MarkerFilter filter) {
-		super.updateFilterFromUI(filter);
-
-		BookmarkFilter bookmark = (BookmarkFilter) filter;
-		bookmark.setContains(descriptionGroup.getContains());
-		bookmark.setDescription(descriptionGroup.getDescription().trim());
-	
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#updateUIWithFilter(org.eclipse.ui.views.markers.internal.MarkerFilter)
-	 */
-	protected void updateUIWithFilter(MarkerFilter filter) {
-		super.updateUIWithFilter(filter);
-		BookmarkFilter bookmark = (BookmarkFilter) filter;
-		descriptionGroup.setContains(bookmark.getContains());
-		descriptionGroup.setDescription(bookmark.getDescription());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#updateEnabledState(boolean)
-	 */
-	protected void updateEnabledState(boolean enabled) {
-		super.updateEnabledState(enabled);
-		descriptionGroup.updateEnablement(enabled);
-	}
-	
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markerview.FiltersDialog#resetPressed()
-	 */
-	protected void resetPressed() {
-		descriptionGroup.setContains(BookmarkFilter.DEFAULT_CONTAINS);
-		descriptionGroup.setDescription(BookmarkFilter.DEFAULT_DESCRIPTION);
-
-		super.resetPressed();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#newFilter(java.lang.String)
-	 */
-	protected MarkerFilter newFilter(String newName) {
-
-		return new BookmarkFilter(newName);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogMarkerFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogMarkerFilter.java
deleted file mode 100644
index c75136b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogMarkerFilter.java
+++ /dev/null
@@ -1,1478 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-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.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-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.Point;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetSelectionDialog;
-
-/**
- * Dialog which allows user to modify all settings of an
- * org.eclipse.ui.views.MarkerFilter object. Not intended to be subclassed or
- * instantiated by clients.
- */
-public abstract class DialogMarkerFilter extends TrayDialog {
-
-	static final int SELECT_ALL_FILTERS_ID = IDialogConstants.CLIENT_ID + 4;
-
-	static final int DESELECT_ALL_FILTERS_ID = IDialogConstants.CLIENT_ID + 5;
-
-	/**
-	 * button IDs
-	 */
-	static final int RESET_ID = IDialogConstants.CLIENT_ID;
-
-	static final int SELECT_WORKING_SET_ID = IDialogConstants.CLIENT_ID + 1;
-
-	static final int SELECT_ALL_ID = IDialogConstants.CLIENT_ID + 2;
-
-	static final int DESELECT_ALL_ID = IDialogConstants.CLIENT_ID + 3;
-
-	private class TypesLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
-		 *      int)
-		 */
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
-		 *      int)
-		 */
-		public String getColumnText(Object element, int columnIndex) {
-			return ((AbstractNode) element).getName();
-		}
-	}
-
-	/**
-	 * Creates and manages a group of widgets for selecting a working set marker
-	 * filter.
-	 */
-	private class WorkingSetGroup {
-
-		private Button button;
-
-		private Button selectButton;
-
-		/**
-		 * Creates the working set filter selection widgets.
-		 * 
-		 * @param parent
-		 *            the parent composite of the working set widgets
-		 */
-		WorkingSetGroup(Composite parent) {
-			// radio button has to be part of main radio button group
-			button = createRadioButton(parent,
-					MarkerMessages.filtersDialog_noWorkingSet);
-			GridData data = new GridData(GridData.FILL_HORIZONTAL);
-			button.setLayoutData(data);
-
-			Composite composite = new Composite(parent, SWT.NONE);
-			composite.setFont(parent.getFont());
-			GridLayout layout = new GridLayout();
-			Button radio = new Button(parent, SWT.RADIO);
-			layout.marginWidth = radio.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
-			layout.marginHeight = 0;
-			radio.dispose();
-			composite.setLayout(layout);
-			selectButton = createButton(composite, SELECT_WORKING_SET_ID,
-					MarkerMessages.filtersDialog_workingSetSelect, false);
-		}
-
-		/**
-		 * Returns wether or not a working set filter should be used
-		 * 
-		 * @return true=a working set filter should be used false=a working set
-		 *         filter should not be used
-		 */
-		boolean getSelection() {
-			return button.getSelection();
-		}
-
-		/**
-		 * Returns the selected working set filter or null if none is selected.
-		 * 
-		 * @return the selected working set filter or null if none is selected.
-		 */
-		IWorkingSet getWorkingSet() {
-			return (IWorkingSet) button.getData();
-		}
-
-		/**
-		 * Sets the working set filter selection.
-		 * 
-		 * @param selected
-		 *            true=a working set filter should be used false=no working
-		 *            set filter should be used
-		 */
-		void setSelection(boolean selected) {
-			button.setSelection(selected);
-			if (selected) {
-				anyResourceButton.setSelection(false);
-				anyResourceInSameProjectButton.setSelection(false);
-				selectedResourceButton.setSelection(false);
-				selectedResourceAndChildrenButton.setSelection(false);
-			}
-		}
-
-		/**
-		 * Opens the working set selection dialog.
-		 */
-		void selectPressed() {
-			IWorkingSetSelectionDialog dialog = PlatformUI.getWorkbench()
-					.getWorkingSetManager().createWorkingSetSelectionDialog(
-							getShell(), false);
-			IWorkingSet workingSet = getWorkingSet();
-
-			if (workingSet != null) {
-				dialog.setSelection(new IWorkingSet[] { workingSet });
-			}
-			if (dialog.open() == Window.OK) {
-				markDirty();
-				IWorkingSet[] result = dialog.getSelection();
-				if (result != null && result.length > 0) {
-					setWorkingSet(result[0]);
-				} else {
-					setWorkingSet(null);
-				}
-				if (getSelection() == false) {
-					setSelection(true);
-				}
-			}
-		}
-
-		/**
-		 * Sets the specified working set.
-		 * 
-		 * @param workingSet
-		 *            the working set
-		 */
-		void setWorkingSet(IWorkingSet workingSet) {
-			button.setData(workingSet);
-			if (workingSet != null) {
-				button.setText(NLS.bind(
-						MarkerMessages.filtersDialog_workingSet, workingSet
-								.getLabel()));
-			} else {
-				button.setText(MarkerMessages.filtersDialog_noWorkingSet);
-			}
-		}
-
-		void setEnabled(boolean enabled) {
-			button.setEnabled(enabled);
-			selectButton.setEnabled(enabled);
-		}
-	}
-
-	/**
-	 * AbstractNode is the abstract superclass of the node elements for
-	 * MarkerTypes.
-	 * 
-	 */
-	private abstract class AbstractNode {
-
-		/**
-		 * Get the parent element of the receiver.
-		 * 
-		 * @return Object
-		 */
-		public abstract Object getParent();
-
-		/**
-		 * Get the name of the receiver.
-		 * 
-		 * @return String
-		 */
-		public abstract String getName();
-
-		/**
-		 * Return whether or not the receiver has children.
-		 * 
-		 * @return boolean
-		 */
-		public abstract boolean hasChildren();
-
-		/**
-		 * Get the children of the receiver.
-		 * 
-		 * @return Object[]
-		 */
-		public abstract Object[] getChildren();
-
-		/**
-		 * Return whether or not this is a category node.
-		 * 
-		 * @return boolean
-		 */
-		public abstract boolean isCategory();
-
-	}
-
-	/**
-	 * MarkerTypeNode is the wrapper for marker types.
-	 * 
-	 */
-	private class MarkerTypeNode extends AbstractNode {
-
-		MarkerType type;
-
-		MarkerCategory category;
-
-		/**
-		 * Create an instance of the receiver wrapping markerType.
-		 * 
-		 * @param markerType
-		 */
-		public MarkerTypeNode(MarkerType markerType) {
-			type = markerType;
-			nodeToTypeMapping.put(markerType.getId(), this);
-		}
-
-		/**
-		 * Set the category of the receiver.
-		 * 
-		 * @param category
-		 */
-		public void setCategory(MarkerCategory category) {
-			this.category = category;
-		}
-
-		/**
-		 * Get the category for the receiver.
-		 * 
-		 * @return MarkerCategory
-		 */
-		public MarkerCategory getCategory() {
-			return category;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter.AbstractNode#getChildren()
-		 */
-		public Object[] getChildren() {
-			return new Object[0];
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter.AbstractNode#getParent()
-		 */
-		public Object getParent() {
-			return category;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter.AbstractNode#hasChildren()
-		 */
-		public boolean hasChildren() {
-			return false;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter.AbstractNode#getName()
-		 */
-		public String getName() {
-			return type.getLabel();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter.AbstractNode#isCategory()
-		 */
-		public boolean isCategory() {
-			return false;
-		}
-
-		/**
-		 * Return the marker type this is wrapping
-		 * 
-		 * @return Object
-		 */
-		public Object getMarkerType() {
-			return type;
-		}
-	}
-
-	/**
-	 * The MarkerCategory is a data type to represent the categories in the tree
-	 * view.
-	 * 
-	 */
-	private class MarkerCategory extends AbstractNode {
-
-		String name;
-
-		Collection types = new ArrayList();
-
-		/**
-		 * Create a new instance of the receiver with name categoryName.
-		 * 
-		 * @param categoryName
-		 */
-		public MarkerCategory(String categoryName) {
-			name = categoryName;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter.AbstractNode#getName()
-		 */
-		public String getName() {
-			return name;
-		}
-
-		/**
-		 * Add markerType to the list of types.
-		 * 
-		 * @param markerType
-		 */
-		public void add(MarkerTypeNode markerType) {
-			types.add(markerType);
-			markerType.setCategory(this);
-		}
-
-		/**
-		 * Return the marker types contained in the receiver.
-		 * 
-		 * @return Object[]
-		 */
-		public Object[] getMarkerTypes() {
-			return types.toArray();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter.AbstractNode#getChildren()
-		 */
-		public Object[] getChildren() {
-			return getMarkerTypes();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter.AbstractNode#getParent()
-		 */
-		public Object getParent() {
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter.AbstractNode#hasChildren()
-		 */
-		public boolean hasChildren() {
-			return true;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter.AbstractNode#isCategory()
-		 */
-		public boolean isCategory() {
-			return true;
-		}
-
-	}
-
-	private MarkerFilter[] filters;
-
-	private CheckboxTreeViewer typesViewer;
-
-	private Button anyResourceButton;
-
-	private Button anyResourceInSameProjectButton;
-
-	private Button selectedResourceButton;
-
-	private Button selectedResourceAndChildrenButton;
-
-	private Button selectAllButton;
-
-	private Button deselectAllButton;
-
-	private WorkingSetGroup workingSetGroup;
-
-	private boolean dirty = false;
-
-	private CheckboxTableViewer filtersList;
-
-	private MarkerFilter[] selectedFilters;
-
-	private HashMap nodeToTypeMapping = new HashMap();
-
-	private ITreeContentProvider typesContentProvider;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param parentShell
-	 * @param filtersList
-	 */
-	DialogMarkerFilter(Shell parentShell, MarkerFilter[] filtersList) {
-		super(parentShell);
-		setFilters(filtersList);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-	}
-
-	/**
-	 * Set the filters in the filtersList by copying them.
-	 * 
-	 * @param initialFilters
-	 */
-	private void setFilters(MarkerFilter[] initialFilters) {
-		MarkerFilter[] newMarkers = new MarkerFilter[initialFilters.length];
-		for (int i = 0; i < initialFilters.length; i++) {
-			MarkerFilter newFilter;
-			try {
-				newFilter = initialFilters[i].makeClone();
-			} catch (CloneNotSupportedException exception) {
-				ErrorDialog.openError(getShell(),
-						MarkerMessages.MarkerFilterDialog_errorTitle,
-						MarkerMessages.MarkerFilterDialog_failedFilterMessage,
-						Util.errorStatus(exception));
-				return;
-			}
-
-			newMarkers[i] = newFilter;
-
-		}
-		filters = newMarkers;
-
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected void buttonPressed(int buttonId) {
-		
-		switch (buttonId) {
-		case RESET_ID:
-			resetPressed();
-			markDirty();
-			break;
-		case SELECT_WORKING_SET_ID:
-			workingSetGroup.selectPressed();
-			break;
-		case SELECT_ALL_ID:
-			typesViewer.setAllChecked(true);
-			break;
-		case DESELECT_ALL_ID:
-			typesViewer.setAllChecked(false);
-			break;
-		case SELECT_ALL_FILTERS_ID:
-			filtersList.setAllChecked(true);
-			break;
-		case DESELECT_ALL_FILTERS_ID:
-			filtersList.setAllChecked(false);
-			break;
-		default:
-			break;
-		}
-		super.buttonPressed(buttonId);
-	}
-
-	/**
-	 * Method declared on Window.
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText(MarkerMessages.filtersDialog_title);
-	}
-
-	protected void createResetArea(Composite parent) {
-
-		Button reset = new Button(parent, SWT.PUSH);
-		reset.setText(MarkerMessages.restoreDefaults_text);
-		reset.setData(new Integer(RESET_ID));
-
-		reset.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				buttonPressed(((Integer) event.widget.getData()).intValue());
-			}
-		});
-
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END);
-		int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-		Point minSize = reset.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-		data.widthHint = Math.max(widthHint, minSize.x);
-		data.horizontalSpan = 2;
-		reset.setLayoutData(data);
-	}
-
-	/**
-	 * Creates a check box button with the given parent and text.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param text
-	 *            the text for the check box
-	 * @param grabRow
-	 *            <code>true</code>to grab the remaining horizontal space,
-	 *            <code>false</code> otherwise
-	 * @return the check box button
-	 */
-	protected Button createCheckbox(Composite parent, String text,
-			boolean grabRow) {
-		Button button = new Button(parent, SWT.CHECK);
-		if (grabRow) {
-			GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-			button.setLayoutData(gridData);
-		}
-		button.setText(text);
-		button.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateForSelection();
-			}
-		});
-		button.setFont(parent.getFont());
-		return button;
-	}
-
-	/**
-	 * Creates a combo box with the given parent, items, and selection
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param items
-	 *            the items for the combo box
-	 * @param selectionIndex
-	 *            the index of the item to select
-	 * @return the combo box
-	 */
-	protected Combo createCombo(Composite parent, String[] items,
-			int selectionIndex) {
-		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(selectionIndex);
-		combo.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateForSelection();
-			}
-		});
-		return combo;
-	}
-
-	/**
-	 * Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-
-		dialogArea.setLayout(new GridLayout(2, false));
-
-		createFiltersArea(dialogArea);
-
-		Composite selectedComposite = createSelectedFilterArea(dialogArea);
-		selectedComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
-				true));
-		updateUIFromFilter();
-
-		filtersList.setSelection(new StructuredSelection(filters[0]));
-
-		createResetArea(dialogArea);
-		createSeparatorLine(dialogArea);
-		
-		applyDialogFont(dialogArea);
-		return dialogArea;
-	}
-
-	/**
-	 * Create the list in the receiver.
-	 * 
-	 * @param dialogArea
-	 */
-	/**
-	 * @param dialogArea
-	 */
-	void createFiltersArea(Composite dialogArea) {
-
-		Composite listArea = new Composite(dialogArea, SWT.NONE);
-		listArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-		listArea.setLayout(new GridLayout());
-
-		createUserFiltersArea(listArea);
-		createFilterSelectButtons(listArea);
-	}
-
-	/**
-	 * Create the area for the user to select thier filters.
-	 * @param listArea
-	 */
-	void createUserFiltersArea(Composite listArea) {
-		
-		Composite userComposite = new Composite(listArea,SWT.NONE);
-		userComposite.setLayout(new GridLayout(2,false));
-		userComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
-		
-		Label title = new Label(userComposite, SWT.NONE);
-		title.setText(MarkerMessages.MarkerFilter_filtersTitle);
-		GridData titleData = new GridData();
-		titleData.horizontalSpan = 2;
-		title.setLayoutData(titleData);		
-		
-		filtersList = CheckboxTableViewer.newCheckList(userComposite, SWT.BORDER);
-		filtersList.setContentProvider(new IStructuredContentProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				return filters;
-			}
-
-			/*
-			 * (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
-			}
-		});
-
-		filtersList.setLabelProvider(new LabelProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-			 */
-			public String getText(Object element) {
-				return ((MarkerFilter) element).getName();
-			}
-		});
-
-		selectedFilters = new MarkerFilter[] { filters[0] };
-		filtersList.setSelection(new StructuredSelection(selectedFilters));
-
-		filtersList
-				.addSelectionChangedListener(new ISelectionChangedListener() {
-
-					/*
-					 * (non-Javadoc)
-					 * 
-					 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-					 */
-					public void selectionChanged(SelectionChangedEvent event) {
-						updateFilterFromUI();
-						setSelectedFilter(event);
-
-					}
-				});
-
-		filtersList.setInput(this);
-		for (int i = 0; i < filters.length; i++) {
-			filtersList.setChecked(filters[i], filters[i].isEnabled());
-		}
-
-		GridData listData = new GridData(SWT.FILL, SWT.FILL, true, true);
-		listData.widthHint = convertHorizontalDLUsToPixels(100);
-		filtersList.getControl().setLayoutData(listData);
-
-		Composite buttons = new Composite(userComposite, SWT.NONE);
-		GridLayout buttonLayout = new GridLayout();
-		buttonLayout.marginWidth = 0;
-		buttons.setLayout(buttonLayout);
-		GridData buttonsData = new GridData();
-		buttonsData.verticalAlignment = GridData.BEGINNING;
-		buttons.setLayoutData(buttonsData);
-
-		Button addNew = new Button(buttons, SWT.PUSH);
-		addNew.setText(MarkerMessages.MarkerFilter_addFilterName);
-		addNew.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				InputDialog newDialog = new InputDialog(getShell(),
-						MarkerMessages.MarkerFilterDialog_title,
-						MarkerMessages.MarkerFilterDialog_message,
-						MarkerMessages.MarkerFilter_newFilterName,
-						new IInputValidator() {
-							/*
-							 * (non-Javadoc)
-							 * 
-							 * @see org.eclipse.jface.dialogs.IInputValidator#isValid(java.lang.String)
-							 */
-							public String isValid(String newText) {
-								if (newText.length() == 0) {
-									return MarkerMessages.MarkerFilterDialog_emptyMessage;
-								}
-								return null;
-							}
-						});
-				newDialog.open();
-				String newName = newDialog.getValue();
-				if (newName != null) {
-					createNewFilter(newName);
-				}
-			}
-		});
-		setButtonLayoutData(addNew);
-
-		Button remove = new Button(buttons, SWT.PUSH);
-		remove.setText(MarkerMessages.MarkerFilter_deleteSelectedName);
-		remove.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				removeFilters(filtersList.getSelection());
-			}
-		});
-		setButtonLayoutData(remove);
-	}
-
-	/**
-	 * Set the selected filter from event.
-	 * 
-	 * @param event
-	 */
-	protected void setSelectedFilter(SelectionChangedEvent event) {
-
-		ISelection selection = event.getSelection();
-		if (selection instanceof IStructuredSelection) {
-			Collection list = ((IStructuredSelection) selection).toList();
-			MarkerFilter[] selected = new MarkerFilter[list.size()];
-			list.toArray(selected);
-			selectedFilters = selected;
-
-		} else {
-			selectedFilters = new MarkerFilter[0];
-		}
-		updateUIFromFilter();
-
-	}
-
-	/**
-	 * Remove the filters in selection.
-	 * 
-	 * @param selection
-	 */
-	protected void removeFilters(ISelection selection) {
-		if (selection instanceof IStructuredSelection) {
-			List toRemove = ((IStructuredSelection) selection).toList();
-			MarkerFilter[] newFilters = new MarkerFilter[filters.length
-					- toRemove.size()];
-			int index = 0;
-			for (int i = 0; i < filters.length; i++) {
-				if (toRemove.contains(filters[i])) {
-					continue;
-				}
-				newFilters[index] = filters[i];
-				index++;
-			}
-
-			filters = newFilters;
-			filtersList.refresh();
-			updateUIFromFilter();
-		}
-	}
-
-	/**
-	 * Create a new filter called newName.
-	 * 
-	 * @param newName
-	 */
-	private void createNewFilter(String newName) {
-		MarkerFilter[] newFilters = new MarkerFilter[filters.length + 1];
-		System.arraycopy(filters, 0, newFilters, 0, filters.length);
-		MarkerFilter filter = newFilter(newName);
-		newFilters[filters.length] = filter;
-		filters = newFilters;
-		filtersList.refresh();
-		filtersList.setSelection(new StructuredSelection(filter), true);
-		filtersList.getControl().setFocus();
-	}
-
-	/**
-	 * Crate a newFilter called newName
-	 * 
-	 * @param newName
-	 * @return MarkerFilter
-	 */
-	protected abstract MarkerFilter newFilter(String newName);
-
-	/**
-	 * Create the area for the selected filter.
-	 * 
-	 * @param composite
-	 */
-	Composite createSelectedFilterArea(Composite composite) {
-
-		Composite selectedComposite = new Composite(composite, SWT.NONE);
-		selectedComposite.setLayout(new GridLayout(2, false));
-
-		Composite leftComposite = new Composite(selectedComposite, SWT.NONE);
-		leftComposite.setLayout(new GridLayout());
-		leftComposite
-				.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-		createResourceArea(leftComposite);
-		createAttributesArea(leftComposite);
-
-		Composite rightComposite = new Composite(selectedComposite, SWT.NONE);
-		createTypesArea(rightComposite);
-		rightComposite.setLayout(new GridLayout());
-		rightComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
-				true));
-
-
-		return selectedComposite;
-	}
-
-	/**
-	 * Creates a separator line above the OK/Cancel buttons bar
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 */
-	protected void createSeparatorLine(Composite parent) {
-		// Build the separator line
-		Label separator = new Label(parent, SWT.HORIZONTAL | SWT.SEPARATOR);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		separator.setLayoutData(gd);
-	}
-
-	/**
-	 * Creates a radio button with the given parent and text.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param text
-	 *            the text for the check box
-	 * @return the radio box button
-	 */
-	protected Button createRadioButton(Composite parent, String text) {
-		Button button = new Button(parent, SWT.RADIO);
-		button.setText(text);
-		button.setFont(parent.getFont());
-		button.addSelectionListener(new SelectionAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				updateForSelection();
-			}
-		});
-		return button;
-	}
-
-	/**
-	 * Creates the area showing which resources should be considered.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 */
-	protected void createResourceArea(Composite parent) {
-		Composite group = new Composite(parent, SWT.NONE);
-		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		group.setLayout(new GridLayout());
-		group.setFont(parent.getFont());
-		anyResourceButton = createRadioButton(group,
-				MarkerMessages.filtersDialog_anyResource);
-		anyResourceInSameProjectButton = createRadioButton(group,
-				MarkerMessages.filtersDialog_anyResourceInSameProject); // added
-		// by
-		// cagatayk@acm.org
-		selectedResourceButton = createRadioButton(group,
-				MarkerMessages.filtersDialog_selectedResource);
-		selectedResourceAndChildrenButton = createRadioButton(group,
-				MarkerMessages.filtersDialog_selectedAndChildren);
-		workingSetGroup = new WorkingSetGroup(group);
-	}
-
-	/**
-	 * Creates the area showing which marker types should be included.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 */
-	protected void createTypesArea(Composite parent) {
-
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-		GridLayout layout = new GridLayout();
-		composite.setLayout(layout);
-
-		Label label = new Label(composite, SWT.NONE);
-		label.setText(MarkerMessages.filtersDialog_showItemsOfType);
-
-		Tree tree = new Tree(composite, SWT.CHECK | SWT.H_SCROLL | SWT.V_SCROLL
-				| SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);
-		tree.setLinesVisible(true);
-		tree.setHeaderVisible(false);
-		TableLayout tableLayout = new TableLayout();
-		tree.setLayout(tableLayout);
-		tableLayout.addColumnData(new ColumnWeightData(100, true));
-		new TreeColumn(tree, SWT.NONE, 0);
-
-		typesViewer = new CheckboxTreeViewer(tree);
-		GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
-		gridData.widthHint = convertVerticalDLUsToPixels(100);
-		gridData.heightHint = convertVerticalDLUsToPixels(125);
-
-		typesContentProvider = getTypesContentProvider();
-		typesViewer.getControl().setLayoutData(gridData);
-		typesViewer.setContentProvider(typesContentProvider);
-		typesViewer.setLabelProvider(getLabelProvider());
-		typesViewer.setComparator(getComparator());
-		typesViewer.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent event) {
-				markDirty();
-				Object element = event.getElement();
-				boolean checked = event.getChecked();
-				setChildrenChecked(element, checked);
-				setParentCheckState(element, checked);
-			}
-		});
-		typesViewer.setInput(getSelectedFilter().getRootTypes().toArray());
-
-		Composite buttonComposite = new Composite(composite, SWT.NONE);
-		GridLayout buttonLayout = new GridLayout();
-		buttonLayout.marginWidth = 0;
-		buttonComposite.setLayout(buttonLayout);
-		selectAllButton = createButton(buttonComposite, SELECT_ALL_ID,
-				MarkerMessages.filtersDialog_selectAllTypes, false);
-		deselectAllButton = createButton(buttonComposite, DESELECT_ALL_ID,
-				MarkerMessages.filtersDialog_deselectAllTypes, false);
-	}
-
-	/**
-	 * Get the currently selected marker filter if there is only one selection.
-	 * 
-	 * @return MarkerFilter or <code>null</code>.
-	 */
-	protected MarkerFilter getSelectedFilter() {
-
-		if (selectedFilters.length == 1) {
-			return selectedFilters[0];
-		}
-		return null;
-	}
-
-	/**
-	 * Get the content provider for the receiver.
-	 * 
-	 * @return ITreeContentProvider
-	 */
-	private ITreeContentProvider getTypesContentProvider() {
-		return new ITreeContentProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				MarkerFilter selected = getSelectedFilter();
-				if (selected == null) {
-					return new Object[0];
-				}
-
-				return getRootEntries(selected);
-			}
-
-			/*
-			 * (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 ((AbstractNode) parentElement).getChildren();
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-			 */
-			public Object getParent(Object element) {
-				return ((AbstractNode) element).getParent();
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-			 */
-			public boolean hasChildren(Object element) {
-				return ((AbstractNode) element).hasChildren();
-			}
-		};
-	}
-
-	/**
-	 * This method is intended to be overridden by subclasses of FiltersDialog.
-	 * The attributes area will be created just above the Restore Defaults
-	 * button.
-	 * 
-	 * @param parent
-	 *            the parent Composite
-	 */
-	abstract void createAttributesArea(Composite parent);
-
-	private ILabelProvider getLabelProvider() {
-		return new TypesLabelProvider();
-	}
-
-	/**
-	 * Returns the selected marker types.
-	 * 
-	 * @return List the selected marker types
-	 */
-	protected List getSelectedTypes() {
-		Object[] checkElements = typesViewer.getCheckedElements();
-		List selected = new ArrayList();
-		for (int i = 0; i < checkElements.length; i++) {
-			AbstractNode node = (AbstractNode) checkElements[i];
-			if (!node.isCategory()) {
-				selected.add(((MarkerTypeNode) node).getMarkerType());
-			}
-
-		}
-		return selected;
-	}
-
-	/**
-	 * Return the sorter for the receiver.
-	 * 
-	 * @return ViewerSorter
-	 */
-	protected ViewerComparator getComparator() {
-		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 viewer, Object e1, Object e2) {
-				return getComparator().compare(((AbstractNode) e1).getName(),
-						((AbstractNode) e2).getName());
-			}
-		};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-	 */
-	protected void okPressed() {
-		/**
-		 * Updates the filter from the UI state. Must be done here rather than
-		 * by extending open() because after super.open() is called, the
-		 * widgetry is disposed.
-		 */
-		updateFilterFromUI();
-
-		for (int i = 0; i < filters.length; i++) {
-			filters[i].setEnabled(filtersList.getChecked(filters[i]));
-
-		}
-		super.okPressed();
-	}
-
-	/**
-	 * Handles a press of the Reset button. Updates the UI state to correspond
-	 * to a reset filter, but doesn't actually reset our filter.
-	 */
-	protected void resetPressed() {
-		typesViewer.setAllChecked(true);
-		int onResource = MarkerFilter.DEFAULT_ON_RESOURCE;
-		anyResourceButton.setSelection(onResource == MarkerFilter.ON_ANY);
-		anyResourceInSameProjectButton
-				.setSelection(onResource == MarkerFilter.ON_ANY_IN_SAME_CONTAINER);
-		selectedResourceButton
-				.setSelection(onResource == MarkerFilter.ON_SELECTED_ONLY);
-		selectedResourceAndChildrenButton
-				.setSelection(onResource == MarkerFilter.ON_SELECTED_AND_CHILDREN);
-		workingSetGroup.setSelection(onResource == MarkerFilter.ON_WORKING_SET);
-		updateEnabledState(true);
-	}
-
-	/**
-	 * Sets the selected marker types.
-	 * 
-	 * @param markerTypes
-	 */
-	void setSelectedTypes(List markerTypes) {
-		typesViewer.setCheckedElements(new Object[0]);
-		for (int i = 0; i < markerTypes.size(); i++) {
-			Object obj = markerTypes.get(i);
-			if (obj instanceof MarkerType) {
-
-				Object mapping = nodeToTypeMapping.get(((MarkerType) obj)
-						.getId());
-				if (mapping != null) {
-					typesViewer.setChecked(mapping, true);
-					setParentCheckState(mapping, true);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Updates the enabled state of the widgetry based on whether or not it is
-	 * enabled.
-	 */
-	protected void updateEnabledState(boolean enabled) {
-
-		typesViewer.getTree().setEnabled(enabled);
-		selectAllButton.setEnabled(enabled
-				&& typesViewer.getTree().getItemCount() > 0);
-		deselectAllButton.setEnabled(enabled
-				&& typesViewer.getTree().getItemCount() > 0);
-
-		anyResourceButton.setEnabled(enabled);
-		anyResourceInSameProjectButton.setEnabled(enabled);
-		selectedResourceButton.setEnabled(enabled);
-		selectedResourceAndChildrenButton.setEnabled(enabled);
-		workingSetGroup.setEnabled(enabled);
-	}
-
-	/**
-	 * Updates the given filter from the UI state.
-	 */
-	protected final void updateFilterFromUI() {
-
-		MarkerFilter filter = getSelectedFilter();
-
-		if (filter == null) {
-			updateEnabledState(false);
-			return;
-		}
-
-		updateFilterFromUI(filter);
-	}
-
-	/**
-	 * Update the selected filter from the UI.
-	 * 
-	 * @param filter
-	 */
-	protected void updateFilterFromUI(MarkerFilter filter) {
-
-		filter.setSelectedTypes(getSelectedTypes());
-
-		if (selectedResourceButton.getSelection()) {
-			filter.setOnResource(MarkerFilter.ON_SELECTED_ONLY);
-		} else if (selectedResourceAndChildrenButton.getSelection()) {
-			filter.setOnResource(MarkerFilter.ON_SELECTED_AND_CHILDREN);
-		} else if (anyResourceInSameProjectButton.getSelection()) {
-			filter.setOnResource(MarkerFilter.ON_ANY_IN_SAME_CONTAINER);
-		} else if (workingSetGroup.getSelection()) {
-			filter.setOnResource(MarkerFilter.ON_WORKING_SET);
-		} else {
-			filter.setOnResource(MarkerFilter.ON_ANY);
-		}
-
-		filter.setWorkingSet(workingSetGroup.getWorkingSet());
-	}
-
-	/**
-	 * Updates the UI state from the given filter.
-	 */
-	protected final void updateUIFromFilter() {
-
-		MarkerFilter filter = getSelectedFilter();
-
-		if (filter == null) {
-			updateEnabledState(false);
-			return;
-		}
-
-		updateUIWithFilter(filter);
-	}
-
-	/**
-	 * Update the UI with the contents of filter.
-	 * 
-	 * @param filter
-	 */
-	protected void updateUIWithFilter(MarkerFilter filter) {
-		setSelectedTypes(filter.getSelectedTypes());
-
-		int on = filter.getOnResource();
-		anyResourceButton.setSelection(on == MarkerFilter.ON_ANY);
-		anyResourceInSameProjectButton
-				.setSelection(on == MarkerFilter.ON_ANY_IN_SAME_CONTAINER);
-		selectedResourceButton
-				.setSelection(on == MarkerFilter.ON_SELECTED_ONLY);
-		selectedResourceAndChildrenButton
-				.setSelection(on == MarkerFilter.ON_SELECTED_AND_CHILDREN);
-		workingSetGroup.setSelection(on == MarkerFilter.ON_WORKING_SET);
-		workingSetGroup.setWorkingSet(filter.getWorkingSet());
-
-		updateEnabledState(true);
-	}
-
-	/**
-	 * @return <code>true</code> if the dirty flag has been set otherwise
-	 *         <code>false</code>.
-	 */
-	boolean isDirty() {
-		return dirty;
-	}
-
-	/**
-	 * Marks the dialog as dirty.
-	 */
-	void markDirty() {
-		dirty = true;
-	}
-
-	/**
-	 * Set the marker filter.
-	 * 
-	 * @param newFilter
-	 */
-	public void setFilter(MarkerFilter newFilter) {
-		setFilters(new MarkerFilter[] { newFilter });
-		updateUIFromFilter();
-	}
-
-	/**
-	 * @return the MarkerFilters associated with the dialog.
-	 */
-	public MarkerFilter[] getFilters() {
-		return filters;
-	}
-
-	/**
-	 * A selection has occured on one of the checkboxes or combos. Update.
-	 * 
-	 */
-	protected void updateForSelection() {
-		updateEnabledState(true);
-		markDirty();
-	}
-
-	/**
-	 * Get all of the marker types avilable for the filter
-	 * 
-	 * @param selected
-	 * @return Object[]
-	 */
-	Object[] getRootEntries(MarkerFilter selected) {
-
-		List roots = selected.getRootTypes();
-		List markerNodes = new ArrayList();
-		HashMap categories = new HashMap();
-		for (int i = 0; i < roots.size(); i++) {
-			Object obj = roots.get(i);
-			buildTypeTree(markerNodes, obj, categories);
-		}
-		return markerNodes.toArray();
-	}
-
-	/**
-	 * Build the list of types and categories from the supplied object
-	 * 
-	 * @param elements
-	 * @param obj
-	 * @param categories
-	 */
-	private void buildTypeTree(List elements, Object obj, HashMap categories) {
-		if (obj instanceof MarkerType) {
-
-			MarkerType markerType = (MarkerType) obj;
-
-			String categoryName = MarkerSupportRegistry.getInstance()
-					.getCategory(markerType.getId());
-
-			if (categoryName == null) {
-				elements.add(new MarkerTypeNode(markerType));
-			} else {
-				MarkerCategory category;
-				if (categories.containsKey(categoryName)) {
-					category = (MarkerCategory) categories.get(categoryName);
-				} else {
-					category = new MarkerCategory(categoryName);
-					categories.put(categoryName, category);
-					elements.add(category);
-				}
-				MarkerTypeNode node = new MarkerTypeNode(markerType);
-				category.add(node);
-			}
-
-			MarkerType[] subTypes = ((MarkerType) obj).getSubtypes();
-			for (int j = 0; j < subTypes.length; j++) {
-				buildTypeTree(elements, subTypes[j], categories);
-			}
-		}
-	}
-
-	/**
-	 * Grey check the parent if required
-	 * 
-	 * @param element
-	 * @param checked
-	 */
-	private void setParentCheckState(Object element, boolean checked) {
-		Object parent = typesContentProvider.getParent(element);
-		if (parent == null) {
-			return;
-		}
-		Object[] children = typesContentProvider.getChildren(parent);
-		if (children.length == 0) {
-			return;
-		}
-		if (checked) {// at least one is checked
-			for (int i = 0; i < children.length; i++) {
-				Object object = children[i];
-				if (!typesViewer.getChecked(object)) {
-					typesViewer.setGrayChecked(parent, true);
-					return;
-				}
-			}
-			// All checked - check the parent
-			typesViewer.setChecked(parent, true);
-		} else {
-			for (int i = 0; i < children.length; i++) {
-				Object object = children[i];
-				if (typesViewer.getChecked(object)) {
-					typesViewer.setGrayChecked(parent, true);
-					return;
-				}
-			}
-			// All checked - check the parent
-			typesViewer.setChecked(parent, false);
-		}
-
-	}
-
-	/**
-	 * Set the check state of the children of element to checked.
-	 * 
-	 * @param element
-	 * @param checked
-	 */
-	private void setChildrenChecked(Object element, boolean checked) {
-		Object[] children = typesContentProvider.getChildren(element);
-		if (children.length > 0) {
-			for (int i = 0; i < children.length; i++) {
-				typesViewer.setChecked(children[i], checked);
-			}
-		}
-	}
-
-	/**
-	 * Create the buttons for selecting the filters.
-	 * @param listArea
-	 */
-	protected void createFilterSelectButtons(Composite listArea) {
-		Composite buttons = new Composite(listArea, SWT.NONE);
-		GridLayout buttonLayout = new GridLayout(2, false);
-		buttonLayout.marginWidth = 0;
-		buttons.setLayout(buttonLayout);
-	
-		createButton(buttons, SELECT_ALL_FILTERS_ID,
-				MarkerMessages.filtersDialog_selectAll, false);
-		createButton(buttons, DESELECT_ALL_FILTERS_ID,
-				MarkerMessages.filtersDialog_deselectAll, false);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogMarkerProperties.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogMarkerProperties.java
deleted file mode 100644
index 1145dbe..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogMarkerProperties.java
+++ /dev/null
@@ -1,632 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 77332 - [Markers] Add task dialog improvements
- *******************************************************************************/
-
-package org.eclipse.ui.views.markers.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.TrayDialog;
-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.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.CreateMarkersOperation;
-import org.eclipse.ui.ide.undo.UpdateMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * Shows the properties of a new or existing marker
- * 
- * In 3.3, this class was refactored to allow pre-existing public dialog classes
- * to share the implementation.  Note that certain methods are exposed as API
- * in public subclasses, so changes to the methods in this class should be
- * treated carefully as they may affect API methods in subclasses.  The specific
- * methods affected are documented in the method comment.
- */
-public class DialogMarkerProperties extends TrayDialog {
-
-	private static final String DIALOG_SETTINGS_SECTION = "DialogMarkerPropertiesDialogSettings"; //$NON-NLS-1$
-	
-	/**
-	 * The marker being shown, or <code>null</code> for a new marker
-	 */
-	private IMarker marker = null;
-
-	/**
-	 * The resource on which to create a new marker
-	 */
-	private IResource resource = null;
-
-	/**
-	 * The type of marker to be created
-	 */
-	private String type = IMarker.MARKER;
-
-	/**
-	 * The initial attributes to use when creating a new marker
-	 */
-	private Map initialAttributes = null;
-
-	/**
-	 * The text control for the Description field.
-	 */
-	private Text descriptionText;
-
-	/**
-	 * The control for the Creation Time field.
-	 */
-	private Label creationTime;
-
-	/**
-	 * The text control for the Resource field.
-	 */
-	private Text resourceText;
-
-	/**
-	 * The text control for the Folder field.
-	 */
-	private Text folderText;
-
-	/**
-	 * The text control for the Location field.
-	 */
-	private Text locationText;
-
-	/**
-	 * Dirty flag. True if any changes have been made.
-	 */
-	private boolean dirty;
-
-	private String title;
-	
-	/**
-	 * The name used to describe the specific kind of marker.  Used when
-	 * creating an undo command for the dialog, so that a specific name such
-	 * as "Undo Create Task" or "Undo Modify Bookmark" can be used.
-	 */
-	private String markerName;
-
-	/**
-	 * Creates the dialog. By default this dialog creates a new marker. To set
-	 * the resource and initial attributes for the new marker, use
-	 * <code>setResource</code> and <code>setInitialAttributes</code>. To
-	 * show or modify an existing marker, use <code>setMarker</code>.
-	 * 
-	 * @param parentShell
-	 *            the parent shell
-	 */
-	public DialogMarkerProperties(Shell parentShell) {
-		super(parentShell);
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-	}
-
-	/**
-	 * Creates the dialog. By default this dialog creates a new marker. To set
-	 * the resource and initial attributes for the new marker, use
-	 * <code>setResource</code> and <code>setInitialAttributes</code>. To
-	 * show or modify an existing marker, use <code>setMarker</code>.
-	 * 
-	 * @param parentShell
-	 *            the parent shell
-	 * @param title
-	 *            the title of the dialog
-	 */
-	public DialogMarkerProperties(Shell parentShell, String title) {
-		super(parentShell);
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.title = title;
-	}
-	
-	/**
-	 * Creates the dialog. By default this dialog creates a new marker. To set
-	 * the resource and initial attributes for the new marker, use
-	 * <code>setResource</code> and <code>setInitialAttributes</code>. To
-	 * show or modify an existing marker, use <code>setMarker</code>.
-	 * 
-	 * @param parentShell
-	 *            the parent shell
-	 * @param title
-	 *            the title of the dialog
-	 * @param markerName
-	 *            the name used to describe the specific kind of marker shown
-	 *            
-	 * @since 3.3
-	 */
-	public DialogMarkerProperties(Shell parentShell, String title, String markerName) {
-		super(parentShell);
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.title = title;
-		this.markerName = markerName;
-	}
-
-	/**
-     * Sets the marker to show or modify.
-     * <p>IMPORTANT:  Although this class is internal, there are public 
-     * subclasses that expose this method as API.  Changes in 
-     * this implementation should be treated as API changes.
-     * 
-     * @param marker the marker, or <code>null</code> to create a new marker
-     * 
-     * @since 3.3
-	 */
-	public void setMarker(IMarker marker) {
-		this.marker = marker;
-		if (marker != null) {
-			try {
-				type = marker.getType();
-			} catch (CoreException e) {
-			}
-		}
-	}
-
-	/**
-     * Returns the marker being created or modified.
-     * For a new marker, this returns <code>null</code> until
-     * the dialog returns, but is non-null after.
-     * <p>IMPORTANT:  Although this method is protected and the class is 
-     * internal, there are public subclasses that expose this method as API.
-     * Changes in this implementation should be treated as API changes.
-     * 
-     * @return the marker
-     * 
-     * @since 3.3
-	 */
-	protected IMarker getMarker() {
-		return marker;
-	}
-
-	/**
-     * Sets the resource to use when creating a new task.
-     * If not set, the new task is created on the workspace root.
-     * <p>IMPORTANT:  Although this class is internal, there are public 
-     * subclasses that expose this method as API.  Changes in 
-     * this implementation should be treated as API changes.
-     * 
-     * @param resource the resource
-	 */
-	public void setResource(IResource resource) {
-		this.resource = resource;
-	}
-
-	/**
-     * Returns the resource to use when creating a new task,
-     * or <code>null</code> if none has been set.
-     * If not set, the new task is created on the workspace root.
-     * <p>IMPORTANT:  Although this method is protected and the class is 
-     * internal, there are public subclasses that expose this method as API.
-     * Changes in this implementation should be treated as API changes.
-     * 
-     * @return the resource
-     * 
-     * @since 3.3
-	 */
-	protected IResource getResource() {
-		return resource;
-	}
-
-	/**
-     * Sets initial attributes to use when creating a new task.
-     * If not set, the new task is created with default attributes.
-     * <p>IMPORTANT:  Although this method is protected and the class is 
-     * internal, there are public subclasses that expose this method as API.
-     * Changes in this implementation should be treated as API changes.
-     * 
-     * @param initialAttributes the initial attributes
-     * 
-     * @since 3.3
-	 */
-	protected void setInitialAttributes(Map initialAttributes) {
-		this.initialAttributes = initialAttributes;
-	}
-
-	/**
-     * Returns the initial attributes to use when creating a new task,
-     * or <code>null</code> if not set.
-     * If not set, the new task is created with default attributes.
-     * <p>IMPORTANT:  Although this method is protected and the class is 
-     * internal, there are public subclasses that expose this method as API.
-     * Changes in this implementation should be treated as API changes.
-     * 
-     * @return the initial attributes
-     * 
-     * @since 3.3
-	 */
-	protected Map getInitialAttributes() {
-		if (initialAttributes == null) {
-			initialAttributes = new HashMap();
-		}
-		return initialAttributes;
-	}
-
-	/**
-	 * Method declared on Window.
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-        if (title == null) {
-			newShell.setText(MarkerMessages.propertiesDialog_title);
-		} else {
-			newShell.setText(title);
-		}
-    }
-
-	/**
-	 * Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		// initialize resources/properties
-		if (marker != null) {
-			resource = marker.getResource();
-			try {
-				initialAttributes = marker.getAttributes();
-			} catch (CoreException e) {
-			}
-		} else if (resource == null) {
-			resource = ResourcesPlugin.getWorkspace().getRoot();
-		}
-
-        Composite comp = (Composite) super.createDialogArea(parent);
-        Composite composite = new Composite(comp, SWT.NULL);
-        GridLayout layout = new GridLayout(2, false);
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-		composite.setLayout(layout);
-        GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-        composite.setLayoutData(gridData);
-    
-		initializeDialogUnits(composite);
-		createDescriptionArea(composite);
-		if (marker != null) {
-            createSeperator(composite);
-			createCreationTimeArea(composite);
-		}
-		createAttributesArea(composite);
-        if (resource != null) {
-            createSeperator(composite);
-			createResourceArea(composite);
-		}
-		updateDialogFromMarker();
-		updateEnablement();
-        
-        Dialog.applyDialogFont(composite);
-        
-		return composite;
-	}
-
-	/**
-     * Creates a seperator.
-     */
-    protected void createSeperator(Composite parent) {
-		Label seperator = new Label(parent, SWT.NULL);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.horizontalSpan = 2;
-		seperator.setLayoutData(gridData);
-	}
-    
-    /**
-	 * Method createCreationTimeArea.
-	 * @param parent
-	 */
-	private void createCreationTimeArea(Composite parent) {
-        Label label = new Label(parent, SWT.NONE);
-        label.setText(MarkerMessages
-                .propertiesDialog_creationTime_text);
-
-        creationTime = new Label(parent, SWT.NONE);
-	}
-
-	/**
-	 * Creates the OK and Cancel buttons.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL,
-				true);
-		createButton(parent, IDialogConstants.CANCEL_ID,
-				IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	/**
-	 * Creates the area for the Description field.
-	 */
-	private void createDescriptionArea(Composite parent) {
-        Label label = new Label(parent, SWT.NONE);
-        label.setText(MarkerMessages.propertiesDialog_description_text);
-        descriptionText = new Text(parent, (SWT.SINGLE | SWT.BORDER));
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.widthHint = convertHorizontalDLUsToPixels(400);
-		descriptionText.setLayoutData(gridData);
-
-		descriptionText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				markDirty();
-			}
-		});
-	}
-
-	/**
-	 * This method is intended to be overridden by subclasses. The attributes
-	 * area is created between the creation time area and the resource area.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 */
-	protected void createAttributesArea(Composite parent) {
-	}
-
-	/**
-	 * Creates the area for the Resource field.
-	 */
-	private void createResourceArea(Composite parent) {
-        Label resourceLabel = new Label(parent, SWT.NONE);
-		resourceLabel.setText(MarkerMessages.propertiesDialog_resource_text);
-        resourceText = new Text(parent, SWT.SINGLE | SWT.WRAP
-				| SWT.READ_ONLY | SWT.BORDER);
-        GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		resourceText.setLayoutData(gridData);
-
-        Label folderLabel = new Label(parent, SWT.NONE);
-		folderLabel.setText(MarkerMessages.propertiesDialog_folder_text);
-        folderText = new Text(parent, SWT.SINGLE | SWT.WRAP | SWT.READ_ONLY
-				| SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		folderText.setLayoutData(gridData);
-
-        Label locationLabel = new Label(parent, SWT.NONE);
-		locationLabel.setText(MarkerMessages.propertiesDialog_location_text);
-        locationText = new Text(parent, SWT.SINGLE | SWT.WRAP
-				| SWT.READ_ONLY | SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		locationText.setLayoutData(gridData);
-	}
-
-    /**
-     * Updates the dialog from the marker state.
-     */
-    protected void updateDialogFromMarker() {
-        if (marker == null) {
-            updateDialogForNewMarker();
-            return;
-        }
-        descriptionText.setText(Util.getProperty(IMarker.MESSAGE, marker));
-        if (creationTime != null) {
-			creationTime.setText(Util.getCreationTime(marker));
-		}
-        if (resourceText != null) {
-			resourceText.setText(Util.getResourceName(marker));
-		}
-        if (folderText != null) {
-			folderText.setText(Util.getContainerName(marker));
-		}
-        if (locationText != null) {
-            String line = Util.getProperty(IMarker.LINE_NUMBER, marker);
-            if (line.equals("")) { //$NON-NLS-1$
-				locationText.setText(""); //$NON-NLS-1$
-			} else {
-				locationText.setText(NLS.bind(MarkerMessages.label_lineNumber, line));
-			}
-        }
-
-        descriptionText.selectAll();
-    }
-    
-    /**
-     * Updates the dialog from the predefined attributes.
-     */
-    protected void updateDialogForNewMarker() {
-        if (resource != null && resourceText != null && folderText != null) {
-            resourceText.setText(resource.getName());
-
-            IPath path = resource.getFullPath();
-            int n = path.segmentCount() - 1; // n is the number of segments in container, not path
-            if (n > 0) {
-                int len = 0;
-                for (int i = 0; i < n; ++i) {
-					len += path.segment(i).length();
-				}
-                // account for /'s
-                if (n > 1) {
-					len += n - 1;
-				}
-                StringBuffer sb = new StringBuffer(len);
-                for (int i = 0; i < n; ++i) {
-                    if (i != 0) {
-						sb.append('/');
-					}
-                    sb.append(path.segment(i));
-                }
-                folderText.setText(sb.toString());
-            }
-        }
-
-        if (initialAttributes != null) {
-            Object description = initialAttributes.get(IMarker.MESSAGE);
-            if (description != null && description instanceof String) {
-				descriptionText.setText((String) description);
-			}
-            descriptionText.selectAll();
-
-            Object line = initialAttributes.get(IMarker.LINE_NUMBER);
-            if (line != null && line instanceof Integer && locationText != null) {
-				locationText.setText(
-                    NLS.bind(MarkerMessages.label_lineNumber, line));
-			}
-        }
-    }
-    
-	/**
-	 * Method declared on Dialog
-	 */
-	protected void okPressed() {
-		if (marker == null || Util.isEditable(marker)) {
-			saveChanges();
-		}
-		super.okPressed();
-	}
-
-	/**
-	 * Sets the dialog's dirty flag to <code>true</code>
-	 */
-	protected void markDirty() {
-		dirty = true;
-	}
-
-	/**
-	 * @return
-	 * <ul>
-	 * <li><code>true</code> if the dirty flag has been set to true.</li>
-	 * <li><code>false</code> otherwise.</li>
-	 * </ul>
-	 */
-	protected boolean isDirty() {
-		return dirty;
-	}
-
-	/**
-	 * Saves the changes made in the dialog if needed. Creates a new marker if
-	 * needed. Updates the existing marker only if there have been changes.
-	 */
-	private void saveChanges() {
-		Map attrs = getMarkerAttributes();
-		IUndoableOperation op = null;
-		if (marker == null) {
-			if (resource == null)
-				return;
-			op = new CreateMarkersOperation(type, attrs,
-					resource, getCreateOperationTitle()); 
-		} else {
-			if (isDirty()) {
-				op = new UpdateMarkersOperation(marker, attrs,
-						getModifyOperationTitle(), true);
-			}
-		}
-		if (op != null) {
-			try {
-				PlatformUI.getWorkbench()
-						.getOperationSupport()
-						.getOperationHistory().execute(op,
-								null, WorkspaceUndoUtil.getUIInfoAdapter(getShell()));
-			} catch (ExecutionException e) {
-				IDEWorkbenchPlugin.log(e.getMessage(), e);
-			}
-		}
-	}
-
-	/**
-	 * Returns the marker attributes to save back to the marker, based on the
-	 * current dialog fields.
-	 */
-	protected Map getMarkerAttributes() {
-		Map attrs = getInitialAttributes();
-		attrs.put(IMarker.MESSAGE, descriptionText.getText());
-		return attrs;
-	}
-	
-	/**
-	 * Updates widget enablement for the dialog. Should be overridden by
-	 * subclasses.
-	 */
-	protected void updateEnablement() {
-		descriptionText.setEditable(isEditable());
-	}
-
-	/**
-	 * @return
-	 * <ul>
-	 * <li><code>true</code> if the marker is editable or the dialog is
-	 * creating a new marker.</li>
-	 * <li><code>false</code> if the marker is not editable.</li>
-	 * </ul>
-	 */
-	protected boolean isEditable() {
-		if (marker == null) {
-			return true;
-		}
-		return Util.isEditable(marker);
-	}
-
-	/**
-	 * Sets the marker type when creating a new marker.
-	 * 
-	 * @param type
-	 *            the marker type
-	 *            
-	 * @since 3.3 this method is protected.
-	 */
-	protected void setType(String type) {
-		this.type = type;
-	}
-    
-	/* (non-Javadoc)
-     * @see org.eclipse.jface.window.Dialog#getDialogBoundsSettings()
-     * 
-     * @since 3.2
-     */
-	protected IDialogSettings getDialogBoundsSettings() {
-        IDialogSettings settings = IDEWorkbenchPlugin.getDefault().getDialogSettings();
-        IDialogSettings section = settings.getSection(DIALOG_SETTINGS_SECTION);
-        if (section == null) {
-            section = settings.addNewSection(DIALOG_SETTINGS_SECTION);
-        }
-        return section;
-	}
-	
-	/**
-	 * Return the string that describes a modify marker operation.
-	 * Subclasses may override to more specifically describe the marker.
-	 * 
-	 * @since 3.3
-	 */
-	protected String getModifyOperationTitle() {
-		if (markerName == null) {
-			// we don't know what kind of marker is being modified
-			return MarkerMessages.DialogMarkerProperties_ModifyMarker;
-		} 
-		return NLS.bind(MarkerMessages.qualifiedMarkerCommand_title, 
-				MarkerMessages.DialogMarkerProperties_Modify, markerName);
-	}
-	
-	/**
-	 * Return the string that describes a create marker operation.
-	 * Subclasses may override to more specifically describe the marker.
-	 * 
-	 * @since 3.3
-	 */
-	protected String getCreateOperationTitle() {
-		if (markerName == null) {
-			// we don't know what kind of marker is being created
-			return MarkerMessages.DialogMarkerProperties_CreateMarker;
-		}
-		return NLS.bind(MarkerMessages.qualifiedMarkerCommand_title, 
-				MarkerMessages.DialogMarkerProperties_Create, markerName);
-		
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogProblemFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogProblemFilter.java
deleted file mode 100644
index 574580a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogProblemFilter.java
+++ /dev/null
@@ -1,855 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-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.SelectionChangedEvent;
-import org.eclipse.jface.viewers.Viewer;
-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.events.SelectionListener;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-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.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * DialogProblemFilter is the dialog class for problem filters.
- * 
- * @since 3.2
- * 
- */
-public class DialogProblemFilter extends DialogMarkerFilter {
-
-	private DescriptionGroup descriptionGroup;
-
-	private SeverityGroup severityGroup;
-
-	private Composite userFilterComposite;
-
-	private Label systemSettingsLabel;
-
-	private CheckboxTableViewer definedList;
-
-	private class DescriptionGroup {
-		private Label descriptionLabel;
-
-		private Combo combo;
-
-		private Text description;
-
-		private String contains = MarkerMessages.filtersDialog_contains;
-
-		private String doesNotContain = MarkerMessages.filtersDialog_doesNotContain;
-
-		/**
-		 * Create a descriptor group.
-		 * 
-		 * @param parent
-		 */
-		public DescriptionGroup(Composite parent) {
-
-			Composite descriptionComposite = new Composite(parent, SWT.NONE);
-			descriptionComposite.setLayout(new GridLayout(2, false));
-			descriptionComposite.setLayoutData(new GridData(
-					GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
-
-			descriptionLabel = new Label(descriptionComposite, SWT.NONE);
-			descriptionLabel.setFont(parent.getFont());
-			descriptionLabel
-					.setText(MarkerMessages.filtersDialog_descriptionLabel);
-
-			combo = new Combo(descriptionComposite, SWT.READ_ONLY);
-			combo.setFont(parent.getFont());
-			combo.add(contains);
-			combo.add(doesNotContain);
-			combo.addSelectionListener(new SelectionAdapter() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-				 */
-				public void widgetSelected(SelectionEvent e) {
-					updateForSelection();
-				}
-			});
-			// Prevent Esc and Return from closing the dialog when the combo is
-			// active.
-			combo.addTraverseListener(new TraverseListener() {
-				public void keyTraversed(TraverseEvent e) {
-					if (e.detail == SWT.TRAVERSE_ESCAPE
-							|| e.detail == SWT.TRAVERSE_RETURN) {
-						e.doit = false;
-					}
-				}
-			});
-
-			description = new Text(descriptionComposite, SWT.SINGLE
-					| SWT.BORDER);
-			description.setFont(parent.getFont());
-			GridData data = new GridData(GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 2;
-
-			description.setLayoutData(data);
-			description.addModifyListener(new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					DialogProblemFilter.this.markDirty();
-				}
-			});
-		}
-
-		/**
-		 * Get the contains value.
-		 * 
-		 * @return boolean
-		 */
-		public boolean getContains() {
-			return combo.getSelectionIndex() == combo.indexOf(contains);
-		}
-
-		/**
-		 * Return whether or not the contains value is of use.
-		 * 
-		 * @param value
-		 */
-		public void setContains(boolean value) {
-			if (value) {
-				combo.select(combo.indexOf(contains));
-			} else {
-				combo.select(combo.indexOf(doesNotContain));
-			}
-		}
-
-		/**
-		 * Set the description field.
-		 * 
-		 * @param text
-		 */
-		public void setDescription(String text) {
-			if (text == null) {
-				description.setText(""); //$NON-NLS-1$ 
-			} else {
-				description.setText(text);
-			}
-		}
-
-		/**
-		 * Return the text for the description.
-		 * 
-		 * @return String
-		 */
-		public String getDescription() {
-			return description.getText();
-		}
-
-		/**
-		 * Update the enablement state based on whether or not the receiver is
-		 * enabled.
-		 * 
-		 * @param enabled
-		 */
-		public void updateEnablement(boolean enabled) {
-			descriptionLabel.setEnabled(enabled);
-			combo.setEnabled(enabled);
-			description.setEnabled(enabled);
-		}
-	}
-
-	private class SeverityGroup {
-		private Button enablementButton;
-
-		private Button errorButton;
-
-		private Button warningButton;
-
-		private Button infoButton;
-
-		/**
-		 * Create a group for severity.
-		 * 
-		 * @param parent
-		 */
-		public SeverityGroup(Composite parent) {
-
-			Composite severityComposite = new Composite(parent, SWT.NONE);
-			severityComposite.setLayout(new GridLayout(4, false));
-			severityComposite.setLayoutData(new GridData(
-					GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
-
-			SelectionListener listener = new SelectionAdapter() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-				 */
-				public void widgetSelected(SelectionEvent e) {
-					updateEnablement(true);
-					DialogProblemFilter.this.markDirty();
-				}
-			};
-
-			enablementButton = new Button(severityComposite, SWT.CHECK);
-			GridData data = new GridData(GridData.FILL_HORIZONTAL);
-			enablementButton.setLayoutData(data);
-			enablementButton.setFont(parent.getFont());
-			enablementButton
-					.setText(MarkerMessages.filtersDialog_severityLabel);
-			enablementButton.addSelectionListener(listener);
-
-			errorButton = new Button(severityComposite, SWT.CHECK);
-			errorButton.setFont(parent.getFont());
-			errorButton.setText(MarkerMessages.filtersDialog_severityError);
-			errorButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			errorButton.addSelectionListener(new SelectionAdapter() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-				 */
-				public void widgetSelected(SelectionEvent e) {
-					updateForSelection();
-				}
-			});
-
-			warningButton = new Button(severityComposite, SWT.CHECK);
-			warningButton.setFont(parent.getFont());
-			warningButton.setText(MarkerMessages.filtersDialog_severityWarning);
-			warningButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			warningButton.addSelectionListener(new SelectionAdapter() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-				 */
-				public void widgetSelected(SelectionEvent e) {
-					updateForSelection();
-				}
-			});
-
-			infoButton = new Button(severityComposite, SWT.CHECK);
-			infoButton.setFont(parent.getFont());
-			infoButton.setText(MarkerMessages.filtersDialog_severityInfo);
-			infoButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			infoButton.addSelectionListener(new SelectionAdapter() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-				 */
-				public void widgetSelected(SelectionEvent e) {
-					updateForSelection();
-				}
-			});
-		}
-
-		/**
-		 * Return whether or not sort by severity is selected.
-		 * 
-		 * @return boolean
-		 */
-		public boolean isSeveritySelected() {
-			return enablementButton.getSelection();
-		}
-
-		/**
-		 * Set whether or not the enabled button is selected.
-		 * 
-		 * @param enabled
-		 */
-		public void setEnabled(boolean enabled) {
-			enablementButton.setSelection(enabled);
-		}
-
-		/**
-		 * Return whether or not the error button is selected.
-		 * 
-		 * @return boolean
-		 */
-		public boolean isErrorSelected() {
-			return errorButton.getSelection();
-		}
-
-		/**
-		 * Set whether or not the error button is selected.
-		 * 
-		 * @param selected
-		 */
-		public void setErrorSelected(boolean selected) {
-			errorButton.setSelection(selected);
-		}
-
-		/**
-		 * Return whether or not the warning button is selected.
-		 * 
-		 * @return boolean
-		 */
-		public boolean isWarningSelected() {
-			return warningButton.getSelection();
-		}
-
-		/**
-		 * Set whether or not the warning button is selected.
-		 * 
-		 * @param selected
-		 */
-		public void setWarningSelected(boolean selected) {
-			warningButton.setSelection(selected);
-		}
-
-		/**
-		 * Return whether or not the info button is selected.
-		 * 
-		 * @return boolean
-		 */
-		public boolean isInfoSelected() {
-			return infoButton.getSelection();
-		}
-
-		/**
-		 * Set whether or not the erinforor button is selected.
-		 * 
-		 * @param selected
-		 */
-		public void setInfoSelected(boolean selected) {
-			infoButton.setSelection(selected);
-		}
-
-		/**
-		 * Update enablement based on the enabled flag.
-		 * 
-		 * @param enabled
-		 */
-		public void updateEnablement(boolean enabled) {
-
-			boolean showingSeverity = isSeveritySelected();
-			enablementButton.setEnabled(enabled);
-			errorButton.setEnabled(showingSeverity && enabled);
-			warningButton.setEnabled(showingSeverity && enabled);
-			infoButton.setEnabled(showingSeverity && enabled);
-
-		}
-	}
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param parentShell
-	 * @param filters
-	 */
-	public DialogProblemFilter(Shell parentShell, ProblemFilter[] filters) {
-		super(parentShell, filters);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#createAttributesArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected void createAttributesArea(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setFont(parent.getFont());
-		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		GridLayout layout = new GridLayout();
-		composite.setLayout(layout);
-
-		descriptionGroup = new DescriptionGroup(composite);
-		severityGroup = new SeverityGroup(composite);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#updateFilterFromUI(org.eclipse.ui.views.markers.internal.MarkerFilter)
-	 */
-	protected void updateFilterFromUI(MarkerFilter filter) {
-		super.updateFilterFromUI(filter);
-
-		ProblemFilter problemFilter = (ProblemFilter) filter;
-		problemFilter.setContains(descriptionGroup.getContains());
-		problemFilter.setDescription(descriptionGroup.getDescription().trim());
-
-		problemFilter.setSelectBySeverity(severityGroup.isSeveritySelected());
-		int severity = 0;
-		if (severityGroup.isErrorSelected()) {
-			severity = severity | ProblemFilter.SEVERITY_ERROR;
-		}
-		if (severityGroup.isWarningSelected()) {
-			severity = severity | ProblemFilter.SEVERITY_WARNING;
-		}
-		if (severityGroup.isInfoSelected()) {
-			severity = severity | ProblemFilter.SEVERITY_INFO;
-		}
-		problemFilter.setSeverity(severity);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#updateUIWithFilter(org.eclipse.ui.views.markers.internal.MarkerFilter)
-	 */
-	protected void updateUIWithFilter(MarkerFilter filter) {
-
-		ProblemFilter problemFilter = (ProblemFilter) filter;
-		descriptionGroup.setContains(problemFilter.getContains());
-		descriptionGroup.setDescription(problemFilter.getDescription());
-
-		severityGroup.setEnabled(problemFilter.getSelectBySeverity());
-		int severity = problemFilter.getSeverity();
-
-		severityGroup
-				.setErrorSelected((severity & ProblemFilter.SEVERITY_ERROR) > 0);
-		severityGroup
-				.setWarningSelected((severity & ProblemFilter.SEVERITY_WARNING) > 0);
-		severityGroup
-				.setInfoSelected((severity & ProblemFilter.SEVERITY_INFO) > 0);
-
-		super.updateUIWithFilter(filter);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#updateEnabledState(boolean)
-	 */
-	protected void updateEnabledState(boolean enabled) {
-		super.updateEnabledState(enabled);
-		descriptionGroup.updateEnablement(enabled);
-		severityGroup.updateEnablement(enabled);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markerview.FiltersDialog#resetPressed()
-	 */
-	protected void resetPressed() {
-		descriptionGroup.setContains(ProblemFilter.DEFAULT_CONTAINS);
-		descriptionGroup.setDescription(ProblemFilter.DEFAULT_DESCRIPTION);
-
-		severityGroup.setEnabled(ProblemFilter.DEFAULT_SELECT_BY_SEVERITY);
-		severityGroup
-				.setErrorSelected((ProblemFilter.DEFAULT_SEVERITY & ProblemFilter.SEVERITY_ERROR) > 0);
-		severityGroup
-				.setWarningSelected((ProblemFilter.DEFAULT_SEVERITY & ProblemFilter.SEVERITY_WARNING) > 0);
-		severityGroup
-				.setInfoSelected((ProblemFilter.DEFAULT_SEVERITY & ProblemFilter.SEVERITY_INFO) > 0);
-
-		super.resetPressed();
-	}
-
-	protected MarkerFilter newFilter(String newName) {
-		return new ProblemFilter(newName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#createFiltersArea(org.eclipse.swt.widgets.Composite)
-	 */
-	void createFiltersArea(Composite dialogArea) {
-
-		if (MarkerSupportRegistry.getInstance().getRegisteredFilters().size() == 0) {
-			super.createFiltersArea(dialogArea);
-			return;
-		}
-
-		Composite mainComposite = new Composite(dialogArea, SWT.NONE);
-		mainComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,
-				true));
-
-		mainComposite.setLayout(new FormLayout());
-
-		Composite topComposite = new Composite(mainComposite, SWT.NONE);
-		FormData topData = new FormData();
-		topData.top = new FormAttachment(0);
-		topData.left = new FormAttachment(0);
-		topData.right = new FormAttachment(100);
-		topData.bottom = new FormAttachment(50);
-
-		topComposite.setLayoutData(topData);
-		topComposite.setLayout(new GridLayout());
-
-		createUserFiltersArea(topComposite);
-
-		Composite bottomComposite = new Composite(mainComposite, SWT.NONE);
-		FormData bottomData = new FormData();
-		bottomData.top = new FormAttachment(50);
-		bottomData.left = new FormAttachment(0);
-		bottomData.right = new FormAttachment(100);
-		bottomData.bottom = new FormAttachment(100);
-
-		bottomComposite.setLayoutData(bottomData);
-		bottomComposite.setLayout(new GridLayout());
-
-		createRegisteredFilters(bottomComposite);
-		createFilterSelectButtons(bottomComposite);
-
-	}
-
-	/**
-	 * Create a composite for the registered filters.
-	 * 
-	 * @param bottomComposite
-	 */
-	private void createRegisteredFilters(Composite bottomComposite) {
-
-		Composite listArea = new Composite(bottomComposite, SWT.NONE);
-		listArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-		listArea.setLayout(new GridLayout());
-
-		Label title = new Label(listArea, SWT.NONE);
-		title.setText(MarkerMessages.ProblemFilterDialog_System_Filters_Title);
-		definedList = CheckboxTableViewer.newCheckList(listArea, SWT.BORDER);
-		definedList.setContentProvider(new IStructuredContentProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				return MarkerSupportRegistry.getInstance()
-						.getRegisteredFilters().toArray();
-			}
-
-			/*
-			 * (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
-			}
-		});
-
-		definedList.setLabelProvider(new LabelProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-			 */
-			public String getText(Object element) {
-				return ((MarkerFilter) element).getName();
-			}
-		});
-
-		definedList
-				.addSelectionChangedListener(new ISelectionChangedListener() {
-
-					/*
-					 * (non-Javadoc)
-					 * 
-					 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-					 */
-					public void selectionChanged(SelectionChangedEvent event) {
-
-						ISelection selection = event.getSelection();
-						if (selection instanceof IStructuredSelection) {
-							Object selected = ((IStructuredSelection) selection)
-									.getFirstElement();
-							if (selected == null) {
-								systemSettingsLabel.setText(Util.EMPTY_STRING);
-							} else {
-								systemSettingsLabel
-										.setText(getSystemFilterString((ProblemFilter) selected));
-							}
-						} else {
-							systemSettingsLabel.setText(Util.EMPTY_STRING);
-						}
-						showSystemLabel(true);
-
-					}
-				});
-
-		Iterator definedFilters = MarkerSupportRegistry.getInstance()
-				.getRegisteredFilters().iterator();
-		definedList.setInput(this);
-		while (definedFilters.hasNext()) {
-			MarkerFilter next = (MarkerFilter) definedFilters.next();
-			definedList.setChecked(next, next.isEnabled());
-		}
-
-		definedList.getControl().setLayoutData(
-				new GridData(SWT.FILL, SWT.FILL, true, true));
-
-	}
-
-	/**
-	 * Return the string with the details of filter.
-	 * 
-	 * @param filter
-	 * @return String
-	 */
-	protected String getSystemFilterString(ProblemFilter filter) {
-		StringBuffer filterBuffer = new StringBuffer();
-
-		String scopeString = getScopeString(filter);
-		if (scopeString != null) {
-			filterBuffer.append(scopeString);
-		}
-
-		String descriptionString = getDescriptionString(filter);
-		if (descriptionString != null) {
-			filterBuffer.append(Util.TWO_LINE_FEED);
-			filterBuffer.append(descriptionString);
-		}
-
-		String severityString = getSeverityString(filter);
-		if (severityString != null) {
-			filterBuffer.append(Util.TWO_LINE_FEED);
-			filterBuffer.append(severityString);
-		}
-
-		String typesString = getProblemTypesString(filter);
-		filterBuffer.append(Util.TWO_LINE_FEED);
-		filterBuffer.append(typesString);
-
-		return filterBuffer.toString();
-	}
-
-	/**
-	 * Get the problem types String for filter.
-	 * 
-	 * @param filter
-	 * @return String
-	 */
-	private String getProblemTypesString(ProblemFilter filter) {
-		List types = filter.getSelectedTypes();
-		if (types.size() == getRootEntries(filter).length) {
-			return MarkerMessages.ProblemFilterDialog_All_Problems;
-		}
-		StringBuffer typesBuffer = new StringBuffer();
-		Iterator typesIterator = types.iterator();
-		typesBuffer.append(MarkerMessages.ProblemFilterDialog_Selected_Types);
-
-		while (typesIterator.hasNext()) {
-			typesBuffer.append(Util.LINE_FEED_AND_TAB);
-			typesBuffer.append(((MarkerType) typesIterator.next()).getLabel());
-
-		}
-		return typesBuffer.toString();
-	}
-
-	/**
-	 * Return the string for severity if there is one. Otherwise return
-	 * <code>null</code>.
-	 * 
-	 * @param filter
-	 * @return String
-	 */
-	private String getSeverityString(ProblemFilter filter) {
-		if (filter.getSelectBySeverity()) {
-			switch (filter.getSeverity()) {
-			case ProblemFilter.SEVERITY_INFO:
-				return MarkerMessages.ProblemFilterDialog_Info_Severity;
-			case ProblemFilter.SEVERITY_WARNING:
-				return MarkerMessages.ProblemFilterDialog_Warning_Severity;
-			case ProblemFilter.SEVERITY_ERROR:
-				return MarkerMessages.ProblemFilterDialog_Error_Severity;
-			default:
-				return null;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Return the string for the description if there is one. If not return
-	 * <code>null</code>.
-	 * 
-	 * @param filter
-	 * @return String or <code>null</code>.
-	 */
-	private String getDescriptionString(ProblemFilter filter) {
-		if (filter.getDescription().length() == 0) {
-			return null;
-		}
-		if (filter.getContains()) {
-			return NLS.bind(
-					MarkerMessages.ProblemFilterDialog_Contains_Description,
-					filter.getDescription());
-		}
-		return NLS
-				.bind(
-						MarkerMessages.ProblemFilterDialog_Does_Not_Contain_Description,
-						filter.getDescription());
-
-	}
-
-	/**
-	 * Return the string that describes the scope.
-	 * 
-	 * @param filter
-	 * @return String or <code>null</code> if the severity does not match.
-	 */
-	private String getScopeString(ProblemFilter filter) {
-
-		switch (filter.onResource) {
-		case MarkerFilter.ON_ANY:
-			return MarkerMessages.ProblemFilterDialog_any;
-		case MarkerFilter.ON_ANY_IN_SAME_CONTAINER:
-			return MarkerMessages.ProblemFilterDialog_sameContainer;
-		case MarkerFilter.ON_SELECTED_AND_CHILDREN:
-			return MarkerMessages.ProblemFilterDialog_selectedAndChildren;
-		case MarkerFilter.ON_SELECTED_ONLY:
-			return MarkerMessages.ProblemFilterDialog_selected;
-		case MarkerFilter.ON_WORKING_SET:
-			return NLS.bind(MarkerMessages.ProblemFilterDialog_workingSet,
-					filter.getWorkingSet());
-
-		default:
-			return null;
-
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#setSelectedFilter(org.eclipse.jface.viewers.SelectionChangedEvent)
-	 */
-	protected void setSelectedFilter(SelectionChangedEvent event) {
-		showSystemLabel(false);
-		super.setSelectedFilter(event);
-	}
-
-	/**
-	 * Show or hide the system label.
-	 * 
-	 * @param systemLabelShowing
-	 */
-	protected void showSystemLabel(boolean systemLabelShowing) {
-
-		systemSettingsLabel.setVisible(systemLabelShowing);
-		userFilterComposite.setVisible(!systemLabelShowing);
-		userFilterComposite.getParent().layout();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#createSelectedFilterArea(org.eclipse.swt.widgets.Composite)
-	 */
-	Composite createSelectedFilterArea(Composite composite) {
-
-		Composite wrapper = new Composite(composite, SWT.NONE);
-		FormLayout wrapperLayout = new FormLayout();
-		wrapperLayout.marginHeight = 0;
-		wrapperLayout.marginWidth = 0;
-		wrapper.setLayout(wrapperLayout);
-
-		systemSettingsLabel = createSystemSettingsLabel(wrapper);
-		systemSettingsLabel.setVisible(false);
-
-		FormData systemData = new FormData();
-		systemData.top = new FormAttachment(0, IDialogConstants.VERTICAL_MARGIN);
-		systemData.left = new FormAttachment(0,
-				IDialogConstants.HORIZONTAL_MARGIN);
-		systemData.right = new FormAttachment(100, -1
-				* IDialogConstants.HORIZONTAL_MARGIN);
-		systemData.bottom = new FormAttachment(100, -1
-				* IDialogConstants.VERTICAL_MARGIN);
-
-		systemSettingsLabel.setLayoutData(systemData);
-
-		userFilterComposite = super.createSelectedFilterArea(wrapper);
-
-		FormData userData = new FormData();
-		userData.top = new FormAttachment(0);
-		userData.left = new FormAttachment(0);
-		userData.right = new FormAttachment(100);
-		userData.bottom = new FormAttachment(100);
-
-		userFilterComposite.setLayoutData(userData);
-
-		return wrapper;
-	}
-
-	/**
-	 * Create the label for system filters.
-	 * 
-	 * @param wrapper
-	 * @return Label
-	 */
-	private Label createSystemSettingsLabel(Composite wrapper) {
-
-		return new Label(wrapper, SWT.NONE);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#buttonPressed(int)
-	 */
-	protected void buttonPressed(int buttonId) {
-		if (definedList != null) {
-			if (buttonId == SELECT_ALL_FILTERS_ID) {
-				definedList.setAllChecked(true);
-			} else if (buttonId == DESELECT_ALL_FILTERS_ID) {
-				definedList.setAllChecked(false);
-			}
-		}
-
-		super.buttonPressed(buttonId);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#okPressed()
-	 */
-	protected void okPressed() {
-
-		Iterator registered = MarkerSupportRegistry.getInstance()
-				.getRegisteredFilters().iterator();
-		while (registered.hasNext()) {
-			ProblemFilter next = (ProblemFilter) registered.next();
-			next.setEnabled(definedList.getChecked(next));
-
-		}
-		super.okPressed();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogProblemProperties.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogProblemProperties.java
deleted file mode 100644
index 11eee4d..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogProblemProperties.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
- *     Sebastian Davids <sdavids@gmx.de> - bug 77332 - [Markers] Add task dialog improvements
- *******************************************************************************/
-
-package org.eclipse.ui.views.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-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.swt.widgets.Shell;
-
-class DialogProblemProperties extends DialogMarkerProperties {
-
-	private Label severityLabel;
-
-	private Label severityImage;
-
-	DialogProblemProperties(Shell parentShell) {
-		super(parentShell);
-		setType(IMarker.PROBLEM);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markerview.MarkerPropertiesDialog#createAttributesArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected void createAttributesArea(Composite parent) {
-		createSeperator(parent);
-		super.createAttributesArea(parent);
-
-		new Label(parent, SWT.NONE)
-				.setText(MarkerMessages.propertiesDialog_severityLabel);
-
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-
-		severityImage = new Label(composite, SWT.NONE);
-		severityLabel = new Label(composite, SWT.NONE);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markerview.MarkerPropertiesDialog#updateDialogFromMarker()
-	 */
-	protected void updateDialogFromMarker() {
-		super.updateDialogFromMarker();
-		IMarker marker = getMarker();
-		if (marker == null) {
-			return;
-		}
-
-		severityImage.setImage(Util.getImage(marker.getAttribute(
-				IMarker.SEVERITY, -1)));
-		int severity = marker.getAttribute(IMarker.SEVERITY, -1);
-		if (severity == IMarker.SEVERITY_ERROR) {
-			severityLabel.setText(MarkerMessages.propertiesDialog_errorLabel);
-		} else if (severity == IMarker.SEVERITY_WARNING) {
-			severityLabel.setText(MarkerMessages.propertiesDialog_warningLabel);
-		} else if (severity == IMarker.SEVERITY_INFO) {
-			severityLabel.setText(MarkerMessages.propertiesDialog_infoLabel);
-		} else {
-			severityLabel
-					.setText(MarkerMessages.propertiesDialog_noseverityLabel);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogTaskFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogTaskFilter.java
deleted file mode 100644
index e663737..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogTaskFilter.java
+++ /dev/null
@@ -1,466 +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.markers.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-public class DialogTaskFilter extends
-		org.eclipse.ui.views.markers.internal.DialogMarkerFilter {
-
-	private DescriptionGroup descriptionGroup;
-
-	private PriorityGroup priorityGroup;
-
-	private StatusGroup statusGroup;
-
-	private class DescriptionGroup {
-		private Label descriptionLabel;
-
-		private Combo combo;
-
-		private Text description;
-
-		private String contains = MarkerMessages.filtersDialog_contains;
-
-		private String doesNotContain = MarkerMessages.filtersDialog_doesNotContain;
-
-		/**
-		 * Create a new DescriptionGroup.
-		 * 
-		 * @param parent
-		 */
-		public DescriptionGroup(Composite parent) {
-			descriptionLabel = new Label(parent, SWT.NONE);
-			descriptionLabel.setFont(parent.getFont());
-			descriptionLabel.setText(
-				MarkerMessages.filtersDialog_descriptionLabel);
-
-			combo = new Combo(parent, SWT.READ_ONLY);
-			combo.setFont(parent.getFont());
-			combo.add(contains);
-			combo.add(doesNotContain);
-			combo.addSelectionListener(new SelectionAdapter(){
-	        	/* (non-Javadoc)
-	        	 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-	        	 */
-	        	public void widgetSelected(SelectionEvent e) {
-	        		  updateForSelection();
-	        	}
-	          });
-			// Prevent Esc and Return from closing the dialog when the combo is
-			// active.
-			combo.addTraverseListener(new TraverseListener() {
-				public void keyTraversed(TraverseEvent e) {
-					if (e.detail == SWT.TRAVERSE_ESCAPE
-							|| e.detail == SWT.TRAVERSE_RETURN) {
-						e.doit = false;
-					}
-				}
-			});
-
-			description = new Text(parent, SWT.SINGLE | SWT.BORDER);
-			description.setFont(parent.getFont());
-			GridData data = new GridData(GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 3;
-			description.setLayoutData(data);
-			description.addModifyListener(new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					DialogTaskFilter.this.markDirty();
-				}
-			});
-		}
-
-		public boolean getContains() {
-			return combo.getSelectionIndex() == combo.indexOf(contains);
-		}
-
-		public void setContains(boolean value) {
-			if (value) {
-				combo.select(combo.indexOf(contains));
-			} else {
-				combo.select(combo.indexOf(doesNotContain));
-			}
-		}
-
-		public void setDescription(String text) {
-			if (text == null) {
-				description.setText(""); //$NON-NLS-1$ 
-			} else {
-				description.setText(text);
-			}
-		}
-
-		public String getDescription() {
-			return description.getText();
-		}
-
-		/**
-		 * Update the enabled state.
-		 * @param enabled
-		 */
-		public void updateEnablement(boolean enabled) {
-			descriptionLabel.setEnabled(enabled);
-			combo.setEnabled(enabled);
-			description.setEnabled(enabled);
-		}
-	}
-
-	private class PriorityGroup {
-		private Button enablementButton;
-
-		private Button highButton;
-
-		private Button normalButton;
-
-		private Button lowButton;
-
-		/**
-		 * Create a new priority group.
-		 * 
-		 * @param parent
-		 */
-		public PriorityGroup(Composite parent) {
-			SelectionListener listener = new SelectionAdapter() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-				 */
-				public void widgetSelected(SelectionEvent e) {
-					updateEnablement(true);
-					DialogTaskFilter.this.markDirty();
-				}
-			};
-
-			enablementButton = new Button(parent, SWT.CHECK);
-			GridData data = new GridData(GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 2;
-			enablementButton.setLayoutData(data);
-			enablementButton.setFont(parent.getFont());
-			enablementButton.setText(
-					MarkerMessages.filtersDialog_priorityLabel);
-			enablementButton.addSelectionListener(listener);
-
-			highButton = new Button(parent, SWT.CHECK);
-			highButton.setFont(parent.getFont());
-			highButton
-					.setText(MarkerMessages.filtersDialog_priorityHigh);
-			highButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			highButton.addSelectionListener(new SelectionAdapter(){
-	        	/* (non-Javadoc)
-	        	 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-	        	 */
-	        	public void widgetSelected(SelectionEvent e) {
-	        		  updateForSelection();
-	        	}
-	          });
-
-			normalButton = new Button(parent, SWT.CHECK);
-			normalButton.setFont(parent.getFont());
-			normalButton.setText(MarkerMessages.filtersDialog_priorityNormal);
-			normalButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			normalButton.addSelectionListener(new SelectionAdapter(){
-	        	/* (non-Javadoc)
-	        	 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-	        	 */
-	        	public void widgetSelected(SelectionEvent e) {
-	        		  updateForSelection();
-	        	}
-	          });
-
-			lowButton = new Button(parent, SWT.CHECK);
-			lowButton.setFont(parent.getFont());
-			lowButton.setText(MarkerMessages.filtersDialog_priorityLow);
-			lowButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			lowButton.addSelectionListener(new SelectionAdapter(){
-	        	/* (non-Javadoc)
-	        	 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-	        	 */
-	        	public void widgetSelected(SelectionEvent e) {
-	        		  updateForSelection();
-	        	}
-	          });
-		}
-
-		public boolean isPriorityEnabled() {
-			return enablementButton.getSelection();
-		}
-
-		public void setEnabled(boolean enabled) {
-			enablementButton.setSelection(enabled);
-		}
-
-		public boolean isHighSelected() {
-			return highButton.getSelection();
-		}
-
-		public void setHighSelected(boolean selected) {
-			highButton.setSelection(selected);
-		}
-
-		public boolean isNormalSelected() {
-			return normalButton.getSelection();
-		}
-
-		public void setNormalSelected(boolean selected) {
-			normalButton.setSelection(selected);
-		}
-
-		public boolean isLowSelected() {
-			return lowButton.getSelection();
-		}
-
-		public void setLowSelected(boolean selected) {
-			lowButton.setSelection(selected);
-		}
-
-		/**
-		 * Update enablement based on enabled.
-		 * @param enabled
-		 */
-		public void updateEnablement(boolean enabled) {
-			enablementButton.setEnabled(enabled);
-			highButton.setEnabled(enabled && isPriorityEnabled());
-			normalButton
-					.setEnabled(enabled && isPriorityEnabled());
-			lowButton.setEnabled(enabled && isPriorityEnabled());
-		}
-	}
-
-	private class StatusGroup {
-		private Button enablementButton;
-
-		private Button completeButton;
-
-		private Button incompleteButton;
-
-		/**
-		 * Create a new StatusGroup.
-		 * 
-		 * @param parent
-		 */
-		public StatusGroup(Composite parent) {
-			SelectionListener enablementListener = new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					updateEnablement(true);
-					DialogTaskFilter.this.markDirty();
-				}
-			};
-
-			enablementButton = new Button(parent, SWT.CHECK);
-			GridData data = new GridData(GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 2;
-			enablementButton.setLayoutData(data);
-			enablementButton.setFont(parent.getFont());
-			enablementButton.setText(MarkerMessages.filtersDialog_statusLabel);
-			enablementButton.addSelectionListener(enablementListener);
-
-			Composite composite = new Composite(parent, SWT.NONE);
-			composite.setFont(parent.getFont());
-			GridLayout layout = new GridLayout(2, false);
-			layout.marginHeight = 0;
-			layout.marginWidth = 0;
-			composite.setLayout(layout);
-			data = new GridData(GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 3;
-			composite.setLayoutData(data);
-
-			SelectionListener listener = new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					completeButton.setSelection(!incompleteButton
-							.getSelection());
-					incompleteButton.setSelection(!completeButton
-							.getSelection());
-					DialogTaskFilter.this.markDirty();
-				}
-			};
-
-			completeButton = new Button(composite, SWT.RADIO);
-			completeButton.setFont(composite.getFont());
-			completeButton.setText(MarkerMessages.filtersDialog_statusComplete);
-			completeButton.addSelectionListener(listener);
-
-			incompleteButton = new Button(composite, SWT.RADIO);
-			incompleteButton.setFont(composite.getFont());
-			incompleteButton.setText(MarkerMessages.filtersDialog_statusIncomplete);
-			incompleteButton.addSelectionListener(listener);
-		}
-
-		public boolean isStatusEnabled() {
-			return enablementButton.getSelection();
-		}
-
-		public void setEnabled(boolean enabled) {
-			enablementButton.setSelection(enabled);
-		}
-
-		public boolean getDone() {
-			return completeButton.getSelection();
-		}
-
-		public void setDone(boolean done) {
-			completeButton.setSelection(done);
-			incompleteButton.setSelection(!done);
-		}
-
-		/**
-		 * Update the enablement state of the group.
-		 * @param enabled
-		 */
-		public void updateEnablement(boolean enabled) {
-			enablementButton.setEnabled(enabled);
-			completeButton.setEnabled(isStatusEnabled()
-					&& enabled);
-			incompleteButton.setEnabled(isStatusEnabled()
-					&& enabled);
-		}
-	}
-
-	/**
-	 * Create a new instance of the receiver
-	 * 
-	 * @param parentShell
-	 * @param filters
-	 */
-	public DialogTaskFilter(Shell parentShell, TaskFilter[] filters) {
-		super(parentShell, filters);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#createAttributesArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected void createAttributesArea(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setFont(parent.getFont());
-		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		GridLayout layout = new GridLayout(5, false);
-		layout.verticalSpacing = 7;
-		composite.setLayout(layout);
-
-		descriptionGroup = new DescriptionGroup(composite);
-		priorityGroup = new PriorityGroup(composite);
-		statusGroup = new StatusGroup(composite);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#updateFilterFromUI(org.eclipse.ui.views.markers.internal.MarkerFilter)
-	 */
-	protected void updateFilterFromUI(MarkerFilter filter) {
-		super.updateFilterFromUI(filter);
-
-		TaskFilter taskFilter = (TaskFilter)filter;
-		taskFilter.setContains(descriptionGroup.getContains());
-		taskFilter.setDescription(descriptionGroup.getDescription().trim());
-
-		taskFilter.setSelectByPriority(priorityGroup.isPriorityEnabled());
-		int priority = 0;
-		if (priorityGroup.isHighSelected()) {
-			priority = priority | TaskFilter.PRIORITY_HIGH;
-		}
-		if (priorityGroup.isNormalSelected()) {
-			priority = priority | TaskFilter.PRIORITY_NORMAL;
-		}
-		if (priorityGroup.isLowSelected()) {
-			priority = priority | TaskFilter.PRIORITY_LOW;
-		}
-		taskFilter.setPriority(priority);
-
-		taskFilter.setSelectByDone(statusGroup.isStatusEnabled());
-		taskFilter.setDone(statusGroup.getDone());
-	
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#updateUIWithFilter(org.eclipse.ui.views.markers.internal.MarkerFilter)
-	 */
-	protected void updateUIWithFilter(MarkerFilter filter) {
-		TaskFilter taskFilter = (TaskFilter)filter;
-		descriptionGroup.setContains(taskFilter.getContains());
-		descriptionGroup.setDescription(taskFilter.getDescription());
-
-		priorityGroup.setEnabled(taskFilter.getSelectByPriority());
-		int priority = taskFilter.getPriority();
-		priorityGroup
-				.setHighSelected((priority & TaskFilter.PRIORITY_HIGH) > 0);
-		priorityGroup
-				.setNormalSelected((priority & TaskFilter.PRIORITY_NORMAL) > 0);
-		priorityGroup.setLowSelected((priority & TaskFilter.PRIORITY_LOW) > 0);
-
-		statusGroup.setEnabled(taskFilter.getSelectByDone());
-		statusGroup.setDone(taskFilter.getDone());
-		
-		super.updateUIWithFilter(filter);
-
-	
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#updateEnabledState(boolean)
-	 */
-	protected void updateEnabledState(boolean enabled) {
-		super.updateEnabledState(enabled);
-		descriptionGroup.updateEnablement(enabled);
-		priorityGroup.updateEnablement(enabled);
-		statusGroup.updateEnablement(enabled);
-	}
-	
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markerview.FiltersDialog#resetPressed()
-	 */
-	protected void resetPressed() {
-		descriptionGroup.setContains(TaskFilter.DEFAULT_CONTAINS);
-		descriptionGroup.setDescription(TaskFilter.DEFAULT_DESCRIPTION);
-
-		priorityGroup.setEnabled(TaskFilter.DEFAULT_SELECT_BY_PRIORITY);
-		priorityGroup
-				.setHighSelected((TaskFilter.DEFAULT_PRIORITY & TaskFilter.PRIORITY_HIGH) > 0);
-		priorityGroup
-				.setNormalSelected((TaskFilter.DEFAULT_PRIORITY & TaskFilter.PRIORITY_NORMAL) > 0);
-		priorityGroup
-				.setLowSelected((TaskFilter.DEFAULT_PRIORITY & TaskFilter.PRIORITY_NORMAL) > 0);
-
-		statusGroup.setEnabled(TaskFilter.DEFAULT_SELECT_BY_DONE);
-		statusGroup.setDone(TaskFilter.DEFAULT_DONE);
-
-		super.resetPressed();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.DialogMarkerFilter#newFilter(java.lang.String)
-	 */
-	protected MarkerFilter newFilter(String newName) {
-		return new TaskFilter(newName);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogTaskProperties.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogTaskProperties.java
deleted file mode 100644
index caef379..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogTaskProperties.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 77332 - [Markers] Add task dialog improvements
- *******************************************************************************/
-
-package org.eclipse.ui.views.markers.internal;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.swt.SWT;
-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.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.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * DialogTaskProperties is the properties dialog
- * for tasks.
- *
- */
-public class DialogTaskProperties extends DialogMarkerProperties {
-
-    private static final String PRIORITY_HIGH = 
-    	MarkerMessages.propertiesDialog_priorityHigh;
-
-    private static final String PRIORITY_NORMAL = 
-    	MarkerMessages.propertiesDialog_priorityNormal;
-
-    private static final String PRIORITY_LOW = 
-    	MarkerMessages.propertiesDialog_priorityLow;
-
-    protected Combo priorityCombo;
-
-    protected Button completedCheckbox;
-
-    /**
-     * @param parentShell
-     */
-    public DialogTaskProperties(Shell parentShell) {
-        super(parentShell);
-        setType(IMarker.TASK);
-    }
-
-    /**
-     * @param parentShell
-     */
-    DialogTaskProperties(Shell parentShell, String title) {
-        super(parentShell, title);
-        setType(IMarker.TASK);
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.DialogMarkerProperties#createAttributesArea(org.eclipse.swt.widgets.Composite)
-     */
-    protected void createAttributesArea(Composite parent) {
-    	createSeperator(parent);
-        super.createAttributesArea(parent);
-
-        Label label = new Label(parent, SWT.NONE);
-        label.setText(MarkerMessages.propertiesDialog_priority);
-        
-        Composite composite = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        composite.setLayout(layout);
-        
-        priorityCombo = new Combo(composite, SWT.READ_ONLY);
-        priorityCombo.setItems(new String[] { PRIORITY_HIGH, PRIORITY_NORMAL,
-                PRIORITY_LOW });
-        // Prevent Esc and Return from closing the dialog when the combo is active.
-        priorityCombo.addTraverseListener(new TraverseListener() {
-            public void keyTraversed(TraverseEvent e) {
-                if (e.detail == SWT.TRAVERSE_ESCAPE
-                        || e.detail == SWT.TRAVERSE_RETURN) {
-                    e.doit = false;
-                }
-            }
-        });
-        priorityCombo.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                if (getMarker() == null) {
-                    Map initialAttributes = getInitialAttributes();
-                    initialAttributes.put(IMarker.PRIORITY, new Integer(
-                            getPriorityFromDialog()));
-                }
-                markDirty();
-            }
-        });
-
-        completedCheckbox = new Button(composite, SWT.CHECK);
-        completedCheckbox.setText(MarkerMessages.propertiesDialog_completed);
-        GridData gridData = new GridData();
-        gridData.horizontalIndent = convertHorizontalDLUsToPixels(20);
-        completedCheckbox.setLayoutData(gridData);
-        completedCheckbox.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                if (getMarker() == null) {
-                    Map initialAttributes = getInitialAttributes();
-                    initialAttributes.put(IMarker.DONE, completedCheckbox.getSelection() ? Boolean.TRUE : Boolean.FALSE);
-                }
-                markDirty();
-            }
-        });
-    }
-
-    protected boolean getCompleted() {
-        IMarker marker = getMarker();
-        if (marker == null) {
-            Map attributes = getInitialAttributes();
-            Object done = attributes.get(IMarker.DONE);
-            return done != null && done instanceof Boolean
-                    && ((Boolean) done).booleanValue();
-        }
-        return marker.getAttribute(IMarker.DONE, false);
-    }
-
-    protected int getPriority() {
-        IMarker marker = getMarker();
-        int priority = IMarker.PRIORITY_NORMAL;
-        if (marker == null) {
-            Map attributes = getInitialAttributes();
-            Object priorityObj = attributes.get(IMarker.PRIORITY);
-            if (priorityObj != null && priorityObj instanceof Integer) {
-                priority = ((Integer) priorityObj).intValue();
-            }
-        } else {
-            priority = marker.getAttribute(IMarker.PRIORITY,
-                    IMarker.PRIORITY_NORMAL);
-        }
-        return priority;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.DialogMarkerProperties#updateEnablement()
-     */
-    protected void updateEnablement() {
-        super.updateEnablement();
-        priorityCombo.setEnabled(isEditable());
-        completedCheckbox.setEnabled(isEditable());
-    }
-
-    /*
-     * (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.DialogMarkerProperties#updateDialogForNewMarker()
-     */
-    protected void updateDialogForNewMarker() {
-        Map initialAttributes = getInitialAttributes();
-        int priority = getPriority();
-        initialAttributes.put(IMarker.PRIORITY, new Integer(priority));
-        if (priority == IMarker.PRIORITY_HIGH) {
-            priorityCombo.select(priorityCombo.indexOf(PRIORITY_HIGH));
-        } else if (priority == IMarker.PRIORITY_LOW) {
-            priorityCombo.select(priorityCombo.indexOf(PRIORITY_LOW));
-        } else {
-            priorityCombo.select(priorityCombo.indexOf(PRIORITY_NORMAL));
-        }
-        boolean completed = getCompleted();
-        initialAttributes.put(IMarker.DONE, completed ? Boolean.TRUE : Boolean.FALSE);
-        completedCheckbox.setSelection(completed);
-        super.updateDialogForNewMarker();
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.DialogMarkerProperties#updateDialogFromMarker()
-     */
-    protected void updateDialogFromMarker() {
-        Map initialAttributes = getInitialAttributes();
-        int priority = getPriority();
-        initialAttributes.put(IMarker.PRIORITY, new Integer(priority));
-        if (priority == IMarker.PRIORITY_HIGH) {
-            priorityCombo.select(priorityCombo.indexOf(PRIORITY_HIGH));
-        } else if (priority == IMarker.PRIORITY_LOW) {
-            priorityCombo.select(priorityCombo.indexOf(PRIORITY_LOW));
-        } else {
-            priorityCombo.select(priorityCombo.indexOf(PRIORITY_NORMAL));
-        }
-        boolean completed = getCompleted();
-        initialAttributes.put(IMarker.DONE, completed ? Boolean.TRUE : Boolean.FALSE);
-        completedCheckbox.setSelection(completed);
-        super.updateDialogFromMarker();
-    }
-
-    private int getPriorityFromDialog() {
-        int priority = IMarker.PRIORITY_NORMAL;
-        if (priorityCombo.getSelectionIndex() == priorityCombo
-                .indexOf(PRIORITY_HIGH)) {
-            priority = IMarker.PRIORITY_HIGH;
-        } else if (priorityCombo.getSelectionIndex() == priorityCombo
-                .indexOf(PRIORITY_LOW)) {
-            priority = IMarker.PRIORITY_LOW;
-        }
-        return priority;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.DialogMarkerProperties#getMarkerAttributes()
-     */
-    protected Map getMarkerAttributes() {
-        Map attrs = super.getMarkerAttributes();
-        attrs.put(IMarker.PRIORITY, new Integer(getPriorityFromDialog()));
-        attrs.put(IMarker.DONE, completedCheckbox.getSelection() ? Boolean.TRUE : Boolean.FALSE);
-        Object userEditable = attrs.get(IMarker.USER_EDITABLE);
-        if (userEditable == null || !(userEditable instanceof Boolean)) {
-            attrs.put(IMarker.USER_EDITABLE, Boolean.TRUE);
-        }
-        return attrs;
-    }
-    
-	/* (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.DialogMarkerProperties.getModifyOperationTitle()
-     * 
-     * @since 3.3
-     */
-	protected String getModifyOperationTitle() {
-		return MarkerMessages.modifyTask_title;
-	}
-	
-	/* (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.DialogMarkerProperties.getCreateOperationTitle()
-     * 
-     * @since 3.3
-     */
-	protected String getCreateOperationTitle() {
-		return MarkerMessages.DialogTaskProperties_CreateTask;
-		
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldCategory.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldCategory.java
deleted file mode 100644
index c826194..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldCategory.java
+++ /dev/null
@@ -1,132 +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.views.markers.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * FieldCategory is the field for showing categories of markers.
- * 
- */
-public class FieldCategory extends AbstractField {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-	 */
-	public String getDescription() {
-		return MarkerMessages.description_type;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDescriptionImage()
-	 */
-	public Image getDescriptionImage() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderText()
-	 */
-	public String getColumnHeaderText() {
-		return getDescription();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-	 */
-	public Image getColumnHeaderImage() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getValue(java.lang.Object)
-	 */
-	public String getValue(Object obj) {
-
-		if (obj instanceof ConcreteMarker) {
-			ConcreteMarker marker = (ConcreteMarker) obj;
-
-			if (marker.getGroup() == null) {
-				if (!marker.getMarker().exists())
-					return MarkerMessages.FieldCategory_Uncategorized;
-				String groupName = MarkerSupportRegistry.getInstance()
-						.getCategory(marker.getMarker());
-				if (groupName == null) {
-
-					String typeId;
-					try {
-						typeId = marker.getMarker().getType();
-					} catch (CoreException e) {
-						Util.log(e);
-						return MarkerMessages.FieldCategory_Uncategorized;
-					}
-					MarkerType type = MarkerTypesModel.getInstance().getType(
-							typeId);
-					groupName = type.getLabel();
-				}
-				marker.setGroup(groupName);
-			}
-
-			return (String) marker.getGroup();
-
-		}
-		return Util.EMPTY_STRING;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object obj) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-	public int compare(Object obj1, Object obj2) {
-		return getValue(obj1).compareTo(getValue(obj2));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDefaultDirection()
-	 */
-	public int getDefaultDirection() {
-		return TableComparator.ASCENDING;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getPreferredWidth()
-	 */
-	public int getPreferredWidth() {
-		return 200;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldCreationTime.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldCreationTime.java
deleted file mode 100644
index 0fdf207..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldCreationTime.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Creation time field. Designed to display and compare creation times of IMarker objects.
- */
-public class FieldCreationTime extends AbstractField {
-
-    private String description;
-
-    private Image image;
-
-    /**
-     * The constructor
-     */
-    public FieldCreationTime() {
-        description = MarkerMessages.description_creationTime;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescriptionImage()
-     */
-    public Image getDescriptionImage() {
-        return image;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderText()
-     */
-    public String getColumnHeaderText() {
-        return description;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-     */
-    public Image getColumnHeaderImage() {
-        return image;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getValue(java.lang.Object)
-     */
-    public String getValue(Object obj) {
-        if (obj == null || !(obj instanceof ConcreteMarker)) {
-            return ""; //$NON-NLS-1$
-        }
-        ConcreteMarker marker = (ConcreteMarker) obj;
-        return String.valueOf(marker.getCreationTime());
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-     */
-    public Image getImage(Object obj) {
-        return null;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object, java.lang.Object)
-     */
-    public int compare(Object obj1, Object obj2) {
-        if (obj1 == null || obj2 == null || !(obj1 instanceof ConcreteMarker)
-                || !(obj2 instanceof ConcreteMarker)) {
-            return 0;
-        }
-
-        ConcreteMarker marker1 = (ConcreteMarker) obj1;
-        ConcreteMarker marker2 = (ConcreteMarker) obj2;
-
-        long value = marker1.getCreationTime() - marker2.getCreationTime();
-        if (value < 0) {
-            return -1;
-        } else if (value > 0) {
-            return 1;
-        } else {
-			return 0;
-		}
-    }
-    
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDefaultDirection()
-	 */
-	public int getDefaultDirection() {
-		return TableComparator.ASCENDING;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getPreferredWidth()
-	 */
-	public int getPreferredWidth() {
-		return 0;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldDone.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldDone.java
deleted file mode 100644
index f5856d5..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldDone.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.views.markers.internal;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * FieldDone is the field for the done marker in tasks.
- *
- */
-public class FieldDone extends AbstractField {
-
-	static final String DESCRIPTION_IMAGE_PATH = "obj16/header_complete.gif"; //$NON-NLS-1$
-
-	static final String COMPLETE_IMAGE_PATH = "obj16/complete_tsk.gif"; //$NON-NLS-1$
-
-	static final String INCOMPLETE_IMAGE_PATH = "obj16/incomplete_tsk.gif"; //$NON-NLS-1$
-
-	private String description = MarkerMessages.completion_description;
-
-
-	/**
-	 * Create a new instance of the receiver
-	 *
-	 */
-	public FieldDone() {
-		
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDescriptionImage()
-	 */
-	public Image getDescriptionImage() {
-		return getImage(DESCRIPTION_IMAGE_PATH);
-	}
-	
-	/**
-	 * Get the image at path.
-	 * @param path
-	 * @return Image
-	 */
-	private Image getImage(String path){
-		return JFaceResources.getResources().createImageWithDefault(
-				IDEWorkbenchPlugin
-						.getIDEImageDescriptor(path));
-		
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderText()
-	 */
-	public String getColumnHeaderText() {
-		return ""; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-	 */
-	public Image getColumnHeaderImage() {
-		return getImage(DESCRIPTION_IMAGE_PATH);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getValue(java.lang.Object)
-	 */
-	public String getValue(Object obj) {
-		return ""; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object obj) {
-		if (obj == null || !(obj instanceof TaskMarker)) {
-			return null;
-		}
-		TaskMarker marker = (TaskMarker) obj;
-		int done = marker.getDone();
-		if (done == -1) {
-			return null;
-		}
-		if (done == 1) {
-			return getImage(COMPLETE_IMAGE_PATH);
-		}
-		return getImage(INCOMPLETE_IMAGE_PATH);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-	public int compare(Object obj1, Object obj2) {
-		if (obj1 == null || obj2 == null || !(obj1 instanceof TaskMarker)
-				|| !(obj2 instanceof TaskMarker)) {
-			return 0;
-		}
-		TaskMarker marker1 = (TaskMarker) obj1;
-		TaskMarker marker2 = (TaskMarker) obj2;
-		int value1 = marker1.getDone();
-		int value2 = marker2.getDone();
-		return value1 - value2;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDefaultDirection()
-	 */
-	public int getDefaultDirection() {
-		return TableComparator.ASCENDING;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getPreferredWidth()
-	 */
-	public int getPreferredWidth() {
-		return 40;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldDummy.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldDummy.java
deleted file mode 100644
index eaa4809..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldDummy.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * FieldDummy is a dummy field used to eat up the column of the tree
- * which has layout issues,
- * @since 3.2
- *
- */
-public class FieldDummy extends AbstractField implements IField {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-	 */
-	public String getDescription() {
-		return Util.EMPTY_STRING;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDescriptionImage()
-	 */
-	public Image getDescriptionImage() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderText()
-	 */
-	public String getColumnHeaderText() {
-		return Util.EMPTY_STRING;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-	 */
-	public Image getColumnHeaderImage() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getValue(java.lang.Object)
-	 */
-	public String getValue(Object obj) {
-		return Util.EMPTY_STRING;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object obj) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object, java.lang.Object)
-	 */
-	public int compare(Object obj1, Object obj2) {
-		return 0;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDefaultDirection()
-	 */
-	public int getDefaultDirection() {
-		return TableComparator.ASCENDING;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getPreferredWidth()
-	 */
-	public int getPreferredWidth() {
-		return 0;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldFolder.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldFolder.java
deleted file mode 100644
index 37ed8b3..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldFolder.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.ui.views.markers.internal;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Folder field. Designed to display and compare the names of the folders that contain
- * IMarker objects.
- */
-public class FieldFolder extends AbstractField {
-
-    /**
-     * Create a new instance of the receiver.
-     */
-    public FieldFolder() {
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-     */
-    public String getDescription() {
-        return MarkerMessages.description_folder;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescriptionImage()
-     */
-    public Image getDescriptionImage() {
-        return null;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderText()
-     */
-    public String getColumnHeaderText() {
-        return MarkerMessages.description_folder;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-     */
-    public Image getColumnHeaderImage() {
-        return null;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getValue(java.lang.Object)
-     */
-    public String getValue(Object obj) {
-        if (obj == null || !(obj instanceof ConcreteMarker)) {
-            return Util.EMPTY_STRING;
-        }
-        ConcreteMarker marker = (ConcreteMarker) obj;
-        return marker.getFolder();
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-     */
-    public Image getImage(Object obj) {
-        return null;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object, java.lang.Object)
-     */
-    public int compare(Object obj1, Object obj2) {
-        if (obj1 == null || obj2 == null || !(obj1 instanceof ConcreteMarker)
-                || !(obj2 instanceof ConcreteMarker)) {
-            return 0;
-        }
-        ConcreteMarker marker1 = (ConcreteMarker) obj1;
-        ConcreteMarker marker2 = (ConcreteMarker) obj2;
-
-        return marker1.getFolder().compareTo(marker2.getFolder());
-    }
-
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDefaultDirection()
-	 */
-	public int getDefaultDirection() {
-		return TableComparator.ASCENDING;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getPreferredWidth()
-	 */
-	public int getPreferredWidth() {
-		return 150;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldId.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldId.java
deleted file mode 100644
index c003a87..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldId.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * FieldId is the field for marker id.
- *
- */
-public class FieldId implements IField {
-
-    private String description;
-
-    private Image image;
-
-    /**
-     * Create a new instance of the receiver.
-     */
-    public FieldId() {
-        description = MarkerMessages.description_markerId;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescriptionImage()
-     */
-    public Image getDescriptionImage() {
-        return image;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderText()
-     */
-    public String getColumnHeaderText() {
-        return description;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-     */
-    public Image getColumnHeaderImage() {
-        return image;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getValue(java.lang.Object)
-     */
-    public String getValue(Object obj) {
-        if (obj == null || !(obj instanceof ConcreteMarker)) {
-            return ""; //$NON-NLS-1$
-        }
-        ConcreteMarker marker = (ConcreteMarker) obj;
-        return "" + marker.getId(); //$NON-NLS-1$
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-     */
-    public Image getImage(Object obj) {
-        return null;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object, java.lang.Object)
-     */
-    public int compare(Object obj1, Object obj2) {
-        if (obj1 == null || obj2 == null || !(obj1 instanceof ConcreteMarker)
-                || !(obj2 instanceof ConcreteMarker)) {
-            return 0;
-        }
-
-        ConcreteMarker marker1 = (ConcreteMarker) obj1;
-        ConcreteMarker marker2 = (ConcreteMarker) obj2;
-        return (int)(marker1.getId() - marker2.getId());
-    }
-
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDefaultDirection()
-	 */
-	public int getDefaultDirection() {
-		return TableComparator.ASCENDING;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getPreferredWidth()
-	 */
-	public int getPreferredWidth() {
-		return 0;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#isShowing()
-	 */
-	public boolean isShowing() {
-		// Never show id
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#setShowing(boolean)
-	 */
-	public void setShowing(boolean showing) {
-		// Ignore
-		
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldLineNumber.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldLineNumber.java
deleted file mode 100644
index 108dd64..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldLineNumber.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.views.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * FieldLineNumber is the field for line numbers.
- *
- */
-public class FieldLineNumber extends AbstractField {
-
-    private String description;
-
-    private Image image;
-
-    /**
-     * Create a new instance of the receiver.
-     */
-    public FieldLineNumber() {
-        description = MarkerMessages.description_lineNumber;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescriptionImage()
-     */
-    public Image getDescriptionImage() {
-        return image;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderText()
-     */
-    public String getColumnHeaderText() {
-        return description;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-     */
-    public Image getColumnHeaderImage() {
-        return image;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getValue(java.lang.Object)
-     */
-    public String getValue(Object obj) {
-    	if (obj == null) {
-			return MarkerMessages.FieldMessage_NullMessage;
-		}
-
-    	if (obj instanceof MarkerNode){
-			MarkerNode node = (MarkerNode) obj;
-	    	if(node.isConcrete()){
-	    		ConcreteMarker concreteNode = (ConcreteMarker) node;
-	    		if(concreteNode.getLocationString().length() == 0){
-	    			if (concreteNode.getLine() < 0) {
-						return MarkerMessages.Unknown;
-					}	    	   
-	    	        return NLS.bind(
-	    	        		MarkerMessages.label_lineNumber,
-	    	        		Integer.toString(concreteNode.getLine()));
-	    		}
-	    		return concreteNode.getLocationString();
-	    	}
-	    	return Util.EMPTY_STRING;
-		}
-		
-		if(obj instanceof IWorkbenchAdapter) {
-			return Util.EMPTY_STRING;//Don't show pending
-		}
-		
-		if(obj instanceof IMarker) {
-			return Util.getProperty(IMarker.LINE_NUMBER, (IMarker) obj);
-		} 
-		
-		return NLS.bind(MarkerMessages.FieldMessage_WrongType,obj.toString());
-        
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-     */
-    public Image getImage(Object obj) {
-        return null;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object, java.lang.Object)
-     */
-    public int compare(Object obj1, Object obj2) {
-        if (obj1 == null || obj2 == null || !(obj1 instanceof ConcreteMarker)
-                || !(obj2 instanceof ConcreteMarker)) {
-            return 0;
-        }
-
-        ConcreteMarker marker1 = (ConcreteMarker) obj1;
-        ConcreteMarker marker2 = (ConcreteMarker) obj2;
-        
-        String location1 = marker1.getLocationString();
-        String location2 = marker2.getLocationString();
-        
-        if(location1.length() == 0 || location2.length() == 0) {
-			return marker1.getLine() - marker2.getLine();
-		}
-        
-        return location1.compareTo(location2);
-    }
-
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDefaultDirection()
-	 */
-	public int getDefaultDirection() {
-		return TableComparator.ASCENDING;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getPreferredWidth()
-	 */
-	public int getPreferredWidth() {
-		return 60;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldMarkerGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldMarkerGroup.java
deleted file mode 100644
index 3898860..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldMarkerGroup.java
+++ /dev/null
@@ -1,411 +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.markers.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @since 3.2
- * 
- */
-public class FieldMarkerGroup implements IField {
-
-	class EntryMapping {
-		MarkerGroupingEntry groupingEntry;
-
-		/**
-		 * Create an entry mapping for the receiver.
-		 * 
-		 * @param entry
-		 */
-		EntryMapping(MarkerGroupingEntry entry) {
-			groupingEntry = entry;
-		}
-
-		/**
-		 * Return whether or not the receiver tests attributes.
-		 * 
-		 * @return boolean
-		 */
-		public boolean hasAttributes() {
-			return false;
-		}
-
-		/**
-		 * Test the attribute of the marker to find a grouping.
-		 * 
-		 * @param marker
-		 * @return MarkerGroupingEntry or <code>null</code> if there is not
-		 *         entry.
-		 */
-		public MarkerGroupingEntry testAttribute(ConcreteMarker marker) {
-			return null;
-		}
-	}
-
-	private static MarkerGroupingEntry undefinedEntry = new MarkerGroupingEntry(
-			MarkerMessages.FieldCategory_Uncategorized, null, 0);
-
-	class AttributeMapping extends EntryMapping {
-
-		String attribute;
-
-		String attributeValue;
-
-		/**
-		 * Create a mapping for an attribute with name attributeName and value
-		 * value to the supplied entry.
-		 * 
-		 * @param entry
-		 * @param attributeName
-		 * @param value
-		 */
-		AttributeMapping(MarkerGroupingEntry entry, String attributeName,
-				String value) {
-			super(entry);
-			attribute = attributeName;
-			attributeValue = value;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.FieldMarkerGroup.EntryMapping#hasAttributes()
-		 */
-		public boolean hasAttributes() {
-			return true;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.FieldMarkerGroup.EntryMapping#testAttribute(org.eclipse.ui.views.markers.internal.ConcreteMarker)
-		 */
-		public MarkerGroupingEntry testAttribute(ConcreteMarker marker) {
-			Object value;
-			
-			if(!marker.getMarker().exists())
-				return null;//If the marker was deleted during the update drop it
-			
-			try {
-				value = marker.getMarker().getAttribute(attribute);
-			} catch (CoreException e) {
-				Util.log(e);
-				return null;
-			}
-			
-			if (value != null && attributeValue.equals(value.toString())) {
-				return groupingEntry;
-			}
-			return null;
-		}
-	}
-
-	private String title;
-
-	private String id;
-
-	private Map typesToMappings = new HashMap();
-
-	private boolean showing;
-
-	/**
-	 * Create a new instance of the receiver called name with id identifier.
-	 * 
-	 * @param name
-	 * @param identifier
-	 */
-	public FieldMarkerGroup(String name, String identifier) {
-		title = name;
-		id = identifier;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-	 */
-	public String getDescription() {
-		return title;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDescriptionImage()
-	 */
-	public Image getDescriptionImage() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderText()
-	 */
-	public String getColumnHeaderText() {
-		return title;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-	 */
-	public Image getColumnHeaderImage() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getValue(java.lang.Object)
-	 */
-	public String getValue(Object obj) {
-		MarkerNode node = (MarkerNode) obj;
-
-		if (node.isConcrete()) {
-			MarkerGroupingEntry groupingEntry = getMapping((ConcreteMarker) node);
-			return groupingEntry.getLabel();
-		}
-		return node.getDescription();
-	}
-
-	/**
-	 * Get the attribute mapping for the marker
-	 * 
-	 * @param marker
-	 * @return MarkerGroupingEntry
-	 */
-	private MarkerGroupingEntry getMapping(ConcreteMarker marker) {
-
-		if (marker.getGroup() == null) {
-			marker.setGroup(findGroupValue(marker));
-		}
-		return (MarkerGroupingEntry) marker.getGroup();
-	}
-
-	/**
-	 * Find the group value. If it cannot be found in an attribute mapping then
-	 * return null;
-	 * 
-	 * @param marker
-	 * @return String or <code>null</code>
-	 */
-	private MarkerGroupingEntry findGroupValue(ConcreteMarker marker) {
-
-		if (typesToMappings.containsKey(marker.getType())) {
-			EntryMapping defaultMapping = null;
-			Iterator mappings = ((Collection) typesToMappings.get(marker
-					.getType())).iterator();
-			while (mappings.hasNext()) {
-				EntryMapping mapping = (EntryMapping) mappings.next();
-				if (mapping.hasAttributes()) {
-					MarkerGroupingEntry entry = mapping.testAttribute(marker);
-					if (entry != null) {
-						return entry;
-					}
-				} else {
-					// If it has no attributes it is our default
-					defaultMapping = mapping;
-				}
-			}
-			if (defaultMapping != null) {
-				return defaultMapping.groupingEntry;
-			}
-
-		}
-
-		return undefinedEntry;
-
-	} /*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-		 */
-
-	public Image getImage(Object obj) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-	public int compare(Object obj1, Object obj2) {
-
-		MarkerGroupingEntry entry1 = getMapping(((MarkerNode) obj1)
-				.getConcreteRepresentative());
-		MarkerGroupingEntry entry2 = getMapping(((MarkerNode) obj2)
-				.getConcreteRepresentative());
-		return entry2.getPriority() - entry1.getPriority();
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDefaultDirection()
-	 */
-	public int getDefaultDirection() {
-		return TableComparator.ASCENDING;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getPreferredWidth()
-	 */
-	public int getPreferredWidth() {
-		return 75;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#isShowing()
-	 */
-	public boolean isShowing() {
-		return showing;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#setShowing(boolean)
-	 */
-	public void setShowing(boolean showing) {
-		this.showing = showing;
-
-	}
-
-	/**
-	 * Set entry and the default entry for the supplied markerType.
-	 * 
-	 * @param markerType
-	 * @param entry
-	 */
-
-	public void setAsDefault(String markerType, MarkerGroupingEntry entry) {
-		addEntry(markerType, new EntryMapping(entry));
-
-	}
-
-	/**
-	 * Add the entry for the markerType.
-	 * 
-	 * @param markerType
-	 * @param entry
-	 */
-	private void addEntry(String markerType, EntryMapping entry) {
-
-		MarkerType[] allDerived = getMarkerTypes(markerType);
-
-		for (int i = 0; i < allDerived.length; i++) {
-			Collection entries = new HashSet();
-			MarkerType type = allDerived[i];
-			if (typesToMappings.containsKey(type.getId())) {
-				entries = (Collection) typesToMappings.get(markerType);
-			} else {
-				entries = new HashSet();
-			}
-
-			entries.add(entry);
-			typesToMappings.put(type.getId(), entries);
-		}
-
-	}
-
-	/**
-	 * Return the marker types that match and are subtypes of markerType.
-	 * @param markerType
-	 * @return MarkerType[]
-	 */
-	private MarkerType[] getMarkerTypes(String markerType) {
-		MarkerTypesModel model = MarkerTypesModel.getInstance();
-		Collection types = new HashSet();
-
-		MarkerType type = model.getType(markerType);
-		if (type != null) {
-			types.add(type);
-			MarkerType[] subs = type.getAllSubTypes();
-			for (int j = 0; j < subs.length; j++) {
-				types.add(subs[j]);
-			}
-		}
-
-		if (types.isEmpty()) {
-			return new MarkerType[0];
-		}
-
-		MarkerType[] typesArray = new MarkerType[types.size()];
-		types.toArray(typesArray);
-		return typesArray;
-	}
-
-	/**
-	 * Add an attributeMapping for the markerType.
-	 * 
-	 * @param markerType
-	 * @param attribute
-	 * @param attributeValue
-	 * @param entry
-	 */
-	public void mapAttribute(String markerType, String attribute,
-			String attributeValue, MarkerGroupingEntry entry) {
-		addEntry(markerType, new AttributeMapping(entry, attribute,
-				attributeValue));
-
-	}
-
-	/**
-	 * Return the id of the receiver.
-	 * 
-	 * @return String
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Remove the entry from all of the entries in the receiver.
-	 * @param entry
-	 */
-	public void remove(MarkerGroupingEntry entry) {
-		Iterator entries = typesToMappings.values().iterator();
-		Collection removeCollection = new ArrayList();
-		while(entries.hasNext()){
-			Collection mappings = (Collection) entries.next();
-			Iterator mappingsIterator = mappings.iterator();
-			while(mappingsIterator.hasNext()){
-				EntryMapping next = (EntryMapping) mappingsIterator.next();
-				if(next.groupingEntry.equals(entry)){
-					removeCollection.add(next);
-				}
-					
-			}
-			mappings.removeAll(removeCollection);
-			removeCollection.clear();
-		}
-		
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldMessage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldMessage.java
deleted file mode 100644
index 37309b1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldMessage.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.views.markers.internal;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * The message field is the field for the description of the marker.
- * 
- * @since 3.1
- * 
- */
-public class FieldMessage extends AbstractField {
-
-	/**
-	 * Create an instance of the receiver.
-	 */
-	public FieldMessage() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-	 */
-	public String getDescription() {
-		return MarkerMessages.description_message;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDescriptionImage()
-	 */
-	public Image getDescriptionImage() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderText()
-	 */
-	public String getColumnHeaderText() {
-		return MarkerMessages.description_message;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-	 */
-	public Image getColumnHeaderImage() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getValue(java.lang.Object)
-	 */
-	public String getValue(Object obj) {
-		if (obj == null) {
-			return MarkerMessages.FieldMessage_NullMessage;
-		}
-
-		if (obj instanceof MarkerNode) {
-			return ((MarkerNode) obj).getDescription();
-		}
-		return NLS.bind(MarkerMessages.FieldMessage_WrongType, obj.toString());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object obj) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-	public int compare(Object obj1, Object obj2) {
-		if (obj1 == null || obj2 == null || !(obj1 instanceof ConcreteMarker)
-				|| !(obj2 instanceof ConcreteMarker)) {
-			return 0;
-		}
-
-		ConcreteMarker marker1 = (ConcreteMarker) obj1;
-		ConcreteMarker marker2 = (ConcreteMarker) obj2;
-
-		return marker1.getDescriptionKey().compareTo(
-				marker2.getDescriptionKey());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDefaultDirection()
-	 */
-	public int getDefaultDirection() {
-		return TableComparator.ASCENDING;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getPreferredWidth()
-	 */
-	public int getPreferredWidth() {
-		return 250;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldPriority.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldPriority.java
deleted file mode 100644
index b8d7206..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldPriority.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.views.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * The FieldPriority is the field for setting a tasks 
- * priority.
- *
- */
-public class FieldPriority extends AbstractField {
-
-    static final String DESCRIPTION_IMAGE_PATH = "obj16/header_priority.gif"; //$NON-NLS-1$
-
-    static final String HIGH_PRIORITY_IMAGE_PATH = "obj16/hprio_tsk.gif"; //$NON-NLS-1$
-
-    static final String LOW_PRIORITY_IMAGE_PATH = "obj16/lprio_tsk.gif"; //$NON-NLS-1$
-
-    private String description;
-
-    /**
-     * Return a new instance of the receiver.
-     */
-    public FieldPriority() {
-        description = MarkerMessages.priority_description;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-     */
-    public String getDescription() {
-        return description;
-    }
-    
-    /**
-	 * Get the image at path.
-	 * @param path
-	 * @return Image
-	 */
-	private Image getImage(String path){
-		return JFaceResources.getResources().createImageWithDefault(
-				IDEWorkbenchPlugin
-						.getIDEImageDescriptor(path));
-		
-	}
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescriptionImage()
-     */
-    public Image getDescriptionImage() {
-        return getImage(DESCRIPTION_IMAGE_PATH);
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderText()
-     */
-    public String getColumnHeaderText() {
-        return ""; //$NON-NLS-1$
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-     */
-    public Image getColumnHeaderImage() {
-        return getDescriptionImage();
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getValue(java.lang.Object)
-     */
-    public String getValue(Object obj) {
-        return ""; //$NON-NLS-1$
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-     */
-    public Image getImage(Object obj) {
-        if (obj == null || !(obj instanceof TaskMarker)) {
-            return null;
-        }
-        try {
-            int priority = ((TaskMarker) obj).getPriority();
-            if (priority == IMarker.PRIORITY_HIGH) {
-                return getImage(HIGH_PRIORITY_IMAGE_PATH);
-            }
-            if (priority == IMarker.PRIORITY_LOW) {
-                return getImage(LOW_PRIORITY_IMAGE_PATH);
-            }
-        } catch (NumberFormatException e) {
-            return null;
-        }
-        return null;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object, java.lang.Object)
-     */
-    public int compare(Object obj1, Object obj2) {
-        if (obj1 == null || obj2 == null || !(obj1 instanceof TaskMarker)
-                || !(obj2 instanceof TaskMarker)) {
-            return 0;
-        }
-        int priority1 = ((TaskMarker) obj1).getPriority();
-        int priority2 = ((TaskMarker) obj2).getPriority();
-        return priority1 - priority2;
-    }
-    
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDefaultDirection()
-	 */
-	public int getDefaultDirection() {
-		return TableComparator.DESCENDING;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getPreferredWidth()
-	 */
-	public int getPreferredWidth() {
-		return 16;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldResource.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldResource.java
deleted file mode 100644
index 9ac623b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldResource.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.views.markers.internal;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * FieldResource is the field for the resource.
- *
- */
-public class FieldResource extends AbstractField {
-
-    private String description;
-
-    private Image image;
-
-    /**
-     * Create a new instance of the receiver.
-     */
-    public FieldResource() {
-        description = MarkerMessages.description_resource;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getDescriptionImage()
-     */
-    public Image getDescriptionImage() {
-        return image;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderText()
-     */
-    public String getColumnHeaderText() {
-        return description;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-     */
-    public Image getColumnHeaderImage() {
-        return image;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getValue(java.lang.Object)
-     */
-    public String getValue(Object obj) {
-        if (obj == null || !(obj instanceof ConcreteMarker)) {
-            return ""; //$NON-NLS-1$
-        }
-        ConcreteMarker marker = (ConcreteMarker) obj;
-        return marker.getResourceName();
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-     */
-    public Image getImage(Object obj) {
-        return null;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object, java.lang.Object)
-     */
-    public int compare(Object obj1, Object obj2) {
-        if (obj1 == null || obj2 == null || !(obj1 instanceof ConcreteMarker)
-                || !(obj2 instanceof ConcreteMarker)) {
-            return 0;
-        }
-
-        ConcreteMarker marker1 = (ConcreteMarker) obj1;
-        ConcreteMarker marker2 = (ConcreteMarker) obj2;
-
-        return marker1.getResourceName().compareTo(
-                marker2.getResourceName());
-    }
-
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDefaultDirection()
-	 */
-	public int getDefaultDirection() {
-		return TableComparator.ASCENDING;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.IField#getPreferredWidth()
-	 */
-	public int getPreferredWidth() {
-		return 75;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldSeverityAndMessage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldSeverityAndMessage.java
deleted file mode 100644
index 9410f47..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FieldSeverityAndMessage.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.views.markers.internal;
-
-import org.eclipse.jface.resource.DeviceResourceException;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-
-/**
- * The FieldSeverityAndMessage is the field that
- * displays severities and messages.
- * 
- */
-public class FieldSeverityAndMessage extends FieldMessage {
-
-	private String description;
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public FieldSeverityAndMessage() {
-		description = MarkerMessages.problemSeverity_description;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getDescription()
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object obj) {
-		if (obj == null || !(obj instanceof MarkerNode)) {
-			return null;
-		}
-
-		MarkerNode node = (MarkerNode) obj;
-		if (node.isConcrete()) {
-			if (node instanceof ProblemMarker) {
-				return Util.getImage(((ProblemMarker) obj).getSeverity());
-			}
-			return null;
-		}
-
-		try {
-			return JFaceResources
-					.getResources()
-					.createImage(
-							IDEInternalWorkbenchImages
-									.getImageDescriptor(IDEInternalWorkbenchImages.IMG_ETOOL_PROBLEM_CATEGORY));
-		} catch (DeviceResourceException e) {
-			return null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#compare(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-	public int compare(Object obj1, Object obj2) {
-		if (obj1 == null || obj2 == null || !(obj1 instanceof ProblemMarker)
-				|| !(obj2 instanceof ProblemMarker)) {
-			return 0;
-		}
-		
-		ProblemMarker marker1 = (ProblemMarker) obj1;
-		ProblemMarker marker2 = (ProblemMarker) obj2;
-
-		int severity1 = marker1.getSeverity();
-		int severity2 = marker2.getSeverity();
-		if(severity1 == severity2)
-			return marker1.getDescriptionKey().compareTo(
-					marker2.getDescriptionKey());
-		return severity2 - severity1;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.IField#getColumnHeaderImage()
-	 */
-	public Image getColumnHeaderImage() {
-		return getImage(FieldDone.DESCRIPTION_IMAGE_PATH);
-	}
-
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FilterEnablementAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FilterEnablementAction.java
deleted file mode 100644
index af65bf1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FilterEnablementAction.java
+++ /dev/null
@@ -1,49 +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.views.markers.internal;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.swt.SWT;
-
-/**
- * The FilterEnablementAction is an action for enabling 
- * or disabling a filter.
- *
- */
-class FilterEnablementAction extends Action {
-
-	private MarkerFilter markerFilter;
-	private MarkerView markerView;
-
-	/**
-	 * Create a new action for the filter.
-	 * @param filter
-	 * @param view
-	 */
-	public FilterEnablementAction(MarkerFilter filter, MarkerView view) {
-		super(filter.getName(),SWT.CHECK);
-		setChecked(filter.isEnabled());
-		markerFilter = filter;
-		markerView = view;
-		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-		markerFilter.setEnabled(!markerFilter.isEnabled());
-		setChecked(markerFilter.isEnabled());
-		markerView.updateForFilterChanges();
-	}
-
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FiltersAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FiltersAction.java
deleted file mode 100644
index fccc775..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/FiltersAction.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.views.markers.internal;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * This action opens a Filters Dialog and notifies the Marker View if the user has
- * modified the filter via the filters dialog.
- */
-class FiltersAction extends Action {
-
-    private MarkerView view;
-
-    /**
-     * Creates the action
-     */
-    public FiltersAction(MarkerView view) {
-        super(MarkerMessages.filtersAction_title);
-        setImageDescriptor(IDEWorkbenchPlugin.getIDEImageDescriptor("elcl16/filter_ps.gif")); //$NON-NLS-1$
-        setToolTipText(MarkerMessages.filtersAction_tooltip);
-        this.view = view;
-        setEnabled(true);
-    }
-
-    /**
-     * Opens the dialog. Notifies the view if the filter has been modified.
-     */
-    public void run() {
-        view.openFiltersDialog();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IField.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IField.java
deleted file mode 100644
index 97ff0be..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IField.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * IField is the definition of fields for marker views.
- *
- */
-public interface IField {
-
-    /**
-     * @return String the description of the field.
-     */
-    String getDescription();
-
-    /**
-     * @return the image associated with the description of the field or <code>null<code>.
-     */
-    Image getDescriptionImage();
-
-    /**
-     * @return The text to be displayed in the column header for this field.
-     */
-    String getColumnHeaderText();
-
-    /**
-     * @return The image to be displayed in the column header for this field or <code>null<code>.
-     */
-    Image getColumnHeaderImage();
-
-    /**
-     * @param obj
-     * @return The String value of the object for this particular field to be displayed to the user.  
-     */
-    String getValue(Object obj);
-
-    /**
-     * @param obj
-     * @return The image value of the object for this particular field to be displayed to the user
-     * or <code>null<code>.
-     */
-    Image getImage(Object obj);
-
-    /**
-     * @param obj1
-     * @param obj2
-     * @return Either:
-     * 	<li>a negative number if the value of obj1 is less than the value of obj2 for this field.
-     *  <li><code>0</code> if the value of obj1 and the value of obj2 are equal for this field.
-     *  <li>a positive number if the value of obj1 is greater than the value of obj2 for this field.
-     */
-    int compare(Object obj1, Object obj2);
-    
-    /**
-     * Get the default direction for the receiver. Return either 
-     * {@link TableComparator#ASCENDING } or {@link TableComparator#DESCENDING }
-     * @return int
-     */
-   int getDefaultDirection();
-   
-   /**
-    * Get the preferred width of the receiver.
-    * @return int
-    */
-   int getPreferredWidth();
-
-   /**
-    * Return whether not the receiver is showing.
-    * @return boolean
-    */
-   boolean isShowing();
-   
-   /**
-    * Set whether or not the receiver is showing.
-    * @param showing
-    */
-  void setShowing(boolean showing);
-   
- 
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IFilter.java
deleted file mode 100644
index 66ef41c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IFilter.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.ui.views.markers.internal;
-
-/**
- * Generic filtering interface.
- */
-public interface IFilter {
-
-    /**
-     * Filters the list of elements. Removes the elements that need to filtered out from the list.
-     * 
-     * @param elements
-     */
-    public Object[] filter(Object[] elements);
-
-    /**
-     * @param item
-     * @return
-     * <ul>
-     * <li><code>true</code> if the item will make it through the filter.</li>
-     * <li><code>false</code> if the item will not make it through the filter.</li>
-     * </ul>
-     */
-    public boolean select(Object item);
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IItemsChangedListener.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IItemsChangedListener.java
deleted file mode 100644
index 5df0c30..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IItemsChangedListener.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.views.markers.internal;
-
-import java.util.List;
-
-public interface IItemsChangedListener {
-
-    /**
-     * @param additions new items added
-     * @param removals items removed
-     * @param changes changed items
-     */
-    public void itemsChanged(List additions, List removals, List changes);
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IMarkerChangedListener.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IMarkerChangedListener.java
deleted file mode 100644
index 77977e4..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IMarkerChangedListener.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.views.markers.internal;
-
-import java.util.List;
-
-/**
- * Listener interface that listens for changes in resource markers.
- */
-public interface IMarkerChangedListener {
-
-    /**
-     * @param additions new markers added
-     * @param removals markers removed
-     * @param changes changed markers
-     */
-    public void markerChanged(List additions, List removals, List changes);
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IMarkerResourceAdapter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IMarkerResourceAdapter.java
deleted file mode 100644
index f631987..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/IMarkerResourceAdapter.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.views.markers.internal;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * <code>IMarkerResourceAdapter</code> is an adapter interface that
- * supplies the resource to query for markers to display in the marker view
- * or any of its subclasses.
- * 
- * Implementors of this interface are typically registered with an
- * IAdapterFactory for lookup via the getAdapter() mechanism.
- */
-public interface IMarkerResourceAdapter {
-
-    /**
-     * Returns the resource to query for the markers to display
-     * for the given adaptable.
-     * 
-     * @param adaptable the adaptable being queried.
-     * @return the resource or <code>null</code> if there
-     * 	is no adapted resource for this object.
-     */
-    public IResource getAffectedResource(IAdaptable adaptable);
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ITableListener.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ITableListener.java
deleted file mode 100644
index 5082855..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ITableListener.java
+++ /dev/null
@@ -1,24 +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.markers.internal;
-
-import java.util.Collection;
-
-/**
- * 
- */
-public interface ITableListener {
-    public void contentsFound(Collection contents);
-
-    public void invalid();
-
-    public void drawable();
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerAdapter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerAdapter.java
deleted file mode 100644
index 17999d1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerAdapter.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * The MarkerAdapter is the adapter for the deferred update of markers.
- * 
- * @since 3.1
- * 
- */
-public class MarkerAdapter {
-
-	class MarkerCategory extends MarkerNode {
-
-		MarkerAdapter markerAdapter;
-
-		int start;
-
-		int end;
-
-		private ConcreteMarker[] children;
-
-		private String name;
-
-		/**
-		 * Create a new instance of the receiver that has the markers between
-		 * startIndex and endIndex showing.
-		 * 
-		 * @param adapter
-		 * @param startIndex
-		 * @param endIndex
-		 */
-		MarkerCategory(MarkerAdapter adapter, int startIndex, int endIndex,
-				String categoryName) {
-			markerAdapter = adapter;
-			start = startIndex;
-			end = endIndex;
-			name = categoryName;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.MarkerNode#getChildren()
-		 */
-		public MarkerNode[] getChildren() {
-
-			if (children == null) {
-
-				// Return nothing while a build is going on as this could be
-				// stale
-				if (building) {
-					return Util.EMPTY_MARKER_ARRAY;
-				}
-
-				ConcreteMarker[] allMarkers = markerAdapter.lastMarkers
-						.toArray();
-
-				int totalSize = getDisplayedSize();
-				children = new ConcreteMarker[totalSize];
-
-				System.arraycopy(allMarkers, start, children, 0, totalSize);
-				// Sort them locally now
-				view.getTableSorter().sort(view.getViewer(), children);
-
-				for (int i = 0; i < children.length; i++) {
-					children[i].setCategory(this);
-				}
-			}
-			return children;
-
-		}
-
-		/**
-		 * Return the number of errors being displayed.
-		 * 
-		 * @return int
-		 */
-		private int getDisplayedSize() {
-			if (view.getMarkerLimit() > 0) {
-				return Math.min(getTotalSize(), view.getMarkerLimit());
-			}
-			return getTotalSize();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.MarkerNode#getParent()
-		 */
-		public MarkerNode getParent() {
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.MarkerNode#getDescription()
-		 */
-		public String getDescription() {
-
-			int size = end - start + 1;
-
-			if (size <= view.getMarkerLimit()) {
-
-				if (size == 1)
-					return NLS.bind(MarkerMessages.Category_One_Item_Label,
-							new Object[] { name });
-
-				return NLS.bind(MarkerMessages.Category_Label, new Object[] {
-						name, String.valueOf(getDisplayedSize()) });
-			}
-			return NLS.bind(MarkerMessages.Category_Limit_Label, new Object[] {
-					name, String.valueOf(getDisplayedSize()),
-					String.valueOf(getTotalSize()) });
-		}
-
-		/**
-		 * Get the total size of the receiver.
-		 * 
-		 * @return int
-		 */
-		private int getTotalSize() {
-			return end - start + 1;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.MarkerNode#isConcrete()
-		 */
-		public boolean isConcrete() {
-			return false;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.internal.MarkerNode#getConcreteRepresentative()
-		 */
-		public ConcreteMarker getConcreteRepresentative() {
-			return markerAdapter.lastMarkers.getMarker(start);
-		}
-
-		/**
-		 * Return the name of the receiver.
-		 * 
-		 * @return String
-		 */
-		public String getName() {
-			return name;
-		}
-	}
-
-	MarkerView view;
-
-	private MarkerList lastMarkers;
-
-	private MarkerCategory[] categories;
-
-	private boolean building = true;// Start with nothing until we have
-
-	// something
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param markerView
-	 */
-	MarkerAdapter(MarkerView markerView) {
-		view = markerView;
-	}
-
-	/**
-	 * Return the category sorter for the receiver. This should only be called
-	 * in hierarchal mode or there will be a ClassCastException.
-	 * 
-	 * @return CategorySorter
-	 */
-	public CategoryComparator getCategorySorter() {
-		return (CategoryComparator) view.getViewer().getComparator();
-	}
-
-	/**
-	 * Build all of the markers in the receiver.
-	 * 
-	 * @param collector
-	 * @param monitor
-	 */
-	public void buildAllMarkers(IProgressMonitor monitor) {
-		building = true;
-		MarkerList newMarkers;
-		try {
-			int markerLimit = view.getMarkerLimit();
-			monitor.beginTask(MarkerMessages.MarkerView_19,
-					markerLimit == -1 ? 60 : 100);
-			try {
-				monitor.subTask(MarkerMessages.MarkerView_waiting_on_changes);
-
-				if (monitor.isCanceled())
-					return;
-
-				monitor
-						.subTask(MarkerMessages.MarkerView_searching_for_markers);
-				SubProgressMonitor subMonitor = new SubProgressMonitor(monitor,
-						10);
-				MarkerFilter[] filters = view.getEnabledFilters();
-				if (filters.length > 0)
-					newMarkers = MarkerList.compute(filters, subMonitor, true);
-				else
-					// Grab any filter as a disabled filter gives all of them
-					newMarkers = MarkerList.compute(new MarkerFilter[] { view
-							.getAllFilters()[0] }, subMonitor, true);
-
-				if (monitor.isCanceled())
-					return;
-
-				view.refreshMarkerCounts(monitor);
-
-			} catch (CoreException e) {
-				Util.log(e);
-				newMarkers = new MarkerList();
-				return;
-			}
-
-			if (monitor.isCanceled())
-				return;
-
-			ViewerComparator sorter = view.getViewer().getComparator();
-
-			if (markerLimit == -1 || isShowingHierarchy()) {
-				sorter.sort(view.getViewer(), newMarkers.toArray());
-			} else {
-
-				monitor.subTask(MarkerMessages.MarkerView_18);
-				SubProgressMonitor mon = new SubProgressMonitor(monitor, 40);
-
-				newMarkers = SortUtil.getFirst(newMarkers, (Comparator) sorter,
-						markerLimit, mon);
-				if (monitor.isCanceled()) {
-					return;
-				}
-				sorter.sort(view.getViewer(), newMarkers.toArray());
-			}
-
-			if (newMarkers.getSize() == 0) {
-				categories = new MarkerCategory[0];
-				lastMarkers = newMarkers;
-				monitor.done();
-				return;
-			}
-
-			monitor.subTask(MarkerMessages.MarkerView_queueing_updates);
-
-			if (monitor.isCanceled())
-				return;
-
-			if (isShowingHierarchy()) {
-				MarkerCategory[] newCategories = buildHierarchy(newMarkers, 0,
-						newMarkers.getSize() - 1, 0);
-				if (monitor.isCanceled())
-					return;
-				categories = newCategories;
-			}
-
-			lastMarkers = newMarkers;
-			monitor.done();
-		} finally {
-			building = false;
-		}
-
-	}
-
-	/**
-	 * Return whether or not a hierarchy is showing.
-	 * 
-	 * @return boolean
-	 */
-	private boolean isShowingHierarchy() {
-
-		ViewerComparator sorter = view.getViewer().getComparator();
-		if (sorter instanceof CategoryComparator) {
-			return ((CategoryComparator) sorter).getCategoryField() != null;
-		}
-		return false;
-	}
-
-	/**
-	 * Break the marker up into categories
-	 * 
-	 * @param markers
-	 * @param start
-	 *            the start index in the markers
-	 * @param end
-	 *            the last index to check
-	 * @param sortIndex -
-	 *            the parent of the field
-	 * @param parent
-	 * @return MarkerCategory[] or <code>null</code> if we are at the bottom
-	 *         of the tree
-	 */
-	MarkerCategory[] buildHierarchy(MarkerList markers, int start, int end,
-			int sortIndex) {
-		CategoryComparator sorter = getCategorySorter();
-
-		if (sortIndex > 0) {
-			return null;// Are we out of categories?
-		}
-
-		Collection categories = new ArrayList();
-
-		Object previous = null;
-		int categoryStart = start;
-
-		Object[] elements = markers.getArray();
-
-		for (int i = start; i <= end; i++) {
-
-			if (previous != null) {
-				// Are we at a category boundary?
-				if (sorter.compare(previous, elements[i], sortIndex, false) != 0) {
-					categories.add(new MarkerCategory(this, categoryStart,
-							i - 1, getNameForIndex(markers, categoryStart)));
-					categoryStart = i;
-				}
-			}
-			previous = elements[i];
-
-		}
-
-		if (end >= categoryStart) {
-			categories.add(new MarkerCategory(this, categoryStart, end,
-					getNameForIndex(markers, categoryStart)));
-		}
-
-		// Flatten single categories
-		// if (categories.size() == 1) {
-		// return buildHierarchy(markers, start, end, sortIndex + 1, parent);
-		// }
-		MarkerCategory[] nodes = new MarkerCategory[categories.size()];
-		categories.toArray(nodes);
-		return nodes;
-
-	}
-
-	/**
-	 * Get the name for the category from the marker at categoryStart in
-	 * markers.
-	 * 
-	 * @param markers
-	 * @param categoryStart
-	 * @return String
-	 */
-	private String getNameForIndex(MarkerList markers, int categoryStart) {
-		return getCategorySorter().getCategoryField().getValue(
-				markers.toArray()[categoryStart]);
-	}
-
-	/**
-	 * Return the current list of markers.
-	 * 
-	 * @return MarkerList
-	 */
-	public MarkerList getCurrentMarkers() {
-		if (lastMarkers == null) {// First time?
-			view.scheduleMarkerUpdate(Util.SHORT_DELAY);
-			building = true;
-		}
-		if (building) {
-			return new MarkerList();
-		}
-		return lastMarkers;
-	}
-
-	/**
-	 * Return the elements in the adapter.
-	 * 
-	 * @param root
-	 * @return Object[]
-	 */
-	public Object[] getElements() {
-
-		if (lastMarkers == null) {// First time?
-			view.scheduleMarkerUpdate(Util.SHORT_DELAY);
-			building = true;
-		}
-		if (building) {
-			return Util.EMPTY_MARKER_ARRAY;
-		}
-		if (isShowingHierarchy() && categories != null) {
-			return categories;
-		}
-		return lastMarkers.toArray();
-	}
-
-	/**
-	 * Return whether or not the receiver has markers without scheduling
-	 * anything if it doesn't.
-	 * 
-	 * @return boolean <code>true</code> if the markers have not been
-	 *         calculated.
-	 */
-	public boolean hasNoMarkers() {
-		return lastMarkers == null;
-	}
-
-	/**
-	 * Return the categories for the receiver.
-	 * 
-	 * @return MarkerCategory[] or <code>null</code> if there are no
-	 *         categories.
-	 */
-	public MarkerCategory[] getCategories() {
-		if (building) {
-			return null;
-		}
-		return categories;
-	}
-
-	/**
-	 * Return whether or not the receiver is building.
-	 * @return boolean
-	 */
-	boolean isBuilding() {
-		return building;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerFilter.java
deleted file mode 100644
index a298232..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerFilter.java
+++ /dev/null
@@ -1,991 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IContainer;
-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.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * MarkerFilter is the class that defines a filter on markers in a
- * MarkerView.
- *
- */
-public class MarkerFilter implements Cloneable {
-
-	static final String TAG_ENABLED = "enabled"; //$NON-NLS-1$
-
-	private static final String TAG_ON_RESOURCE = "onResource"; //$NON-NLS-1$
-
-	private static final String TAG_SELECTED_TYPES = "selectedType"; //$NON-NLS-1$
-
-	private static final String TAG_WORKING_SET = "workingSet"; //$NON-NLS-1$
-
-	private static final String TAG_TYPES_DELIMITER = ":"; //$NON-NLS-1$
-
-	/**
-	 * New attribute to handle the selection status of marker types.
-	 */
-	private static final String TAG_SELECTION_STATUS = "selectionStatus"; //$NON-NLS-1$
-
-	/**
-	 * Attribute status true.
-	 */
-	private static final String SELECTED_FALSE = "false"; //$NON-NLS-1$
-
-	/**
-	 * Attribute status false.
-	 */
-	private static final String SELECTED_TRUE = "true"; //$NON-NLS-1$
-
-	/**
-	 * Constant for any element.
-	 */
-	public static final int ON_ANY = 0;
-
-	/**
-	 * Constant for any selected element only.
-	 */
-	public static final int ON_SELECTED_ONLY = 1;
-
-	/**
-	 * Constant for selected element and children.
-	 */
-	public static final int ON_SELECTED_AND_CHILDREN = 2;
-
-	/**
-	 * Constant for any element in same container.
-	 */
-	public static final int ON_ANY_IN_SAME_CONTAINER = 3;
-
-	/**
-	 * Constant for on working set.
-	 */
-	public static final int ON_WORKING_SET = 4;
-
-	static final int DEFAULT_ON_RESOURCE = ON_ANY;
-
-	static final boolean DEFAULT_ACTIVATION_STATUS = true;
-
-	protected List rootTypes = new ArrayList();
-
-	protected List selectedTypes = new ArrayList();
-
-	protected IWorkingSet workingSet;
-
-	protected int onResource;
-
-	protected boolean enabled;
-
-	private IResource[] focusResource;
-
-	private Set cachedWorkingSet;
-
-	// The human readable name for the filter
-	private String name;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param filterName
-	 *            The human readable name for the filter
-	 * @param rootTypes
-	 *            The types this filter will be applied to
-	 */
-	MarkerFilter(String filterName, String[] rootTypes) {
-
-		name = filterName;
-
-		for (int i = 0; i < rootTypes.length; i++) {
-			MarkerType type = MarkerTypesModel.getInstance().getType(
-					rootTypes[i]);
-
-			if (!this.rootTypes.contains(type)) {
-				this.rootTypes.add(type);
-			}
-		}
-		resetState();
-	}
-
-	/**
-	 * List all types known to this MarkerFilter.
-	 * 
-	 * @param types
-	 *            list to be filled in with types
-	 */
-	public void addAllSubTypes(List types) {
-		for (int i = 0; i < rootTypes.size(); i++) {
-			MarkerType rootType = (MarkerType) rootTypes.get(i);
-			addAllSubTypes(types, rootType);
-		}
-	}
-
-	private void addAllSubTypes(List types, MarkerType type) {
-		if (type == null) {
-			return;
-		}
-
-		if (!types.contains(type)) {
-			types.add(type);
-		}
-
-		MarkerType[] subTypes = type.getSubtypes();
-
-		for (int i = 0; i < subTypes.length; i++) {
-			addAllSubTypes(types, subTypes[i]);
-		}
-	}
-
-	/**
-	 * Adds all markers in the given set of resources to the given list
-	 * 
-	 * @param resultList
-	 * @param resources
-	 * @param markerTypeId
-	 * @param depth
-	 * @throws CoreException
-	 */
-	private List findMarkers(IResource[] resources, int depth, int limit,
-			IProgressMonitor mon, boolean ignoreExceptions)
-			throws CoreException {
-		if (resources == null) {
-			return Collections.EMPTY_LIST;
-		}
-
-		List resultList = new ArrayList(resources.length * 2);
-
-		// Optimization: if a type appears in the selectedTypes list along with
-		// all of its
-		// subtypes, then combine these in a single search.
-
-		// List of types that haven't been replaced by one of their supertypes
-		HashSet typesToSearch = new HashSet(selectedTypes.size());
-
-		// List of types that appeared in selectedTypes along with all of their
-		// subtypes
-		HashSet includeAllSubtypes = new HashSet(selectedTypes.size());
-
-		typesToSearch.addAll(selectedTypes);
-
-		Iterator iter = selectedTypes.iterator();
-
-		while (iter.hasNext()) {
-			MarkerType type = (MarkerType) iter.next();
-
-			Collection subtypes = Arrays.asList(type.getAllSubTypes());
-
-			if (selectedTypes.containsAll(subtypes)) {
-				typesToSearch.removeAll(subtypes);
-
-				includeAllSubtypes.add(type);
-			}
-		}
-
-		mon.beginTask(MarkerMessages.MarkerFilter_searching, typesToSearch
-				.size()
-				* resources.length);
-
-		// Use this hash set to determine if there are any resources in the
-		// list that appear along with their parent.
-		HashSet resourcesToSearch = new HashSet();
-
-		// Insert all the resources into the hashset
-		for (int idx = 0; idx < resources.length; idx++) {
-			IResource next = resources[idx];
-
-			if (!next.exists()) {
-				continue;
-			}
-
-			if (resourcesToSearch.contains(next)) {
-				mon.worked(typesToSearch.size());
-			} else {
-				resourcesToSearch.add(next);
-			}
-		}
-
-		// Iterate through all the selected resources
-		for (int resourceIdx = 0; resourceIdx < resources.length; resourceIdx++) {
-			iter = typesToSearch.iterator();
-
-			IResource resource = resources[resourceIdx];
-
-			// Skip resources that don't exist
-			if (!resource.isAccessible()) {
-				continue;
-			}
-
-			if (depth == IResource.DEPTH_INFINITE) {
-				// Determine if any parent of this resource is also in our
-				// filter
-				IResource parent = resource.getParent();
-				boolean found = false;
-				while (parent != null) {
-					if (resourcesToSearch.contains(parent)) {
-						found = true;
-					}
-
-					parent = parent.getParent();
-				}
-
-				// If a parent of this resource is also in the filter, we can
-				// skip it
-				// because we'll pick up its markers when we search the parent.
-				if (found) {
-					continue;
-				}
-			}
-
-			// Iterate through all the marker types
-			while (iter.hasNext()) {
-				MarkerType markerType = (MarkerType) iter.next();
-
-				// Only search for subtypes of the marker if we found all of its
-				// subtypes in the filter criteria.
-				IMarker[] markers = resource.findMarkers(markerType.getId(),
-						includeAllSubtypes.contains(markerType), depth);
-
-				mon.worked(1);
-
-				for (int idx = 0; idx < markers.length; idx++) {
-					ConcreteMarker marker;
-					try {
-						marker = MarkerList.createMarker(markers[idx]);
-					} catch (CoreException e) {
-						if (ignoreExceptions) {
-							continue;
-						}
-						throw e;
-
-					}
-
-					if (limit != -1 && resultList.size() >= limit) {
-						return resultList;
-					}
-
-					if (selectMarker(marker)) {
-						resultList.add(marker);
-					}
-				}
-			}
-		}
-
-		mon.done();
-
-		return resultList;
-	}
-
-	/**
-	 * Subclasses should override to determine if the given marker passes the
-	 * filter.
-	 * 
-	 * @param marker
-	 * @return <code>true</code> if the marker passes the filter and
-	 *         <code>false</code> otherwise
-	 */
-	protected boolean selectMarker(ConcreteMarker marker) {
-		return true;
-	}
-
-	/**
-	 * Searches the workspace for markers that pass this filter.
-	 * 
-	 * @return Collection of markers.
-	 */
-	Collection findMarkers(IProgressMonitor mon, boolean ignoreExceptions)
-			throws CoreException {
-
-		List unfiltered = Collections.EMPTY_LIST;
-
-		if (!isEnabled()) {
-			unfiltered = findMarkers(new IResource[] { ResourcesPlugin
-					.getWorkspace().getRoot() }, IResource.DEPTH_INFINITE, -1,
-					mon, ignoreExceptions);
-		} else {
-			// int limit = getFilterOnMarkerLimit() ? getMarkerLimit() + 1 : -1;
-			int limit = -1;
-
-			switch (getOnResource()) {
-			case ON_ANY: {
-				unfiltered = findMarkers(new IResource[] { ResourcesPlugin
-						.getWorkspace().getRoot() }, IResource.DEPTH_INFINITE,
-						limit, mon, ignoreExceptions);
-				break;
-			}
-			case ON_SELECTED_ONLY: {
-				unfiltered = findMarkers(focusResource, IResource.DEPTH_ZERO,
-						limit, mon, ignoreExceptions);
-				break;
-			}
-			case ON_SELECTED_AND_CHILDREN: {
-				unfiltered = findMarkers(focusResource,
-						IResource.DEPTH_INFINITE, limit, mon, ignoreExceptions);
-				break;
-			}
-			case ON_ANY_IN_SAME_CONTAINER: {
-				unfiltered = findMarkers(getProjects(focusResource),
-						IResource.DEPTH_INFINITE, limit, mon, ignoreExceptions);
-				break;
-			}
-			case ON_WORKING_SET: {
-				unfiltered = findMarkers(getResourcesInWorkingSet(),
-						IResource.DEPTH_INFINITE, limit, mon, ignoreExceptions);
-			}
-			}
-		}
-
-		if (unfiltered == null) {
-			unfiltered = Collections.EMPTY_LIST;
-		}
-
-		return unfiltered;
-	}
-
-	/**
-	 * Return the resources in the working set. If it is empty then return the
-	 * workspace root.
-	 * 
-	 * @return IResource[]
-	 */
-	IResource[] getResourcesInWorkingSet() {
-		if (workingSet == null) {
-			return new IResource[0];
-		}
-
-		if (workingSet.isEmpty()) {
-			return new IResource[] { ResourcesPlugin.getWorkspace().getRoot() };
-		}
-
-		IAdaptable[] elements = workingSet.getElements();
-		List result = new ArrayList(elements.length);
-
-		for (int idx = 0; idx < elements.length; idx++) {
-			IResource next = (IResource) elements[idx]
-					.getAdapter(IResource.class);
-
-			if (next != null) {
-				result.add(next);
-			}
-		}
-
-		return (IResource[]) result.toArray(new IResource[result.size()]);
-	}
-
-	/**
-	 * Returns a set of strings representing the full pathnames to every
-	 * resource directly or indirectly contained in the working set. A resource
-	 * is in the working set iff its path name can be found in this set.
-	 * 
-	 * @return Set
-	 */
-	private Set getWorkingSetAsSetOfPaths() {
-		if (cachedWorkingSet == null) {
-			HashSet result = new HashSet();
-
-			addResourcesAndChildren(result, getResourcesInWorkingSet());
-
-			cachedWorkingSet = result;
-		}
-
-		return cachedWorkingSet;
-	}
-
-	/***************************************************************************
-	 * Adds the paths of all resources in the given array to the given set.
-	 */
-	private void addResourcesAndChildren(HashSet result, IResource[] resources) {
-		for (int idx = 0; idx < resources.length; idx++) {
-
-			IResource currentResource = resources[idx];
-
-			result.add(currentResource.getFullPath().toString());
-
-			if (currentResource instanceof IContainer) {
-				IContainer cont = (IContainer) currentResource;
-
-				try {
-					addResourcesAndChildren(result, cont.members());
-				} catch (CoreException e) {
-					// Ignore errors
-				}
-			}
-
-		}
-	}
-
-	/**
-	 * Returns the set of projects that contain the given set of resources.
-	 * 
-	 * @param resources
-	 * @return IProject[]
-	 */
-	static IProject[] getProjects(IResource[] resources) {
-		if (resources == null) {
-			return new IProject[0];
-		}
-
-		Collection projects = getProjectsAsCollection(resources);
-
-		return (IProject[]) projects.toArray(new IProject[projects.size()]);
-	}
-
-	/**
-	 * Return the projects for the elements.
-	 * 
-	 * @param elements
-	 *            collection of IResource or IResourceMapping
-	 * @return Collection of IProject
-	 */
-	static Collection getProjectsAsCollection(Object[] elements) {
-		HashSet projects = new HashSet();
-
-		for (int idx = 0; idx < elements.length; idx++) {
-			if (elements[idx] instanceof IResource) {
-				projects.add(((IResource) elements[idx]).getProject());
-			} else {
-				IProject[] mappingProjects = (((ResourceMapping) elements[idx])
-						.getProjects());
-				for (int i = 0; i < mappingProjects.length; i++) {
-					projects.add(mappingProjects[i]);
-				}
-			}
-
-		}
-
-		return projects;
-	}
-
-	/**
-	 * Return whether or not the receiver would select the marker.
-	 * 
-	 * @param marker
-	 * @return boolean
-	 */
-	public boolean select(ConcreteMarker marker) {
-		if (!isEnabled()) {
-			return true;
-		}
-
-		return selectByType(marker) && selectBySelection(marker)
-				&& selectMarker(marker);
-	}
-
-	private boolean selectByType(ConcreteMarker marker) {
-		return selectedTypes.contains(MarkerTypesModel.getInstance().getType(
-				marker.getType()));
-	}
-
-	/**
-	 * Returns whether the specified marker should be filter out or not.
-	 * 
-	 * @param marker
-	 *            the marker to test
-	 * @return true=the marker should not be filtered out false=the marker
-	 *         should be filtered out
-	 */
-	private boolean selectBySelection(ConcreteMarker marker) {
-		if (onResource == ON_ANY || marker == null) {
-			return true;
-		}
-
-		if (focusResource == null) {
-			return true;
-		}
-
-		IResource resource = marker.getResource();
-
-		if (onResource == ON_WORKING_SET) {
-
-			if (resource != null) {
-				return isEnclosed(resource);
-			}
-
-		} else if (onResource == ON_ANY_IN_SAME_CONTAINER) {
-			IProject project = resource.getProject();
-
-			if (project == null) {
-				return false;
-			}
-
-			for (int i = 0; i < focusResource.length; i++) {
-				IProject selectedProject = focusResource[i].getProject();
-
-				if (selectedProject == null) {
-					continue;
-				}
-
-				if (project.equals(selectedProject)) {
-					return true;
-				}
-			}
-		} else if (onResource == ON_SELECTED_ONLY) {
-			for (int i = 0; i < focusResource.length; i++) {
-				if (resource.equals(focusResource[i])) {
-					return true;
-				}
-			}
-		} else if (onResource == ON_SELECTED_AND_CHILDREN) {
-			for (int i = 0; i < focusResource.length; i++) {
-				IResource parentResource = resource;
-
-				while (parentResource != null) {
-					if (parentResource.equals(focusResource[i])) {
-						return true;
-					}
-
-					parentResource = parentResource.getParent();
-				}
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * Returns if the given resource is enclosed by a working set element.
-	 * Previous versions of this method used IContainmentAdapter for containment
-	 * tests. For performance reasons, this is no longer possible. Code that
-	 * relies on this behavior should be updated appropriately.
-	 * 
-	 * @param element
-	 *            resource to test for enclosure by a working set element
-	 * @return true if element is enclosed by a working set element and false
-	 *         otherwise.
-	 */
-	private boolean isEnclosed(IResource element) {
-		if (workingSet == null) {
-			return false;
-		}
-
-		if (workingSet.isEmpty()) {
-			return true; // Everything is in an empty working set
-		}
-		Set workingSetPaths = getWorkingSetAsSetOfPaths();
-
-		return workingSetPaths.contains(element.getFullPath().toString());
-	}
-
-	/**
-	 * <ul>
-	 * <li><code>MarkerFilter.ON_ANY</code> if showing items associated with
-	 * any resource.</li>
-	 * <li><code>MarkerFilter.ON_SELECTED_ONLY</code> if showing items
-	 * associated with the selected resource within the workbench.</li>
-	 * <li><code>MarkerFilter.ON_SELECTED_AND_CHILDREN</code> if showing
-	 * items associated with the selected resource within the workbench and its
-	 * children.</li>
-	 * <li><code>MarkerFilter.ON_ANY_OF_SAME_PROJECT</code> if showing items
-	 * in the same project as the selected resource within the workbench.</li>
-	 * <li><code>MarkerFilter.ON_WORKING_SET</code> if showing items in some
-	 * working set.</li>
-	 * </ul>
-	 * 
-	 * @return int
-	 */
-	public int getOnResource() {
-		return onResource;
-	}
-
-	/**
-	 * Sets the type of filtering by selection.
-	 * 
-	 * @param onResource
-	 *            must be one of:
-	 *            <ul>
-	 *            <li><code>MarkerFilter.ON_ANY_RESOURCE</code></li>
-	 *            <li><code>MarkerFilter.ON_SELECTED_RESOURCE_ONLY</code></li>
-	 *            <li><code>MarkerFilter.ON_SELECTED_RESOURCE_AND_CHILDREN</code></li>
-	 *            <li><code>MarkerFilter.ON_ANY_RESOURCE_OF_SAME_PROJECT</code></li>
-	 *            <li><code>MarkerFilter.ON_WORKING_SET</code></li>
-	 *            </ul>
-	 */
-	void setOnResource(int onResource) {
-		if (onResource >= ON_ANY && onResource <= ON_WORKING_SET) {
-			this.onResource = onResource;
-		}
-	}
-
-	/**
-	 * @return the selected resource(s) withing the workbench.
-	 */
-	IResource[] getFocusResource() {
-		return focusResource;
-	}
-
-	/**
-	 * Sets the focused resources.
-	 * 
-	 * @param resources
-	 */
-	public void setFocusResource(IResource[] resources) {
-		focusResource = resources;
-	}
-
-	/**
-	 * @return
-	 * <ul>
-	 * <li><code>true</code> if the filter is enabled.</li>
-	 * <li><code>false</code> if the filter is not enabled.</li>
-	 * </ul>
-	 */
-	public boolean isEnabled() {
-		return enabled;
-	}
-
-	/**
-	 * <b>Warning:</b> for internal package use only. Return the root marker
-	 * types.
-	 * 
-	 * @return the root marker types.
-	 */
-	public List getRootTypes() {
-		return rootTypes;
-	}
-
-	/**
-	 * <b>Warning:</b> for internal package use only. Return the selected
-	 * types.
-	 * 
-	 * @return the selected marker types to be displayed.
-	 */
-	public List getSelectedTypes() {
-		return selectedTypes;
-	}
-
-	/**
-	 * Find the typeModel entry that matches id.
-	 * 
-	 * @param id
-	 *            the ID for a marker type
-	 * @return MarkerType or <code>null</code> if it is not found.
-	 */
-	public MarkerType getMarkerType(String id) {
-		return MarkerTypesModel.getInstance().getType(id);
-	}
-
-	/**
-	 * @return the current working set or <code>null</code> if no working set
-	 *         is defined.
-	 */
-	IWorkingSet getWorkingSet() {
-		return workingSet;
-	}
-
-	/**
-	 * Sets the enablement state of the filter.
-	 */
-	void setEnabled(boolean enabled) {
-		this.enabled = enabled;
-	}
-
-	/**
-	 * Sets the current working set.
-	 */
-	void setWorkingSet(IWorkingSet workingSet) {
-		this.workingSet = workingSet;
-		cachedWorkingSet = null;
-	}
-
-	/**
-	 * Reset to the default state.
-	 */
-	void resetState() {
-		enabled = DEFAULT_ACTIVATION_STATUS;
-		onResource = DEFAULT_ON_RESOURCE;
-		selectedTypes.clear();
-		addAllSubTypes(selectedTypes);
-		setWorkingSet(null);
-	}
-
-	/**
-	 * Restore the state in the memento.
-	 * 
-	 * @param memento
-	 */
-	public final void restoreState(IMemento memento) {
-		resetState();
-		restoreFilterSettings(memento);
-
-	}
-
-	/**
-	 * Restore the state of the receiver in the supplied settings. This is kept
-	 * for backwards compatibility with 3.1 dialog settings.
-	 * 
-	 * @param settings
-	 */
-	public void restoreFilterSettings(IDialogSettings settings) {
-
-		resetState();
-
-		String setting = settings.get(TAG_ENABLED);
-
-		if (setting != null) {
-			enabled = Boolean.valueOf(setting).booleanValue();
-		}
-
-		setting = settings.get(TAG_ON_RESOURCE);
-
-		if (setting != null) {
-			try {
-				onResource = Integer.parseInt(setting);
-			} catch (NumberFormatException eNumberFormat) {
-			}
-		}
-
-		// new selection list attribute
-		// format is "id:(true|false):"
-		setting = settings.get(TAG_SELECTION_STATUS);
-
-		if (setting != null) {
-			selectedTypes.clear();
-
-			// get the complete list of types
-			List newTypes = new ArrayList();
-			addAllSubTypes(newTypes);
-
-			StringTokenizer stringTokenizer = new StringTokenizer(setting);
-
-			while (stringTokenizer.hasMoreTokens()) {
-				String id = stringTokenizer.nextToken(TAG_TYPES_DELIMITER);
-				String status = null;
-				if (stringTokenizer.hasMoreTokens()) {
-					status = stringTokenizer.nextToken(TAG_TYPES_DELIMITER);
-				}
-
-				MarkerType markerType = MarkerTypesModel.getInstance().getType(
-						id);
-				if (markerType != null) {
-					newTypes.remove(markerType);
-
-					// add the type to the selected list
-					if (!SELECTED_FALSE.equals(status)
-							&& !selectedTypes.contains(markerType)) {
-						selectedTypes.add(markerType);
-					}
-				}
-			}
-
-			// any types we know about that weren't either true or
-			// false in the selection attribute are new. By default,
-			// new marker types will be selected=true
-			for (int i = 0; i < newTypes.size(); ++i) {
-				selectedTypes.add(newTypes.get(i));
-			}
-		} else {
-			// the settings didn't contain the new selection attribute
-			// so check for the old selection attribute.
-			// format is just "id:"
-			setting = settings.get(TAG_SELECTED_TYPES);
-
-			if (setting != null) {
-				generateSelectedTypes(setting);
-			}
-
-		}
-
-		setting = settings.get(TAG_WORKING_SET);
-
-		if (setting != null) {
-			setWorkingSet(PlatformUI.getWorkbench().getWorkingSetManager()
-					.getWorkingSet(setting));
-		}
-	}
-
-	/**
-	 * Set the selected types based on the value.
-	 * 
-	 * @param selectedTypesValue
-	 */
-	void generateSelectedTypes(String selectedTypesValue) {
-		selectedTypes.clear();
-		StringTokenizer stringTokenizer = new StringTokenizer(
-				selectedTypesValue);
-
-		while (stringTokenizer.hasMoreTokens()) {
-			MarkerType markerType = getMarkerType(stringTokenizer
-					.nextToken(TAG_TYPES_DELIMITER));
-
-			if (markerType != null && !selectedTypes.contains(markerType)) {
-				selectedTypes.add(markerType);
-			}
-		}
-	}
-
-	/**
-	 * Find the markerType matching typeName
-	 * 
-	 * @param typeName
-	 * @return MarkerType
-	 */
-	MarkerType findMarkerType(String typeName) {
-		return MarkerTypesModel.getInstance().getType(typeName);
-	}
-
-	/**
-	 * Restore the state of the receiver in the supplied settings.
-	 * 
-	 * @param memento
-	 */
-	protected void restoreFilterSettings(IMemento memento) {
-		String setting = memento.getString(TAG_ENABLED);
-
-		if (setting != null) {
-			enabled = Boolean.valueOf(setting).booleanValue();
-		}
-
-		Integer resourceSetting = memento.getInteger(TAG_ON_RESOURCE);
-
-		if (resourceSetting != null) {
-			onResource = resourceSetting.intValue();
-		}
-
-		// new selection list attribute
-		// format is "id:(true|false):"
-		setting = memento.getString(TAG_SELECTION_STATUS);
-
-		if (setting != null) {
-			selectedTypes.clear();
-
-			// get the complete list of types
-			List newTypes = new ArrayList();
-			addAllSubTypes(newTypes);
-
-			StringTokenizer stringTokenizer = new StringTokenizer(setting);
-
-			while (stringTokenizer.hasMoreTokens()) {
-				String id = stringTokenizer.nextToken(TAG_TYPES_DELIMITER);
-				String status = null;
-				if (stringTokenizer.hasMoreTokens()) {
-					status = stringTokenizer.nextToken(TAG_TYPES_DELIMITER);
-				}
-
-				MarkerType markerType = MarkerTypesModel.getInstance().getType(
-						id);
-				if (markerType != null) {
-					newTypes.remove(markerType);
-
-					// add the type to the selected list
-					if (!SELECTED_FALSE.equals(status)
-							&& !selectedTypes.contains(markerType)) {
-						selectedTypes.add(markerType);
-					}
-				}
-			}
-
-			// any types we know about that weren't either true or
-			// false in the selection attribute are new. By default,
-			// new marker types will be selected=true
-			for (int i = 0; i < newTypes.size(); ++i) {
-				selectedTypes.add(newTypes.get(i));
-			}
-		} else {
-			// the settings didn't contain the new selection attribute
-			// so check for the old selection attribute.
-			// format is just "id:"
-			setting = memento.getString(TAG_SELECTED_TYPES);
-
-			if (setting != null) {
-				generateSelectedTypes(setting);
-			}
-
-		}
-
-		setting = memento.getString(TAG_WORKING_SET);
-
-		if (setting != null) {
-			setWorkingSet(PlatformUI.getWorkbench().getWorkingSetManager()
-					.getWorkingSet(setting));
-		}
-	}
-
-	/**
-	 * Save the filter settings for the receiver.
-	 * 
-	 * @param settings
-	 */
-	public void saveFilterSettings(IMemento settings) {
-
-		settings.putString(TAG_ENABLED, String.valueOf(enabled));
-		settings.putInteger(TAG_ON_RESOURCE, onResource);
-
-		String markerTypeIds = ""; //$NON-NLS-1$
-
-		List includedTypes = new ArrayList();
-		addAllSubTypes(includedTypes);
-		for (int i = 0; i < includedTypes.size(); i++) {
-			MarkerType markerType = (MarkerType) includedTypes.get(i);
-			markerTypeIds += markerType.getId() + TAG_TYPES_DELIMITER;
-			if (selectedTypes.contains(markerType)) {
-				markerTypeIds += SELECTED_TRUE + TAG_TYPES_DELIMITER;
-			} else {
-				markerTypeIds += SELECTED_FALSE + TAG_TYPES_DELIMITER;
-			}
-		}
-
-		settings.putString(TAG_SELECTION_STATUS, markerTypeIds);
-
-		if (workingSet != null) {
-			settings.putString(TAG_WORKING_SET, workingSet.getName());
-		}
-	}
-
-	/**
-	 * Get the name of the receiver
-	 * 
-	 * @return String
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Make a clone of the receiver.
-	 * 
-	 * @return MarkerFilter
-	 * @throws CloneNotSupportedException
-	 */
-	public MarkerFilter makeClone() throws CloneNotSupportedException {
-		return (MarkerFilter) this.clone();
-	}
-
-	/**
-	 * Set the selected types.
-	 * 
-	 * @param selectedTypes
-	 *            List of MarkerType.
-	 */
-	public void setSelectedTypes(List selectedTypes) {
-		this.selectedTypes = selectedTypes;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerGroupingEntry.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerGroupingEntry.java
deleted file mode 100644
index f3000b4..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerGroupingEntry.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.views.markers.internal;
-
-
-/**
- * MarkerGroupingEntry is the configuration object for the markerGroupingEntry
- * extension.
- * @since 3.2
- *
- */
-public class MarkerGroupingEntry {
-
-	private FieldMarkerGroup markerGroup;
-	private String label;
-	private String id;
-	private int sortPriority;
-
-	
-	/**
-	 * Create a new instance of the receiver with name name and an id of
-	 * identifier.
-	 * @param name
-	 * @param identifer
-	 * @param priority
-	 */
-	public MarkerGroupingEntry(String name, String identifer, int priority) {
-		label = name;
-		id = identifer;
-		sortPriority = priority;
-	}
-
-	/**
-	 * Set the receiver as the default grouping entry for type markerType.
-	 * @param markerType String
-	 */
-	public void setAsDefault(String markerType) {
-		markerGroup.setAsDefault(markerType,this);
-		
-	}
-
-	/**
-	 * Map the attribute for the markerType to map to the receiver
-	 * when it is equal to attributeValue.
-	 * @param markerType
-	 * @param attribute
-	 * @param attributeValue
-	 */
-	public void mapAttribute(String markerType, String attribute, String attributeValue) {
-		markerGroup.mapAttribute(markerType,attribute,attributeValue,this);
-		
-	}
-
-	/**
-	 * Return the id for the receiver.
-	 * @return String
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Set the group for the receiver.
-	 * @param group
-	 */
-	public void setGroupingEntry(FieldMarkerGroup group) {
-		markerGroup = group;
-		
-	}
-
-	/**
-	 * Get the label of the receiver.
-	 * @return String
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Return the priority of the receiver.
-	 * @return int
-	 */
-	public int getPriority() {
-		return sortPriority;
-	}
-
-	/**
-	 * Return the marker group for the receiver.
-	 * @return FieldMarkerGroup
-	 */
-	public FieldMarkerGroup getMarkerGroup() {
-		return markerGroup;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerLabelProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerLabelProvider.java
deleted file mode 100644
index b4bd1b9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerLabelProvider.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.views.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-class MarkerLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-    IField[] properties;
-
-    public MarkerLabelProvider(IField[] properties) {
-        this.properties = properties;
-    }
-
-    public Image getColumnImage(Object element, int columnIndex) {
-        if (element == null || !(element instanceof IMarker)
-                || properties == null || columnIndex >= properties.length) {
-			return null;
-		}
-
-        return properties[columnIndex].getImage(element);
-    }
-
-    public String getColumnText(Object element, int columnIndex) {
-        if (element == null || !(element instanceof IMarker)
-                || properties == null || columnIndex >= properties.length) {
-			return ""; //$NON-NLS-1$
-		}
-
-        return properties[columnIndex].getValue(element);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerList.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerList.java
deleted file mode 100644
index 592cfb4..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerList.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * Represents a list of ConcreteMarkers.
- */
-public class MarkerList {
-	
-	private int[] markerCounts = null;
-
-	private ConcreteMarker[] markers;
-
-	/**
-	 * Lazily created marker table - maps IMarkers onto ConcreteMarkers. Null if
-	 * not created
-	 */
-	private Map markerTable;
-
-	/**
-	 * Creates an initially empty marker list
-	 */
-	public MarkerList() {
-		this(new ConcreteMarker[0]);
-	}
-
-	public MarkerList(Collection markers) {
-		this((ConcreteMarker[]) markers.toArray(new ConcreteMarker[markers
-				.size()]));
-	}
-
-	/**
-	 * Creates a list containing the given set of markers
-	 * 
-	 * @param markers
-	 */
-	public MarkerList(ConcreteMarker[] markers) {
-		this.markers = markers;
-	}
-
-	/**
-	 * Clears any cached collation keys. Use to free up some memory if the
-	 * markers in this list won't be sorted for awhile.
-	 */
-	public void clearCache() {
-		for (int i = 0; i < markers.length; i++) {
-			ConcreteMarker marker = markers[i];
-
-			marker.clearCache();
-		}
-
-		markerTable = null;
-	}
-
-	/**
-	 * Returns the marker table or lazily creates it if it doesn't exist yet
-	 * 
-	 * @return a map of IMarker onto ConcreteMarker, containing all the
-	 *         ConcreteMarkers in the list
-	 */
-	private Map getMarkerMap() {
-		if (markerTable == null) {
-			markerTable = new HashMap();
-
-			for (int idx = 0; idx < markers.length; idx++) {
-				ConcreteMarker marker = markers[idx];
-				markerTable.put(marker.getMarker(), marker);
-			}
-		}
-
-		return markerTable;
-	}
-
-	/**
-	 * Returns an existing marker from the list that is associated with the
-	 * given IMarker
-	 * 
-	 * @param toFind
-	 *            the IMarker to lookup in the list
-	 * @return the ConcreteMarker that corresponds to the given IMarker
-	 */
-	public ConcreteMarker getMarker(IMarker toFind) {
-		return (ConcreteMarker) getMarkerMap().get(toFind);
-	}
-	
-	/**
-	 * Return the list of IMarkers contained in the receiver.
-	 * @return IMarker[]
-	 */
-	public IMarker[] getIMarkers(){
-		IMarker[] iMarkers = new IMarker[markers.length];
-		for (int i = 0; i < markers.length; i++) {
-			iMarkers[i] = markers[i].getMarker();			
-		}
-		return iMarkers;
-	}
-
-	public static ConcreteMarker createMarker(IMarker marker)
-			throws CoreException {
-		if (marker.isSubtypeOf(IMarker.TASK)) {
-			return new TaskMarker(marker);
-		} else if (marker.isSubtypeOf(IMarker.BOOKMARK)) {
-			return new BookmarkMarker(marker);
-		} else if (marker.isSubtypeOf(IMarker.PROBLEM)) {
-			return new ProblemMarker(marker);
-		} else {
-			return new ConcreteMarker(marker);
-		}
-	}
-
-	public void refresh() {
-		for (int markerIdx = 0; markerIdx < markers.length; markerIdx++) {
-			ConcreteMarker next = markers[markerIdx];
-			next.refresh();
-		}
-	}
-
-	public List asList() {
-		return Arrays.asList(markers);
-	}
-
-	public MarkerList findMarkers(Collection ofIMarker) {
-		List result = new ArrayList(ofIMarker.size());
-
-		Iterator iter = ofIMarker.iterator();
-		while (iter.hasNext()) {
-			IMarker next = (IMarker) iter.next();
-
-			ConcreteMarker marker = getMarker(next);
-			if (marker != null) {
-				result.add(marker);
-			}
-		}
-
-		return new MarkerList(result);
-	}
-
-	public static ConcreteMarker[] createMarkers(IMarker[] source)
-			throws CoreException {
-		ConcreteMarker[] result = new ConcreteMarker[source.length];
-
-		for (int idx = 0; idx < source.length; idx++) {
-			result[idx] = createMarker(source[idx]);
-		}
-
-		return result;
-	}
-
-	/**
-	 * Computes the set of markers that match the given filter
-	 * 
-	 * @param filters
-	 *            the filters to apply
-	 * @param mon
-	 *            the monitor to update
-	 * @param ignoreExceptions
-	 *            whether or not exception will be shown
-	 * @return MarkerList
-	 * @throws CoreException
-	 */
-	public static MarkerList compute(MarkerFilter[] filters,
-			IProgressMonitor mon, boolean ignoreExceptions)
-			throws CoreException {
-
-		Collection returnMarkers = new HashSet();// avoid duplicates
-
-		for (int i = 0; i < filters.length; i++) {
-			returnMarkers.addAll(filters[i].findMarkers(mon, ignoreExceptions));
-		}
-		return new MarkerList(returnMarkers);
-	}
-
-	/**
-	 * Returns a new MarkerList containing all markers in the workspace of the
-	 * specified types
-	 * 
-	 * @param types
-	 * @return IMarker[]
-	 * @throws CoreException
-	 */
-	public static IMarker[] compute(String[] types) throws CoreException {
-
-		ArrayList result = new ArrayList();
-		IResource input = ResourcesPlugin.getWorkspace().getRoot();
-
-		for (int i = 0; i < types.length; i++) {
-			IMarker[] newMarkers = input.findMarkers(types[i], true,
-					IResource.DEPTH_INFINITE);
-			result.addAll(Arrays.asList(newMarkers));
-		}
-
-		return (IMarker[]) result.toArray(new IMarker[result.size()]);
-	}
-
-	/**
-	 * Returns the markers in the list. Read-only.
-	 * 
-	 * @return an array of markers in the list
-	 */
-	public ConcreteMarker[] toArray() {
-		return markers;
-	}
-
-	/**
-	 * Returns the markers in this list. Read-only.
-	 * 
-	 * @return the markers in the list
-	 */
-	// public Collection getMarkers() {
-	// return markers;
-	// }
-	/**
-	 * Returns the number of items in the list
-	 * 
-	 * @return the number of items
-	 */
-	public int getItemCount() {
-		return markers.length;
-	}
-
-	/**
-	 * Returns the number of error markers in the list
-	 * 
-	 * @return the number of errors
-	 */
-	public int getErrors() {
-		return getMarkerCounts()[IMarker.SEVERITY_ERROR];
-	}
-
-	/**
-	 * Returns the number of info markers in the list
-	 * 
-	 * @return the number of info markers
-	 */
-	public int getInfos() {
-		return getMarkerCounts()[IMarker.SEVERITY_INFO];
-	}
-
-	/**
-	 * Returns the number of warning markers in the list
-	 * 
-	 * @return the number of warning markers
-	 */
-	public int getWarnings() {
-		return getMarkerCounts()[IMarker.SEVERITY_WARNING];
-	}
-
-	/**
-	 * Returns an array of marker counts where getMarkerCounts()[severity] is
-	 * the number of markers in the list with the given severity.
-	 * 
-	 * @return an array of marker counts
-	 */
-	private int[] getMarkerCounts() {
-		if (markerCounts == null) {
-			markerCounts = new int[] { 0, 0, 0 };
-
-			for (int idx = 0; idx < markers.length; idx++) {
-				ConcreteMarker marker = markers[idx];
-
-				if (marker instanceof ProblemMarker) {
-					int severity = ((ProblemMarker) markers[idx]).getSeverity();
-					if (severity >= 0 && severity <= 2) {
-						markerCounts[severity]++;
-					}
-				}
-
-			}
-		}
-		return markerCounts;
-	}
-
-	/**
-	 * Get the array that is the internal representation of the marker list
-	 * without making a copy.
-	 * 
-	 * @return Object[]
-	 */
-	public Object[] getArray() {
-		return markers;
-	}
-
-	/**
-	 * Get the size of the receiver.
-	 * 
-	 * @return int
-	 */
-	public int getSize() {
-		return getArray().length;
-	}
-
-	/**
-	 * Return the markers at index
-	 * 
-	 * @param index
-	 * @return ConcreteMarker
-	 */
-	public ConcreteMarker getMarker(int index) {
-		return markers[index];
-	}
-
-	/**
-	 * Add the addedMarkers to the receiver.
-	 * @param addedMarkers Collection of ConcreteMarker
-	 * @param removedMarkers Collection of ConcreteMarker
-	 */
-	public void updateMarkers(Collection addedMarkers,Collection removedMarkers) {
-		List list = new ArrayList(asList());
-		list.addAll(addedMarkers);		
-		list.removeAll(removedMarkers);	
-		markers = new ConcreteMarker[list.size()];
-		list.toArray(markers);
-	}
-	
-	/**
-	 * Refresh all of the markers in the receiver.
-	 */
-	public void refreshAll() {
-		for (int i = 0; i < markers.length; i++) {
-			markers[i].refresh();
-		}		
-	}
-
-	/**
-	 * Clear all of the group settings in the receiver.
-	 */
-	public void clearGroups() {
-		for (int i = 0; i < markers.length; i++) {
-			markers[i].setGroup(null);
-		}
-		
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerMessages.java
deleted file mode 100644
index 3faef2a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerMessages.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * MarkerMessages is the class that handles the messages for the markers.
- *
- */
-public class MarkerMessages extends NLS{
-	
-	private static final String BUNDLE_NAME= "org.eclipse.ui.views.markers.internal.messages"; //$NON-NLS-1$
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, MarkerMessages.class);
-	}
-
-
-	public static String sortAction_title;
-	public static String filtersAction_title;
-	public static String filtersAction_tooltip;
-	public static String filtersSubMenu_title;
-
-	public static String sortDialog_title;
-	public static String sortDialog_label;
-	public static String sortDialog_columnLabel;
-
-	public static String sortDirectionAscending_text ;
-	public static String sortDirectionAscending_text2;
-	public static String sortDirectionAscending_text3;
-	public static String sortDirectionAscending_text4;
-
-	public static String sortDirectionDescending_text;
-	public static String sortDirectionDescending_text2;
-	public static String sortDirectionDescending_text3;
-	public static String sortDirectionDescending_text4;
-
-	public static String restoreDefaults_text;
-	
-	public static String Error;
-	public static String Unknown;
-
-	public static String description_message;
-	public static String description_resource;
-	public static String description_folder;
-	public static String description_lineNumber;
-	public static String description_creationTime;
-	public static String description_markerId;
-	public static String description_type;
-
-	public static String label_lineNumber;
-
-	public static String openAction_title;
-	public static String copyAction_title;
-	public static String pasteAction_title;
-	public static String deleteAction_title;
-	public static String deleteAction_tooltip;
-	public static String selectAllAction_title;
-	public static String propertiesAction_title;
-
-	public static String filtersDialog_title;
-	public static String filtersDialog_showItemsOfType;
-	public static String filtersDialog_anyResource;
-	public static String filtersDialog_anyResourceInSameProject;
-	public static String filtersDialog_selectedResource;
-	public static String filtersDialog_selectedAndChildren;
-	public static String filtersDialog_workingSet;
-	public static String filtersDialog_workingSetSelect;
-	public static String filtersDialog_noWorkingSet;
-	public static String filtersDialog_selectAll;
-	public static String filtersDialog_deselectAll;
-	public static String filtersDialog_selectAllTypes;
-	public static String filtersDialog_deselectAllTypes;
-	public static String filtersDialog_descriptionLabel;
-	public static String filtersDialog_contains;
-	public static String filtersDialog_doesNotContain;
-	public static String filtersDialog_severityLabel;
-	public static String filtersDialog_severityError;
-	public static String filtersDialog_severityWarning;
-	public static String filtersDialog_severityInfo;
-	public static String filtersDialog_priorityLabel;
-	public static String filtersDialog_priorityHigh;
-	public static String filtersDialog_priorityNormal;
-	public static String filtersDialog_priorityLow;
-	public static String filtersDialog_statusLabel; 
-	public static String filtersDialog_statusComplete;
-	public static String filtersDialog_statusIncomplete;
-
-	public static String propertiesDialog_creationTime_text;
-	public static String propertiesDialog_description_text;
-	public static String propertiesDialog_folder_text;
-	public static String propertiesDialog_location_text;
-	public static String propertiesDialog_resource_text;
-	public static String propertiesDialog_title;
-	public static String propertiesDialog_severityLabel;
-	public static String propertiesDialog_errorLabel;
-	public static String propertiesDialog_warningLabel;
-	public static String propertiesDialog_infoLabel;
-	public static String propertiesDialog_noseverityLabel;
-	public static String propertiesDialog_priority;
-	public static String propertiesDialog_priorityHigh;
-	public static String propertiesDialog_priorityNormal;
-	public static String propertiesDialog_priorityLow;
-	public static String propertiesDialog_completed;
-		
-	public static String filter_matchedMessage;
-	public static String filter_itemsMessage;
-	public static String problem_filter_matchedMessage;
-
-	public static String errorModifyingBookmark;
-	public static String errorModifyingTask;
-
-	public static String problemSeverity_description;
-	public static String problem_statusSummaryBreakdown;
-	public static String marker_statusSummarySelected;
-
-	public static String deleteCompletedAction_title;
-
-
-	public static String markCompletedAction_title;
-
-	public static String resolveMarkerAction_title;
-	public static String resolveMarkerAction_dialogTitle;
-	public static String resolveMarkerAction_computationAction;
-
-	public static String deleteCompletedTasks_dialogTitle;
-	public static String deleteCompletedTasks_noneCompleted;
-	public static String deleteCompletedTasks_permanentPlural;
-	public static String deleteCompletedTasks_permanentSingular;
-	public static String deleteCompletedTasks_errorMessage;
-
-	public static String addGlobalTaskAction_title;
-	public static String addGlobalTaskAction_tooltip;
-
-	public static String addGlobalTaskDialog_title;
-
-	public static String completion_description;
-	public static String priority_description;
-
-	public static String priority_high;
-	public static String priority_normal;
-	public static String priority_low;
-
-	public static String CopyToClipboardProblemDialog_title;
-	public static String CopyToClipboardProblemDialog_message;
-
-	public static String MarkerFilter_searching;
-
-	public static String MarkerView_waiting_on_changes;
-	public static String MarkerView_searching_for_markers;
-	public static String MarkerView_refreshing_counts;
-	public static String MarkerView_queueing_updates;
-	public static String MarkerView_processUpdates;
-	
-	public static String MarkerView_18;
-	public static String MarkerView_19;
-	public static String SortUtil_finding_first;
-	public static String SortUtil_partitioning;
-	public static String OpenMarker_errorTitle;
-	public static String PasteMarker_errorTitle;
-	public static String RemoveMarker_errorTitle;
-
-	public static String MarkerFilter_defaultFilterName;
-	public static String MarkerFilter_newFilterName;
-	public static String MarkerFilter_filtersTitle;
-	public static String MarkerFilter_addFilterName;
-	public static String MarkerFilter_deleteSelectedName;
-
-	public static String MarkerFilterDialog_title;
-	public static String MarkerFilterDialog_message;
-	public static String MarkerFilterDialog_emptyMessage;
-	
-	public static String MarkerFilterDialog_errorTitle;
-	public static String MarkerFilterDialog_failedFilterMessage;
-	
-	public static String MarkerPreferences_DialogTitle;
-	public static String MarkerPreferences_MarkerLimits;
-	public static String MarkerPreferences_VisibleItems;
-	
-	public static String ProblemFilterDialog_System_Filters_Title;
-	public static String ProblemFilterDialog_All_Problems;
-	public static String ProblemFilterDialog_Selected_Types;
-	public static String ProblemFilterDialog_Info_Severity;
-	public static String ProblemFilterDialog_Warning_Severity;
-	public static String ProblemFilterDialog_Error_Severity;
-	public static String ProblemFilterDialog_Contains_Description;
-	public static String ProblemFilterDialog_Does_Not_Contain_Description;
-	public static String ProblemFilterDialog_any;
-	public static String ProblemFilterDialog_sameContainer;
-	public static String ProblemFilterDialog_selectedAndChildren;
-	public static String ProblemFilterDialog_selected;
-	public static String ProblemFilterDialog_workingSet;
-	
-	public static String ProblemFilterRegistry_nullType;
-	
-	public static String FieldMessage_NullMessage;
-	public static String FieldCategory_Uncategorized;
-	public static String FieldMessage_WrongType;
-	public static String Category_Label;
-	public static String Category_Limit_Label;
-	public static String Category_One_Item_Label;
-	
-	public static String MarkerResolutionDialog_Fixing;
-	public static String MarkerResolutionDialog_Description;
-	public static String MarkerResolutionDialog_Problems_List_Title;
-	public static String MarkerResolutionDialog_Resolutions_List_Title;
-	public static String MarkerResolutionDialog_CannotFixTitle;
-	public static String MarkerResolutionDialog_CannotFixMessage;
-
-	public static String MarkerResolutionDialog_Title;
-	public static String MarkerResolutionDialog_CalculatingTask;
-	public static String MarkerResolutionDialog_WorkingSubTask;
-	
-	public static String MarkerResolutionDialog_AddOthers;
-	
-	public static String ProblemView_GroupByMenu;
-	public static String ProblemView_Type;
-	public static String ProblemView_None;
-	public static String ProblemView_UpdateCategoryJob;
-
-	public static String Util_ProjectRoot;
-	public static String Util_WorkspaceRoot;
-	
-	public static String DialogMarkerProperties_CreateMarker;
-	public static String DialogMarkerProperties_ModifyMarker;
-	public static String DialogMarkerProperties_Create;
-	public static String DialogMarkerProperties_Modify;
-	
-	public static String DialogTaskProperties_CreateTask;
-	
-	public static String modifyBookmark_title;
-	public static String modifyTask_title;
-	
-	public static String qualifiedMarkerCommand_title;
-	public static String task_title;
-	public static String problem_title;
-	public static String bookmark_title;
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerNode.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerNode.java
deleted file mode 100644
index 408293a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerNode.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.views.markers.internal;
-
-/**
- * The MarkerNode class is the class that handles category nodes and 
- * concrete markers.
- *
- */
-public abstract class MarkerNode {
-
-	/**
-	 * Get the children of the node.
-	 * @return MarkerNode[]
-	 */
-	public abstract MarkerNode[] getChildren();
-
-	/**
-	 * Return the parent node or <code>null</code> if this is a top
-	 * level element.
-	 * @return MarkerNode
-	 */
-	public abstract MarkerNode getParent() ;
-
-	/**
-	 * Return whether or not this is a concrete node
-	 * @return boolean
-	 */
-	public abstract boolean isConcrete();
-
-	/**
-	 * Return the description of the receiver.
-	 * @return String
-	 */
-	public abstract String getDescription() ;
-
-	/**
-	 * Get a concrete marker from the receiver. If the receiver
-	 * is concrete return the receiver otherwise return one of the
-	 * concrete markers it contains.
-	 * @return ConcreteMarker
-	 */
-	public abstract ConcreteMarker getConcreteRepresentative();
-	
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerNodeRefreshRecord.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerNodeRefreshRecord.java
deleted file mode 100644
index 1b6be7c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerNodeRefreshRecord.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.ui.views.markers.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-class MarkerNodeRefreshRecord{
-	Collection removedMarkers;
-	Collection addedMarkers;
-	Collection changedMarkers;
-	
-	/**
-	 * Create a new instance of the receiver with the supplied markers.
-	 * @param removed
-	 * @param added
-	 * @param changed
-	 */
-	MarkerNodeRefreshRecord(Collection removed, Collection added, Collection changed){
-		removedMarkers = new ArrayList(removed);
-		addedMarkers =  new ArrayList(added);
-		changedMarkers =  new ArrayList(changed);
-	}
-
-	/**
-	 * Add the node to the list of removals.
-	 * @param node
-	 */
-	public void remove(MarkerNode node) {
-		removedMarkers.add(node);
-		
-	}
-	
-	/**
-	 * Add the node to the list of adds.
-	 * @param node
-	 */
-	public void add(MarkerNode node) {
-		addedMarkers.add(node);
-		
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerResolutionDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerResolutionDialog.java
deleted file mode 100644
index 2f77e35..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerResolutionDialog.java
+++ /dev/null
@@ -1,715 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Hashtable;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.ICheckStateListener;
-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.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.wizard.ProgressMonitorPart;
-import org.eclipse.osgi.util.NLS;
-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.Image;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-import org.eclipse.ui.views.markers.WorkbenchMarkerResolution;
-
-/**
- * The MarkerResolutionDialog is the dialog used to select a marker resolution.
- * 
- * @since 3.2
- * 
- */
-public class MarkerResolutionDialog extends TitleAreaDialog {
-
-	private IMarker originalMarker;
-
-	private IMarkerResolution[] resolutions;
-
-	private CheckboxTableViewer markersTable;
-
-	private ListViewer resolutionsList;
-
-	private ProgressMonitorPart progressPart;
-
-	private MarkerView markerView;
-
-	private ViewerComparator resolutionsComparator;
-
-	private boolean calculatingResolutions;
-
-	private boolean progressCancelled = false;
-
-	private Button addMatching;
-
-	private Hashtable markerMap = new Hashtable(0);
-
-	/**
-	 * Create a new instance of the receiver with the given resolutions.
-	 * 
-	 * @param shell
-	 * @param marker
-	 *            the marker to show
-	 * @param newResolutions
-	 * @param view
-	 *            the viewer that is showing these errors
-	 */
-	public MarkerResolutionDialog(Shell shell, IMarker marker,
-			IMarkerResolution[] newResolutions, MarkerView view) {
-		super(shell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		initializeResolutionsSorter();
-		resolutionsComparator.sort(view.getViewer(), newResolutions);
-		resolutions = newResolutions;
-		originalMarker = marker;
-		markerView = view;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText(MarkerMessages.resolveMarkerAction_dialogTitle);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.TitleAreaDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		
-        setTitleImage(JFaceResources.getResources().createImageWithDefault(
-				IDEInternalWorkbenchImages.getImageDescriptor(IDEInternalWorkbenchImages.IMG_DLGBAN_QUICKFIX_DLG)));
-        
-		Composite mainArea = (Composite) super.createDialogArea(parent);
-
-		// Create a new composite as there is the title bar seperator
-		// to deal with
-		Composite control = new Composite(mainArea, SWT.NONE);
-		control.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-		FormLayout layout = new FormLayout();
-		layout.marginLeft = IDialogConstants.BUTTON_MARGIN;
-		layout.marginTop = IDialogConstants.BUTTON_MARGIN;
-		layout.marginRight = IDialogConstants.BUTTON_MARGIN;
-		layout.marginBottom = IDialogConstants.BUTTON_MARGIN;
-		layout.spacing = IDialogConstants.BUTTON_MARGIN;
-		control.setLayout(layout);
-
-		initializeDialogUnits(control);
-
-		Label resolutionsLabel = new Label(control, SWT.NONE);
-		resolutionsLabel
-				.setText(MarkerMessages.MarkerResolutionDialog_Resolutions_List_Title);
-
-		FormData resolutionsLabelData = new FormData();
-		resolutionsLabelData.top = new FormAttachment(0);
-		resolutionsLabelData.left = new FormAttachment(0);
-		resolutionsLabel.setLayoutData(resolutionsLabelData);
-
-		resolutionsList = new ListViewer(control, SWT.BORDER | SWT.SINGLE);
-		resolutionsList.setContentProvider(new IStructuredContentProvider() {
-			public Object[] getElements(Object inputElement) {
-				return resolutions;
-			}
-
-			/*
-			 * (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) {
-
-			}
-		});
-
-		resolutionsList.setLabelProvider(new LabelProvider() {
-			public String getText(Object element) {
-				return ((IMarkerResolution) element).getLabel();
-			}
-		});
-
-		resolutionsList
-				.addSelectionChangedListener(new ISelectionChangedListener() {
-					/*
-					 * (non-Javadoc)
-					 * 
-					 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-					 */
-					public void selectionChanged(SelectionChangedEvent event) {
-
-						WorkbenchMarkerResolution resolution = getSelectedWorkbenchResolution();
-						if (resolution == null
-								|| markerMap.containsKey(resolution))
-							addMatching.setEnabled(false);
-						else
-							addMatching.setEnabled(true);
-						markersTable.refresh();
-					}
-				});
-
-		resolutionsList.setInput(this);
-
-		resolutionsList.setComparator(resolutionsComparator);
-
-		FormData listData = new FormData();
-		listData.top = new FormAttachment(resolutionsLabel, 0);
-		listData.left = new FormAttachment(0);
-		listData.right = new FormAttachment(100, 0);
-		listData.height = convertHeightInCharsToPixels(10);
-		resolutionsList.getControl().setLayoutData(listData);
-
-		Label title = new Label(control, SWT.NONE);
-		title
-				.setText(MarkerMessages.MarkerResolutionDialog_Problems_List_Title);
-		FormData labelData = new FormData();
-		labelData.top = new FormAttachment(resolutionsList.getControl(), 0);
-		labelData.left = new FormAttachment(0);
-		title.setLayoutData(labelData);
-
-		Composite buttons = createTableButtons(control);
-		FormData buttonData = new FormData();
-		buttonData.top = new FormAttachment(title, 0);
-		buttonData.right = new FormAttachment(100);
-		buttonData.height = convertHeightInCharsToPixels(10);
-		buttons.setLayoutData(buttonData);
-
-		createMarkerTable(control);
-
-		FormData tableData = new FormData();
-		tableData.top = new FormAttachment(buttons, 0, SWT.TOP);
-		tableData.left = new FormAttachment(0);
-		tableData.right = new FormAttachment(buttons, 0);
-		tableData.height = convertHeightInCharsToPixels(10);
-		markersTable.getControl().setLayoutData(tableData);
-
-		progressPart = new ProgressMonitorPart(control, new GridLayout());
-
-		FormData progressData = new FormData();
-		progressData.top = new FormAttachment(markersTable.getControl(), 0);
-		progressData.left = new FormAttachment(0);
-		progressData.right = new FormAttachment(100, 0);
-		progressPart.setLayoutData(progressData);
-
-		Dialog.applyDialogFont(control);
-		markerView.getTree();
-
-		setMessage(NLS.bind(MarkerMessages.MarkerResolutionDialog_Description,
-				Util.getProperty(IMarker.MESSAGE, originalMarker)));
-		return mainArea;
-
-	}
-
-	/**
-	 * Create the resolutions sorter.
-	 */
-	private void initializeResolutionsSorter() {
-		resolutionsComparator = 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 viewer, Object e1, Object e2) {
-				return ((IMarkerResolution) e1).getLabel().compareTo(
-						((IMarkerResolution) e1).getLabel());
-			}
-		};
-	}
-
-	/**
-	 * Create the buttons for the table.
-	 * 
-	 * @param control
-	 * @return Composite
-	 */
-	private Composite createTableButtons(Composite control) {
-
-		Composite buttonComposite = new Composite(control, SWT.NONE);
-		buttonComposite.setLayout(new GridLayout());
-
-		Button selectAll = new Button(buttonComposite, SWT.PUSH);
-		selectAll.setText(MarkerMessages.selectAllAction_title);
-		selectAll.setLayoutData(new GridData(SWT.FILL, SWT.NONE, false, false));
-
-		selectAll.addSelectionListener(new SelectionAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent arg0) {
-				markersTable.setAllChecked(true);
-				setComplete(!resolutionsList.getSelection().isEmpty());
-			}
-		});
-
-		Button deselectAll = new Button(buttonComposite, SWT.PUSH);
-		deselectAll.setText(MarkerMessages.filtersDialog_deselectAll);
-		deselectAll
-				.setLayoutData(new GridData(SWT.FILL, SWT.NONE, false, false));
-
-		deselectAll.addSelectionListener(new SelectionAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent arg0) {
-				markersTable.setAllChecked(false);
-				setComplete(false);
-			}
-		});
-
-		addMatching = new Button(buttonComposite, SWT.PUSH);
-		addMatching.setText(MarkerMessages.MarkerResolutionDialog_AddOthers);
-		addMatching
-				.setLayoutData(new GridData(SWT.FILL, SWT.NONE, false, false));
-		addMatching.setEnabled(true);
-		addMatching.addSelectionListener(new SelectionAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent arg0) {
-
-				WorkbenchMarkerResolution selected = getSelectedWorkbenchResolution();
-				if (selected == null) {
-					return;
-				}
-
-				if (addMatchingMarkers(selected)) {
-					addMatching.setEnabled(false);
-				}
-			}
-		});
-
-		return buttonComposite;
-	}
-
-	/**
-	 * Return the single selected WorkbenchMarkerResolution if there is one.
-	 * 
-	 * @return WorkbenchMarkerResolution or <code>null</code> if there is no
-	 *         selection or the selection is not a WorkbenchMarkerResolution.
-	 */
-	private WorkbenchMarkerResolution getSelectedWorkbenchResolution() {
-		Object selection = getSelectedResolution();
-		if (selection == null
-				|| !(selection instanceof WorkbenchMarkerResolution)) {
-			return null;
-		}
-		return (WorkbenchMarkerResolution) selection;
-
-	}
-
-	/**
-	 * Return the marker resolution that is currenly selected/
-	 * 
-	 * @return IMarkerResolution or <code>null</code> if there is no
-	 *         selection.
-	 */
-	private IMarkerResolution getSelectedResolution() {
-		ISelection selection = resolutionsList.getSelection();
-		if (!(selection instanceof IStructuredSelection)) {
-			return null;
-		}
-
-		Object first = ((IStructuredSelection) selection).getFirstElement();
-
-		return (IMarkerResolution) first;
-
-	}
-
-	/**
-	 * Add all of the markers that have resolutions compatible with the
-	 * receiver.
-	 * 
-	 * @return boolean <code>true</code> if the operation completed.
-	 */
-	protected boolean addMatchingMarkers(
-			final WorkbenchMarkerResolution resolution) {
-
-		calculatingResolutions = true;
-		progressPart.beginTask(
-				MarkerMessages.MarkerResolutionDialog_CalculatingTask, 100);
-
-		progressPart.worked(10);
-		if (progressCancelled()) {
-			calculatingResolutions = false;
-			return false;
-		}
-
-		progressPart.subTask(NLS.bind(
-				MarkerMessages.MarkerResolutionDialog_WorkingSubTask,
-				resolution.getLabel()));
-
-		BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see java.lang.Runnable#run()
-			 */
-			public void run() {
-				IMarker[] others = resolution.findOtherMarkers(markerView
-						.getCurrentMarkers().getIMarkers());
-
-				Collection currentMarkers = new ArrayList();
-				currentMarkers.add(originalMarker);
-
-				for (int i = 0; i < others.length; i++) {
-					currentMarkers.add(others[i]);
-				}
-
-				markerMap.put(resolution, currentMarkers);
-
-				progressPart.worked(90);
-				progressPart.done();
-				progressCancelled = false;
-				calculatingResolutions = false;
-				markersTable.refresh();
-
-			}
-		});
-
-		return true;
-	}
-
-	/**
-	 * Spin the event loop and see if the cancel button was pressed. If it was
-	 * then clear the flags and return <code>true</code>.
-	 * 
-	 * @return boolean
-	 */
-	private boolean progressCancelled() {
-		getShell().getDisplay().readAndDispatch();
-		if (progressCancelled) {
-			progressCancelled = false;
-			calculatingResolutions = false;
-			progressPart.done();
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Create the table for the markers/
-	 * 
-	 * @param control
-	 */
-	private void createMarkerTable(Composite control) {
-		markersTable = CheckboxTableViewer.newCheckList(control, SWT.BORDER
-				| SWT.V_SCROLL);
-
-		createTableColumns();
-
-		markersTable.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) {
-				IMarkerResolution selected = getSelectedResolution();
-				if (selected == null) {
-					return new Object[0];
-				}
-
-				if (markerMap.containsKey(selected)) {
-					return ((Collection) markerMap.get(selected)).toArray();
-				}
-				return new IMarker[] { originalMarker };
-			}
-
-			/*
-			 * (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) {
-
-			}
-		});
-
-		markersTable.setLabelProvider(new ITableLabelProvider() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
-			 *      int)
-			 */
-			public Image getColumnImage(Object element, int columnIndex) {
-				if (columnIndex == 0)
-					return Util.getImage(((IMarker) element).getAttribute(
-							IMarker.SEVERITY, -1));
-				return null;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
-			 *      int)
-			 */
-			public String getColumnText(Object element, int columnIndex) {
-				if (columnIndex == 0)
-					return Util.getResourceName((IMarker) element);
-				int line = ((IMarker) element).getAttribute(
-						IMarker.LINE_NUMBER, -1);
-				if (line < 0) {
-					return MarkerMessages.Unknown;
-				}
-				return NLS.bind(MarkerMessages.label_lineNumber, Integer
-						.toString(line));
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-			 */
-			public void addListener(ILabelProviderListener listener) {
-				// do nothing
-
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-			 */
-			public void dispose() {
-				// do nothing
-
-			}
-
-			/*
-			 * (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) {
-				// do nothing
-
-			}
-		});
-
-		markersTable.addCheckStateListener(new ICheckStateListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
-			 */
-			public void checkStateChanged(CheckStateChangedEvent event) {
-				if (event.getChecked() == true) {
-					setComplete(true);
-				} else {
-					setComplete(markersTable.getCheckedElements().length > 0);
-				}
-
-			}
-		});
-
-		markersTable.setInput(this);
-		markersTable.setAllChecked(true);
-	}
-
-	/**
-	 * Create the table columns for the receiver.
-	 */
-	private void createTableColumns() {
-		TableLayout layout = new TableLayout();
-		markersTable.getTable().setLayout(layout);
-		markersTable.getTable().setLinesVisible(true);
-
-		// Description column
-		layout.addColumnData(new ColumnPixelData(200, true, true));
-		TableColumn tc = new TableColumn(markersTable.getTable(), SWT.NONE, 0);
-		tc.setResizable(true);
-
-		// Line column
-		layout.addColumnData(new ColumnPixelData(50, true, true));
-		tc = new TableColumn(markersTable.getTable(), SWT.NONE, 0);
-		tc.setResizable(true);
-
-	}
-
-	/**
-	 * Set the dialog to be complete.
-	 * 
-	 * @param complete
-	 */
-	protected void setComplete(boolean complete) {
-		getButton(IDialogConstants.OK_ID).setEnabled(complete);
-
-	}
-
-	/**
-	 * Return all of the resolutions to choose from in the receiver.
-	 * 
-	 * @return IMarkerResolution[]
-	 */
-	public IMarkerResolution[] getResolutions() {
-		return resolutions;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#create()
-	 */
-	public void create() {
-		super.create();
-		setTitle(MarkerMessages.MarkerResolutionDialog_Title);
-		resolutionsList.getList().select(0);
-		markersTable.refresh();
-		markersTable.setAllChecked(true);
-		setComplete(true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-	 */
-	protected void okPressed() {
-		IMarkerResolution resolution = getSelectedResolution();
-		if (resolution == null) {
-			return;
-		}
-
-		Object[] checked = markersTable.getCheckedElements();
-
-		progressPart.beginTask(MarkerMessages.MarkerResolutionDialog_Fixing,
-				checked.length + 1);
-		progressPart.worked(1);
-
-		calculatingResolutions = true;
-
-		if (resolution instanceof WorkbenchMarkerResolution) {
-
-			IMarker[] markers = new IMarker[checked.length];
-			System.arraycopy(checked, 0, markers, 0, checked.length);
-			((WorkbenchMarkerResolution) resolution).run(markers,
-					new SubProgressMonitor(progressPart, checked.length));
-		} else {
-
-			// Allow paint events and wake up the button
-			getShell().getDisplay().readAndDispatch();
-			if (!progressCancelled() && checked.length == 1) {
-
-				// There will only be one
-				IMarker marker = (IMarker) checked[0];
-
-				progressPart.subTask(Util.getProperty(IMarker.MESSAGE, marker));
-				resolution.run(marker);
-				progressPart.worked(1);
-			}
-
-		}
-
-		calculatingResolutions = false;
-		progressPart.done();
-		progressCancelled = false;
-		super.okPressed();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#cancelPressed()
-	 */
-	protected void cancelPressed() {
-		if (calculatingResolutions) {
-			progressCancelled = true;
-			progressPart.setCanceled(true);
-			return;
-		}
-		super.cancelPressed();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSelectionProviderAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSelectionProviderAction.java
deleted file mode 100644
index ffc1ad6..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSelectionProviderAction.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.views.markers.internal;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.SelectionProviderAction;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * MarkerSelectionProviderAction is the abstract super class of the selection
- * provider actions used by marker views.
- * 
- */
-public abstract class MarkerSelectionProviderAction extends
-		SelectionProviderAction {
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param provider
-	 * @param text
-	 */
-	public MarkerSelectionProviderAction(ISelectionProvider provider,
-			String text) {
-		super(provider, text);
-
-	}
-
-	/**
-	 * Get the selected markers in the receiver.
-	 * 
-	 * @return IMarker[]
-	 */
-	IMarker[] getSelectedMarkers() {
-
-		return getSelectedMarkers(getStructuredSelection());
-	}
-
-	/**
-	 * Return the selected markers for the structured selection.
-	 * 
-	 * @param structured
-	 *            IStructuredSelection
-	 * @return IMarker[]
-	 */
-	IMarker[] getSelectedMarkers(IStructuredSelection structured) {
-		Object[] selection = structured.toArray();
-		ArrayList markers = new ArrayList();
-		for (int i = 0; i < selection.length; i++) {
-			Object object = selection[i];
-			if (!(object instanceof MarkerNode)) {
-				return new IMarker[0];// still pending
-			}
-			MarkerNode marker = (MarkerNode) object;
-			if (marker.isConcrete()) {
-				markers.add(((ConcreteMarker) object).getMarker());
-			}
-		}
-
-		return (IMarker[]) markers.toArray(new IMarker[markers.size()]);
-	}
-
-	/**
-	 * Get the selected marker in the receiver.
-	 * 
-	 * @return IMarker
-	 */
-	IMarker getSelectedMarker() {
-
-		ConcreteMarker selection = (ConcreteMarker) getStructuredSelection()
-				.getFirstElement();
-		return selection.getMarker();
-	}
-
-	/**
-	 * Execute the specified undoable operation
-	 */
-	void execute(IUndoableOperation operation, String message,
-			IProgressMonitor monitor, IAdaptable uiInfo) {
-		try {
-			PlatformUI.getWorkbench().getOperationSupport()
-					.getOperationHistory().execute(operation, monitor, uiInfo);
-		} catch (ExecutionException e) {
-			IDEWorkbenchPlugin.log(message, e);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSelectionProviderAdapter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSelectionProviderAdapter.java
deleted file mode 100644
index a91f8f6..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSelectionProviderAdapter.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.views.markers.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-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.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-
-/**
- * MarkerSelectionProviderAdapter adapts the concrete markers
- * to IMarkers for contributions.
- */
-class MarkerSelectionProviderAdapter implements ISelectionProvider {
-
-    List listeners = new ArrayList();
-
-    ISelection theSelection = null;
-
-    public void addSelectionChangedListener(ISelectionChangedListener listener) {
-        listeners.add(listener);
-    }
-
-    public ISelection getSelection() {
-        return theSelection;
-    }
-
-    public void removeSelectionChangedListener(
-            ISelectionChangedListener listener) {
-        listeners.remove(listener);
-    }
-
-    public void setSelection(ISelection selection) {
-        theSelection = selection;
-        final SelectionChangedEvent e = new SelectionChangedEvent(this, selection);
-        Object[] listenersArray = listeners.toArray();
-        
-        for (int i = 0; i < listenersArray.length; i++) {
-            final ISelectionChangedListener l = (ISelectionChangedListener) listenersArray[i];
-            SafeRunner.run(new SafeRunnable() {
-                public void run() {
-                    l.selectionChanged(e);
-                }
-            });
-		}
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSorter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSorter.java
deleted file mode 100644
index da10a0e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSorter.java
+++ /dev/null
@@ -1,26 +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.markers.internal;
-
-import java.util.Comparator;
-
-import org.eclipse.jface.viewers.TreeViewer;
-
-abstract class MarkerSorter implements Comparator {
-
-	/**
-	 * Sort the array of markers in lastMarkers in place.
-	 * 
-	 * @param viewer
-	 * @param markers
-	 */
-	public abstract void sort(TreeViewer viewer, MarkerList markers);
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSupportRegistry.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSupportRegistry.java
deleted file mode 100644
index fa5447a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSupportRegistry.java
+++ /dev/null
@@ -1,719 +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.views.markers.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-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.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-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.core.runtime.dynamichelpers.ExtensionTracker;
-import org.eclipse.core.runtime.dynamichelpers.IExtensionChangeHandler;
-import org.eclipse.core.runtime.dynamichelpers.IExtensionTracker;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * The ProblemFilterRegistryReader is the registry reader for declarative
- * problem filters. See the org.eclipse.ui.markerSupport extension point.
- * 
- * @since 3.2
- * 
- */
-public class MarkerSupportRegistry implements IExtensionChangeHandler {
-
-	private static final String DESCRIPTION = "onDescription"; //$NON-NLS-1$
-
-	private static final String ENABLED = "enabled"; //$NON-NLS-1$
-
-	private static final Object ERROR = "ERROR";//$NON-NLS-1$
-
-	static final String ID = "id"; //$NON-NLS-1$
-
-	private static final Object INFO = "INFO";//$NON-NLS-1$
-
-	private static final Object WARNING = "WARNING";//$NON-NLS-1$
-
-	private static final String MARKER_ID = "markerId"; //$NON-NLS-1$
-
-	/**
-	 * The tag for the marker support extension
-	 */
-	public static final String MARKER_SUPPORT = "markerSupport";//$NON-NLS-1$
-
-	private static final String NAME = "name"; //$NON-NLS-1$
-
-	private static final Object ON_ANY = "ON_ANY"; //$NON-NLS-1$
-
-	private static final Object ON_ANY_IN_SAME_CONTAINER = "ON_ANY_IN_SAME_CONTAINER";//$NON-NLS-1$
-
-	private static final Object ON_SELECTED_AND_CHILDREN = "ON_SELECTED_AND_CHILDREN";//$NON-NLS-1$
-
-	private static final Object ON_SELECTED_ONLY = "ON_SELECTED_ONLY"; //$NON-NLS-1$
-
-	private static final Object PROBLEM_FILTER = "problemFilter";//$NON-NLS-1$
-
-	private static final String SCOPE = "scope"; //$NON-NLS-1$
-
-	private static final String SELECTED_TYPE = "selectedType"; //$NON-NLS-1$
-
-	private static final String SEVERITY = "severity";//$NON-NLS-1$
-
-	private static final String MARKER_TYPE_REFERENCE = "markerTypeReference"; //$NON-NLS-1$
-
-	private static final String MARKER_CATEGORY = "markerTypeCategory";//$NON-NLS-1$
-
-	private static final String ATTRIBUTE_MAPPING = "markerAttributeMapping"; //$NON-NLS-1$
-
-	private static final String MARKER_GROUPING = "markerGrouping"; //$NON-NLS-1$
-
-	private static final String ATTRIBUTE = "attribute"; //$NON-NLS-1$
-
-	private static final String VALUE = "value"; //$NON-NLS-1$
-
-	private static final String LABEL = "label"; //$NON-NLS-1$
-
-	private static final String MARKER_ATTRIBUTE_GROUPING = "markerAttributeGrouping";//$NON-NLS-1$
-
-	private static final String DEFAULT_GROUPING_ENTRY = "defaultGroupingEntry";//$NON-NLS-1$
-
-	private static final String MARKER_TYPE = "markerType";//$NON-NLS-1$
-
-	private static final String PRIORITY = "priority"; //$NON-NLS-1$
-
-	private static final String MARKER_GROUPING_ENTRY = "markerGroupingEntry"; //$NON-NLS-1$
-
-	private static final Object SEVERITY_ID = "org.eclipse.ui.ide.severity";//$NON-NLS-1$
-
-	private static MarkerSupportRegistry singleton;
-
-	// Create a lock so that initiization happens in one thread
-	private static Object creationLock = new Object();
-
-	/**
-	 * Get the instance of the registry.
-	 * 
-	 * @return MarkerSupportRegistry
-	 */
-	public static MarkerSupportRegistry getInstance() {
-		if (singleton == null) {
-			synchronized (creationLock) {
-				if (singleton == null) {
-					// thread
-					singleton = new MarkerSupportRegistry();
-				}
-			}
-		}
-		return singleton;
-	}
-
-	private Collection registeredFilters = new ArrayList();
-
-	private Map markerGroups = new HashMap();
-
-	private Map markerGroupingEntries = new HashMap();
-
-	private HashMap categories = new HashMap();
-
-	private HashMap hierarchyOrders = new HashMap();
-
-	private MarkerType rootType;
-
-	/**
-	 * Create a new instance of the receiver and read the registry.
-	 */
-	private MarkerSupportRegistry() {
-		IExtensionTracker tracker = PlatformUI.getWorkbench()
-				.getExtensionTracker();
-		IExtensionPoint point = Platform.getExtensionRegistry()
-				.getExtensionPoint(IDEWorkbenchPlugin.IDE_WORKBENCH,
-						MARKER_SUPPORT);
-		if (point == null) {
-			return;
-		}
-		IExtension[] extensions = point.getExtensions();
-		// initial population
-		Map groupingEntries = new HashMap();
-		Set attributeMappings = new HashSet();
-		for (int i = 0; i < extensions.length; i++) {
-			IExtension extension = extensions[i];
-			processExtension(tracker, extension, groupingEntries,
-					attributeMappings);
-		}
-		postProcessExtensions(groupingEntries, attributeMappings);
-		tracker.registerHandler(this, ExtensionTracker
-				.createExtensionPointFilter(point));
-
-	}
-
-	/**
-	 * Process the extension and register the result with the tracker. Fill the
-	 * map of groupingEntries and attribueMappings processed for post
-	 * processing.
-	 * 
-	 * @param tracker
-	 * @param extension
-	 * @param groupingEntries
-	 *            Mapping of group names to the markerGroupingEntries registered
-	 *            for them
-	 * @param attributeMappings
-	 *            the markerAttributeGroupings found
-	 * @see #postProcessExtensions(Map, Collection)
-	 */
-	private void processExtension(IExtensionTracker tracker,
-			IExtension extension, Map groupingEntries,
-			Collection attributeMappings) {
-		IConfigurationElement[] elements = extension.getConfigurationElements();
-
-		for (int j = 0; j < elements.length; j++) {
-			IConfigurationElement element = elements[j];
-			if (element.getName().equals(PROBLEM_FILTER)) {
-				ProblemFilter filter = newFilter(element);
-				registeredFilters.add(filter);
-				tracker.registerObject(extension, filter,
-						IExtensionTracker.REF_STRONG);
-
-				continue;
-			}
-			if (element.getName().equals(MARKER_GROUPING)) {
-
-				FieldMarkerGroup group = new FieldMarkerGroup(element
-						.getAttribute(LABEL), element.getAttribute(ID));
-				markerGroups.put(group.getId(), group);
-				tracker.registerObject(extension, group,
-						IExtensionTracker.REF_STRONG);
-			}
-
-			if (element.getName().equals(MARKER_GROUPING_ENTRY)) {
-
-				MarkerGroupingEntry entry = new MarkerGroupingEntry(element
-						.getAttribute(LABEL), element.getAttribute(ID),
-						(Integer.valueOf(element.getAttribute(PRIORITY))
-								.intValue()));
-
-				String groupName = element.getAttribute(MARKER_GROUPING);
-
-				Collection entries;
-				if (groupingEntries.containsKey(groupName)) {
-					entries = (Collection) groupingEntries.get(groupName);
-				} else {
-					entries = new HashSet();
-				}
-
-				entries.add(entry);
-				groupingEntries.put(groupName, entries);
-
-				tracker.registerObject(extension, entry,
-						IExtensionTracker.REF_STRONG);
-			}
-
-			if (element.getName().equals(MARKER_ATTRIBUTE_GROUPING)) {
-
-				AttributeMarkerGrouping grouping = new AttributeMarkerGrouping(
-						element.getAttribute(ATTRIBUTE), element
-								.getAttribute(MARKER_TYPE), element
-								.getAttribute(DEFAULT_GROUPING_ENTRY), element);
-
-				attributeMappings.add(grouping);
-
-				tracker.registerObject(extension, grouping,
-						IExtensionTracker.REF_STRONG);
-			}
-
-			if (element.getName().equals(MARKER_CATEGORY)) {
-
-				String[] markerTypes = getMarkerTypes(element);
-				String categoryName = element.getAttribute(NAME);
-
-				for (int i = 0; i < markerTypes.length; i++) {
-					categories.put(markerTypes[i], categoryName);
-
-				}
-				tracker.registerObject(extension, categoryName,
-						IExtensionTracker.REF_STRONG);
-			}
-
-		}
-	}
-
-	/**
-	 * Process the cross references after all of the extensions have been read.
-	 * 
-	 * @param groupingEntries
-	 * @param attributeMappings
-	 * @param groupingEntries
-	 *            Mapping of group names to the markerGroupingEntries registered
-	 *            for them
-	 * @param attributeMappings
-	 *            the markerAttributeGroupings found
-	 */
-	private void postProcessExtensions(Map groupingEntries,
-			Collection attributeMappings) {
-		processGroupingEntries(groupingEntries);
-		processAttributeMappings(attributeMappings);
-	}
-
-	/**
-	 * Process the grouping entries into thier required grouping entries.
-	 * 
-	 * @param groupingEntries
-	 */
-	private void processGroupingEntries(Map groupingEntries) {
-		Iterator entriesIterator = groupingEntries.keySet().iterator();
-		while (entriesIterator.hasNext()) {
-			String nextGroupId = (String) entriesIterator.next();
-			Iterator nextEntriesIterator = ((Collection) groupingEntries
-					.get(nextGroupId)).iterator();
-			if (markerGroups.containsKey(nextGroupId)) {
-				while (nextEntriesIterator.hasNext()) {
-					MarkerGroupingEntry next = (MarkerGroupingEntry) nextEntriesIterator
-							.next();
-					markerGroupingEntries.put(next.getId(), next);
-					next.setGroupingEntry((FieldMarkerGroup) markerGroups
-							.get(nextGroupId));
-
-				}
-			} else {
-				while (nextEntriesIterator.hasNext()) {
-					MarkerGroupingEntry next = (MarkerGroupingEntry) nextEntriesIterator
-							.next();
-					IDEWorkbenchPlugin
-							.log(NLS
-									.bind(
-											"markerGroupingEntry {0} defines invalid group {1}",//$NON-NLS-1$
-											new String[] { next.getId(),
-													nextGroupId }));
-				}
-			}
-		}
-	}
-
-	/**
-	 * Process the attribute mappings into thier required grouping entries.
-	 * 
-	 * @param attributeMappings
-	 */
-	private void processAttributeMappings(Collection attributeMappings) {
-		Iterator mappingsIterator = attributeMappings.iterator();
-		while (mappingsIterator.hasNext()) {
-			AttributeMarkerGrouping next = (AttributeMarkerGrouping) mappingsIterator
-					.next();
-			String defaultEntryId = next.getDefaultGroupingEntry();
-			if (defaultEntryId != null) {
-				if (markerGroupingEntries.containsKey(defaultEntryId)) {
-					MarkerGroupingEntry entry = (MarkerGroupingEntry) markerGroupingEntries
-							.get(defaultEntryId);
-					entry.setAsDefault(next.getMarkerType());
-				} else {
-					IDEWorkbenchPlugin.log(NLS.bind(
-							"Reference to invalid markerGroupingEntry {0}",//$NON-NLS-1$
-							defaultEntryId));
-				}
-			}
-			IConfigurationElement[] mappings = next.getElement().getChildren(
-					ATTRIBUTE_MAPPING);
-
-			for (int i = 0; i < mappings.length; i++) {
-				String entryId = mappings[i]
-						.getAttribute(MARKER_GROUPING_ENTRY);
-
-				if (markerGroupingEntries.containsKey(entryId)) {
-					MarkerGroupingEntry entry = (MarkerGroupingEntry) markerGroupingEntries
-							.get(entryId);
-					entry.mapAttribute(next.getMarkerType(), next
-							.getAttribute(), mappings[i].getAttribute(VALUE));
-				} else {
-					IDEWorkbenchPlugin.log(NLS.bind(
-							"Reference to invaild markerGroupingEntry {0}", //$NON-NLS-1$
-							defaultEntryId));
-				}
-
-			}
-		}
-
-	}
-
-	/**
-	 * Get the markerTypes defined in element.
-	 * 
-	 * @param element
-	 * @return String[]
-	 */
-	private String[] getMarkerTypes(IConfigurationElement element) {
-		IConfigurationElement[] types = element
-				.getChildren(MARKER_TYPE_REFERENCE);
-		String[] ids = new String[types.length];
-		for (int i = 0; i < ids.length; i++) {
-			ids[i] = types[i].getAttribute(ID);
-		}
-		return ids;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.dynamichelpers.IExtensionChangeHandler#addExtension(org.eclipse.core.runtime.dynamichelpers.IExtensionTracker,
-	 *      org.eclipse.core.runtime.IExtension)
-	 */
-	public void addExtension(IExtensionTracker tracker, IExtension extension) {
-		Map groupingEntries = new HashMap();
-		Set attributeMappings = new HashSet();
-		processExtension(tracker, extension, groupingEntries, attributeMappings);
-		postProcessExtensions(groupingEntries, attributeMappings);
-	}
-
-	/**
-	 * Get the collection of currently registered filters.
-	 * 
-	 * @return Collection of ProblemFilter
-	 */
-	public Collection getRegisteredFilters() {
-		Collection filteredFilters = new ArrayList();
-		Iterator registeredIterator = registeredFilters.iterator();
-		while (registeredIterator.hasNext()) {
-			ProblemFilter next = (ProblemFilter) registeredIterator.next();
-			if (next.isFilteredOutByActivity()) {
-				continue;
-			}
-			filteredFilters.add(next);
-		}
-
-		return filteredFilters;
-	}
-
-	/**
-	 * Get the constant for scope from element. Return -1 if there is no value.
-	 * 
-	 * @param element
-	 * @return int one of MarkerView#ON_ANY MarkerView#ON_SELECTED_ONLY
-	 *         MarkerView#ON_SELECTED_AND_CHILDREN
-	 *         MarkerView#ON_ANY_IN_SAME_CONTAINER
-	 */
-	private int getScopeValue(IConfigurationElement element) {
-		String scope = element.getAttribute(SCOPE);
-		if (scope == null) {
-			return -1;
-		}
-		if (scope.equals(ON_ANY)) {
-			return MarkerFilter.ON_ANY;
-		}
-		if (scope.equals(ON_SELECTED_ONLY)) {
-			return MarkerFilter.ON_SELECTED_ONLY;
-		}
-		if (scope.equals(ON_SELECTED_AND_CHILDREN)) {
-			return MarkerFilter.ON_SELECTED_AND_CHILDREN;
-		}
-		if (scope.equals(ON_ANY_IN_SAME_CONTAINER)) {
-			return MarkerFilter.ON_ANY_IN_SAME_CONTAINER;
-		}
-
-		return -1;
-	}
-
-	/**
-	 * Get the constant for scope from element. Return -1 if there is no value.
-	 * 
-	 * @param element
-	 * @return int one of MarkerView#ON_ANY MarkerView#ON_SELECTED_ONLY
-	 *         MarkerView#ON_SELECTED_AND_CHILDREN
-	 *         MarkerView#ON_ANY_IN_SAME_CONTAINER
-	 */
-	private int getSeverityValue(IConfigurationElement element) {
-		String severity = element.getAttribute(SEVERITY);
-		if (severity == null) {
-			return -1;
-		}
-		if (severity.equals(INFO)) {
-			return ProblemFilter.SEVERITY_INFO;
-		}
-		if (severity.equals(WARNING)) {
-			return ProblemFilter.SEVERITY_WARNING;
-		}
-		if (severity.equals(ERROR)) {
-			return ProblemFilter.SEVERITY_ERROR;
-		}
-
-		return -1;
-	}
-
-	/**
-	 * Read the problem filters in the receiver.
-	 * 
-	 * @param element
-	 *            the filter element
-	 * @return ProblemFilter
-	 */
-	private ProblemFilter newFilter(IConfigurationElement element) {
-		ProblemFilter filter = new ProblemFilter(element.getAttribute(NAME));
-
-		filter.createContributionFrom(element);
-
-		String enabledValue = element.getAttribute(ENABLED);
-		filter.setEnabled(enabledValue == null
-				|| Boolean.valueOf(enabledValue).booleanValue());
-
-		int scopeValue = getScopeValue(element);
-		if (scopeValue >= 0) {
-			filter.setOnResource(scopeValue);
-		}
-
-		String description = element.getAttribute(DESCRIPTION);
-		if (description != null) {
-			boolean contains = true;
-			if (description.charAt(0) == '!') {// does not contain flag
-				description = description.substring(1, description.length());
-				contains = false;
-			}
-			filter.setContains(contains);
-			filter.setDescription(description);
-		}
-
-		int severityValue = getSeverityValue(element);
-		if (severityValue > 0) {
-			filter.setSelectBySeverity(true);
-			filter.setSeverity(severityValue);
-		} else {
-			filter.setSelectBySeverity(false);
-		}
-
-		List selectedTypes = new ArrayList();
-		IConfigurationElement[] types = element.getChildren(SELECTED_TYPE);
-		for (int j = 0; j < types.length; j++) {
-			String markerId = types[j].getAttribute(MARKER_ID);
-			if (markerId != null) {
-				MarkerType type = filter.getMarkerType(markerId);
-				if (type == null) {
-					IStatus status = new Status(IStatus.WARNING,
-							IDEWorkbenchPlugin.IDE_WORKBENCH, IStatus.WARNING,
-							MarkerMessages.ProblemFilterRegistry_nullType, null);
-					IDEWorkbenchPlugin.getDefault().getLog().log(status);
-				} else {
-					selectedTypes.add(type);
-				}
-			}
-		}
-
-		if (selectedTypes.size() > 0) {
-			// specified
-			filter.setSelectedTypes(selectedTypes);
-		}
-
-		return filter;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.dynamichelpers.IExtensionChangeHandler#removeExtension(org.eclipse.core.runtime.IExtension,
-	 *      java.lang.Object[])
-	 */
-	public void removeExtension(IExtension extension, Object[] objects) {
-
-		Collection removedGroups = new ArrayList();
-
-		for (int i = 0; i < objects.length; i++) {
-			if (objects[i] instanceof ProblemFilter) {
-				registeredFilters.remove(objects[i]);
-			}
-
-			if (objects[i] instanceof FieldMarkerGroup) {
-				markerGroups.remove(((FieldMarkerGroup) objects[i]).getId());
-				removedGroups.add(objects[i]);
-			}
-
-			if (objects[i] instanceof MarkerGroupingEntry) {
-				MarkerGroupingEntry entry = (MarkerGroupingEntry) objects[i];
-				entry.getMarkerGroup().remove(entry);
-				markerGroupingEntries.remove(entry.getId());
-			}
-
-			if (objects[i] instanceof String) {
-				removeValues(objects[i], categories);
-			}
-
-		}
-
-		Iterator entriesIterator = markerGroupingEntries.keySet().iterator();
-		Collection removedKeys = new ArrayList();
-		while (entriesIterator.hasNext()) {
-			String entryId = (String) entriesIterator.next();
-			MarkerGroupingEntry entry = (MarkerGroupingEntry) markerGroupingEntries
-					.get(entryId);
-			if (removedGroups.contains(entry.getMarkerGroup())) {
-				removedKeys.add(entryId);
-			}
-		}
-
-		Iterator removedIterator = removedKeys.iterator();
-		while (removedIterator.hasNext()) {
-			markerGroupingEntries.remove(removedIterator.next());
-		}
-
-	}
-
-	/**
-	 * Remove the value from all of the collection sets in cache. If the
-	 * collection is empty remove the key as well.
-	 * 
-	 * @param value
-	 * @param cache
-	 */
-	private void removeValues(Object value, HashMap cache) {
-		Collection keysToRemove = new ArrayList();
-		Iterator keys = cache.keySet().iterator();
-		while (keys.hasNext()) {
-			String key = (String) keys.next();
-			Object next = cache.get(key);
-			if (next instanceof Collection) {
-				Collection collection = (Collection) next;
-				if (collection.contains(value)) {
-					collection.remove(value);
-					if (collection.isEmpty()) {
-						keysToRemove.add(key);
-					}
-					break;
-				}
-			} else {
-				if (cache.get(key).equals(value)) {
-					keysToRemove.add(key);
-				}
-			}
-		}
-		Iterator keysToRemoveIterator = keysToRemove.iterator();
-		while (keysToRemoveIterator.hasNext()) {
-			cache.remove(keysToRemoveIterator.next());
-		}
-	}
-
-	/**
-	 * Get the category associated with marker. Return <code>null</code> if
-	 * there are none.
-	 * 
-	 * @param marker
-	 * @return String or <code>null</code>
-	 */
-	public String getCategory(IMarker marker) {
-		try {
-			return getCategory(marker.getType());
-		} catch (CoreException e) {
-			Util.log(e);
-		}
-		return null;
-	}
-
-	/**
-	 * Get the category associated with markerType. Return <code>null</code>
-	 * if there are none.
-	 * 
-	 * @param markerType
-	 * @return String or <code>null</code>
-	 */
-	public String getCategory(String markerType) {
-		if (categories.containsKey(markerType)) {
-			return (String) categories.get(markerType);
-		}
-		return null;
-	}
-
-	/**
-	 * Return the TableSorter that corresponds to type.
-	 * 
-	 * @param type
-	 * @return TableSorter
-	 */
-	public TableComparator getSorterFor(String type) {
-		if (hierarchyOrders.containsKey(type)) {
-			return (TableComparator) hierarchyOrders.get(type);
-		}
-
-		TableComparator sorter = findSorterInChildren(type, getRootType());
-		if (sorter == null) {
-			return new TableComparator(new IField[0], new int[0], new int[0]);
-		}
-		return sorter;
-	}
-
-	/**
-	 * Return the list of root marker types.
-	 * 
-	 * @return List of MarkerType.
-	 */
-	private MarkerType getRootType() {
-		if (rootType == null) {
-			rootType = (MarkerTypesModel.getInstance())
-					.getType(IMarker.PROBLEM);
-		}
-		return rootType;
-	}
-
-	/**
-	 * Find the best match sorter for typeName in the children. If it cannot be
-	 * found then return <code>null</code>.
-	 * 
-	 * @param typeName
-	 * @param type
-	 * @return TableSorter or <code>null</code>.
-	 */
-	private TableComparator findSorterInChildren(String typeName, MarkerType type) {
-
-		MarkerType[] types = type.getAllSubTypes();
-		TableComparator defaultSorter = null;
-		if (hierarchyOrders.containsKey(type.getId())) {
-			defaultSorter = (TableComparator) hierarchyOrders.get(type.getId());
-		}
-
-		for (int i = 0; i < types.length; i++) {
-			MarkerType[] subtypes = types[i].getAllSubTypes();
-			for (int j = 0; j < subtypes.length; j++) {
-				TableComparator sorter = findSorterInChildren(typeName, subtypes[j]);
-				if (sorter != null) {
-					return sorter;
-				}
-			}
-		}
-		return defaultSorter;
-
-	}
-
-	/**
-	 * Return the FieldMarkerGroups in the receiver.
-	 * 
-	 * @return Collection of FieldMarkerGroup
-	 */
-	public Collection getMarkerGroups() {
-		return markerGroups.values();
-	}
-
-	/**
-	 * Return the default group.
-	 * 
-	 * @return IField
-	 */
-	public IField getDefaultGroup() {
-
-		return (IField) markerGroups.get(SEVERITY_ID);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerTreeContentProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerTreeContentProvider.java
deleted file mode 100644
index 2f99f58..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerTreeContentProvider.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.ui.views.markers.internal;
-
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * The MarkerTreeContentProvider is the content provider for the marker trees.
- * 
- * @since 3.2
- * 
- */
-public class MarkerTreeContentProvider implements ITreeContentProvider {
-
-	TreeViewer viewer;
-
-	boolean hierarchalMode = true;
-
-	private MarkerAdapter adapter;
-
-	/**
-	 * Create a new content provider for the view.
-	 */
-	MarkerTreeContentProvider() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object parentElement) {
-		if (parentElement instanceof MarkerNode) {
-			return ((MarkerNode) parentElement).getChildren();
-		}
-		return Util.EMPTY_MARKER_ARRAY;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-	 */
-	public Object getParent(Object element) {
-		if (element instanceof MarkerNode) {
-			return ((MarkerNode) element).getParent();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(Object element) {
-		if (element instanceof MarkerNode) {
-			return ((MarkerNode) element).getChildren().length > 0;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		return adapter.getElements();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		// Nothing to do 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 viewer, Object oldInput, Object newInput) {
-		this.viewer = (TreeViewer) viewer;
-		adapter = (MarkerAdapter) newInput;
-
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerType.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerType.java
deleted file mode 100644
index 8aab0eb..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerType.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.views.markers.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents a marker type.
- */
-public class MarkerType {
-    private MarkerTypesModel model;
-
-    private String id;
-
-    private String label;
-
-    private String[] supertypeIds;
-
-    /**
-     * Creates a new marker type.
-     */
-    public MarkerType(MarkerTypesModel model, String id, String label,
-            String[] supertypeIds) {
-        this.model = model;
-        this.id = id;
-        this.label = label;
-        this.supertypeIds = supertypeIds;
-    }
-
-    /**
-     * Returns all this type's supertypes.
-     */
-    public MarkerType[] getAllSupertypes() {
-        ArrayList result = new ArrayList();
-        getAllSupertypes(result);
-        return (MarkerType[]) result.toArray(new MarkerType[result.size()]);
-    }
-
-    /**
-     * Appends all this type's supertypes to the given list.
-     */
-    private void getAllSupertypes(ArrayList result) {
-        MarkerType[] supers = getSupertypes();
-        for (int i = 0; i < supers.length; ++i) {
-            MarkerType sup = supers[i];
-            if (!result.contains(sup)) {
-                result.add(sup);
-                sup.getAllSupertypes(result);
-            }
-        }
-    }
-
-    /**
-     * Returns the marker type id.
-     */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * Returns the human-readable label for this marker type.
-     */
-    public String getLabel() {
-        return label;
-    }
-
-    /**
-     * Returns the types which have this type as a direct supertype.
-     *
-     * @return the direct subtypes of this type
-     */
-    public MarkerType[] getSubtypes() {
-        MarkerType[] types = model.getTypes();
-        ArrayList result = new ArrayList();
-        for (int i = 0; i < types.length; ++i) {
-            MarkerType type = types[i];
-            String[] supers = type.getSupertypeIds();
-            for (int j = 0; j < supers.length; ++j) {
-                if (supers[j].equals(id)) {
-                    result.add(type);
-                }
-            }
-        }
-        return (MarkerType[]) result.toArray(new MarkerType[result.size()]);
-    }
-
-    public MarkerType[] getAllSubTypes() {
-        List subTypes = new ArrayList();
-        addSubTypes(subTypes, this);
-        MarkerType[] subs = new MarkerType[subTypes.size()];
-        subTypes.toArray(subs);
-        return subs;
-    }
-
-    private void addSubTypes(List list, MarkerType superType) {
-        MarkerType[] subTypes = superType.getSubtypes();
-        for (int i = 0; i < subTypes.length; i++) {
-            MarkerType subType = subTypes[i];
-            if (!list.contains(subType)) {
-                list.add(subType);
-            }
-            addSubTypes(list, subType);
-        }
-    }
-
-    /**
-     * Returns the marker type ids for this type's supertypes.
-     */
-    public String[] getSupertypeIds() {
-        return supertypeIds;
-    }
-
-    /**
-     * Returns this type's direct supertypes.
-     */
-    public MarkerType[] getSupertypes() {
-        ArrayList result = new ArrayList();
-        for (int i = 0; i < supertypeIds.length; ++i) {
-            MarkerType sup = model.getType(supertypeIds[i]);
-            if (sup != null) {
-                result.add(sup);
-            }
-        }
-        return (MarkerType[]) result.toArray(new MarkerType[result.size()]);
-    }
-
-    /**
-     * Returns whether this marker type is considered to be a subtype of
-     * the given marker type. 
-     *
-     * @return boolean <code>true</code>if this type is the same as (or a subtype of) the given type
-     */
-    public boolean isSubtypeOf(MarkerType superType) {
-        if (id.equals(superType.getId())) {
-            return true;
-        }
-        for (int i = 0; i < supertypeIds.length; ++i) {
-            MarkerType sup = model.getType(supertypeIds[i]);
-            if (sup != null && sup.isSubtypeOf(superType)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    public boolean equals(Object other) {
-        if (!(other instanceof MarkerType)) {
-            return false;
-        }
-        return ((MarkerType) other).getId().equals(this.id);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerTypesModel.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerTypesModel.java
deleted file mode 100644
index e76e05a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerTypesModel.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.views.markers.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * Maintains a model of all known marker types. Accessed statically as
- * the list does not change frequently.
- */
-class MarkerTypesModel {
-	
-	/**
-	 * Return the singleton implementation.
-	 * @return MarkerTypesModel
-	 */
-	static MarkerTypesModel getInstance(){
-		if(instance == null) {
-			instance = new MarkerTypesModel();
-		}
-		return instance;
-	}
-
-	static MarkerTypesModel instance;
-
-	/**
-	 * Maps from marker type id to MarkerType.
-	 */
-	private HashMap types;
-
-	/**
-	 * Creates a new marker types model.
-	 */
-	private MarkerTypesModel() {
-		types = readTypes();
-	}
-
-	/**
-	 * Returns the marker type with the given id, or <code>null</code> if
-	 * there is no such marker type.
-	 */
-	public MarkerType getType(String id) {
-		return (MarkerType) types.get(id);
-	}
-
-	/**
-	 * Returns all known marker types.
-	 */
-	public MarkerType[] getTypes() {
-		MarkerType[] result = new MarkerType[types.size()];
-		types.values().toArray(result);
-		return result;
-	}
-
-	/**
-	 * Returns the label for the given marker type. Workaround until we have
-	 * labels in XML.
-	 */
-	private String getWellKnownLabel(String type) {
-		if (type.equals(IMarker.PROBLEM)) {
-			return "Problem";//$NON-NLS-1$
-		}
-		if (type.equals(IMarker.TASK)) {
-			return "Task";//$NON-NLS-1$
-		}
-		if (type.equals("org.eclipse.jdt.core.problem")) { //$NON-NLS-1$
-			return "Java Problem";//$NON-NLS-1$
-		}
-		return type;
-	}
-
-	/**
-	 * Reads the marker types from the registry.
-	 */
-	private HashMap readTypes() {
-		HashMap types = new HashMap();
-
-		IExtensionPoint point = Platform.getExtensionRegistry()
-				.getExtensionPoint(ResourcesPlugin.PI_RESOURCES,
-						ResourcesPlugin.PT_MARKERS);
-		if (point != null) {
-			// Gather all registered marker types.
-			IExtension[] extensions = point.getExtensions();
-			for (int i = 0; i < extensions.length; ++i) {
-				IExtension ext = extensions[i];
-				String id = ext.getUniqueIdentifier();
-				String label = ext.getLabel();
-				if (label.equals("")) {//$NON-NLS-1$
-					label = getWellKnownLabel(id);
-				}
-				ArrayList supersList = new ArrayList();
-				IConfigurationElement[] configElements = ext
-						.getConfigurationElements();
-				for (int j = 0; j < configElements.length; ++j) {
-					IConfigurationElement elt = configElements[j];
-					if (elt.getName().equalsIgnoreCase("super")) {//$NON-NLS-1$
-						String sup = elt.getAttribute("type");//$NON-NLS-1$
-						if (sup != null) {
-							supersList.add(sup);
-						}
-					}
-				}
-				String[] superTypes = new String[supersList.size()];
-				supersList.toArray(superTypes);
-				MarkerType type = new MarkerType(this, id, label, superTypes);
-				types.put(id, type);
-			}
-		}
-		return types;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerView.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerView.java
deleted file mode 100644
index 73b10b2..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerView.java
+++ /dev/null
@@ -1,1771 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-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.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.resources.mapping.ResourceMappingContext;
-import org.eclipse.core.resources.mapping.ResourceTraversal;
-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.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobChangeListener;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.help.HelpSystem;
-import org.eclipse.help.IContext;
-import org.eclipse.help.IContextProvider;
-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.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.DND;
-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.events.KeyEvent;
-import org.eclipse.swt.events.TreeAdapter;
-import org.eclipse.swt.events.TreeEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ContributionItemFactory;
-import org.eclipse.ui.actions.SelectionProviderAction;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.ResourceUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.operations.RedoActionHandler;
-import org.eclipse.ui.operations.UndoActionHandler;
-import org.eclipse.ui.part.IShowInSource;
-import org.eclipse.ui.part.MarkerTransfer;
-import org.eclipse.ui.part.ShowInContext;
-import org.eclipse.ui.preferences.ViewPreferencesAction;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-import org.eclipse.ui.progress.WorkbenchJob;
-import org.eclipse.ui.views.markers.internal.MarkerAdapter.MarkerCategory;
-import org.eclipse.ui.views.tasklist.ITaskListResourceAdapter;
-
-/**
- * MarkerView is the abstract super class of the marker based views.
- * 
- */
-public abstract class MarkerView extends TableView {
-
-	private static final String TAG_SELECTION = "selection"; //$NON-NLS-1$
-
-	private static final String TAG_MARKER = "marker"; //$NON-NLS-1$
-
-	private static final String TAG_RESOURCE = "resource"; //$NON-NLS-1$
-
-	private static final String TAG_ID = "id"; //$NON-NLS-1$
-
-	private static final String TAG_FILTERS_SECTION = "filters"; //$NON-NLS-1$
-
-	private static final String TAG_FILTER_ENTRY = "filter"; //$NON-NLS-1$
-
-	private static final String MENU_FILTERS_GROUP = "group.filter";//$NON-NLS-1$
-
-	private static final String MENU_SHOW_IN_GROUP = "group.showIn";//$NON-NLS-1$
-
-	// Section from a 3.1 or earlier workbench
-	private static final String OLD_FILTER_SECTION = "filter"; //$NON-NLS-1$
-
-	static final Object MARKER_UPDATE_FAMILY = new Object();
-
-	class MarkerProcessJob extends Job {
-
-		/**
-		 * Create a new instance of the receiver.
-		 */
-		MarkerProcessJob() {
-			super(MarkerMessages.MarkerView_processUpdates);
-			setSystem(true);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-		 */
-		protected IStatus run(IProgressMonitor monitor) {
-			updateForContentsRefresh(monitor);
-			return Status.OK_STATUS;
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.progress.WorkbenchJob#shouldRun()
-		 */
-		public boolean shouldRun() {
-			return PlatformUI.isWorkbenchRunning();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.runtime.jobs.Job#belongsTo(java.lang.Object)
-		 */
-		public boolean belongsTo(Object family) {
-			return MARKER_UPDATE_FAMILY == family;
-		}
-
-	}
-
-	MarkerProcessJob markerProcessJob = new MarkerProcessJob();
-
-	private class UpdateJob extends WorkbenchJob {
-
-		private class MarkerDescriptor {
-			String description;
-
-			String folder;
-
-			String resource;
-
-			int line;
-
-			MarkerDescriptor(ConcreteMarker marker) {
-				description = marker.getDescription();
-				folder = marker.getFolder();
-				resource = marker.getResourceName();
-				line = marker.getLine();
-			}
-
-			boolean isEquivalentTo(ConcreteMarker marker) {
-				return marker.getDescription().equals(description)
-						&& marker.getFolder().equals(folder)
-						&& marker.getResourceName().equals(resource)
-						&& marker.getLine() == line;
-			}
-
-		}
-
-		private Collection categoriesToExpand = new HashSet();
-
-		private Collection preservedSelection = new ArrayList();
-
-		UpdateJob() {
-			super(MarkerMessages.MarkerView_queueing_updates);
-			setSystem(true);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
-		 */
-		public IStatus runInUIThread(IProgressMonitor monitor) {
-
-			if (getViewer().getControl().isDisposed()) {
-				return Status.CANCEL_STATUS;
-			}
-
-			if(monitor.isCanceled())
-				return Status.CANCEL_STATUS;
-
-			getViewer().refresh(true);
-
-			Tree tree = getTree();
-
-			if (tree != null && !tree.isDisposed()) {
-				updateStatusMessage();
-				updateTitle();
-				// Expand all if the list is small
-				if (getCurrentMarkers().getSize() < 20) {
-					getViewer().expandAll();
-				} else {// Reexpand the old categories
-					MarkerCategory[] categories = getMarkerAdapter()
-							.getCategories();
-					if (categories == null)
-						categoriesToExpand.clear();
-					else {
-						if (categories.length == 1) {// Expand if there is
-							// only
-							// one
-							getViewer().expandAll();
-							categoriesToExpand.clear();
-							if(monitor.isCanceled())
-								return Status.CANCEL_STATUS;
-							categoriesToExpand.add(categories[0].getName());
-						} else {
-							Collection newCategories = new HashSet();
-							for (int i = 0; i < categories.length; i++) {
-								if(monitor.isCanceled())
-									return Status.CANCEL_STATUS;
-								MarkerCategory category = categories[i];
-								if (categoriesToExpand.contains(category
-										.getName())) {
-									getViewer().expandToLevel(category,
-											AbstractTreeViewer.ALL_LEVELS);
-									newCategories.add(category.getName());
-								}
-
-							}
-							categoriesToExpand = newCategories;
-						}
-					}
-
-				}
-			}
-
-			if (preservedSelection.size() > 0) {
-
-				Collection newSelection = new ArrayList();
-				ConcreteMarker[] markers = getCurrentMarkers().toArray();
-
-				for (int i = 0; i < markers.length; i++) {
-					Iterator preserved = preservedSelection.iterator();
-					while (preserved.hasNext()) {
-						MarkerDescriptor next = (MarkerDescriptor) preserved
-								.next();
-						if (next.isEquivalentTo(markers[i])) {
-							newSelection.add(markers[i]);
-							continue;
-						}
-					}
-				}
-
-				getViewer().setSelection(
-						new StructuredSelection(newSelection.toArray()), true);
-				preservedSelection.clear();
-			}
-			if (getViewer().getTree().getItemCount() > 0)
-				getViewer().getTree().setTopItem(
-						getViewer().getTree().getItem(0));
-
-			return Status.OK_STATUS;
-		}
-
-		/**
-		 * Add the category to the list of expanded categories.
-		 * 
-		 * @param category
-		 */
-		public void addExpandedCategory(MarkerCategory category) {
-			categoriesToExpand.add(category.getName());
-
-		}
-
-		/**
-		 * Remove the category from the list of expanded ones.
-		 * 
-		 * @param category
-		 */
-		public void removeExpandedCategory(MarkerCategory category) {
-			categoriesToExpand.remove(category.getName());
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.runtime.jobs.Job#belongsTo(java.lang.Object)
-		 */
-		public boolean belongsTo(Object family) {
-			return family == MARKER_UPDATE_FAMILY;
-		}
-
-		/**
-		 * Preserve the selection for reselection after the next update.
-		 * 
-		 * @param selection
-		 */
-		public void saveSelection(ISelection selection) {
-			preservedSelection.clear();
-			if (selection instanceof IStructuredSelection) {
-				IStructuredSelection structured = (IStructuredSelection) selection;
-				Iterator iterator = structured.iterator();
-				while (iterator.hasNext()) {
-					MarkerNode next = (MarkerNode) iterator.next();
-					if (next.isConcrete()) {
-						preservedSelection.add(new MarkerDescriptor(next
-								.getConcreteRepresentative()));
-					}
-				}
-			}
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.progress.WorkbenchJob#shouldRun()
-		 */
-		public boolean shouldRun() {
-			return !getMarkerAdapter().isBuilding();
-		}
-
-	}
-
-	private UpdateJob updateJob = new UpdateJob();
-
-	// A private field for keeping track of the number of markers
-	// before the busy testing started
-	private int preBusyMarkers = 0;
-
-	protected Object[] focusElements;
-
-	private Clipboard clipboard;
-
-	IResourceChangeListener markerUpdateListener = new IResourceChangeListener() {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
-		 */
-		public void resourceChanged(IResourceChangeEvent event) {
-
-			if (event.getType() == IResourceChangeEvent.POST_BUILD) {
-				scheduleMarkerUpdate(Util.SHORT_DELAY);
-				return;
-			}
-
-			// After 30 seconds do updates anyways
-
-			IWorkbenchSiteProgressService progressService = getProgressService();
-			if (progressService == null)
-				markerProcessJob.schedule(Util.LONG_DELAY);
-			else
-				getProgressService()
-						.schedule(markerProcessJob, Util.LONG_DELAY);
-
-		}
-
-		/**
-		 * Return whether or not any of the deltas indicate a required update.
-		 * 
-		 * @param event
-		 * @param markerTypes
-		 * @param needsUpdate
-		 * @return boolean
-		 */
-		// boolean checkIfUpdateRequired(IResourceChangeEvent event,
-		// String[] markerTypes) {
-		// for (int idx = 0; idx < markerTypes.length; idx++) {
-		// IMarkerDelta[] markerDeltas = event.findMarkerDeltas(
-		// markerTypes[idx], true);
-		// for (int i = 0; i < markerDeltas.length; i++) {
-		// IMarkerDelta delta = markerDeltas[i];
-		// int kind = delta.getKind();
-		//
-		// if (kind == IResourceDelta.CHANGED) {
-		// return true;
-		// }
-		// if (kind == IResourceDelta.ADDED) {
-		// return true;
-		// }
-		// if (kind == IResourceDelta.REMOVED) {
-		// return true;
-		// }
-		// }
-		//
-		// }
-		// return false;
-		// }
-	};
-
-	private class ContextProvider implements IContextProvider {
-		public int getContextChangeMask() {
-			return SELECTION;
-		}
-
-		public IContext getContext(Object target) {
-			String contextId = null;
-			// See if there is a context registered for the current selection
-			ConcreteMarker marker = getSelectedConcreteMarker();
-			if (marker != null) {
-				contextId = IDE.getMarkerHelpRegistry().getHelp(
-						marker.getMarker());
-			}
-
-			if (contextId == null) {
-				contextId = getStaticContextId();
-			}
-			return HelpSystem.getContext(contextId);
-		}
-
-		/**
-		 * Return the currently selected concrete marker or <code>null</code>
-		 * if there isn't one.
-		 * 
-		 * @return ConcreteMarker
-		 */
-		private ConcreteMarker getSelectedConcreteMarker() {
-
-			IStructuredSelection selection = (IStructuredSelection) getViewer()
-					.getSelection();
-			if (selection.isEmpty())
-				return null;
-
-			if (selection.getFirstElement() instanceof ConcreteMarker)
-				return (ConcreteMarker) selection.getFirstElement();
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.help.IContextProvider#getSearchExpression(java.lang.Object)
-		 */
-		public String getSearchExpression(Object target) {
-			return null;
-		}
-	}
-
-	private ContextProvider contextProvider = new ContextProvider();
-
-	protected ActionCopyMarker copyAction;
-
-	protected ActionPasteMarker pasteAction;
-
-	protected SelectionProviderAction revealAction;
-
-	protected SelectionProviderAction openAction;
-
-	protected SelectionProviderAction deleteAction;
-
-	protected SelectionProviderAction selectAllAction;
-
-	protected SelectionProviderAction propertiesAction;
-	
-	protected UndoActionHandler undoAction;
-	
-	protected RedoActionHandler redoAction;
-
-	private ISelectionListener focusListener = new ISelectionListener() {
-		public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-			MarkerView.this.focusSelectionChanged(part, selection);
-		}
-	};
-
-	private int totalMarkers = 0;
-
-	private MarkerFilter[] markerFilters = new MarkerFilter[0];
-
-	// A cache of the enabled filters
-	private MarkerFilter[] enabledFilters = null;
-
-	private MenuManager filtersMenu;
-
-	private MenuManager showInMenu;
-
-	private IPropertyChangeListener workingSetListener;
-
-	private MarkerAdapter adapter;
-
-	private IPropertyChangeListener preferenceListener;
-
-	/**
-	 * Create a new instance of the receiver,
-	 */
-	public MarkerView() {
-		super();
-		adapter = new MarkerAdapter(this);
-		preferenceListener = new IPropertyChangeListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-			 */
-			public void propertyChange(PropertyChangeEvent event) {
-				if (event.getProperty().equals(getFiltersPreferenceName())) {
-					loadFiltersPreferences();
-					clearEnabledFilters();
-					refreshForFocusUpdate();
-				}
-			}
-		};
-		IDEWorkbenchPlugin.getDefault().getPreferenceStore()
-				.addPropertyChangeListener(preferenceListener);
-	}
-
-	/**
-	 * Get the current markers for the receiver.
-	 * 
-	 * @return MarkerList
-	 */
-	public MarkerList getCurrentMarkers() {
-		return getMarkerAdapter().getCurrentMarkers();
-	}
-
-	/**
-	 * Get the marker adapter for the receiver.
-	 * 
-	 * @return MarkerAdapter
-	 */
-	protected MarkerAdapter getMarkerAdapter() {
-		return adapter;
-	}
-
-	/**
-	 * Update for the change in the contents.
-	 * 
-	 * @param monitor
-	 */
-	public void updateForContentsRefresh(IProgressMonitor monitor) {
-		updateJob.cancel();
-		getMarkerAdapter().buildAllMarkers(monitor);
-		getProgressService().schedule(updateJob);
-	}
-
-	/*
-	 * (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 {
-		super.init(site, memento);
-		IWorkbenchSiteProgressService progressService = getProgressService();
-		if (progressService != null) {
-			getProgressService().showBusyForFamily(
-					ResourcesPlugin.FAMILY_MANUAL_BUILD);
-			getProgressService().showBusyForFamily(
-					ResourcesPlugin.FAMILY_AUTO_BUILD);
-			getProgressService().showBusyForFamily(MARKER_UPDATE_FAMILY);
-		}
-		loadFiltersPreferences();
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(
-				markerUpdateListener,
-				IResourceChangeEvent.POST_CHANGE
-						| IResourceChangeEvent.PRE_BUILD
-						| IResourceChangeEvent.POST_BUILD);
-
-	}
-
-	/**
-	 * Load the filters preference.
-	 */
-	private void loadFiltersPreferences() {
-
-		String preference = IDEWorkbenchPlugin.getDefault()
-				.getPreferenceStore().getString(getFiltersPreferenceName());
-
-		if (preference.equals(IPreferenceStore.STRING_DEFAULT_DEFAULT)) {
-			createDefaultFilter();
-			return;
-		}
-
-		StringReader reader = new StringReader(preference);
-		try {
-			restoreFilters(XMLMemento.createReadRoot(reader));
-		} catch (WorkbenchException e) {
-			IDEWorkbenchPlugin.log(e.getLocalizedMessage(), e);
-		}
-
-	}
-
-	/**
-	 * Update for filter changes. Save the preference and clear the enabled
-	 * cache.
-	 */
-	void updateForFilterChanges() {
-
-		XMLMemento memento = XMLMemento.createWriteRoot(TAG_FILTERS_SECTION);
-
-		writeFiltersSettings(memento);
-
-		StringWriter writer = new StringWriter();
-		try {
-			memento.save(writer);
-		} catch (IOException e) {
-			IDEWorkbenchPlugin.getDefault().getLog().log(Util.errorStatus(e));
-		}
-
-		IDEWorkbenchPlugin.getDefault().getPreferenceStore().putValue(
-				getFiltersPreferenceName(), writer.toString());
-		IDEWorkbenchPlugin.getDefault().savePluginPreferences();
-
-		clearEnabledFilters();
-		refreshFilterMenu();
-		refreshViewer();
-	}
-
-	/**
-	 * Write the filter settings to the memento.
-	 * 
-	 * @param memento
-	 */
-	protected void writeFiltersSettings(XMLMemento memento) {
-		MarkerFilter[] filters = getUserFilters();
-		for (int i = 0; i < filters.length; i++) {
-			IMemento child = memento.createChild(TAG_FILTER_ENTRY, filters[i]
-					.getName());
-			filters[i].saveFilterSettings(child);
-		}
-	}
-
-	/**
-	 * Get the name of the filters preference for instances of the receiver.
-	 * 
-	 * @return String
-	 */
-	abstract String getFiltersPreferenceName();
-
-	/**
-	 * Restore the filters from the mimento.
-	 * 
-	 * @param memento
-	 */
-	void restoreFilters(IMemento memento) {
-
-		IMemento[] sections = null;
-		if (memento != null) {
-			sections = memento.getChildren(TAG_FILTER_ENTRY);
-		}
-
-		if (sections == null) {
-			// Check if we have an old filter setting around
-			IDialogSettings mainSettings = getDialogSettings();
-			IDialogSettings filtersSection = mainSettings
-					.getSection(OLD_FILTER_SECTION);
-			if (filtersSection != null) {
-				MarkerFilter markerFilter = createFilter(MarkerMessages.MarkerFilter_defaultFilterName);
-				markerFilter.restoreFilterSettings(filtersSection);
-				setFilters(new MarkerFilter[] { markerFilter });
-			}
-
-		} else {
-			MarkerFilter[] newFilters = new MarkerFilter[sections.length];
-
-			for (int i = 0; i < sections.length; i++) {
-				newFilters[i] = createFilter(sections[i].getID());
-				newFilters[i].restoreState(sections[i]);
-			}
-			setFilters(newFilters);
-		}
-
-		if (markerFilters.length == 0) {// Make sure there is at least a default
-			createDefaultFilter();
-		}
-
-	}
-
-	/**
-	 * Create a default filter for the receiver.
-	 * 
-	 */
-	private void createDefaultFilter() {
-		MarkerFilter filter = createFilter(MarkerMessages.MarkerFilter_defaultFilterName);
-		setFilters(new MarkerFilter[] { filter });
-	}
-
-	/**
-	 * Create a filter called name.
-	 * 
-	 * @param name
-	 * @return MarkerFilter
-	 */
-	protected abstract MarkerFilter createFilter(String name);
-
-	/**
-	 * Return the memento tag for the receiver.
-	 * 
-	 * @return String
-	 */
-	protected abstract String getSectionTag();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.internal.tableview.TableView#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-
-		clipboard = new Clipboard(parent.getDisplay());
-		super.createPartControl(parent);
-
-		initDragAndDrop();
-
-		getSite().getPage().addSelectionListener(focusListener);
-		focusSelectionChanged(getSite().getPage().getActivePart(), getSite()
-				.getPage().getSelection());
-		PlatformUI.getWorkbench().getWorkingSetManager()
-				.addPropertyChangeListener(getWorkingSetListener());
-
-		// Set help on the view itself
-		getViewer().getControl().addHelpListener(new HelpListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.HelpListener#helpRequested(org.eclipse.swt.events.HelpEvent)
-			 */
-			public void helpRequested(HelpEvent e) {
-				IContext context = contextProvider.getContext(getViewer()
-						.getControl());
-				PlatformUI.getWorkbench().getHelpSystem().displayHelp(context);
-			}
-		});
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adaptable) {
-		if (adaptable.equals(IContextProvider.class)) {
-			return contextProvider;
-		}
-		if (adaptable.equals(IShowInSource.class)) {
-			return new IShowInSource() {
-				public ShowInContext getShowInContext() {
-					ISelection selection = getViewer().getSelection();
-					if (!(selection instanceof IStructuredSelection)) {
-						return null;
-					}
-					IStructuredSelection structured = (IStructuredSelection) selection;
-					Iterator markerIterator = structured.iterator();
-					List newSelection = new ArrayList();
-					while (markerIterator.hasNext()) {
-						ConcreteMarker element = (ConcreteMarker) markerIterator
-								.next();
-						newSelection.add(element.getResource());
-					}
-					return new ShowInContext(getViewer().getInput(),
-							new StructuredSelection(newSelection));
-				}
-
-			};
-		}
-		return super.getAdapter(adaptable);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#viewerSelectionChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	protected void viewerSelectionChanged(IStructuredSelection selection) {
-
-		Object[] rawSelection = selection.toArray();
-
-		List markers = new ArrayList();
-
-		for (int idx = 0; idx < rawSelection.length; idx++) {
-
-			if (rawSelection[idx] instanceof ConcreteMarker)
-				markers.add(((ConcreteMarker) rawSelection[idx]).getMarker());
-		}
-
-		setSelection(new StructuredSelection(markers));
-
-		updateStatusMessage(selection);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.internal.tableview.TableView#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(
-				markerUpdateListener);
-		PlatformUI.getWorkbench().getWorkingSetManager()
-				.removePropertyChangeListener(workingSetListener);
-		IDEWorkbenchPlugin.getDefault().getPreferenceStore()
-				.removePropertyChangeListener(preferenceListener);
-		getSite().getPage().removeSelectionListener(focusListener);
-
-		// dispose of selection provider actions (may not have been created yet
-		// if createPartControls was never called)
-		if (openAction != null) {
-			openAction.dispose();
-			copyAction.dispose();
-			selectAllAction.dispose();
-			deleteAction.dispose();
-			revealAction.dispose();
-			propertiesAction.dispose();
-			undoAction.dispose();
-			redoAction.dispose();
-			clipboard.dispose();
-		}
-		if (showInMenu != null) {
-			showInMenu.dispose();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.internal.tableview.TableView#createActions()
-	 */
-	protected void createActions() {
-		revealAction = new ActionRevealMarker(this, getViewer());
-		openAction = new ActionOpenMarker(this, getViewer());
-		copyAction = new ActionCopyMarker(this, getViewer());
-		copyAction.setClipboard(clipboard);
-		copyAction.setProperties(getSortingFields());
-		pasteAction = new ActionPasteMarker(this, getViewer(), getMarkerName());
-		pasteAction.setClipboard(clipboard);
-		pasteAction.setPastableTypes(getMarkerTypes());
-		deleteAction = new ActionRemoveMarker(this, getViewer(), getMarkerName());
-		selectAllAction = new ActionSelectAll(this);
-		propertiesAction = new ActionMarkerProperties(this, getViewer(), getMarkerName());
-		
-		IUndoContext undoContext = getUndoContext();
-		undoAction = new UndoActionHandler(getSite(), undoContext);
-		redoAction = new RedoActionHandler(getSite(), undoContext);
-
-		super.createActions();
-
-		setFilterAction(new FiltersAction(this));
-
-		setPreferencesAction(new ViewPreferencesAction() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.ui.preferences.ViewPreferencesAction#openViewPreferencesDialog()
-			 */
-			public void openViewPreferencesDialog() {
-				openPreferencesDialog(getMarkerEnablementPreferenceName(),
-						getMarkerLimitPreferenceName());
-
-			}
-
-		});
-	}
-
-	/**
-	 * Open a dialog to set the preferences.
-	 * 
-	 * @param markerEnablementPreferenceName
-	 * @param markerLimitPreferenceName
-	 */
-	private void openPreferencesDialog(String markerEnablementPreferenceName,
-			String markerLimitPreferenceName) {
-
-		Dialog dialog = new MarkerViewPreferenceDialog(getSite()
-				.getWorkbenchWindow().getShell(),
-				markerEnablementPreferenceName, markerLimitPreferenceName,
-				MarkerMessages.MarkerPreferences_DialogTitle);
-		if (dialog.open() == Window.OK) {
-			refreshViewer();
-		}
-
-	}
-
-	/**
-	 * Get the name of the marker enablement preference.
-	 * 
-	 * @return String
-	 */
-	abstract String getMarkerLimitPreferenceName();
-
-	abstract String[] getMarkerTypes();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.internal.tableview.TableView#initToolBar(org.eclipse.jface.action.IToolBarManager)
-	 */
-	protected void initToolBar(IToolBarManager tbm) {
-		tbm.add(deleteAction);
-		tbm.add(getFilterAction());
-		tbm.update(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.internal.tableview.TableView#registerGlobalActions(org.eclipse.ui.IActionBars)
-	 */
-	protected void registerGlobalActions(IActionBars actionBars) {
-		actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(),
-				copyAction);
-		actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(),
-				pasteAction);
-		actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(),
-				deleteAction);
-		actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(),
-				selectAllAction);
-		actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(),
-				propertiesAction);
-		actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), 
-				undoAction);
-		actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), 
-				redoAction);
-	}
-
-	protected void initDragAndDrop() {
-		int operations = DND.DROP_COPY;
-		Transfer[] transferTypes = new Transfer[] {
-				MarkerTransfer.getInstance(), TextTransfer.getInstance() };
-		DragSourceListener listener = new DragSourceAdapter() {
-			public void dragSetData(DragSourceEvent event) {
-				performDragSetData(event);
-			}
-
-			public void dragFinished(DragSourceEvent event) {
-			}
-		};
-
-		getViewer().addDragSupport(operations, transferTypes, listener);
-	}
-
-	/**
-	 * The user is attempting to drag marker data. Add the appropriate data to
-	 * the event depending on the transfer type.
-	 */
-	private void performDragSetData(DragSourceEvent event) {
-		if (MarkerTransfer.getInstance().isSupportedType(event.dataType)) {
-
-			event.data = getSelectedMarkers();
-			return;
-		}
-		if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
-			List selection = ((IStructuredSelection) getViewer().getSelection())
-					.toList();
-			try {
-				IMarker[] markers = new IMarker[selection.size()];
-				selection.toArray(markers);
-				if (markers != null) {
-					event.data = copyAction.createMarkerReport(markers);
-				}
-			} catch (ArrayStoreException e) {
-			}
-		}
-	}
-
-	/**
-	 * Get the array of selected markers.
-	 * 
-	 * @return IMarker[]
-	 */
-	private IMarker[] getSelectedMarkers() {
-		Object[] selection = ((IStructuredSelection) getViewer().getSelection())
-				.toArray();
-		ArrayList markers = new ArrayList();
-		for (int i = 0; i < selection.length; i++) {
-			if (selection[i] instanceof ConcreteMarker) {
-				markers.add(((ConcreteMarker) selection[i]).getMarker());
-			}
-		}
-		return (IMarker[]) markers.toArray(new IMarker[markers.size()]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.internal.tableview.TableView#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	protected void fillContextMenu(IMenuManager manager) {
-		if (manager == null) {
-			return;
-		}
-		manager.add(openAction);
-		createShowInMenu(manager);
-		manager.add(new Separator());
-		manager.add(copyAction);
-		pasteAction.updateEnablement();
-		manager.add(pasteAction);
-
-		if (canBeEditable()) {
-			manager.add(deleteAction);
-		}
-		manager.add(selectAllAction);
-		fillContextMenuAdditions(manager);
-		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-		manager.add(new Separator());
-		manager.add(propertiesAction);
-	}
-
-	/**
-	 * Return whether or not any of the types in the receiver can be editable.
-	 * 
-	 * @return <code>true</code> if it is possible to have an editable marker
-	 *         in this view.
-	 */
-	boolean canBeEditable() {
-		return true;
-	}
-
-	/**
-	 * Fill the context menu for the receiver.
-	 * 
-	 * @param manager
-	 */
-	abstract void fillContextMenuAdditions(IMenuManager manager);
-
-	/**
-	 * Get the filters for the receiver.
-	 * 
-	 * @return MarkerFilter[]
-	 */
-	protected final MarkerFilter[] getUserFilters() {
-		return markerFilters;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.internal.tableview.TableView#handleKeyPressed(org.eclipse.swt.events.KeyEvent)
-	 */
-	protected void handleKeyPressed(KeyEvent event) {
-		// Default is do nothing.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.internal.tableview.TableView#handleOpenEvent(org.eclipse.jface.viewers.OpenEvent)
-	 */
-	protected void handleOpenEvent(OpenEvent event) {
-		if (openAction.isEnabled()) {
-			openAction.run();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.internal.tableview.TableView#saveSelection(org.eclipse.ui.IMemento)
-	 */
-	protected void saveSelection(IMemento memento) {
-		IStructuredSelection selection = (IStructuredSelection) getViewer()
-				.getSelection();
-		IMemento selectionMem = memento.createChild(TAG_SELECTION);
-		for (Iterator iterator = selection.iterator(); iterator.hasNext();) {
-			Object next = iterator.next();
-			if (!(next instanceof ConcreteMarker)) {
-				continue;
-			}
-			ConcreteMarker marker = (ConcreteMarker) next;
-			IMemento elementMem = selectionMem.createChild(TAG_MARKER);
-			elementMem.putString(TAG_RESOURCE, marker.getMarker().getResource()
-					.getFullPath().toString());
-			elementMem.putString(TAG_ID, String.valueOf(marker.getMarker()
-					.getId()));
-		}
-	}
-
-	protected abstract String[] getRootTypes();
-
-	/**
-	 * @param part
-	 * @param selection
-	 */
-	protected void focusSelectionChanged(IWorkbenchPart part,
-			ISelection selection) {
-
-		List selectedElements = new ArrayList();
-		if (part instanceof IEditorPart) {
-			IEditorPart editor = (IEditorPart) part;
-			IFile file = ResourceUtil.getFile(editor.getEditorInput());
-			if (file == null) {
-				IEditorInput editorInput = editor.getEditorInput();
-				if (editorInput != null) {
-					Object mapping = editorInput
-							.getAdapter(ResourceMapping.class);
-					if (mapping != null) {
-						selectedElements.add(mapping);
-					}
-				}
-			} else {
-				selectedElements.add(file);
-			}
-		} else {
-			if (selection instanceof IStructuredSelection) {
-				for (Iterator iterator = ((IStructuredSelection) selection)
-						.iterator(); iterator.hasNext();) {
-					Object object = iterator.next();
-					if (object instanceof IAdaptable) {
-						ITaskListResourceAdapter taskListResourceAdapter;
-						Object adapter = ((IAdaptable) object)
-								.getAdapter(ITaskListResourceAdapter.class);
-						if (adapter != null
-								&& adapter instanceof ITaskListResourceAdapter) {
-							taskListResourceAdapter = (ITaskListResourceAdapter) adapter;
-						} else {
-							taskListResourceAdapter = DefaultMarkerResourceAdapter
-									.getDefault();
-						}
-
-						IResource resource = taskListResourceAdapter
-								.getAffectedResource((IAdaptable) object);
-						if (resource == null) {
-							Object mapping = ((IAdaptable) object)
-									.getAdapter(ResourceMapping.class);
-							if (mapping != null) {
-								selectedElements.add(mapping);
-							}
-						} else {
-							selectedElements.add(resource);
-						}
-					}
-				}
-			}
-		}
-		updateFocusMarkers(selectedElements.toArray());
-	}
-
-	/**
-	 * Update the focus resources of the filters.
-	 * 
-	 * @param elements
-	 */
-	protected final void updateFilterSelection(Object[] elements) {
-
-		Collection resourceCollection = new ArrayList();
-		for (int i = 0; i < elements.length; i++) {
-			if (elements[i] instanceof IResource) {
-				resourceCollection.add(elements[i]);
-			} else {
-				addResources(resourceCollection,
-						((ResourceMapping) elements[i]));
-			}
-		}
-
-		IResource[] resources = new IResource[resourceCollection.size()];
-		resourceCollection.toArray(resources);
-
-		for (int i = 0; i < markerFilters.length; i++) {
-			markerFilters[i].setFocusResource(resources);
-		}
-
-		Iterator systemFilters = MarkerSupportRegistry.getInstance()
-				.getRegisteredFilters().iterator();
-
-		while (systemFilters.hasNext()) {
-			MarkerFilter filter = (MarkerFilter) systemFilters.next();
-			filter.setFocusResource(resources);
-
-		}
-
-	}
-
-	/**
-	 * Add the resources for the mapping to resources.
-	 * 
-	 * @param resources
-	 * @param mapping
-	 */
-	private void addResources(Collection resources, ResourceMapping mapping) {
-		try {
-			ResourceTraversal[] traversals = mapping.getTraversals(
-					ResourceMappingContext.LOCAL_CONTEXT,
-					new NullProgressMonitor());
-			for (int i = 0; i < traversals.length; i++) {
-				ResourceTraversal traversal = traversals[i];
-				IResource[] result = traversal.getResources();
-				for (int j = 0; j < result.length; j++) {
-					resources.add(result[j]);
-				}
-			}
-		} catch (CoreException e) {
-			Util.log(e);
-			return;
-		}
-
-	}
-
-	protected abstract String getStaticContextId();
-
-	/**
-	 * Update the focus markers for the supplied elements.
-	 * 
-	 * @param elements
-	 */
-	void updateFocusMarkers(Object[] elements) {
-		boolean updateNeeded = updateNeeded(focusElements, elements);
-		if (updateNeeded) {
-			focusElements = elements;
-			refreshForFocusUpdate();
-		}
-	}
-
-	private boolean updateNeeded(Object[] oldElements, Object[] newElements) {
-		// determine if an update if refiltering is required
-		MarkerFilter[] filters = getEnabledFilters();
-		boolean updateNeeded = false;
-
-		for (int i = 0; i < filters.length; i++) {
-			MarkerFilter filter = filters[i];
-			if (!filter.isEnabled()) {
-				continue;
-			}
-
-			int onResource = filter.getOnResource();
-			if (onResource == MarkerFilter.ON_ANY
-					|| onResource == MarkerFilter.ON_WORKING_SET) {
-				continue;
-			}
-			if (newElements == null || newElements.length < 1) {
-				continue;
-			}
-			if (oldElements == null || oldElements.length < 1) {
-				return true;
-			}
-			if (Arrays.equals(oldElements, newElements)) {
-				continue;
-			}
-			if (onResource == MarkerFilter.ON_ANY_IN_SAME_CONTAINER) {
-				Collection oldProjects = MarkerFilter
-						.getProjectsAsCollection(oldElements);
-				Collection newProjects = MarkerFilter
-						.getProjectsAsCollection(newElements);
-
-				if (oldProjects.size() == newProjects.size()) {
-					if (newProjects.containsAll(oldProjects)) {
-						continue;
-					}
-				}
-
-				return true;
-			}
-			updateNeeded = true;// We are updating as there is nothing to stop
-			// us
-		}
-
-		return updateNeeded;
-	}
-
-	void updateTitle() {
-		String status = Util.EMPTY_STRING;
-		int filteredCount = getCurrentMarkers().getItemCount();
-		int totalCount = getTotalMarkers();
-		if (filteredCount == totalCount) {
-			status = NLS.bind(MarkerMessages.filter_itemsMessage, new Integer(
-					totalCount));
-		} else {
-			status = NLS.bind(MarkerMessages.filter_matchedMessage,
-					new Integer(filteredCount), new Integer(totalCount));
-		}
-		setContentDescription(status);
-	}
-
-	/**
-	 * Updates the message displayed in the status line. This method is invoked
-	 * in the following cases:
-	 * <ul>
-	 * <li>when this view is first created</li>
-	 * <li>when new elements are added</li>
-	 * <li>when something is deleted</li>
-	 * <li>when the filters change</li>
-	 * </ul>
-	 * <p>
-	 * By default, this method calls
-	 * <code>updateStatusMessage(IStructuredSelection)</code> with the current
-	 * selection or <code>null</code>. Classes wishing to override this
-	 * functionality, should just override the method
-	 * <code>updateStatusMessage(IStructuredSelection)</code>.
-	 * </p>
-	 */
-	protected void updateStatusMessage() {
-		ISelection selection = getViewer().getSelection();
-
-		if (selection instanceof IStructuredSelection) {
-			updateStatusMessage((IStructuredSelection) selection);
-		} else {
-			updateStatusMessage(null);
-		}
-	}
-
-	/**
-	 * Updates that message displayed in the status line. If the selection
-	 * parameter is <code>null</code> or its size is 0, the status area is
-	 * blanked out. If only 1 marker is selected, the status area is updated
-	 * with the contents of the message attribute of this marker. In other cases
-	 * (more than one marker is selected) the status area indicates how many
-	 * items have been selected.
-	 * <p>
-	 * This method may be overwritten.
-	 * </p>
-	 * <p>
-	 * This method is called whenever a selection changes in this view.
-	 * </p>
-	 * 
-	 * @param selection
-	 *            a valid selection or <code>null</code>
-	 */
-	protected void updateStatusMessage(IStructuredSelection selection) {
-		String message = ""; //$NON-NLS-1$
-
-		if (selection == null || selection.size() == 0) {
-			// Show stats on all items in the view
-			message = updateSummaryVisible();
-		} else if (selection.size() == 1) {
-			// Use the Message attribute of the marker
-			Object first = selection.getFirstElement();
-			if (first instanceof ConcreteMarker) {
-				message = ((ConcreteMarker) first).getDescription();
-			}
-		} else if (selection.size() > 1) {
-			// Show stats on only those items in the selection
-			message = updateSummarySelected(selection);
-		}
-		getViewSite().getActionBars().getStatusLineManager()
-				.setMessage(message);
-	}
-
-	/**
-	 * @param selection
-	 * @return the summary status message
-	 */
-	protected String updateSummarySelected(IStructuredSelection selection) {
-		// Show how many items selected
-		return MessageFormat.format(
-				MarkerMessages.marker_statusSummarySelected,
-				new Object[] { new Integer(selection.size()) });
-	}
-
-	/**
-	 * @return the update summary
-	 */
-	protected String updateSummaryVisible() {
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Open a dialog on the filters
-	 * 
-	 */
-	public final void openFiltersDialog() {
-
-		DialogMarkerFilter dialog = createFiltersDialog();
-
-		if (dialog.open() == Window.OK) {
-
-			MarkerFilter[] result = dialog.getFilters();
-			if (result == null) {
-				return;
-			}
-			if (result.length == 0) {
-				setFilters(new MarkerFilter[] { createFilter(MarkerMessages.MarkerFilter_defaultFilterName) });
-			} else {
-				setFilters(result);
-			}
-
-			updateForFilterChanges();
-		}
-	}
-
-	/**
-	 * Refresh the contents of the viewer.
-	 */
-	public void refreshViewer() {
-		scheduleMarkerUpdate(Util.SHORT_DELAY);
-	}
-
-	/**
-	 * Set the filters to newFilters.
-	 * 
-	 * @param newFilters
-	 */
-	void setFilters(MarkerFilter[] newFilters) {
-		markerFilters = newFilters;
-	}
-
-	/**
-	 * Clear the cache of enabled filters.
-	 * 
-	 */
-	void clearEnabledFilters() {
-		enabledFilters = null;
-	}
-
-	/**
-	 * Refresh the contents of the filter sub menu.
-	 */
-	private void refreshFilterMenu() {
-		if (filtersMenu == null) {
-			return;
-		}
-		filtersMenu.removeAll();
-		MarkerFilter[] filters = getAllFilters();
-		for (int i = 0; i < filters.length; i++) {
-			filtersMenu.add(new FilterEnablementAction(filters[i], this));
-		}
-
-	}
-
-	/**
-	 * Open a filter dialog on the receiver.
-	 */
-	protected abstract DialogMarkerFilter createFiltersDialog();
-
-	/**
-	 * Given a selection of IMarker, reveals the corresponding elements in the
-	 * viewer
-	 * 
-	 * @param structuredSelection
-	 * @param reveal
-	 */
-	public void setSelection(IStructuredSelection structuredSelection,
-			boolean reveal) {
-		TreeViewer viewer = getViewer();
-
-		List newSelection = new ArrayList(structuredSelection.size());
-
-		for (Iterator i = structuredSelection.iterator(); i.hasNext();) {
-			Object next = i.next();
-			if (next instanceof IMarker) {
-				ConcreteMarker marker = getCurrentMarkers().getMarker(
-						(IMarker) next);
-				if (marker != null) {
-					newSelection.add(marker);
-				}
-			}
-		}
-
-		if (viewer != null) {
-			viewer.setSelection(new StructuredSelection(newSelection), reveal);
-		}
-	}
-
-	protected MarkerList getVisibleMarkers() {
-		return getCurrentMarkers();
-	}
-
-	/**
-	 * Returns the total number of markers. Should not be called while the
-	 * marker list is still updating.
-	 * 
-	 * @return the total number of markers in the workspace (including
-	 *         everything that doesn't pass the filters)
-	 */
-	int getTotalMarkers() {
-		// The number of visible markers should never exceed the total number of
-		// markers in
-		// the workspace. If this assertation fails, it probably indicates some
-		// sort of concurrency problem
-		// (most likely, getTotalMarkers was called while we were still
-		// computing the marker lists)
-		// Assert.isTrue(totalMarkers >= currentMarkers.getItemCount());
-
-		return totalMarkers;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#showBusy(boolean)
-	 */
-	public void showBusy(boolean busy) {
-		super.showBusy(busy);
-
-		if (busy) {
-			preBusyMarkers = totalMarkers;
-		} else {// Only bold if there has been a change in count
-			if (totalMarkers != preBusyMarkers) {
-				getProgressService().warnOfContentChange();
-			}
-		}
-
-	}
-
-	/**
-	 * Get the filters that are currently enabled.
-	 * 
-	 * @return MarkerFilter[]
-	 */
-	MarkerFilter[] getEnabledFilters() {
-
-		if (enabledFilters == null) {
-			Collection filters = findEnabledFilters();
-
-			enabledFilters = new MarkerFilter[filters.size()];
-			filters.toArray(enabledFilters);
-		}
-		return enabledFilters;
-
-	}
-
-	/**
-	 * Find the filters enabled in the view.
-	 * 
-	 * @return Collection of MarkerFilter
-	 */
-	protected Collection findEnabledFilters() {
-		MarkerFilter[] allFilters = getAllFilters();
-		ArrayList filters = new ArrayList(0);
-		for (int i = 0; i < allFilters.length; i++) {
-			if (allFilters[i].isEnabled()) {
-				filters.add(allFilters[i]);
-			}
-		}
-		return filters;
-	}
-
-	/**
-	 * Get all of the filters applied to the receiver.
-	 * 
-	 * @return MarkerFilter[]
-	 */
-	MarkerFilter[] getAllFilters() {
-		return getUserFilters();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#addDropDownContributions(org.eclipse.jface.action.IMenuManager)
-	 */
-	void addDropDownContributions(IMenuManager menu) {
-		super.addDropDownContributions(menu);
-
-		menu.add(new Separator(MENU_FILTERS_GROUP));
-		// Don't add in the filters until they are set
-		filtersMenu = new MenuManager(MarkerMessages.filtersSubMenu_title);
-		refreshFilterMenu();
-		menu.appendToGroup(MENU_FILTERS_GROUP, filtersMenu);
-	}
-
-	/**
-	 * Create the show in menu if there is a single selection.
-	 * 
-	 * @param menu
-	 */
-	void createShowInMenu(IMenuManager menu) {
-		ISelection selection = getViewer().getSelection();
-		if (!(selection instanceof IStructuredSelection)) {
-			return;
-		}
-
-		IStructuredSelection structured = (IStructuredSelection) selection;
-		if (!Util.isSingleConcreteSelection(structured)) {
-			return;
-		}
-
-		menu.add(new Separator(MENU_SHOW_IN_GROUP));
-		// Don't add in the filters until they are set
-		showInMenu = new MenuManager(IDEWorkbenchMessages.Workbench_showIn);
-		showInMenu.add(ContributionItemFactory.VIEWS_SHOW_IN
-				.create(getViewSite().getWorkbenchWindow()));
-
-		menu.appendToGroup(MENU_SHOW_IN_GROUP, showInMenu);
-
-	}
-
-	/**
-	 * Refresh the marker counts
-	 * 
-	 * @param monitor
-	 */
-	void refreshMarkerCounts(IProgressMonitor monitor) {
-		monitor.subTask(MarkerMessages.MarkerView_refreshing_counts);
-		try {
-			totalMarkers = MarkerList.compute(getMarkerTypes()).length;
-		} catch (CoreException e) {
-			Util.log(e);
-			return;
-		}
-
-	}
-
-	/**
-	 * Returns the marker limit or -1 if unlimited
-	 * 
-	 * @return int
-	 */
-	int getMarkerLimit() {
-
-		// If limits are enabled return it. Otherwise return -1
-		if (IDEWorkbenchPlugin.getDefault().getPreferenceStore().getBoolean(
-				getMarkerEnablementPreferenceName())) {
-			return IDEWorkbenchPlugin.getDefault().getPreferenceStore().getInt(
-					getMarkerLimitPreferenceName());
-
-		}
-		return -1;
-
-	}
-
-	/**
-	 * Get the name of the marker limit preference.
-	 * 
-	 * @return String
-	 */
-	abstract String getMarkerEnablementPreferenceName();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#createViewerInput()
-	 */
-	Object createViewerInput() {
-		return adapter;
-	}
-
-	/**
-	 * Add a listener for the end of the update.
-	 * 
-	 * @param listener
-	 */
-	public void addUpdateFinishListener(IJobChangeListener listener) {
-		updateJob.addJobChangeListener(listener);
-
-	}
-
-	/**
-	 * Remove a listener for the end of the update.
-	 * 
-	 * @param listener
-	 */
-	public void removeUpdateFinishListener(IJobChangeListener listener) {
-		updateJob.removeJobChangeListener(listener);
-
-	}
-
-	/**
-	 * Create a listener for working set changes.
-	 * 
-	 * @return IPropertyChangeListener
-	 */
-	private IPropertyChangeListener getWorkingSetListener() {
-		workingSetListener = new IPropertyChangeListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-			 */
-			public void propertyChange(PropertyChangeEvent event) {
-				clearEnabledFilters();
-				refreshViewer();
-
-			}
-		};
-		return workingSetListener;
-	}
-
-	/**
-	 * Schedule an update of the markers with a delay of time
-	 * 
-	 * @param time
-	 */
-	void scheduleMarkerUpdate(int time) {
-		markerProcessJob.cancel();
-		updateJob.cancel();
-		getProgressService().schedule(markerProcessJob, time);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#createTree(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Tree createTree(Composite parent) {
-		Tree tree = super.createTree(parent);
-		tree.addTreeListener(new TreeAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.TreeAdapter#treeCollapsed(org.eclipse.swt.events.TreeEvent)
-			 */
-			public void treeCollapsed(TreeEvent e) {
-				updateJob.removeExpandedCategory((MarkerCategory) e.item
-						.getData());
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.TreeAdapter#treeExpanded(org.eclipse.swt.events.TreeEvent)
-			 */
-			public void treeExpanded(TreeEvent e) {
-				updateJob
-						.addExpandedCategory((MarkerCategory) e.item.getData());
-			}
-		});
-
-		return tree;
-	}
-
-	/**
-	 * The focus elements have changed. Update accordingly.
-	 */
-	private void refreshForFocusUpdate() {
-		if (focusElements != null) {
-			updateFilterSelection(focusElements);
-			refreshViewer();
-		}
-	}
-
-	/**
-	 * Save the current selection in the update for reselection after update.
-	 */
-	protected void preserveSelection() {
-		updateJob.saveSelection(getViewer().getSelection());
-
-	}
-	
-	/**
-	 * Return the string name of the specific type of marker shown in this view.
-	 */
-	protected abstract String getMarkerName();
-	
-	/**
-	 * Return the undo context associated with operations performed 
-	 * in this view.  By default, return the workspace undo context.
-	 * Subclasses should override if a more specific undo context should
-	 * be used.
-	 */
-	protected IUndoContext getUndoContext() {
-		return (IUndoContext)ResourcesPlugin.getWorkspace().getAdapter(IUndoContext.class);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerViewLabelProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerViewLabelProvider.java
deleted file mode 100644
index 3836d84..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerViewLabelProvider.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.views.markers.internal;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * The MarkerViewLabelProvider is a label provider for an individual field.
- * 
- * @since 3.3
- * 
- */
-public class MarkerViewLabelProvider extends ColumnLabelProvider {
-
-	IField field;
-
-	/**
-	 * Create a MarkerViewLabelProvider on a field
-	 * 
-	 * @param field
-	 */
-	MarkerViewLabelProvider(IField field) {
-		this.field = field;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnLabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		return field.getValue(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnLabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object element) {
-		return field.getImage(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnLabelProvider#getFont(java.lang.Object)
-	 */
-	public Font getFont(Object element) {
-		if (element instanceof ConcreteMarker)
-			return null;
-		return JFaceResources.getFontRegistry().getBold(
-				JFaceResources.DEFAULT_FONT);
-	}
-	
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerViewPreferenceDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerViewPreferenceDialog.java
deleted file mode 100644
index f1fb542..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerViewPreferenceDialog.java
+++ /dev/null
@@ -1,159 +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.markers.internal;
-
-import org.eclipse.jface.preference.IntegerFieldEditor;
-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.Shell;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.preferences.ViewSettingsDialog;
-
-/**
- * The MarkerViewPreferenceDialog is the dialog that is used for preference
- * settings in a markers view.
- * 
- * @since 3.1
- * 
- */
-public class MarkerViewPreferenceDialog extends ViewSettingsDialog {
-
-	String enablementKey;
-
-	String limitKey;
-
-	String dialogTitle;
-
-	private IntegerFieldEditor limitEditor;
-
-	private Button enablementButton;
-
-	private Composite editArea;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param parentShell
-	 * @param enablementPreference
-	 *            The key for the enablement preference.
-	 * @param limitPreference
-	 *            The key for the limit preference.
-	 * @param title
-	 *            The title for the dialog.
-	 */
-	public MarkerViewPreferenceDialog(Shell parentShell,
-			String enablementPreference, String limitPreference, String title) {
-		super(parentShell);
-		enablementKey = enablementPreference;
-		limitKey = limitPreference;
-		dialogTitle = title;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText(dialogTitle);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite topComposite = (Composite) super.createDialogArea(parent);
-
-		boolean checked = IDEWorkbenchPlugin.getDefault().getPreferenceStore()
-				.getBoolean(enablementKey);
-		enablementButton = new Button(topComposite, SWT.CHECK);
-		enablementButton.setText(MarkerMessages.MarkerPreferences_MarkerLimits);
-		enablementButton.setSelection(checked);
-
-		editArea = new Composite(topComposite, SWT.NONE);
-		editArea.setLayout(new GridLayout());
-		GridData editData = new GridData(GridData.FILL_BOTH
-				| GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL);
-		editData.horizontalIndent = 10;
-		editArea.setLayoutData(editData);
-
-		limitEditor = new IntegerFieldEditor(
-				"limit", MarkerMessages.MarkerPreferences_VisibleItems, editArea);//$NON-NLS-1$
-		limitEditor.setPreferenceStore(IDEWorkbenchPlugin.getDefault()
-				.getPreferenceStore());
-		limitEditor.setPreferenceName(limitKey);
-		limitEditor.load();
-
-		GridData checkedData = new GridData(SWT.FILL, SWT.NONE, true, false);
-		checkedData.horizontalSpan = limitEditor.getNumberOfControls();
-		enablementButton.setLayoutData(checkedData);
-
-		enablementButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				setLimitEditorEnablement(editArea, enablementButton
-						.getSelection());
-			}
-		});
-
-		setLimitEditorEnablement(editArea, checked);
-
-		return topComposite;
-	}
-
-	/**
-	 * Enable the limitEditor based on checked.
-	 * 
-	 * @param control
-	 *            The parent of the editor
-	 * @param checked
-	 */
-	private void setLimitEditorEnablement(Composite control, boolean checked) {
-		limitEditor.setEnabled(checked, control);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-	 */
-	protected void okPressed() {
-		limitEditor.store();
-		IDEWorkbenchPlugin.getDefault().getPreferenceStore().setValue(
-				enablementKey, enablementButton.getSelection());
-		IDEWorkbenchPlugin.getDefault().savePluginPreferences();
-		super.okPressed();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.preferences.ViewSettingsDialog#performDefaults()
-	 */
-	protected void performDefaults() {
-		super.performDefaults();
-		limitEditor.loadDefault();
-		boolean checked = IDEWorkbenchPlugin.getDefault().getPreferenceStore()
-				.getDefaultBoolean(enablementKey);
-		enablementButton.setSelection(checked);
-		setLimitEditorEnablement(editArea, checked);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemFilter.java
deleted file mode 100644
index 61143b7..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemFilter.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.activities.IIdentifier;
-import org.eclipse.ui.activities.WorkbenchActivityHelper;
-
-/**
- * ProblemFilters are the filters used in the problems view.
- * 
- */
-public class ProblemFilter extends MarkerFilter {
-
-	private static final String TAG_CONTAINS = "contains"; //$NON-NLS-1$
-
-	private static final String TAG_DESCRIPTION = "description"; //$NON-NLS-1$
-
-	private static final String TAG_SELECT_BY_SEVERITY = "selectBySeverity"; //$NON-NLS-1$
-
-	private static final String TAG_SEVERITY = "severity"; //$NON-NLS-1$
-
-	final static boolean DEFAULT_CONTAINS = true;
-
-	final static String DEFAULT_DESCRIPTION = ""; //$NON-NLS-1$	
-
-	final static boolean DEFAULT_SELECT_BY_SEVERITY = false;
-
-	final static int DEFAULT_SEVERITY = 0;
-
-	/**
-	 * Severity for errors
-	 */
-	public final static int SEVERITY_ERROR = 1 << 2;
-
-	/**
-	 * Severity for warnings
-	 */
-	public final static int SEVERITY_WARNING = 1 << 1;
-
-	/**
-	 * Severity for infos
-	 */
-	public final static int SEVERITY_INFO = 1 << 0;
-
-	private boolean contains;
-
-	private String description;
-
-	private boolean selectBySeverity;
-
-	private int severity;
-
-	private IPluginContribution contributionDescriptor = null;
-
-	private IIdentifier identifier;
-
-	/**
-	 * Create a new instance of the receiver with name filterName.
-	 * 
-	 * @param filterName
-	 *            A human readable name for the filter.
-	 */
-	public ProblemFilter(String filterName) {
-		super(filterName, new String[] { IMarker.PROBLEM });
-		if ((PlatformUI.getPreferenceStore()
-				.getBoolean(IWorkbenchPreferenceConstants.USE_WINDOW_WORKING_SET_BY_DEFAULT))) {
-			IWorkbenchWindow window = PlatformUI.getWorkbench()
-					.getActiveWorkbenchWindow();
-			if (window != null) {
-				IWorkbenchPage page = window.getActivePage();
-				if (page != null) {
-					setOnResource(MarkerFilter.ON_WORKING_SET);
-					setWorkingSet(page.getAggregateWorkingSet());
-				}
-			}
-		}
-
-	}
-
-	public boolean selectMarker(ConcreteMarker marker) {
-		if (!(marker instanceof ProblemMarker)) {
-			return false;
-		}
-
-		ProblemMarker problemMarker = (ProblemMarker) marker;
-
-		return !isEnabled()
-				|| (super.selectMarker(problemMarker)
-						&& selectByDescription(problemMarker) && selectBySeverity(problemMarker));
-	}
-
-	private boolean selectByDescription(ConcreteMarker item) {
-		if (description == null || description.equals("")) { //$NON-NLS-1$
-			return true;
-		}
-
-		String markerDescription = item.getDescription();
-		int index = markerDescription.indexOf(description);
-		return contains ? (index >= 0) : (index < 0);
-	}
-
-	private boolean selectBySeverity(ProblemMarker item) {
-		if (selectBySeverity) {
-			int markerSeverity = item.getSeverity();
-
-			if (markerSeverity == IMarker.SEVERITY_ERROR) {
-				return (severity & SEVERITY_ERROR) > 0;
-			} else if (markerSeverity == IMarker.SEVERITY_WARNING) {
-				return (severity & SEVERITY_WARNING) > 0;
-			} else if (markerSeverity == IMarker.SEVERITY_INFO) {
-				return (severity & SEVERITY_INFO) > 0;
-			}
-		}
-
-		return true;
-	}
-
-	/**
-	 * Get the value for if there is a check for containing a phrase.
-	 * 
-	 * @return boolean
-	 */
-	public boolean getContains() {
-		return contains;
-	}
-
-	/**
-	 * Get the value for the description.
-	 * 
-	 * @return boolean
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Get the value for if there is a check for severity.
-	 * 
-	 * @return boolean
-	 */
-	public boolean getSelectBySeverity() {
-		return selectBySeverity;
-	}
-
-	/**
-	 * Get the value for if there is a severity.
-	 * 
-	 * @return boolean
-	 */
-	public int getSeverity() {
-		return severity;
-	}
-
-	/**
-	 * Set the value for if there is a check for containing a phrase.
-	 * 
-	 * @param contains
-	 */
-	public void setContains(boolean contains) {
-		this.contains = contains;
-	}
-
-	/**
-	 * Set the value for the description.
-	 * 
-	 * @param description
-	 */
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	/**
-	 * Set the value for if there is a check for severity
-	 * 
-	 * @param selectBySeverity
-	 */
-	public void setSelectBySeverity(boolean selectBySeverity) {
-		this.selectBySeverity = selectBySeverity;
-	}
-
-	/**
-	 * Set the value for the severity to match against.
-	 * 
-	 * @param severity
-	 */
-	public void setSeverity(int severity) {
-		this.severity = severity;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#resetState()
-	 */
-	public void resetState() {
-		super.resetState();
-		contains = DEFAULT_CONTAINS;
-		description = DEFAULT_DESCRIPTION;
-		selectBySeverity = DEFAULT_SELECT_BY_SEVERITY;
-		severity = DEFAULT_SEVERITY;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#restoreFilterSettings(org.eclipse.jface.dialogs.IDialogSettings)
-	 */
-	public void restoreFilterSettings(IDialogSettings settings) {
-
-		super.restoreFilterSettings(settings);
-
-		String setting = settings.get(TAG_CONTAINS);
-
-		if (setting != null) {
-			contains = Boolean.valueOf(setting).booleanValue();
-		}
-
-		setting = settings.get(TAG_DESCRIPTION);
-
-		if (setting != null) {
-			description = new String(setting);
-		}
-
-		setting = settings.get(TAG_SELECT_BY_SEVERITY);
-
-		if (setting != null) {
-			selectBySeverity = Boolean.valueOf(setting).booleanValue();
-		}
-
-		setting = settings.get(TAG_SEVERITY);
-
-		if (setting != null) {
-			try {
-				severity = Integer.parseInt(setting);
-			} catch (NumberFormatException eNumberFormat) {
-			}
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#restoreFilterSettings(org.eclipse.ui.IMemento)
-	 */
-	protected void restoreFilterSettings(IMemento memento) {
-
-		super.restoreFilterSettings(memento);
-
-		String setting = memento.getString(TAG_CONTAINS);
-
-		if (setting != null) {
-			contains = Boolean.valueOf(setting).booleanValue();
-		}
-
-		setting = memento.getString(TAG_DESCRIPTION);
-
-		if (setting != null) {
-			description = new String(setting);
-		}
-
-		setting = memento.getString(TAG_SELECT_BY_SEVERITY);
-
-		if (setting != null) {
-			selectBySeverity = Boolean.valueOf(setting).booleanValue();
-		}
-
-		Integer severitySetting = memento.getInteger(TAG_SEVERITY);
-
-		if (setting != null) {
-			severity = severitySetting.intValue();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#saveFilterSettings(org.eclipse.ui.IMemento)
-	 */
-	public void saveFilterSettings(IMemento settings) {
-		super.saveFilterSettings(settings);
-		settings.putString(TAG_CONTAINS, String.valueOf(contains));
-		settings.putString(TAG_DESCRIPTION, description);
-		settings.putString(TAG_SELECT_BY_SEVERITY, String
-				.valueOf(selectBySeverity));
-		settings.putInteger(TAG_SEVERITY, severity);
-
-	}
-
-	/**
-	 * Get the id of the filter. <code>null</code> if the filter is user
-	 * defined.
-	 * 
-	 * @return String
-	 */
-	public String getId() {
-		if (contributionDescriptor == null) {
-			return null;
-		}
-		return contributionDescriptor.getLocalId();
-	}
-
-	void createContributionFrom(IConfigurationElement element) {
-		final String id = element.getAttribute(MarkerSupportRegistry.ID);
-		final String namespace = element.getNamespace();
-		contributionDescriptor = new IPluginContribution() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.ui.IPluginContribution#getLocalId()
-			 */
-			public String getLocalId() {
-				return id;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.ui.IPluginContribution#getPluginId()
-			 */
-			public String getPluginId() {
-				return namespace;
-			}
-		};
-	}
-
-	/**
-	 * Return whether or not the receiver will be filtered out due to an
-	 * activity match.
-	 * 
-	 * @return boolean <code>true</code> if it is filtered out.
-	 */
-	public boolean isFilteredOutByActivity() {
-		if (contributionDescriptor == null) {
-			return false;
-		}
-		if (identifier == null) {
-			identifier = WorkbenchActivityHelper
-					.getIdentifier(contributionDescriptor);
-		}
-		return !identifier.isEnabled();
-	}
-
-	public boolean isEnabled() {
-		return super.isEnabled() && !isFilteredOutByActivity();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemMarker.java
deleted file mode 100644
index 272a8bd..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemMarker.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-
-/**
- * 
- */
-public class ProblemMarker extends ConcreteMarker {
-
-    private int severity;
-
-    public ProblemMarker(IMarker toCopy) {
-        super(toCopy);
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.views.markers.internal.ConcreteMarker#refresh()
-     */
-    public void refresh() {
-        super.refresh();
-        severity = getMarker().getAttribute(IMarker.SEVERITY, -1);
-    }
-
-    public int getSeverity() {
-        return severity;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemView.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemView.java
deleted file mode 100644
index 56b2211..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/ProblemView.java
+++ /dev/null
@@ -1,650 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 109361 [Markers] Multiselection in problems view yields invalid status message
- *******************************************************************************/
-
-package org.eclipse.ui.views.markers.internal;
-
-import com.ibm.icu.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.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.IDialogSettings;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.activities.ActivityManagerEvent;
-import org.eclipse.ui.activities.IActivityManagerListener;
-import org.eclipse.ui.internal.ide.IDEInternalPreferences;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-
-/**
- * The ProblemView is the view that displays problem markers.
- * 
- */
-public class ProblemView extends MarkerView {
-
-	private final static String[] ROOT_TYPES = { IMarker.PROBLEM };
-
-	private final static String TAG_DIALOG_SECTION = "org.eclipse.ui.views.problem"; //$NON-NLS-1$
-
-	private static final String TAG_SYSTEM_FILTER_ENTRY = "systemFilter";//$NON-NLS-1$
-
-	private ActionResolveMarker resolveMarkerAction;
-
-	private IActivityManagerListener activityManagerListener;
-
-	private IField severityAndMessage = new FieldSeverityAndMessage();
-
-	private IField folder = new FieldFolder();
-
-	private IField resource = new FieldResource();
-
-	private IField lineNumber = new FieldLineNumber();
-
-	private IField creationTime = new FieldCreationTime();
-
-	// Add the marker ID so the table sorter won't reduce
-	// errors on the same line bug 82502
-	private static IField id = new FieldId();
-
-	private class GroupingAction extends Action {
-
-		IField groupingField;
-
-		ProblemView problemView;
-
-		/**
-		 * Create a new instance of the receiver.
-		 * 
-		 * @param label
-		 * @param field
-		 * @param view
-		 */
-		public GroupingAction(String label, IField field, ProblemView view) {
-			super(label, IAction.AS_RADIO_BUTTON);
-
-			groupingField = field;
-			problemView = view;
-			IField categoryField = view.getMarkerAdapter().getCategorySorter()
-					.getCategoryField();
-			if (categoryField == null) {
-				setChecked(groupingField == null);
-			} else {
-				setChecked(categoryField.equals(groupingField));
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.action.Action#run()
-		 */
-		public void run() {
-
-			if (isChecked()) {				
-				Job categoryJob = new Job(MarkerMessages.ProblemView_UpdateCategoryJob) {
-					/* (non-Javadoc)
-					 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-					 */
-					protected IStatus run(IProgressMonitor monitor) {
-						try {
-							markerProcessJob.join();
-						} catch (InterruptedException e) {
-							return Status.CANCEL_STATUS;
-						}
-						problemView.selectCategoryField(groupingField, problemView
-								.getMarkerAdapter().getCategorySorter());
-						
-						getMarkerAdapter().getCategorySorter().saveState(
-								getDialogSettings());
-						return Status.OK_STATUS;
-					}
-				};
-				categoryJob.setSystem(true);
-				problemView.preserveSelection();
-				
-				IWorkbenchSiteProgressService progressService = getProgressService();
-				if (progressService == null)
-					categoryJob.schedule();
-				else
-					getProgressService().schedule(categoryJob);		
-					
-				
-			}
-
-		}
-	}
-
-	/**
-	 * Return a new instance of the receiver.
-	 */
-	public ProblemView() {
-		super();
-		creationTime.setShowing(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#dispose()
-	 */
-	public void dispose() {
-		if (resolveMarkerAction != null) {
-			resolveMarkerAction.dispose();
-		}
-
-		PlatformUI.getWorkbench().getActivitySupport().getActivityManager()
-				.removeActivityManagerListener(activityManagerListener);
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#getSortingFields()
-	 */
-	protected IField[] getSortingFields() {
-		return new IField[] { severityAndMessage, folder, resource, lineNumber,
-				creationTime,
-				// Add the marker ID so the table sorter won't reduce
-				// errors on the same line bug 82502
-				id };
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#getDialogSettings()
-	 */
-	protected IDialogSettings getDialogSettings() {
-		IDialogSettings workbenchSettings = IDEWorkbenchPlugin.getDefault()
-				.getDialogSettings();
-		IDialogSettings settings = workbenchSettings
-				.getSection(TAG_DIALOG_SECTION);
-
-		if (settings == null) {
-			settings = workbenchSettings.addNewSection(TAG_DIALOG_SECTION);
-		}
-
-		return settings;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#createActions()
-	 */
-	protected void createActions() {
-		super.createActions();
-		propertiesAction = new ActionProblemProperties(this, getViewer());
-		resolveMarkerAction = new ActionResolveMarker(this, getViewer());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#fillContextMenuAdditions(org.eclipse.jface.action.IMenuManager)
-	 */
-	protected void fillContextMenuAdditions(IMenuManager manager) {
-		manager.add(new Separator());
-		manager.add(resolveMarkerAction);
-	}
-
-	protected String[] getRootTypes() {
-		return ROOT_TYPES;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#getAllFields()
-	 */
-	protected IField[] getAllFields() {
-
-		// Add the marker ID so the table sorter won't reduce
-		// errors on the same line bug 82502
-		return new IField[] { severityAndMessage, resource, folder, lineNumber,
-				creationTime };
-	}
-
-	void updateTitle() {
-		MarkerList visibleMarkers = getVisibleMarkers();
-		String breakdown = formatSummaryBreakDown(visibleMarkers);
-		int filteredCount = visibleMarkers.getItemCount();
-		int totalCount = getTotalMarkers();
-		if (filteredCount != totalCount) {
-			breakdown = NLS.bind(MarkerMessages.problem_filter_matchedMessage,
-					new Object[] { breakdown, new Integer(filteredCount),
-							new Integer(totalCount) });
-		}
-		setContentDescription(breakdown);
-	}
-
-	private String formatSummaryBreakDown(MarkerList visibleMarkers) {
-		return MessageFormat.format(
-				MarkerMessages.problem_statusSummaryBreakdown, new Object[] {
-						new Integer(visibleMarkers.getErrors()),
-						new Integer(visibleMarkers.getWarnings()),
-						new Integer(visibleMarkers.getInfos()) });
-	}
-
-	private String getSummary(MarkerList markers) {
-		String message = MessageFormat.format(
-				MarkerMessages.marker_statusSummarySelected, new Object[] {
-						new Integer(markers.getItemCount()),
-						formatSummaryBreakDown(markers) });
-		return message;
-	}
-
-	/**
-	 * Retrieves statistical information (the total number of markers with each
-	 * severity type) for the markers contained in the selection passed in. This
-	 * information is then massaged into a string which may be displayed by the
-	 * caller.
-	 * 
-	 * @param selection
-	 *            a valid selection or <code>null</code>
-	 * @return a message ready for display
-	 */
-	protected String updateSummarySelected(IStructuredSelection selection) {
-		Collection selectionList;
-
-		selectionList = new ArrayList();
-		Iterator selectionIterator = selection.iterator();
-		while (selectionIterator.hasNext()) {
-			MarkerNode next = (MarkerNode) selectionIterator.next();
-			if (next.isConcrete()) {
-				selectionList.add(next);
-			}
-		}
-
-		return getSummary(new MarkerList(selectionList));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerTypes()
-	 */
-	protected String[] getMarkerTypes() {
-		return new String[] { IMarker.PROBLEM };
-	}
-
-	protected String getStaticContextId() {
-		return PlatformUI.PLUGIN_ID + ".problem_view_context";//$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#createFiltersDialog()
-	 */
-	protected DialogMarkerFilter createFiltersDialog() {
-
-		MarkerFilter[] filters = getUserFilters();
-		ProblemFilter[] problemFilters = new ProblemFilter[filters.length];
-		System.arraycopy(filters, 0, problemFilters, 0, filters.length);
-		return new DialogProblemFilter(getSite().getShell(), problemFilters);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#createFilter(java.lang.String)
-	 */
-	protected MarkerFilter createFilter(String name) {
-		return new ProblemFilter(name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getSectionTag()
-	 */
-	protected String getSectionTag() {
-		return TAG_DIALOG_SECTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerEnablementPreferenceName()
-	 */
-	String getMarkerEnablementPreferenceName() {
-		return IDEInternalPreferences.LIMIT_PROBLEMS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerLimitPreferenceName()
-	 */
-	String getMarkerLimitPreferenceName() {
-		return IDEInternalPreferences.PROBLEMS_LIMIT;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getFiltersPreferenceName()
-	 */
-	String getFiltersPreferenceName() {
-		return IDEInternalPreferences.PROBLEMS_FILTERS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getAllFilters()
-	 */
-	MarkerFilter[] getAllFilters() {
-		MarkerFilter[] userFilters = super.getAllFilters();
-		Collection declaredFilters = MarkerSupportRegistry.getInstance()
-				.getRegisteredFilters();
-		Iterator iterator = declaredFilters.iterator();
-
-		MarkerFilter[] allFilters = new MarkerFilter[userFilters.length
-				+ declaredFilters.size()];
-		System.arraycopy(userFilters, 0, allFilters, 0, userFilters.length);
-		int index = userFilters.length;
-
-		while (iterator.hasNext()) {
-			allFilters[index] = (MarkerFilter) iterator.next();
-			index++;
-		}
-		return allFilters;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#addDropDownContributions(org.eclipse.jface.action.IMenuManager)
-	 */
-	void addDropDownContributions(IMenuManager menu) {
-
-		MenuManager groupByMenu = new MenuManager(
-				MarkerMessages.ProblemView_GroupByMenu);
-		groupByMenu.add(new GroupingAction(MarkerMessages.ProblemView_Type,
-				new FieldCategory(), this));
-
-		Iterator definedGroups = MarkerSupportRegistry.getInstance()
-				.getMarkerGroups().iterator();
-
-		while (definedGroups.hasNext()) {
-			FieldMarkerGroup group = (FieldMarkerGroup) definedGroups.next();
-			groupByMenu.add(new GroupingAction(group.getDescription(), group,
-					this));
-		}
-
-		groupByMenu.add(new GroupingAction(MarkerMessages.ProblemView_None,
-				null, this));
-		menu.add(groupByMenu);
-
-		super.addDropDownContributions(menu);
-	}
-
-	/**
-	 * Resize the category column in the table.
-	 */
-	protected void regenerateLayout() {
-		TableLayout layout = new TableLayout();
-		getViewer().getTree().setLayout(layout);
-
-		ColumnLayoutData[] columnWidths = getDefaultColumnLayouts();
-		for (int i = 0; i < columnWidths.length; i++) {
-			layout.addColumnData(columnWidths[i]);
-
-		}
-		getViewer().getTree().layout(true);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#setSorter(org.eclipse.ui.views.markers.internal.TableSorter)
-	 */
-	void setComparator(TableComparator sorter2) {
-		getMarkerAdapter().getCategorySorter().setTableSorter(sorter2);
-		getMarkerAdapter().getCategorySorter().saveState(getDialogSettings());
-		updateForNewComparator(sorter2);
-		
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getTableSorter()
-	 */
-	public TableComparator getTableSorter() {
-		return ((CategoryComparator) getViewer().getComparator()).innerSorter;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		super.createPartControl(parent);
-		createActivityManagerListener();
-		PlatformUI.getWorkbench().getActivitySupport().getActivityManager()
-				.addActivityManagerListener(activityManagerListener);
-	}
-
-	/**
-	 * Create a new listener for activity changes.
-	 */
-	private void createActivityManagerListener() {
-		activityManagerListener = new IActivityManagerListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.ui.activities.IActivityManagerListener#activityManagerChanged(org.eclipse.ui.activities.ActivityManagerEvent)
-			 */
-			public void activityManagerChanged(
-					ActivityManagerEvent activityManagerEvent) {
-				clearEnabledFilters();
-				refreshViewer();
-			}
-		};
-
-	}
-
-	/**
-	 * Return the field whose description matches description.
-	 * 
-	 * @param description
-	 * @return IField
-	 */
-	public IField findField(String description) {
-		IField[] fields = getSortingFields();
-		for (int i = 0; i < fields.length; i++) {
-			if (fields[i].getDescription().equals(description)) {
-				return fields[i];
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#buildSorter()
-	 */
-	protected ViewerComparator buildComparator() {
-
-		TableComparator sorter = TableComparator.createTableSorter(getSortingFields());
-		sorter.restoreState(getDialogSettings());
-		CategoryComparator category = new CategoryComparator(sorter);
-		category.restoreState(getDialogSettings(), this);
-		return category;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#canBeEditable()
-	 */
-	boolean canBeEditable() {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#initToolBar(org.eclipse.jface.action.IToolBarManager)
-	 */
-	protected void initToolBar(IToolBarManager tbm) {
-		tbm.add(getFilterAction());
-		tbm.update(false);
-	}
-
-	/**
-	 * Select the category for the receiver.
-	 * 
-	 * @param description
-	 * @param sorter -
-	 *            the sorter to select for
-	 */
-	public void selectCategory(String description, CategoryComparator sorter) {
-
-		if (description == null)
-			selectCategoryField(null, sorter);
-
-		Iterator definedGroups = MarkerSupportRegistry.getInstance()
-				.getMarkerGroups().iterator();
-		while (definedGroups.hasNext()) {
-			FieldMarkerGroup group = (FieldMarkerGroup) definedGroups.next();
-			if (group.getDescription().equals(description)) {
-				selectCategoryField(group, sorter);
-				return;
-			}
-		}
-		selectCategoryField(null, sorter);
-
-	}
-
-	
-	/**
-	 * Select the field groupingField.
-	 * @param groupingField
-	 * @param sorter
-	 */
-	void selectCategoryField(IField groupingField, CategoryComparator sorter) {
-		getMarkerAdapter().getCurrentMarkers().clearGroups();
-		sorter.setCategoryField(groupingField);
-		refreshViewer();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#writeFiltersSettings(org.eclipse.ui.XMLMemento)
-	 */
-	protected void writeFiltersSettings(XMLMemento memento) {
-		super.writeFiltersSettings(memento);
-
-		// Add the system filters
-		Iterator filters = MarkerSupportRegistry.getInstance()
-				.getRegisteredFilters().iterator();
-
-		while (filters.hasNext()) {
-			MarkerFilter filter = (MarkerFilter) filters.next();
-			IMemento child = memento.createChild(TAG_SYSTEM_FILTER_ENTRY,
-					filter.getName());
-			child.putString(MarkerFilter.TAG_ENABLED, String.valueOf(filter
-					.isEnabled()));
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#restoreFilters(org.eclipse.ui.IMemento)
-	 */
-	void restoreFilters(IMemento memento) {
-
-		super.restoreFilters(memento);
-
-		if (memento == null)
-			return;
-
-		IMemento[] sections = memento.getChildren(TAG_SYSTEM_FILTER_ENTRY);
-
-		Collection registered = MarkerSupportRegistry.getInstance()
-				.getRegisteredFilters();
-		MarkerFilter[] filters = new MarkerFilter[registered.size()];
-		registered.toArray(filters);
-
-		if (sections != null) {
-
-			for (int i = 0; i < sections.length; i++) {
-				String filterName = sections[i].getID();
-				boolean enabled = Boolean.valueOf(
-						sections[i].getString(MarkerFilter.TAG_ENABLED))
-						.booleanValue();
-				setEnablement(filterName, enabled, filters);
-
-			}
-		}
-
-	}
-
-	/**
-	 * Set the enablement state of the filter called filterName to enabled.
-	 * 
-	 * @param filterName
-	 * @param enabled
-	 * @param filters
-	 */
-	private void setEnablement(String filterName, boolean enabled,
-			MarkerFilter[] filters) {
-		for (int i = 0; i < filters.length; i++) {
-			if (filters[i].getName().equals(filterName)) {
-				filters[i].setEnabled(enabled);
-				return;
-			}
-		}
-
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerName()
-	 */
-	protected String getMarkerName() {
-		return MarkerMessages.problem_title;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/SortUtil.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/SortUtil.java
deleted file mode 100644
index e0c557e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/SortUtil.java
+++ /dev/null
@@ -1,240 +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.markers.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.SortedSet;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * 
- */
-class SortUtil {
-
-    /**
-     *  * Returns the k smallest items in the given collection. Runs in
-     * O(n) time, average case. The resulting collection is not sorted.
-     * @param elements the MarkerList to check
-     * @param c the comparator
-     * @param k the number of items to collect
-     * @param mon the monitor
-     * @return MarkerList
-     */
-    public static MarkerList getFirst(MarkerList elements, Comparator c, int k,
-            IProgressMonitor mon) {
-    	Collection start = elements.asList();
-        Collection result = new ArrayList(start.size());
-
-        mon.beginTask(MarkerMessages.SortUtil_finding_first, 1000); 
-
-        getFirst(result, start, c, k, mon, 1000);
-
-        mon.done();
-
-        return new MarkerList(result);
-    }
-
-    private static void getFirst(Collection result, Collection elements,
-            Comparator c, int k, IProgressMonitor mon, int totalWork) {
-
-        if (mon.isCanceled()) {
-            return;
-        }
-
-        if (elements.size() <= k) {
-            result.addAll(elements);
-            mon.worked(totalWork);
-            return;
-        }
-
-        Object pivot;
-
-        if (elements instanceof ArrayList) {
-            pivot = ((ArrayList) elements).get(elements.size() / 2);
-        } else {
-            pivot = elements.iterator().next();
-        }
-        Collection more = new ArrayList(elements.size());
-        Collection less = new ArrayList(elements.size());
-        Collection equal = new ArrayList();
-
-        partitionHelper(less, more, equal, elements, c, pivot, mon,
-                totalWork / 2);
-
-        if (less.size() >= k) {
-            getFirst(result, less, c, k, mon, totalWork / 2);
-        } else if (less.size() + equal.size() >= k) {
-
-            int count = k - less.size();
-
-            result.addAll(less);
-
-            Iterator iter = equal.iterator();
-            while (iter.hasNext() && count > 0) {
-                Object next = iter.next();
-
-                result.add(next);
-                count--;
-            }
-            mon.worked(totalWork / 2);
-        } else if (less.size() + equal.size() + more.size() >= k) {
-            result.addAll(less);
-            result.addAll(equal);
-
-            getFirst(result, more, c, k - less.size() - equal.size(), mon,
-                    totalWork / 2);
-        }
-    }
-
-    private static void partitionHelper(Collection less, Collection more,
-            Collection equal, Collection input, Comparator c, Object toTest,
-            IProgressMonitor mon, int totalWork) {
-        int workRemaining = totalWork;
-        int counter = 0;
-        int totalItems = input.size();
-
-        Iterator iter = input.iterator();
-
-        while (iter.hasNext()) {
-            Object next = iter.next();
-
-            int compareResult = c.compare(next, toTest);
-
-            if (compareResult < 0) {
-                less.add(next);
-            } else if (compareResult > 0) {
-                more.add(next);
-            } else {
-                equal.add(next);
-            }
-
-            counter++;
-            if (counter > 100) {
-                if (mon.isCanceled()) {
-                    return;
-                }
-                int nextWorked = counter * workRemaining / totalItems;
-                mon.worked(nextWorked);
-                workRemaining -= nextWorked;
-                totalItems -= counter;
-                counter = 0;
-            }
-        }
-
-        mon.worked(workRemaining);
-    }
-
-    /**
-     * Divides the items in the input collection into three sets based on whether they are less than,
-     * equal to, or greater than the test item.
-     * 
-     * If the given monitor is cancelled (possibly by another thread), the operation will
-     * be aborted. In this case, the insertions may only be partially complete. 
-     * 
-     * @param less
-     * @param more
-     * @param equal
-     * @param input
-     * @param c
-     * @param toTest
-     * @param mon
-     */
-    public static void partition(Collection less, Collection more,
-            Collection equal, Collection input, Comparator c, Object toTest,
-            IProgressMonitor mon) {
-        mon
-                .beginTask(
-                        MarkerMessages.SortUtil_partitioning, input.size()); 
-
-        if (toTest == null || c == null) {
-            int counter = 0;
-            Iterator iter = input.iterator();
-            while (iter.hasNext()) {
-                Object next = iter.next();
-
-                counter++;
-                if (counter >= 20) {
-                    mon.worked(counter);
-                    counter = 0;
-                    if (mon.isCanceled()) {
-                        return;
-                    }
-                }
-
-                more.add(next);
-            }
-            mon.worked(counter);
-        } else {
-            partitionHelper(less, more, equal, input, c, toTest, mon, input
-                    .size());
-        }
-
-        mon.done();
-    }
-
-    /**
-     * Removes and returns the first n items from the given collection.
-     * 
-     * @param collection
-     * @param numToRemove
-     * @return List
-     */
-    public static List removeFirst(Collection collection, int numToRemove) {
-        int toRemove = Math.min(collection.size(), numToRemove);
-
-        List removed = new ArrayList(toRemove);
-
-        Iterator iter = collection.iterator();
-
-        for (int idx = 0; idx < toRemove; idx++) {
-            removed.add(iter.next());
-
-            iter.remove();
-        }
-
-        return removed;
-    }
-
-    /**
-     * Finds and returns the greatest element in the given collection, or null if the collection
-     * is empty.
-     *  
-     * @param toSearch collection to search
-     * @param c comparator used to determine the greatest item
-     * @return the greatest item in the collection
-     */
-    public static Object findGreatest(Collection toSearch, Comparator c) {
-        // If this set is already sorted using the given comparator, just return the last element
-        if (toSearch instanceof SortedSet
-                && ((SortedSet) toSearch).comparator().equals(c)) {
-            return ((SortedSet) toSearch).last();
-        }
-
-        // Otherwise, exhaustively search for the greatest element
-        Object result = null;
-        Iterator iter = toSearch.iterator();
-
-        while (iter.hasNext()) {
-            Object next = iter.next();
-
-            if (result == null || c.compare(result, next) > 0) {
-                result = next;
-            }
-        }
-
-        return result;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableComparator.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableComparator.java
deleted file mode 100644
index b8b1ad6..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableComparator.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-
-public class TableComparator extends ViewerComparator implements Comparator {
-
-	public static final int MAX_DEPTH = 4;
-
-	public static final int ASCENDING = 1;
-
-	public static final int DESCENDING = -1;
-
-	protected IField[] fields;
-
-	protected int[] priorities;
-
-	protected int[] directions;
-
-	protected int[] defaultPriorities;
-
-	protected int[] defaultDirections;
-
-	public static final String TAG_DIALOG_SECTION = "sorter"; //$NON-NLS-1$
-
-	private static final String TAG_PRIORITY = "priority"; //$NON-NLS-1$ 
-
-	private static final String TAG_DIRECTION = "direction"; //$NON-NLS-1$
-
-	private static final String TAG_DEFAULT_PRIORITY = "defaultPriority"; //$NON-NLS-1$
-
-	private static final String TAG_DEFAULT_DIRECTION = "defaultDirection"; //$NON-NLS-1$
-
-	public TableComparator(TableComparator other) {
-		this(other.getFields(), other.getDefaultPriorities(), other
-				.getDefaultDirections());
-		priorities = other.getPriorities();
-		directions = other.getDirections();
-	}
-
-	public TableComparator(IField[] properties, final int[] defaultPriorities,
-			final int[] defaultDirections) {
-		super();
-		this.fields = properties;
-		if (properties == null
-				|| defaultPriorities == null
-				|| defaultDirections == null
-				|| !(properties.length == defaultPriorities.length && properties.length == defaultDirections.length)
-				|| !verifyPriorities(defaultPriorities)
-				|| !verifyDirections(defaultDirections)) {
-			this.priorities = new int[0];
-			this.directions = new int[0];
-			this.defaultPriorities = new int[0];
-			this.defaultDirections = new int[0];
-		} else {
-			this.priorities = new int[defaultPriorities.length];
-			System.arraycopy(defaultPriorities, 0, this.priorities, 0,
-					priorities.length);
-			this.directions = new int[defaultDirections.length];
-			System.arraycopy(defaultDirections, 0, this.directions, 0,
-					directions.length);
-			this.defaultPriorities = new int[defaultPriorities.length];
-			System.arraycopy(defaultPriorities, 0, this.defaultPriorities, 0,
-					defaultPriorities.length);
-			this.defaultDirections = new int[defaultDirections.length];
-			System.arraycopy(defaultDirections, 0, this.defaultDirections, 0,
-					defaultDirections.length);
-		}
-	}
-
-	/**
-	 * Return a TableSorter based on the supplied fields.
-	 * 
-	 * @param sortingFields
-	 */
-	static TableComparator createTableSorter(IField[] sortingFields) {
-		int[] defaultPriorities = new int[sortingFields.length];
-		for (int i = 0; i < defaultPriorities.length; i++) {
-			defaultPriorities[i] = i;
-		}
-
-		int[] directions = new int[sortingFields.length];
-		for (int i = 0; i < directions.length; i++) {
-			directions[i] = sortingFields[i].getDefaultDirection();
-
-		}
-
-		return new TableComparator(sortingFields, defaultPriorities, directions);
-	}
-
-	protected void resetState() {
-		System
-				.arraycopy(defaultPriorities, 0, priorities, 0,
-						priorities.length);
-		System
-				.arraycopy(defaultDirections, 0, directions, 0,
-						directions.length);
-	}
-
-	public void reverseTopPriority() {
-		directions[priorities[0]] *= -1;
-	}
-
-	public void setTopPriority(IField property) {
-		for (int i = 0; i < fields.length; i++) {
-			if (fields[i].equals(property)) {
-				setTopPriority(i);
-				return;
-			}
-		}
-	}
-
-	public void setTopPriority(int priority) {
-		if (priority < 0 || priority >= priorities.length) {
-			return;
-		}
-
-		int index = -1;
-		for (int i = 0; i < priorities.length; i++) {
-			if (priorities[i] == priority) {
-				index = i;
-			}
-		}
-
-		if (index == -1) {
-			resetState();
-			return;
-		}
-
-		// shift the array
-		for (int i = index; i > 0; i--) {
-			priorities[i] = priorities[i - 1];
-		}
-		priorities[0] = priority;
-		directions[priority] = defaultDirections[priority];
-	}
-
-	public void setTopPriorityDirection(int direction) {
-		if (direction == ASCENDING || direction == DESCENDING) {
-			directions[priorities[0]] = direction;
-		}
-	}
-
-	public int getTopPriorityDirection() {
-		return directions[priorities[0]];
-	}
-
-	public int getTopPriority() {
-		return priorities[0];
-	}
-
-	/**
-	 * Return the field at the top priority.
-	 * 
-	 * @return IField
-	 */
-	public IField getTopField() {
-		return fields[getTopPriority()];
-	}
-
-	public int[] getPriorities() {
-		int[] copy = new int[priorities.length];
-		System.arraycopy(priorities, 0, copy, 0, copy.length);
-		return copy;
-	}
-
-	public int[] getDirections() {
-		int[] copy = new int[directions.length];
-		System.arraycopy(directions, 0, copy, 0, copy.length);
-		return copy;
-	}
-
-	public int[] getDefaultPriorities() {
-		int[] copy = new int[defaultPriorities.length];
-		System.arraycopy(defaultPriorities, 0, copy, 0, copy.length);
-		return copy;
-	}
-
-	public int[] getDefaultDirections() {
-		int[] copy = new int[defaultDirections.length];
-		System.arraycopy(defaultDirections, 0, copy, 0, copy.length);
-		return copy;
-	}
-
-	public int compare(Viewer viewer, Object e1, Object e2) {
-		return compare(e1, e2, 0, true);
-	}
-
-	/**
-	 * Compare obj1 and obj2 at depth. If continueSearching continue searching
-	 * below depth to continue the comparison.
-	 * 
-	 * @param obj1
-	 * @param obj2
-	 * @param depth
-	 * @param continueSearching
-	 * @return int
-	 */
-	protected int compare(Object obj1, Object obj2, int depth,
-			boolean continueSearching) {
-		if (depth >= priorities.length) {
-			return 0;
-		}
-
-		int column = priorities[depth];
-		IField property = fields[column];
-		int result = property.compare(obj1, obj2);
-		if (result == 0 && continueSearching) {
-			return compare(obj1, obj2, depth + 1, continueSearching);
-		}
-		return result * directions[column];
-	}
-
-	/**
-	 * @return IField[] an array of fields
-	 */
-	public IField[] getFields() {
-		return fields;
-	}
-
-	private boolean verifyPriorities(int[] priorities) {
-		int length = priorities.length;
-		boolean[] included = new boolean[length];
-		Arrays.fill(included, false);
-		for (int i = 0; i < length; i++) {
-			int priority = priorities[i];
-			if (priority < 0 || priority >= length) {
-				return false;
-			}
-			if (included[priority]) {
-				return false;
-			}
-			included[priority] = true;
-		}
-		return true;
-	}
-
-	private boolean verifyDirections(int[] directions) {
-		for (int i = 0; i < directions.length; i++) {
-			if (directions[i] != ASCENDING && directions[i] != DESCENDING) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-	 */
-	public int compare(Object o1, Object o2) {
-		return compare(null, o1, o2);
-	}
-
-	public void saveState(IDialogSettings dialogSettings) {
-		if (dialogSettings == null) {
-			return;
-		}
-
-		IDialogSettings settings = dialogSettings
-				.getSection(TAG_DIALOG_SECTION);
-		if (settings == null) {
-			settings = dialogSettings.addNewSection(TAG_DIALOG_SECTION);
-		}
-
-		for (int i = 0; i < priorities.length; i++) {
-			settings.put(TAG_PRIORITY + i, priorities[i]);
-			settings.put(TAG_DIRECTION + i, directions[i]);
-			settings.put(TAG_DEFAULT_PRIORITY + i, defaultPriorities[i]);
-			settings.put(TAG_DEFAULT_DIRECTION + i, defaultDirections[i]);
-		}
-	}
-
-	public void restoreState(IDialogSettings dialogSettings) {
-		if (dialogSettings == null) {
-			resetState();
-			return;
-		}
-
-		IDialogSettings settings = dialogSettings
-				.getSection(TAG_DIALOG_SECTION);
-		if (settings == null) {
-			resetState();
-			return;
-		}
-
-		try {
-			for (int i = 0; i < priorities.length; i++) {
-				String priority = settings.get(TAG_PRIORITY + i);
-				if (priority == null) {
-					resetState();
-					return;
-				}
-				
-				int fieldIndex = Integer.parseInt(priority);
-				
-				//Make sure it is not old data from a different sized array
-				if(fieldIndex < fields.length) {
-					priorities[i] = fieldIndex;
-				}
-				
-				String direction = settings.get(TAG_DIRECTION + i);
-				if (direction == null) {
-					resetState();
-					return;
-				}
-				directions[i] = Integer.parseInt(direction);
-				String defaultPriority = settings.get(TAG_DEFAULT_PRIORITY + i);
-				if (defaultPriority == null) {
-					resetState();
-					return;
-				}
-				defaultPriorities[i] = Integer.parseInt(defaultPriority);
-				String defaultDirection = settings.get(TAG_DEFAULT_DIRECTION
-						+ i);
-				if (defaultDirection == null) {
-					resetState();
-					return;
-				}
-				defaultDirections[i] = Integer.parseInt(defaultDirection);
-			}
-		} catch (NumberFormatException e) {
-			resetState();
-		}
-	}
-
-	/**
-	 * Sort the array of markers in lastMarkers in place.
-	 * 
-	 * @param viewer
-	 * @param lastMarkers
-	 */
-	public void sort(TreeViewer viewer, MarkerList lastMarkers) {
-		sort(viewer, lastMarkers.getArray());
-
-	}
-
-	/**
-	 * Sorts the given elements in-place, modifying the given array from index
-	 * start to index end. <
-	 * 
-	 * @param viewer
-	 * @param elements
-	 * @param start
-	 * @param end
-	 */
-	public void sort(final Viewer viewer, Object[] elements, int start, int end) {
-		Arrays.sort(elements, start, end, new Comparator() {
-			public int compare(Object a, Object b) {
-				return TableComparator.this.compare(viewer, a, b);
-			}
-		});
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableSortAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableSortAction.java
deleted file mode 100644
index f971e9c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableSortAction.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.views.markers.internal;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.window.Window;
-
-public class TableSortAction extends Action {
-
-    private TableView view;
-
-    private TableSortDialog dialog;
-
-    public TableSortAction(TableView view, TableSortDialog dialog) {
-        super(MarkerMessages.sortAction_title);
-        this.view = view;
-        this.dialog = dialog;
-        setEnabled(true);
-    }
-
-    public void run() {
-        if (dialog.open() == Window.OK && dialog.isDirty()) {
-            view.setComparator(dialog.getSorter());
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableSortDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableSortDialog.java
deleted file mode 100644
index a81e3f1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableSortDialog.java
+++ /dev/null
@@ -1,410 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 77336 [Markers] [Dialogs] TableSortDialog does not use dialog font
- *******************************************************************************/
-
-package org.eclipse.ui.views.markers.internal;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.osgi.util.NLS;
-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.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * The TableSortDialog is the dialog that allows sort order to
- * be selected.
- */
-public class TableSortDialog extends TrayDialog {
-
-    private TableComparator sorter;
-
-    private Combo[] priorityCombos;
-
-    private String[] propertyText;
-
-    private IField[] properties;
-
-    private Button[] ascendingButtons;
-
-    private Button[] descendingButtons;
-
-    private boolean dirty;
-
-    private final Comparator columnComparator = new Comparator() {
-        public int compare(Object arg0, Object arg1) {
-            int index0 = -1;
-            int index1 = -1;
-            for (int i = 0; i < propertyText.length; i++) {
-                if (propertyText[i].equals(arg0)) {
-					index0 = i;
-				}
-                if (propertyText[i].equals(arg1)) {
-					index1 = i;
-				}
-            }
-            return index0 - index1;
-        }
-    };
-
-    /**
-     * Create a new instance of the receiver.
-     * @param parentShell
-     * @param sorter
-     */
-    public TableSortDialog(IShellProvider parentShell, TableComparator sorter) {
-        super(parentShell);
-        this.sorter = sorter;
-        dirty = false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Window.
-     */
-    protected void configureShell(Shell newShell) {
-        super.configureShell(newShell);
-        newShell.setText(MarkerMessages.sortDialog_title);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected Control createDialogArea(Composite parent) {
-        Composite composite = (Composite) super.createDialogArea(parent);
-        if (sorter == null) {
-			return composite;
-		}
-
-        initializeDialogUnits(composite);
-        
-        createPrioritiesArea(composite);
-        createRestoreDefaultsButton(composite);
-        createSeparatorLine(composite);
-        
-        Dialog.applyDialogFont(composite);
-
-        return composite;
-    }
-
-    /**
-     * Create the proirities area.
-     * @param parent
-     */
-    private void createPrioritiesArea(Composite parent) {
-        Composite prioritiesArea = new Composite(parent, SWT.NULL);
-        prioritiesArea.setLayout(new GridLayout(3, false));
-        
-        int[] priorities = sorter.getPriorities();
-
-        ascendingButtons = new Button[priorities.length];
-        descendingButtons = new Button[priorities.length];
-        priorityCombos = new Combo[Math.min(priorities.length,
-                TableComparator.MAX_DEPTH)];
-        initPriotityText();
-
-        Label sortByLabel = new Label(prioritiesArea, SWT.NULL);
-        sortByLabel.setText(MarkerMessages.sortDialog_label); 
-        GridData data = new GridData();
-        data.horizontalSpan = 3;
-        sortByLabel.setLayoutData(data);
-
-        for (int i = 0; i < priorityCombos.length; i++) {
-            final int index = i;
-            Label numberLabel = new Label(prioritiesArea, SWT.NULL);
-            numberLabel
-                    .setText(NLS
-                            .bind(MarkerMessages.sortDialog_columnLabel,new Integer(i + 1))); 
-
-            priorityCombos[i] = new Combo(prioritiesArea, SWT.READ_ONLY);
-            priorityCombos[i].setLayoutData(new GridData(
-                    GridData.FILL_HORIZONTAL));
-
-            Composite directionGroup = new Composite(prioritiesArea, SWT.NONE);
-            directionGroup.setLayout(new GridLayout(2, false));
-            
-            ascendingButtons[i] = new Button(directionGroup, SWT.RADIO);
-            ascendingButtons[i].setText(getAscendingText(i));
-            ascendingButtons[i].addSelectionListener(new SelectionAdapter() {
-                public void widgetSelected(SelectionEvent e) {
-                    markDirty();
-                }
-            });
-            descendingButtons[i] = new Button(directionGroup, SWT.RADIO);
-            descendingButtons[i].setText(getDescendingText(i));
-            descendingButtons[i].addSelectionListener(new SelectionAdapter() {
-                public void widgetSelected(SelectionEvent e) {
-                    markDirty();
-                }
-            });
-
-            if (i < priorityCombos.length - 1) {
-                priorityCombos[i].addSelectionListener(new SelectionAdapter() {
-                    public void widgetSelected(SelectionEvent e) {
-                        int oldSelectionDirection = TableComparator.ASCENDING;
-                        if (descendingButtons[index].getSelection()) {
-							oldSelectionDirection = TableComparator.DESCENDING;
-						}
-                        ArrayList oldSelectionList = new ArrayList(Arrays
-                                .asList(priorityCombos[index].getItems()));
-                        oldSelectionList.removeAll(Arrays
-                                .asList(priorityCombos[index + 1].getItems()));
-                        if (oldSelectionList.size() != 1) {
-							return;
-						}
-                        String oldSelection = (String) oldSelectionList.get(0);
-                        String newSelection = priorityCombos[index]
-                                .getItem(priorityCombos[index]
-                                        .getSelectionIndex());
-                        if (oldSelection.equals(newSelection)) {
-                            return;
-                        }
-                        for (int j = index + 1; j < priorityCombos.length; j++) {
-                            int newSelectionIndex = priorityCombos[j]
-                                    .indexOf(newSelection);
-                            //this combo's current selection is equal to newSelection
-                            if (priorityCombos[j].getSelectionIndex() == newSelectionIndex) {
-                                priorityCombos[j].remove(newSelection);
-                                int insertionPoint = -1
-                                        - Arrays.binarySearch(priorityCombos[j]
-                                                .getItems(), oldSelection,
-                                                columnComparator);
-                                if (insertionPoint >= 0
-                                        && insertionPoint <= priorityCombos[j]
-                                                .getItemCount()) {
-									priorityCombos[j].add(oldSelection,
-                                            insertionPoint);
-								} else {
-									priorityCombos[j].add(oldSelection);
-								}
-                                priorityCombos[j].select(priorityCombos[j]
-                                        .indexOf(oldSelection));
-                                ascendingButtons[index]
-                                        .setSelection(ascendingButtons[j]
-                                                .getSelection());
-                                descendingButtons[index]
-                                        .setSelection(descendingButtons[j]
-                                                .getSelection());
-                                ascendingButtons[j]
-                                        .setSelection(oldSelectionDirection == TableComparator.ASCENDING);
-                                descendingButtons[j]
-                                        .setSelection(oldSelectionDirection == TableComparator.DESCENDING);
-                            }
-                            //this combo contains newSelection
-                            else if (newSelectionIndex >= 0) {
-                                priorityCombos[j].remove(newSelection);
-                                int insertionPoint = -1
-                                        - Arrays.binarySearch(priorityCombos[j]
-                                                .getItems(), oldSelection,
-                                                columnComparator);
-                                if (insertionPoint >= 0
-                                        && insertionPoint <= priorityCombos[j]
-                                                .getItemCount()) {
-									priorityCombos[j].add(oldSelection,
-                                            insertionPoint);
-								} else {
-									priorityCombos[j].add(oldSelection);
-								}
-                            }
-                        }
-                        markDirty();
-                    }
-                });
-            } else {
-                priorityCombos[i].addSelectionListener(new SelectionAdapter() {
-                    public void widgetSelected(SelectionEvent e) {
-                        markDirty();
-                    }
-                });
-            }
-        }
-        updateUIFromSorter();
-    }
-
-    /**
-     * Get the descending label for the Descending field
-     * at i. Use the index to determine the mnemonic.
-     * @param index
-     * @return String
-     */
-	private String getDescendingText(int index) {
-		switch (index) {
-		case 1:
-			return MarkerMessages.sortDirectionDescending_text2;
-		case 2:
-			return MarkerMessages.sortDirectionDescending_text3;
-		case 3:
-			return MarkerMessages.sortDirectionDescending_text4;
-		default:
-			return MarkerMessages.sortDirectionDescending_text;
-	}
-	
-}
-
-    /**
-     * Get the ascending label for the Ascending field
-     * at i. Use the index to determine the mnemonic.
-     * @param index
-     * @return String
-     */
-	private String getAscendingText(int index) {
-		switch (index) {
-			case 1:
-				return MarkerMessages.sortDirectionAscending_text2;
-			case 2:
-				return MarkerMessages.sortDirectionAscending_text3;
-			case 3:
-				return MarkerMessages.sortDirectionAscending_text4;
-			default:
-				return MarkerMessages.sortDirectionAscending_text;
-		}
-		
-	}
-
-    /**
-     * Create the restore defaults button.
-     * @param parent
-     */
-    private void createRestoreDefaultsButton(Composite parent) {
-        Button defaultsButton = new Button(parent, SWT.PUSH);
-        defaultsButton.setText(MarkerMessages.restoreDefaults_text);
-        setButtonSize(defaultsButton, new GridData(
-                GridData.HORIZONTAL_ALIGN_END | GridData.FILL_HORIZONTAL));
-        defaultsButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                restoreDefaults();
-                markDirty();
-            }
-        });
-    }
-
-    private void createSeparatorLine(Composite parent) {
-        Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
-        separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL
-                | GridData.VERTICAL_ALIGN_CENTER));
-        //		separator.setForeground(new Color(parent.getDisplay(), 150, 150, 150));
-        //		separator.setBackground(new Color(parent.getDisplay(), 150, 150, 150));
-    }
-
-    private void restoreDefaults() {
-        updateUI(sorter.getDefaultPriorities(), sorter.getDefaultDirections());
-    }
-
-    private void updateUIFromSorter() {
-        updateUI(sorter.getPriorities(), sorter.getDirections());
-    }
-
-    private void updateUI(int[] priorities, int[] directions) {
-        ArrayList availablePriorities = new ArrayList(Arrays
-                .asList(propertyText));
-
-        for (int i = 0; i < priorityCombos.length; i++) {
-            priorityCombos[i].removeAll();
-            for (int j = 0; j < availablePriorities.size(); j++) {
-				priorityCombos[i].add((String) availablePriorities.get(j));
-			}
-            priorityCombos[i].select(priorityCombos[i]
-                    .indexOf(propertyText[priorities[i]]));
-            availablePriorities.remove(propertyText[priorities[i]]);
-
-            ascendingButtons[i]
-                    .setSelection(directions[priorities[i]] == TableComparator.ASCENDING);
-            descendingButtons[i]
-                    .setSelection(directions[priorities[i]] == TableComparator.DESCENDING);
-        }
-    }
-
-    protected void okPressed() {
-        if (isDirty()) {
-            for (int i = priorityCombos.length - 1; i >= 0; i--) {
-                String column = priorityCombos[i].getItem(priorityCombos[i]
-                        .getSelectionIndex());
-                int index = -1;
-                for (int j = 0; j < propertyText.length && index == -1; j++) {
-                    if (propertyText[j].equals(column)) {
-						index = j;
-					}
-                }
-                if (index == -1) {
-                    sorter.resetState();
-                    return;
-                }
-                sorter.setTopPriority(properties[index]);
-                int direction = TableComparator.ASCENDING;
-                if (descendingButtons[i].getSelection()) {
-					direction = TableComparator.DESCENDING;
-				}
-                sorter.setTopPriorityDirection(direction);
-            }
-        }
-        super.okPressed();
-    }
-
-    /**
-     * @return boolean
-     */
-    public boolean isDirty() {
-        return dirty;
-    }
-
-    /**
-     * Sets the dirty flag to true.
-     */
-    public void markDirty() {
-        dirty = true;
-    }
-
-    /**
-     * Set the layout data of the button to a GridData with 
-     * appropriate heights and widths.
-     * @param button
-     */
-    private void setButtonSize(Button button, GridData buttonData) {
-    	button.setFont(button.getParent().getFont());
-        int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-        buttonData.widthHint = Math.max(widthHint, button.computeSize(
-                SWT.DEFAULT, SWT.DEFAULT, true).x);
-        button.setLayoutData(buttonData);
-    }
-
-    private void initPriotityText() {
-        IField[] unorderedProperties = sorter.getFields();
-        properties = new IField[unorderedProperties.length];
-        System.arraycopy(unorderedProperties, 0, properties, 0,
-                properties.length);
-        propertyText = new String[properties.length];
-        for (int i = 0; i < properties.length; i++) {
-            propertyText[i] = properties[i].getDescription();
-        }
-    }
-
-    /**
-     * Return the sorter for the receiver.
-     * @return TableSorter
-     */
-    public TableComparator getSorter() {
-        return sorter;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableView.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableView.java
deleted file mode 100644
index fc83503..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableView.java
+++ /dev/null
@@ -1,775 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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> - 26823 [Markers] cannot reorder columns in task list
- *******************************************************************************/
-
-package org.eclipse.ui.views.markers.internal;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Arrays;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-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.dialogs.IDialogSettings;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-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.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.preferences.ViewPreferencesAction;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-
-/**
- * The TableView is a view that generically implements views with tables.
- * 
- */
-public abstract class TableView extends ViewPart {
-
-	private static final String TAG_COLUMN_WIDTH = "columnWidth"; //$NON-NLS-1$
-
-	private static final String TAG_COLUMN_ORDER = "columnOrder"; //$NON-NLS-1$
-
-	private static final String TAG_COLUMN_ORDER_INDEX = "columnOrderIndex"; //$NON-NLS-1$
-
-	private static final String TAG_VERTICAL_POSITION = "verticalPosition"; //$NON-NLS-1$
-
-	private static final String TAG_HORIZONTAL_POSITION = "horizontalPosition"; //$NON-NLS-1$
-
-	private TreeViewer viewer;
-
-	private IMemento memento;
-
-	private IAction sortAction;
-
-	private IAction filtersAction;
-
-	private IAction preferencesAction;
-
-	private MarkerTreeContentProvider contentProvider;
-
-	private ISelectionProvider selectionProvider = new MarkerSelectionProviderAdapter();
-
-	/*
-	 * (non-Javadoc) Method declared on IViewPart.
-	 */
-	public void init(IViewSite site, IMemento memento) throws PartInitException {
-		super.init(site, memento);
-		this.memento = memento;
-	}
-
-	/**
-	 * 
-	 */
-	// void haltTableUpdates() {
-	// content.cancelPendingChanges();
-	// }
-	// void change(Collection toRefresh) {
-	// content.change(toRefresh);
-	// }
-	// void setContents(Collection contents, IProgressMonitor mon) {
-	// content.set(contents, mon);
-	// }
-	abstract protected void viewerSelectionChanged(
-			IStructuredSelection selection);
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		parent.setLayout(new FillLayout());
-
-		viewer = new TreeViewer(createTree(parent));
-		createColumns(viewer.getTree());
-
-		contentProvider = new MarkerTreeContentProvider();
-
-		viewer.setContentProvider(contentProvider);
-
-		setLabelProviders();
-
-		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				IStructuredSelection selection = (IStructuredSelection) event
-						.getSelection();
-				viewerSelectionChanged(selection);
-			}
-		});
-
-		viewer.setComparator(buildComparator());
-		setSortIndicators();
-
-		// create the actions before the input is set on the viewer but after
-		// the
-		// sorter and filter are set so the actions will be enabled correctly.
-		createActions();
-
-		viewer.setInput(createViewerInput());
-
-		Scrollable scrollable = (Scrollable) viewer.getControl();
-		ScrollBar bar = scrollable.getVerticalBar();
-		if (bar != null) {
-			bar.setSelection(restoreVerticalScrollBarPosition(memento));
-		}
-		bar = scrollable.getHorizontalBar();
-		if (bar != null) {
-			bar.setSelection(restoreHorizontalScrollBarPosition(memento));
-		}
-
-		MenuManager mgr = initContextMenu();
-		Menu menu = mgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(mgr, selectionProvider);
-
-		getSite().setSelectionProvider(selectionProvider);
-
-		IActionBars actionBars = getViewSite().getActionBars();
-		initMenu(actionBars.getMenuManager());
-		initToolBar(actionBars.getToolBarManager());
-
-		registerGlobalActions(getViewSite().getActionBars());
-
-		viewer.addOpenListener(new IOpenListener() {
-			public void open(OpenEvent event) {
-				handleOpenEvent(event);
-			}
-		});
-		viewer.getControl().addKeyListener(new KeyAdapter() {
-			public void keyPressed(KeyEvent e) {
-				handleKeyPressed(e);
-			}
-		});
-	}
-
-	/**
-	 * Set the label providers for the columns.
-	 */
-	private void setLabelProviders() {
-		
-		IField[] fields = getAllFields();
-		for (int i = 0; i < fields.length; i++) {
-			IField field = fields[i];
-			viewer.getViewerColumn(i).setLabelProvider(new MarkerViewLabelProvider(field));
-		}	
-		
-	}
-
-	/**
-	 * Create the viewer input for the receiver.
-	 * 
-	 * @return Object
-	 */
-	abstract Object createViewerInput();
-
-	/**
-	 * Set the comparator to be the new comparator.
-	 * 
-	 * @param comparator
-	 */
-	void setComparator(TableComparator comparator) {
-		viewer.setComparator(comparator);
-		updateForNewComparator(comparator);
-	}
-
-	/**
-	 * Update the viewer for comparator updates
-	 * 
-	 * @param comparator
-	 */
-	void updateForNewComparator(TableComparator comparator) {
-		comparator.saveState(getDialogSettings());
-		viewer.refresh();
-		setSortIndicators();
-	}
-
-	/**
-	 * Create the main tree control
-	 * 
-	 * @param parent
-	 * @return Tree
-	 */
-	protected Tree createTree(Composite parent) {
-		Tree tree = new Tree(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI
-				| SWT.FULL_SELECTION);
-		tree.setLinesVisible(true);
-		return tree;
-	}
-
-	/**
-	 * Get the pixel data for the columns.
-	 * 
-	 * @return ColumnPixelData[]
-	 */
-	public ColumnPixelData[] getSavedColumnData() {
-		ColumnPixelData[] defaultData = getDefaultColumnLayouts();
-
-		ColumnPixelData[] result = new ColumnPixelData[defaultData.length];
-		for (int i = 0; i < defaultData.length; i++) {
-			int width = defaultData[i].width;
-			ColumnPixelData defaultPixelData = defaultData[i];
-
-			// non-resizable columns are always left at their default width
-			if (defaultPixelData.resizable) {
-				if (memento != null) {
-					Integer widthInt = memento.getInteger(TAG_COLUMN_WIDTH + i);
-
-					if (widthInt != null && widthInt.intValue() > 0) {
-						width = widthInt.intValue();
-					}
-				}
-			}
-
-			result[i] = new ColumnPixelData(width, defaultPixelData.resizable,
-					defaultPixelData.addTrim);
-		}
-
-		return result;
-	}
-
-	/**
-	 * Return the column sizes from the actual widget. Returns the saved column
-	 * sizes if the widget hasn't been created yet or its columns haven't been
-	 * initialized yet. (Note that TableLayout only initializes the column
-	 * widths after the first layout, so it is possible for the widget to exist
-	 * but have all its columns incorrectly set to zero width - see bug 86329)
-	 * 
-	 * @return ColumnPixelData
-	 */
-	public ColumnPixelData[] getColumnData() {
-		ColumnPixelData[] defaultData = getSavedColumnData();
-
-		Tree tree = getTree();
-
-		if (tree != null && (tree.isDisposed() || tree.getBounds().width == 0)) {
-			tree = null;
-		}
-
-		TreeColumn[] column = null;
-		if (tree != null) {
-			column = tree.getColumns();
-		}
-
-		ColumnPixelData[] result = new ColumnPixelData[defaultData.length];
-		for (int i = 0; i < defaultData.length; i++) {
-			ColumnPixelData defaultPixelData = defaultData[i];
-			int width = defaultData[i].width;
-
-			if (column != null && i < column.length) {
-				TreeColumn col = column[i];
-
-				if (col.getWidth() > 0) {
-					width = col.getWidth();
-				}
-			}
-
-			result[i] = new ColumnPixelData(width, defaultPixelData.resizable,
-					defaultPixelData.addTrim);
-		}
-
-		return result;
-	}
-
-	/**
-	 * Create the columns in the tree.
-	 * 
-	 * @param tree
-	 */
-	protected void createColumns(final Tree tree) {
-		TableLayout layout = new TableLayout();
-		tree.setLayout(layout);
-		tree.setHeaderVisible(true);
-
-		final IField[] fields = getAllFields();
-		ColumnLayoutData[] columnWidths = getSavedColumnData();
-		for (int i = 0; i < fields.length; i++) {
-			layout.addColumnData(columnWidths[i]);
-			TreeColumn tc = new TreeColumn(tree, SWT.NONE, i);
-			tc.setText(fields[i].getColumnHeaderText());
-			tc.setImage(fields[i].getColumnHeaderImage());
-			tc.setResizable(columnWidths[i].resizable);
-			tc.setMoveable(true);
-			tc.addSelectionListener(getHeaderListener());
-			tc.setData(fields[i]);
-		}
-
-		int[] order = restoreColumnOrder(memento);
-		if (order != null && order.length == fields.length) {
-			tree.setColumnOrder(order);
-		}
-	}
-
-	/**
-	 * Create the actions for the receiver.
-	 */
-	protected void createActions() {
-		if (getSortDialog() != null) {
-			sortAction = new TableSortAction(this, getSortDialog());
-		}
-	}
-
-	protected MenuManager initContextMenu() {
-		MenuManager mgr = new MenuManager();
-		mgr.setRemoveAllWhenShown(true);
-		mgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager mgr) {
-
-				getViewer().cancelEditing();
-				fillContextMenu(mgr);
-			}
-		});
-		return mgr;
-	}
-
-	protected abstract void initToolBar(IToolBarManager tbm);
-
-	/**
-	 * Init the menu for the receiver.
-	 * 
-	 * @param menu
-	 */
-	protected void initMenu(IMenuManager menu) {
-		if (sortAction != null) {
-			menu.add(sortAction);
-		}
-		addDropDownContributions(menu);
-		if (filtersAction != null) {
-			menu.add(filtersAction);
-		}
-		if (preferencesAction != null) {
-			menu.add(preferencesAction);
-		}
-	}
-
-	/**
-	 * Add any extra contributions to the drop down.
-	 * 
-	 * @param menu
-	 */
-	void addDropDownContributions(IMenuManager menu) {
-		// Do nothing by default.
-	}
-
-	protected abstract void registerGlobalActions(IActionBars actionBars);
-
-	protected abstract void fillContextMenu(IMenuManager manager);
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		Viewer viewer = getViewer();
-		if (viewer != null && !viewer.getControl().isDisposed()) {
-
-			viewer.getControl().setFocus();
-		}
-	}
-
-	/**
-	 * Build a comparator from the default settings.
-	 * 
-	 * @return TableSorter
-	 */
-	protected ViewerComparator buildComparator() {
-
-		IField[] sortingFields = getSortingFields();
-		int[] priorities = new int[sortingFields.length];
-		int[] directions = new int[sortingFields.length];
-		for (int i = 0; i < sortingFields.length; i++) {
-			priorities[i] = i;
-		}
-		Arrays.fill(directions, TableComparator.ASCENDING);
-		TableComparator sorter = new TableComparator(sortingFields, priorities,
-				directions);
-		sorter.restoreState(getDialogSettings());
-
-		return sorter;
-	}
-
-	// protected abstract ITableViewContentProvider getContentProvider();
-
-	protected abstract IField[] getSortingFields();
-
-	protected abstract IField[] getAllFields();
-
-	protected abstract IDialogSettings getDialogSettings();
-
-	/**
-	 * Return the viewer.
-	 * 
-	 * @return TreeViewer
-	 */
-	protected TreeViewer getViewer() {
-		return viewer;
-	}
-
-	/**
-	 * Return the tree for the receiver.
-	 * 
-	 * @return Tree
-	 */
-	protected Tree getTree() {
-		return getViewer().getTree();
-	}
-
-	protected SelectionListener getHeaderListener() {
-		return new SelectionAdapter() {
-			/**
-			 * Handles the case of user selecting the header area.
-			 */
-			public void widgetSelected(SelectionEvent e) {
-
-				final TreeColumn column = (TreeColumn) e.widget;
-				final IField field = (IField) column.getData();
-
-				try {
-					IWorkbenchSiteProgressService progressService = getProgressService();
-					if (progressService == null)
-						BusyIndicator.showWhile(getSite().getShell()
-								.getDisplay(), new Runnable() {
-							/*
-							 * (non-Javadoc)
-							 * 
-							 * @see java.lang.Runnable#run()
-							 */
-							public void run() {
-								resortTable(column, field,
-										new NullProgressMonitor());
-
-							}
-						});
-					else
-						getProgressService().busyCursorWhile(
-								new IRunnableWithProgress() {
-									/*
-									 * (non-Javadoc)
-									 * 
-									 * @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor)
-									 */
-									public void run(IProgressMonitor monitor) {
-										resortTable(column, field, monitor);
-									}
-								});
-				} catch (InvocationTargetException e1) {
-					IDEWorkbenchPlugin.getDefault().getLog().log(
-							Util.errorStatus(e1));
-				} catch (InterruptedException e1) {
-					return;
-				}
-
-			}
-
-			/**
-			 * Resort the table based on field.
-			 * 
-			 * @param column
-			 *            the column being updated
-			 * @param field
-			 * @param monitor
-			 */
-			private void resortTable(final TreeColumn column,
-					final IField field, IProgressMonitor monitor) {
-				TableComparator sorter = getTableSorter();
-
-				monitor.beginTask(MarkerMessages.sortDialog_title, 100);
-				monitor.worked(10);
-				if (field.equals(sorter.getTopField()))
-					sorter.reverseTopPriority();
-				else
-					sorter.setTopPriority(field);
-
-				monitor.worked(15);
-				PlatformUI.getWorkbench().getDisplay().asyncExec(
-						new Runnable() {
-							/*
-							 * (non-Javadoc)
-							 * 
-							 * @see java.lang.Runnable#run()
-							 */
-							public void run() {
-								viewer.refresh();
-								updateDirectionIndicator(column);
-							}
-						});
-
-				monitor.done();
-			}
-		};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#getDefaultColumnLayouts()
-	 */
-	protected ColumnPixelData[] getDefaultColumnLayouts() {
-
-		IField[] fields = getAllFields();
-		ColumnPixelData[] datas = new ColumnPixelData[fields.length];
-
-		for (int i = 0; i < fields.length; i++) {
-			int width = getWidth(fields[i]);
-			boolean resizable = width > 0;
-			datas[i] = new ColumnPixelData(width, resizable, resizable);
-		}
-		return datas;
-	}
-
-	/**
-	 * Return the width of the field to display.
-	 * 
-	 * @param field
-	 * @return int
-	 */
-	private int getWidth(IField field) {
-		if (!field.isShowing()) {
-			return 0;
-		}
-		return field.getPreferredWidth();
-	}
-
-	/**
-	 * Return a sort dialog for the receiver.
-	 * 
-	 * @return TableSortDialog
-	 */
-	protected TableSortDialog getSortDialog() {
-		return new TableSortDialog(getSite(), getTableSorter());
-
-	}
-
-	/**
-	 * Return the table sorter portion of the sorter.
-	 * 
-	 * @return TableSorter
-	 */
-	TableComparator getTableSorter() {
-		return (TableComparator) viewer.getComparator();
-	}
-
-	protected abstract void handleKeyPressed(KeyEvent event);
-
-	protected abstract void handleOpenEvent(OpenEvent event);
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.ViewPart#saveState(org.eclipse.ui.IMemento)
-	 */
-	public void saveState(IMemento memento) {
-		super.saveState(memento);
-
-		ColumnPixelData[] data = getColumnData();
-
-		for (int i = 0; i < data.length; i++) {
-			ColumnPixelData data2 = data[i];
-			memento.putInteger(TAG_COLUMN_WIDTH + i, data2.width);
-		}
-		// save column order
-		Tree tree = getTree();
-		int[] columnOrder = tree.getColumnOrder();
-		for (int i = 0; i < columnOrder.length; i++) {
-			IMemento child = memento.createChild(TAG_COLUMN_ORDER);
-			child.putInteger(TAG_COLUMN_ORDER_INDEX, columnOrder[i]);
-		}
-		// save vertical position
-		Scrollable scrollable = (Scrollable) viewer.getControl();
-		ScrollBar bar = scrollable.getVerticalBar();
-		int position = (bar != null) ? bar.getSelection() : 0;
-		memento.putInteger(TAG_VERTICAL_POSITION, position);
-		// save horizontal position
-		bar = scrollable.getHorizontalBar();
-		position = (bar != null) ? bar.getSelection() : 0;
-		memento.putInteger(TAG_HORIZONTAL_POSITION, position);
-	}
-
-	private int[] restoreColumnOrder(IMemento memento) {
-		if (memento == null) {
-			return null;
-		}
-		IMemento children[] = memento.getChildren(TAG_COLUMN_ORDER);
-		if (children != null) {
-			int n = children.length;
-			int[] values = new int[n];
-			for (int i = 0; i < n; i++) {
-				Integer val = children[i].getInteger(TAG_COLUMN_ORDER_INDEX);
-				if (val != null) {
-					values[i] = val.intValue();
-				} else {
-					// invalid entry so use default column order
-					return null;
-				}
-			}
-			return values;
-		}
-		return null;
-	}
-
-	private int restoreVerticalScrollBarPosition(IMemento memento) {
-		if (memento == null) {
-			return 0;
-		}
-		Integer position = memento.getInteger(TAG_VERTICAL_POSITION);
-		return (position == null) ? 0 : position.intValue();
-	}
-
-	private int restoreHorizontalScrollBarPosition(IMemento memento) {
-		if (memento == null) {
-			return 0;
-		}
-		Integer position = memento.getInteger(TAG_HORIZONTAL_POSITION);
-		return (position == null) ? 0 : position.intValue();
-	}
-
-	/**
-	 * Get the IWorkbenchSiteProgressService for the receiver.
-	 * 
-	 * @return IWorkbenchSiteProgressService or <code>null</code>.
-	 */
-	protected IWorkbenchSiteProgressService getProgressService() {
-		IWorkbenchSiteProgressService service = null;
-		Object siteService = getSite().getAdapter(
-				IWorkbenchSiteProgressService.class);
-		if (siteService != null) {
-			service = (IWorkbenchSiteProgressService) siteService;
-		}
-		return service;
-	}
-
-	/**
-	 * Set the filters action.
-	 * 
-	 * @param action
-	 */
-	void setFilterAction(FiltersAction action) {
-		filtersAction = action;
-
-	}
-
-	/**
-	 * Return the filter action for the receiver.
-	 * 
-	 * @return IAction
-	 */
-	IAction getFilterAction() {
-		return filtersAction;
-	}
-
-	/**
-	 * Return the preferences action.
-	 * 
-	 * @return IAction
-	 */
-	IAction getPreferencesAction() {
-		return preferencesAction;
-	}
-
-	/**
-	 * Set the preferences action.
-	 * 
-	 * @param preferencesAction
-	 */
-	void setPreferencesAction(ViewPreferencesAction preferencesAction) {
-		this.preferencesAction = preferencesAction;
-	}
-
-	/**
-	 * Get the content provider
-	 * 
-	 * @return MarkerTreeContentProvider
-	 */
-	MarkerTreeContentProvider getContentProvider() {
-		return contentProvider;
-	}
-
-	/**
-	 * Return the input to the viewer.
-	 * 
-	 * @return Object
-	 */
-	public Object getViewerInput() {
-		return getViewer().getInput();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#setSortIndicators()
-	 */
-	void setSortIndicators() {
-		IField top = getTableSorter().getTopField();
-		TreeColumn[] columns = getViewer().getTree().getColumns();
-		for (int i = 0; i < columns.length; i++) {
-			TreeColumn column = columns[i];
-			if (column.getData().equals(top)) {
-				updateDirectionIndicator(column);
-				return;
-			}
-		}
-	}
-
-	/**
-	 * Update the direction indicator as column is now the primary column.
-	 * 
-	 * @param column
-	 */
-	void updateDirectionIndicator(TreeColumn column) {
-		getViewer().getTree().setSortColumn(column);
-		if (getTableSorter().getTopPriorityDirection() == TableComparator.ASCENDING)
-			getViewer().getTree().setSortDirection(SWT.UP);
-		else
-			getViewer().getTree().setSortDirection(SWT.DOWN);
-	}
-
-	/**
-	 * Set the selection of the receiver.
-	 * 
-	 * @param selection
-	 */
-	protected void setSelection(IStructuredSelection selection) {
-		selectionProvider.setSelection(selection);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableViewLabelProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableViewLabelProvider.java
deleted file mode 100644
index 5a2d07a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TableViewLabelProvider.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.views.markers.internal;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * The TableViewLabelProvider is the content provider for marker views.
- * 
- */
-public class TableViewLabelProvider extends LabelProvider implements
-		ITableLabelProvider, IFontProvider {
-
-	IField[] fields;
-
-	/**
-	 * Create a neew instance of the receiver.
-	 * 
-	 * @param fields
-	 */
-	public TableViewLabelProvider(IField[] fields) {
-		this.fields = fields;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
-	 *      int)
-	 */
-	public Image getColumnImage(Object element, int columnIndex) {
-		if (fields == null || columnIndex < 0 || columnIndex >= fields.length) {
-			return null;
-		}
-		return fields[columnIndex].getImage(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
-	 *      int)
-	 */
-	public String getColumnText(Object element, int columnIndex) {
-		if (fields == null || columnIndex < 0 || columnIndex >= fields.length) {
-			return null;
-		}
-		return fields[columnIndex].getValue(element);
-	}
-
-	public Font getFont(Object element) {
-		MarkerNode node = (MarkerNode) element;
-		if (node.isConcrete()) {
-			return null;
-		}
-		return JFaceResources.getFontRegistry().getBold(
-				JFaceResources.DEFAULT_FONT);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskFilter.java
deleted file mode 100644
index 82f33cc..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskFilter.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.ui.IMemento;
-
-public class TaskFilter extends MarkerFilter {
-
-	private static final String TAG_CONTAINS = "contains"; //$NON-NLS-1$
-
-	private static final String TAG_DESCRIPTION = "description"; //$NON-NLS-1$
-
-	private static final String TAG_DONE = "done"; //$NON-NLS-1$
-
-	private static final String TAG_PRIORITY = "priority"; //$NON-NLS-1$
-
-	private static final String TAG_SELECT_BY_DONE = "selectByDone"; //$NON-NLS-1$
-
-	private static final String TAG_SELECT_BY_PRIORITY = "selectByPriority"; //$NON-NLS-1$
-
-	final static boolean DEFAULT_CONTAINS = true;
-
-	final static String DEFAULT_DESCRIPTION = ""; //$NON-NLS-1$	
-
-	final static boolean DEFAULT_DONE = false;
-
-	final static int DEFAULT_PRIORITY = 0;
-
-	final static boolean DEFAULT_SELECT_BY_DONE = false;
-
-	final static boolean DEFAULT_SELECT_BY_PRIORITY = false;
-
-	final static int PRIORITY_HIGH = 1 << 2;
-
-	final static int PRIORITY_NORMAL = 1 << 1;
-
-	final static int PRIORITY_LOW = 1 << 0;
-
-	private boolean contains;
-
-	private String description;
-
-	private boolean done;
-
-	private int priority;
-
-	private boolean selectByPriority = false; 
-
-	private boolean selectByDone = false;
-
-	/**
-	 * Create a new instance of the receiver with the default name.
-	 * 
-	 */
-	public TaskFilter() {
-		this(MarkerMessages.MarkerFilter_defaultFilterName);
-	}
-
-	/**
-	 * Create a new instance of the receiver with the supplied name.
-	 * 
-	 * @param newName
-	 */
-	public TaskFilter(String newName) {
-		super(newName, new String[] { IMarker.TASK });
-	}
-
-	public boolean selectMarker(ConcreteMarker marker) {
-		if (!(marker instanceof TaskMarker)) {
-			return false;
-		}
-
-		TaskMarker taskMarker = (TaskMarker) marker;
-
-		return !isEnabled()
-				|| (super.selectMarker(taskMarker)
-						&& selectByDescription(taskMarker)
-						&& selectByDone(taskMarker) && selectByPriority(taskMarker));
-	}
-
-	private boolean selectByDescription(ConcreteMarker marker) {
-		if (description == null || description.equals("")) { //$NON-NLS-1$
-			return true;
-		}
-
-		int index = marker.getDescription().indexOf(description);
-		return contains ? (index >= 0) : (index < 0);
-	}
-
-	private boolean selectByDone(TaskMarker item) {
-		if (selectByDone) {
-			return done == (item.getDone() == 1);
-		}
-
-		return true;
-	}
-
-	private boolean selectByPriority(TaskMarker marker) {
-		if (priority != 0 && selectByPriority) {
-			int markerPriority = marker.getPriority();
-
-			if (markerPriority == IMarker.PRIORITY_HIGH) {
-				return (priority & PRIORITY_HIGH) > 0;
-			} else if (markerPriority == IMarker.PRIORITY_NORMAL) {
-				return (priority & PRIORITY_NORMAL) > 0;
-			} else if (markerPriority == IMarker.PRIORITY_LOW) {
-				return (priority & PRIORITY_LOW) > 0;
-			}
-		}
-
-		return true;
-	}
-
-	public boolean getContains() {
-		return contains;
-	}
-
-	public String getDescription() {
-		return description;
-	}
-
-	public boolean getDone() {
-		return done;
-	}
-
-	public int getPriority() {
-		return priority;
-	}
-
-	public boolean getSelectByDone() {
-		return selectByDone;
-	}
-
-	public boolean getSelectByPriority() {
-		return selectByPriority;
-	}
-
-	public void setContains(boolean contains) {
-		this.contains = contains;
-	}
-
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	public void setDone(boolean done) {
-		this.done = done;
-	}
-
-	public void setPriority(int priority) {
-		this.priority = priority;
-	}
-
-	public void setSelectByDone(boolean selectByDone) {
-		this.selectByDone = selectByDone;
-	}
-
-	public void setSelectByPriority(boolean selectByPriority) {
-		this.selectByPriority = selectByPriority;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#resetState()
-	 */
-	public void resetState() {
-		super.resetState();
-		contains = DEFAULT_CONTAINS;
-		description = DEFAULT_DESCRIPTION;
-		done = DEFAULT_DONE;
-		priority = DEFAULT_PRIORITY;
-		selectByDone = DEFAULT_SELECT_BY_DONE;
-		selectByPriority = DEFAULT_SELECT_BY_PRIORITY;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#restoreFilterSettings(org.eclipse.jface.dialogs.IDialogSettings)
-	 */
-	public void restoreFilterSettings(IDialogSettings settings) {
-		super.restoreFilterSettings(settings);
-
-		String setting = settings.get(TAG_CONTAINS);
-
-		if (setting != null) {
-			contains = Boolean.valueOf(setting).booleanValue();
-		}
-
-		setting = settings.get(TAG_DESCRIPTION);
-
-		if (setting != null) {
-			description = new String(setting);
-		}
-
-		setting = settings.get(TAG_DONE);
-
-		if (setting != null) {
-			done = Boolean.valueOf(setting).booleanValue();
-		}
-
-		setting = settings.get(TAG_PRIORITY);
-
-		if (setting != null) {
-			try {
-				priority = Integer.parseInt(setting);
-			} catch (NumberFormatException eNumberFormat) {
-			}
-		}
-
-		setting = settings.get(TAG_SELECT_BY_DONE);
-
-		if (setting != null) {
-			selectByDone = Boolean.valueOf(setting).booleanValue();
-		}
-
-		setting = settings.get(TAG_SELECT_BY_PRIORITY);
-
-		if (setting != null) {
-			selectByPriority = Boolean.valueOf(setting).booleanValue();
-		}
-
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#restoreFilterSettings(org.eclipse.ui.IMemento)
-	 */
-	protected void restoreFilterSettings(IMemento settings) {
-		super.restoreFilterSettings(settings);
-
-		String setting = settings.getString(TAG_CONTAINS);
-
-		if (setting != null) {
-			contains = Boolean.valueOf(setting).booleanValue();
-		}
-
-		setting = settings.getString(TAG_DESCRIPTION);
-
-		if (setting != null) {
-			description = new String(setting);
-		}
-
-		setting = settings.getString(TAG_DONE);
-
-		if (setting != null) {
-			done = Boolean.valueOf(setting).booleanValue();
-		}
-
-		Integer priorityValue = settings.getInteger(TAG_PRIORITY);
-
-		if (setting != null) {
-			priority = priorityValue.intValue();
-		}
-
-		setting = settings.getString(TAG_SELECT_BY_DONE);
-
-		if (setting != null) {
-			selectByDone = Boolean.valueOf(setting).booleanValue();
-		}
-
-		setting = settings.getString(TAG_SELECT_BY_PRIORITY);
-
-		if (setting != null) {
-			selectByPriority = Boolean.valueOf(setting).booleanValue();
-		}
-
-	}
-
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerFilter#saveFilterSettings(org.eclipse.ui.IMemento)
-	 */
-	public void saveFilterSettings(IMemento settings) {
-		super.saveFilterSettings(settings);
-		settings.putString(TAG_CONTAINS, String.valueOf(contains));
-		settings.putString(TAG_DESCRIPTION, description);
-		settings.putString(TAG_DONE, String.valueOf(done));
-		settings.putInteger(TAG_PRIORITY, priority);
-		settings.putString(TAG_SELECT_BY_DONE, String.valueOf(selectByDone));
-		settings.putString(TAG_SELECT_BY_PRIORITY, String.valueOf(selectByPriority));
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskMarker.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskMarker.java
deleted file mode 100644
index 689794a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskMarker.java
+++ /dev/null
@@ -1,55 +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.markers.internal;
-
-import org.eclipse.core.resources.IMarker;
-
-/**
- * Represents a marker visible in the Tasks view. Additional members should be added
- * to this class if new fields are added to the Tasks view. Such members should be
- * initialized in the constructor, and accessed via get methods rather than accessing
- * the IMarker instance directly. This is necessary to support sorting in a reasonable
- * time bound.
- */
-public class TaskMarker extends ConcreteMarker {
-
-    private int priority;
-
-    private int done;
-
-    /**
-     * @param toCopy
-     */
-    public TaskMarker(IMarker toCopy) {
-        super(toCopy);
-    }
-
-    public void refresh() {
-        super.refresh();
-        priority = getMarker().getAttribute(IMarker.PRIORITY,
-                IMarker.PRIORITY_NORMAL);
-        done = -1;
-        if (getMarker().getAttribute(IMarker.USER_EDITABLE, true)) {
-            done = 0;
-            if (getMarker().getAttribute(IMarker.DONE, false)) {
-                done = 1;
-            }
-        }
-    }
-
-    public int getPriority() {
-        return priority;
-    }
-
-    public int getDone() {
-        return done;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskView.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskView.java
deleted file mode 100644
index ef65b7d..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TaskView.java
+++ /dev/null
@@ -1,353 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CheckboxCellEditor;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.UpdateMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-import org.eclipse.ui.internal.ide.IDEInternalPreferences;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.part.CellEditorActionHandler;
-
-/**
- * The TaskView is the view for displaying task markers.
- */
-public class TaskView extends MarkerView {
-
-	private static final String COMPLETION = "completion"; //$NON-NLS-1$
-
-	private final IField[] HIDDEN_FIELDS = { new FieldCreationTime() };
-
-	private final static String[] ROOT_TYPES = { IMarker.TASK };
-
-	private final static String[] TABLE_COLUMN_PROPERTIES = {
-			 COMPLETION, IMarker.PRIORITY, IMarker.MESSAGE,
-			Util.EMPTY_STRING, Util.EMPTY_STRING, Util.EMPTY_STRING };
-
-	private final static String TAG_DIALOG_SECTION = "org.eclipse.ui.views.task"; //$NON-NLS-1$
-
-	private final IField[] VISIBLE_FIELDS = {
-			new FieldDone(), new FieldPriority(), new FieldMessage(),
-			new FieldResource(), new FieldFolder(), new FieldLineNumber() };
-
-	private ICellModifier cellModifier = new ICellModifier() {
-		public Object getValue(Object element, String property) {
-			if (element instanceof ConcreteMarker) {
-				IMarker marker = ((ConcreteMarker) element).getMarker();
-
-				if (COMPLETION.equals(property)) {
-					return marker.getAttribute(IMarker.DONE, false) ? Boolean.TRUE : Boolean.FALSE;
-				}
-
-				if (IMarker.PRIORITY.equals(property)) {
-					return new Integer(IMarker.PRIORITY_HIGH
-							- marker.getAttribute(IMarker.PRIORITY,
-									IMarker.PRIORITY_NORMAL));
-				}
-
-				if (IMarker.MESSAGE.equals(property)) {
-					return marker.getAttribute(IMarker.MESSAGE, ""); //$NON-NLS-1$
-				}
-			}
-
-			return null;
-		}
-
-		public boolean canModify(Object element, String property) {
-			return Util.isEditable(((ConcreteMarker) element).getMarker());
-		}
-
-		public void modify(Object element, String property, Object value) {
-			if (element instanceof Item) {
-				Item item = (Item) element;
-				Object data = item.getData();
-
-				if (data instanceof ConcreteMarker) {
-					ConcreteMarker concreteMarker = (ConcreteMarker) data;
-
-					IMarker marker = concreteMarker.getMarker();
-
-					try {
-						Object oldValue = getValue(data, property);
-						if (oldValue != null && !oldValue.equals(value)) {
-							Map attrs = new HashMap();
-							if (COMPLETION.equals(property))
-								attrs.put(IMarker.DONE, value);
-							else if (IMarker.PRIORITY.equals(property))
-								attrs.put(IMarker.PRIORITY,
-										new Integer(IMarker.PRIORITY_HIGH
-												- ((Integer) value).intValue()));
-							else if (IMarker.MESSAGE.equals(property))
-								attrs.put(IMarker.MESSAGE, value);
-							if (!attrs.isEmpty()) {
-								IUndoableOperation op = new UpdateMarkersOperation(marker, attrs, MarkerMessages.modifyTask_title, true);
-						           PlatformUI.getWorkbench().getOperationSupport().getOperationHistory().execute(
-						        		   op, null, WorkspaceUndoUtil.getUIInfoAdapter(getSite().getShell()));
-							}
-						}
-						concreteMarker.refresh();
-					} catch (ExecutionException e) {
-						IDEWorkbenchPlugin.log(MarkerMessages.errorModifyingTask, e);
-					}				
-				}
-			}
-		}
-	};
-
-	private CellEditorActionHandler cellEditorActionHandler;
-
-	private ActionAddGlobalTask addGlobalTaskAction;
-
-	private ActionDeleteCompleted deleteCompletedAction;
-
-	private ActionMarkCompleted markCompletedAction;
-
-	public void createPartControl(Composite parent) {
-		super.createPartControl(parent);
-
-		TreeViewer treeViewer = getViewer();
-		CellEditor cellEditors[] = new CellEditor[treeViewer.getTree()
-				.getColumnCount()];
-		cellEditors[0] = new CheckboxCellEditor(treeViewer.getTree());
-
-		String[] priorities = new String[] { MarkerMessages.priority_high,
-				MarkerMessages.priority_normal, MarkerMessages.priority_low };
-
-		cellEditors[1] = new ComboBoxCellEditor(treeViewer.getTree(),
-				priorities, SWT.READ_ONLY);
-		CellEditor descriptionCellEditor = new TextCellEditor(treeViewer
-				.getTree());
-		cellEditors[2] = descriptionCellEditor;
-		treeViewer.setCellEditors(cellEditors);
-		treeViewer.setCellModifier(cellModifier);
-		treeViewer.setColumnProperties(TABLE_COLUMN_PROPERTIES);
-
-		cellEditorActionHandler = new CellEditorActionHandler(getViewSite()
-				.getActionBars());
-		cellEditorActionHandler.addCellEditor(descriptionCellEditor);
-		cellEditorActionHandler.setCopyAction(copyAction);
-		cellEditorActionHandler.setPasteAction(pasteAction);
-		cellEditorActionHandler.setDeleteAction(deleteAction);
-		cellEditorActionHandler.setSelectAllAction(selectAllAction);
-		cellEditorActionHandler.setUndoAction(undoAction);
-		cellEditorActionHandler.setRedoAction(redoAction);
-
-	}
-
-	public void dispose() {
-		if (cellEditorActionHandler != null) {
-			cellEditorActionHandler.dispose();
-		}
-
-		if (markCompletedAction != null) {
-			markCompletedAction.dispose();
-		}
-
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#getDialogSettings()
-	 */
-	protected IDialogSettings getDialogSettings() {
-		IDialogSettings workbenchSettings = IDEWorkbenchPlugin.getDefault()
-				.getDialogSettings();
-		IDialogSettings settings = workbenchSettings
-				.getSection(TAG_DIALOG_SECTION);
-
-		if (settings == null) {
-			settings = workbenchSettings.addNewSection(TAG_DIALOG_SECTION);
-		}
-
-		return settings;
-	}
-
-	protected void createActions() {
-		super.createActions();
-
-		addGlobalTaskAction = new ActionAddGlobalTask(this);
-		deleteCompletedAction = new ActionDeleteCompleted(this, getViewer());
-		markCompletedAction = new ActionMarkCompleted(getViewer());
-		propertiesAction = new ActionTaskProperties(this, getViewer());
-	}
-
-	protected void fillContextMenu(IMenuManager manager) {
-		manager.add(addGlobalTaskAction);
-		manager.add(new Separator());
-		super.fillContextMenu(manager);
-	}
-
-	protected void fillContextMenuAdditions(IMenuManager manager) {
-		manager.add(new Separator());
-		manager.add(markCompletedAction);
-		manager.add(deleteCompletedAction);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#getSortingFields()
-	 */
-	protected IField[] getSortingFields() {
-		IField[] all = new IField[VISIBLE_FIELDS.length + HIDDEN_FIELDS.length];
-
-		System.arraycopy(VISIBLE_FIELDS, 0, all, 0, VISIBLE_FIELDS.length);
-		System.arraycopy(HIDDEN_FIELDS, 0, all, VISIBLE_FIELDS.length,
-				HIDDEN_FIELDS.length);
-
-		return all;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.TableView#getAllFields()
-	 */
-	protected IField[] getAllFields() {
-		return getSortingFields();
-	}
-
-	protected String[] getRootTypes() {
-		return ROOT_TYPES;
-	}
-
-	protected void initToolBar(IToolBarManager toolBarManager) {
-		toolBarManager.add(addGlobalTaskAction);
-		super.initToolBar(toolBarManager);
-	}
-
-	public void setSelection(IStructuredSelection structuredSelection,
-			boolean reveal) {
-		// TODO: added because nick doesn't like public API inherited from
-		// internal classes
-		super.setSelection(structuredSelection, reveal);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerTypes()
-	 */
-	protected String[] getMarkerTypes() {
-		return new String[] { IMarker.TASK };
-	}
-
-	protected String getStaticContextId() {
-		return PlatformUI.PLUGIN_ID + ".task_list_view_context"; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#createFiltersDialog()
-	 */
-	protected DialogMarkerFilter createFiltersDialog() {
-
-		MarkerFilter[] filters = getUserFilters();
-		TaskFilter[] taskFilters = new TaskFilter[filters.length];
-		System.arraycopy(filters, 0, taskFilters, 0, filters.length);
-		return new DialogTaskFilter(getSite().getShell(), taskFilters);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#createFilter(java.lang.String)
-	 */
-	protected MarkerFilter createFilter(String name) {
-		return new TaskFilter(name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getSectionTag()
-	 */
-	protected String getSectionTag() {
-		return TAG_DIALOG_SECTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerEnablementPreferenceName()
-	 */
-	String getMarkerEnablementPreferenceName() {
-		return IDEInternalPreferences.LIMIT_TASKS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerLimitPreferenceName()
-	 */
-	String getMarkerLimitPreferenceName() {
-		return IDEInternalPreferences.TASKS_LIMIT;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getFiltersPreferenceName()
-	 */
-	String getFiltersPreferenceName() {
-		return IDEInternalPreferences.TASKS_FILTERS;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.TableView#updateDirectionIndicator(org.eclipse.swt.widgets.TreeColumn)
-	 */
-	void updateDirectionIndicator(TreeColumn column) {
-		// Do nothing due to images being obscured
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getMarkerName()
-	 */
-	protected String getMarkerName() {
-		return MarkerMessages.task_title;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.internal.MarkerView#getUndoContext()
-	 */
-	protected IUndoContext getUndoContext() {
-		return WorkspaceUndoUtil.getTasksUndoContext();
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/Util.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/Util.java
deleted file mode 100644
index eefd076..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/Util.java
+++ /dev/null
@@ -1,342 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.markers.internal;
-
-import com.ibm.icu.text.DateFormat;
-import java.util.Date;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IMarker;
-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.Status;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.views.markers.MarkerViewUtil;
-
-/**
- * The Util class is the class of general utilities used by the marker support.
- * 
- */
-public final class Util {
-
-	static String EMPTY_STRING = "";//$NON-NLS-1$
-
-	static String TWO_LINE_FEED = "\n\n";//$NON-NLS-1$
-
-	static String LINE_FEED_AND_TAB = "\n\t";//$NON-NLS-1$
-
-	private static DateFormat format;
-
-	static final MarkerNode[] EMPTY_MARKER_ARRAY = new MarkerNode[0];
-
-	/**
-	 * Get the propery called property from the marker. If it is not found
-	 * return the empty string.
-	 * 
-	 * @param property
-	 * @param marker
-	 * @return String
-	 */
-	public static String getProperty(String property, IMarker marker) {
-		if (marker == null || !marker.exists()) {
-			return EMPTY_STRING;
-		}
-		try {
-			Object obj = marker.getAttribute(property);
-			if (obj != null) {
-				return obj.toString();
-			}
-			return EMPTY_STRING;
-		} catch (CoreException e) {
-			log(e);
-			return EMPTY_STRING;
-		}
-	}
-
-	/**
-	 * Get the human readable creation time from the timestamp
-	 * 
-	 * @param timestamp
-	 * @return String
-	 */
-	public static String getCreationTime(long timestamp) {
-		if (format == null) {
-			format = DateFormat.getDateTimeInstance(DateFormat.LONG,
-					DateFormat.MEDIUM);
-		}
-		return format.format(new Date(timestamp));
-	}
-
-	/**
-	 * Get the human readable creation time from the marker.
-	 * 
-	 * @param marker
-	 * @return String
-	 */
-	public static String getCreationTime(IMarker marker) {
-		try {
-			return getCreationTime(marker.getCreationTime());
-		} catch (CoreException e) {
-			log(e);
-			return EMPTY_STRING;
-		}
-	}
-
-	/**
-	 * Get the name of the container. If the marker has the
-	 * MarkerViewUtil#PATH_ATTRIBUTE set use that. Otherwise use the path of the
-	 * parent resource.
-	 * 
-	 * @param marker
-	 * @return String
-	 */
-	public static String getContainerName(IMarker marker) {
-
-		if (!marker.exists())
-			return Util.EMPTY_STRING;
-
-		try {
-			Object pathAttribute = marker
-					.getAttribute(MarkerViewUtil.PATH_ATTRIBUTE);
-
-			if (pathAttribute != null) {
-				return pathAttribute.toString();
-			}
-		} catch (CoreException exception) {
-			// Log the exception and fall back.
-			log(exception);
-		}
-
-		IPath path = marker.getResource().getFullPath();
-		int n = path.segmentCount() - 1; // n is the number of segments in
-		// container, not path
-		if (n <= 0) {
-			return Util.EMPTY_STRING;
-		}
-		int len = 0;
-		for (int i = 0; i < n; ++i) {
-			len += path.segment(i).length();
-		}
-		// account for /'s
-		if (n > 1) {
-			len += n - 1;
-		}
-		StringBuffer sb = new StringBuffer(len);
-		for (int i = 0; i < n; ++i) {
-			if (i != 0) {
-				sb.append('/');
-			}
-			sb.append(path.segment(i));
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Log the exception.
-	 * 
-	 * @param exception
-	 */
-	public static void log(CoreException exception) {
-		IDEWorkbenchPlugin.log(exception.getLocalizedMessage(), exception);
-	}
-
-	/**
-	 * Get the name of the element. If the marker has the
-	 * MarkerViewUtil#NAME_ATTRIBUTE set use that. Otherwise use the name of the
-	 * resource.
-	 * 
-	 * @param marker
-	 * @return String
-	 */
-	public static String getResourceName(IMarker marker) {
-
-		if (!marker.exists())
-			return Util.EMPTY_STRING;
-
-		try {
-			Object nameAttribute = marker
-					.getAttribute(MarkerViewUtil.NAME_ATTRIBUTE);
-
-			if (nameAttribute != null) {
-				return nameAttribute.toString();
-			}
-		} catch (CoreException exception) {
-			log(exception);
-		}
-
-		return marker.getResource().getName();
-	}
-
-	/**
-	 * Return whether or not the marker is editable.
-	 * 
-	 * @param marker
-	 * @return boolean <code>true</code> if it is editable
-	 */
-	public static boolean isEditable(IMarker marker) {
-		if (marker == null) {
-			return false;
-		}
-		try {
-			return marker.isSubtypeOf(IMarker.BOOKMARK)
-					|| (marker.isSubtypeOf(IMarker.TASK) && marker
-							.getAttribute(IMarker.USER_EDITABLE, true));
-		} catch (CoreException e) {
-			return false;
-		}
-	}
-
-	/**
-	 * Return an error status for the given exception.
-	 * 
-	 * @param exception
-	 * @return IStatus
-	 */
-	public static IStatus errorStatus(Throwable exception) {
-		String message = exception.getLocalizedMessage();
-		if (message == null) {
-			message = EMPTY_STRING;
-		}
-		return new Status(IStatus.ERROR, IDEWorkbenchPlugin.IDE_WORKBENCH,
-				IStatus.ERROR, message, exception);
-	}
-
-	static final int SHORT_DELAY = 100;// The 100 ms short delay for scheduling
-
-	static final int LONG_DELAY = 30000;// The 30s long delay to run without a
-
-	// builder update
-
-	private Util() {
-		super();
-	}
-
-	/**
-	 * Get the image for the severity if it can be identified.
-	 * 
-	 * @param severity
-	 * @return Image or <code>null</code>
-	 */
-	public static Image getImage(int severity) {
-
-		if (severity == IMarker.SEVERITY_ERROR) {
-			return getIDEImage(IDEInternalWorkbenchImages.IMG_OBJS_ERROR_PATH);
-		}
-		if (severity == IMarker.SEVERITY_WARNING) {
-			return getIDEImage(IDEInternalWorkbenchImages.IMG_OBJS_WARNING_PATH);
-		}
-		if (severity == IMarker.SEVERITY_INFO) {
-			return getIDEImage(IDEInternalWorkbenchImages.IMG_OBJS_INFO_PATH);
-		}
-
-		return null;
-	}
-
-	/**
-	 * Get the IDE image at path.
-	 * 
-	 * @param path
-	 * @return Image
-	 */
-	private static Image getIDEImage(String constantName) {
-
-		return JFaceResources.getResources().createImageWithDefault(
-				IDEInternalWorkbenchImages.getImageDescriptor(constantName));
-
-	}
-
-	/**
-	 * Get the short name for the container
-	 * 
-	 * @param marker
-	 * @return String
-	 */
-	public static String getShortContainerName(IMarker marker) {
-
-		if (!marker.exists())
-			return Util.EMPTY_STRING;
-
-		try {
-			Object pathAttribute = marker
-					.getAttribute(MarkerViewUtil.PATH_ATTRIBUTE);
-
-			if (pathAttribute != null) {
-				return pathAttribute.toString();
-			}
-		} catch (CoreException exception) {
-			// Log the exception and fall back.
-			log(exception);
-		}
-
-		IResource resource = marker.getResource();
-		int type = resource.getType();
-
-		// Cannot be project relative if it is the root or a project
-		if (type == IResource.PROJECT) {
-			return resource.getName();
-		}
-
-		if (type == IResource.ROOT) {
-			return MarkerMessages.Util_WorkspaceRoot;
-		}
-
-		String result = marker.getResource().getProjectRelativePath()
-				.removeLastSegments(1).toOSString();
-		if (result.trim().length() == 0) {
-			return MarkerMessages.Util_ProjectRoot;
-		}
-		return result;
-	}
-
-	/**
-	 * Return whether or not the selection has one element that is concrete.
-	 * 
-	 * @param selection
-	 * @return <true>code</true> if the selection has one element that is
-	 *         concrete.
-	 */
-	static boolean isSingleConcreteSelection(IStructuredSelection selection) {
-		if (selection != null && selection.size() == 1) {
-			Object first = selection.getFirstElement();
-			if (first instanceof MarkerNode) {
-				return ((MarkerNode) first).isConcrete();
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether or not all of the elements in the selection are concrete.
-	 * 
-	 * @param selection
-	 * @return <true>code</true> if all of the elements are concrete.
-	 */
-	public static boolean allConcreteSelection(IStructuredSelection selection) {
-		if (selection != null && selection.size() > 0) {
-			Iterator nodes = selection.iterator();
-			while (nodes.hasNext()) {
-				if (((MarkerNode) nodes.next()).isConcrete()) {
-					continue;
-				}
-				return false;
-			}
-			return true;
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/messages.properties
deleted file mode 100644
index bc6674f..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/messages.properties
+++ /dev/null
@@ -1,239 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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 132145 [Markers] Filter dialog problems
-#		- Fix for Bug 132148 [Markers] [Dialogs] Set Limits dialog problems
-#		- Fix for Bug 109361 [Markers] Multiselection in problems view yields invalid status message
-###############################################################################
-
-sortAction_title = &Sorting...
-filtersSubMenu_title = &Filters
-filtersAction_title = &Configure Filters...
-filtersAction_tooltip = Configure the filters to be applied to this view
-
-sortDialog_title = Sorting
-sortDialog_label = Sort by:
-sortDialog_columnLabel = &{0}. 
-
-sortDirectionAscending_text = &Ascending
-sortDirectionAscending_text2 = A&scending
-sortDirectionAscending_text3 = As&cending
-sortDirectionAscending_text4 = Asce&nding
-
-sortDirectionDescending_text = &Descending
-sortDirectionDescending_text2 = D&escending
-sortDirectionDescending_text3 = Descend&ing
-sortDirectionDescending_text4 = Descendin&g
-
-restoreDefaults_text = Restore De&faults
-
-Error = Error: 
-Unknown = Unknown
-
-description_message = Description
-description_resource = Resource
-description_folder = Path
-description_lineNumber = Location
-description_creationTime = Creation Time
-description_markerId = Id
-description_type = Type
-
-label_lineNumber = line {0}
-
-openAction_title = &Go To
-copyAction_title = &Copy
-pasteAction_title = &Paste
-deleteAction_title = &Delete
-deleteAction_tooltip = Delete
-selectAllAction_title = Select &All
-propertiesAction_title = P&roperties
-
-filtersDialog_title = Filters
-filtersDialog_showItemsOfType = Show items of &type:
-filtersDialog_anyResource = On any &element
-filtersDialog_anyResourceInSameProject = On any element in same pro&ject
-filtersDialog_selectedResource = On selected ele&ment only
-filtersDialog_selectedAndChildren = On selected element and its c&hildren
-filtersDialog_workingSet = On wor&king set:  {0}
-filtersDialog_workingSetSelect = &Select...
-filtersDialog_noWorkingSet = On wor&king set:  <no working set selected>
-filtersDialog_selectAll = Select &All
-filtersDialog_deselectAll = &Deselect All
-filtersDialog_selectAllTypes = Sele&ct All
-filtersDialog_deselectAllTypes = Dese&lect All
-
-filtersDialog_descriptionLabel = Descri&ption 
-filtersDialog_contains = contains
-filtersDialog_doesNotContain = doesn't contain
-filtersDialog_severityLabel = Where severit&y is:
-filtersDialog_severityError = E&rror
-filtersDialog_severityWarning = Warnin&g
-filtersDialog_severityInfo = Inf&o
-filtersDialog_priorityLabel = Where priorit&y is: 
-filtersDialog_priorityHigh = Hi&gh
-filtersDialog_priorityNormal = No&rmal
-filtersDialog_priorityLow = Lo&w
-filtersDialog_statusLabel = Where stat&us is: 
-filtersDialog_statusComplete = C&ompleted
-filtersDialog_statusIncomplete = Not Completed
-
-propertiesDialog_creationTime_text = Creation &Time: 
-propertiesDialog_description_text = &Description: 
-propertiesDialog_folder_text = In &Folder: 
-propertiesDialog_location_text = &Location: 
-propertiesDialog_resource_text = On &Element: 
-propertiesDialog_title = Properties
-propertiesDialog_severityLabel = &Severity:
-propertiesDialog_errorLabel = Error
-propertiesDialog_warningLabel = Warning
-propertiesDialog_infoLabel = Info
-propertiesDialog_noseverityLabel = Not defined
-propertiesDialog_priority = &Priority:
-propertiesDialog_priorityHigh = High
-propertiesDialog_priorityNormal = Normal
-propertiesDialog_priorityLow = Low
-propertiesDialog_completed = &Completed
-
-filter_matchedMessage = Filter matched {0} of {1} items
-filter_itemsMessage = {0} items
-problem_filter_matchedMessage = {0} (Filter matched {1} of {2} items)
-
-errorModifyingBookmark = Error Modifying Bookmark
-errorModifyingTask = Error Modifying Task
-
-problemSeverity_description = Severity and Description
-problem_statusSummaryBreakdown = {0,choice,0#0 errors|1#{0,number,integer} error|1<{0,number,integer} errors}, {1,choice,0#0 warnings|1#{1,number,integer} warning|1<{1,number,integer} warnings}, {2,choice,0#0 infos|1#{2,number,integer} info|1<{2,number,integer} infos}
-marker_statusSummarySelected =   {0,choice,0#0 items |1#{0,number,integer} item |1<{0,number,integer} items} selected: {1}
-
-deleteCompletedAction_title = Delete Completed &Tasks
-markCompletedAction_title = &Mark Completed
-
-resolveMarkerAction_title = &Quick Fix
-resolveMarkerAction_dialogTitle = Quick Fix
-resolveMarkerAction_computationAction = Finding fixes for {0}
-
-deleteCompletedTasks_dialogTitle = Delete Completed Tasks
-deleteCompletedTasks_noneCompleted = No user-editable completed tasks to delete.
-deleteCompletedTasks_permanentPlural = Do you want to permanently delete the {0} completed tasks?
-deleteCompletedTasks_permanentSingular = Do you want to permanently delete the completed task?
-deleteCompletedTasks_errorMessage = Error deleting completed tasks
-
-addGlobalTaskAction_title = &Add Task...
-addGlobalTaskAction_tooltip = Add Task
-
-addGlobalTaskDialog_title = Add Task
-
-completion_description = Completed
-priority_description = Priority
-
-priority_high = High
-priority_normal = Normal
-priority_low = Low
-
-CopyToClipboardProblemDialog_title=Problem Copying to Clipboard
-CopyToClipboardProblemDialog_message=There was a problem when accessing the system clipboard. Retry?
-
-MarkerFilter_searching=Searching for markers
-MarkerView_processUpdates=Process resource updates
-MarkerView_waiting_on_changes=Waiting for workspace changes to finish
-MarkerView_searching_for_markers=Searching for markers
-MarkerView_refreshing_counts=Refreshing marker counts
-MarkerView_queueing_updates=Queueing viewer updates
-
-MarkerView_18=Filtering on marker limit
-MarkerView_19=Refreshing view
-SortUtil_finding_first=Finding first items
-SortUtil_partitioning=Partitioning items
-OpenMarker_errorTitle=Error
-PasteMarker_errorTitle=Error
-RemoveMarker_errorTitle=Error
-
-MarkerFilter_defaultFilterName=Default
-MarkerFilter_newFilterName=New Filter
-MarkerFilter_filtersTitle=User f&ilters:
-MarkerFilter_addFilterName=&New
-MarkerFilter_deleteSelectedName = Remo&ve
-
-MarkerFilterDialog_title=Add New Filter
-MarkerFilterDialog_message=Select Filter Name
-MarkerFilterDialog_emptyMessage=Name must not be empty
-
-MarkerFilterDialog_errorTitle = An error has occurred
-MarkerFilterDialog_failedFilterMessage = Could not create filter {0}. 
-
-MarkerPreferences_DialogTitle = Set Limits
-MarkerPreferences_MarkerLimits = Use marker &limits
-MarkerPreferences_VisibleItems = Limit visible &items per group to:
-
-ProblemFilterDialog_System_Filters_Title = System filte&rs:
-ProblemFilterDialog_All_Problems = Enabled for all problems
-ProblemFilterDialog_Selected_Types = Selected Types: 
-ProblemFilterDialog_Info_Severity = Where severity is info
-ProblemFilterDialog_Warning_Severity = Where severity is warning
-ProblemFilterDialog_Error_Severity = Where severity is error
-ProblemFilterDialog_Contains_Description = On any description containing {0}
-ProblemFilterDialog_Does_Not_Contain_Description = On any description not containing {0}
-ProblemFilterDialog_any = Filter on any element
-ProblemFilterDialog_sameContainer = Filter on any in the same container
-ProblemFilterDialog_selectedAndChildren = Filter on selected element and it's children
-ProblemFilterDialog_selected = Filter on selected element only
-ProblemFilterDialog_workingSet = Filter on working set {0}  
-
-ProblemFilterRegistry_nullType = Marker type {0} does not exist.
-
-FieldMessage_NullMessage = Marker is null
-FieldMessage_WrongType = {0} is not of a displayable type
-
-FieldCategory_Uncategorized = Other Problems
-Category_Label = {0} ({1} items)
-Category_One_Item_Label = {0} (1 item)
-Category_Limit_Label = {0} ({1} of {2} items)
-
-MarkerResolutionDialog_Fixing = Fixing
-MarkerResolutionDialog_Description = Select the fix for "{0}".
-MarkerResolutionDialog_Problems_List_Title = &Problems:
-MarkerResolutionDialog_Resolutions_List_Title = &Select a fix:
-MarkerResolutionDialog_CannotFixTitle = Error fixing problem
-MarkerResolutionDialog_CannotFixMessage = Could not fix {0}
-
-MarkerResolutionDialog_AddOthers = Find Si&milar Problems
-
-MarkerResolutionDialog_Title = Quick Fix
-MarkerResolutionDialog_CalculatingTask = Calculating Possible Resolutions
-MarkerResolutionDialog_WorkingSubTask = Working on: {0}
-
-Util_ProjectRoot = project root
-Util_WorkspaceRoot = workspace root
-
-ProblemView_GroupByMenu=&Group By
-ProblemView_Type=&Type
-ProblemView_None=&None
-ProblemView_UpdateCategoryJob=Update Categories
-
-DialogMarkerProperties_CreateMarker=Add Marker
-DialogMarkerProperties_ModifyMarker=Modify Marker
-DialogMarkerProperties_Modify=Modify
-DialogMarkerProperties_Create=Add
-
-DialogTaskProperties_CreateTask=Add Task
-
-modifyBookmark_title=Modify Bookmark
-modifyTask_title=Modify Task
-
-################################################################################
-#qualifiedMarkerCommand_title is used to concatenate a command 
-#such as Delete with a specific marker type such as Task, Bookmark, or Problem.
-#
-#{0} represents the command and {1} represents the marker type.
-################################################################################
-qualifiedMarkerCommand_title = {0} {1}
-task_title = Task
-bookmark_title = Bookmark
-problem_title = Problem
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/package.html
deleted file mode 100644
index dc9191d..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/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>
-Utility classes for working with markers in views
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/CollapseAllAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/CollapseAllAction.java
deleted file mode 100644
index 4890302..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/CollapseAllAction.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   IBM Corporation - initial API and implementation 
- *   Sebastian Davids <sdavids@gmx.de> - Collapse all action (25826)
- *******************************************************************************/
-package org.eclipse.ui.views.navigator;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Collapse all project nodes.
- */
-public class CollapseAllAction extends ResourceNavigatorAction {
-
-    /**
-     * Creates the action.
-     * 
-     * @param navigator the resource navigator
-     * @param label the label for the action
-     */
-    public CollapseAllAction(IResourceNavigator navigator, String label) {
-        super(navigator, label);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                INavigatorHelpContextIds.COLLAPSE_ALL_ACTION);
-        setEnabled(true);
-    }
-
-    /*
-     * Implementation of method defined on <code>IAction</code>.
-     */
-    public void run() {
-        getNavigator().getViewer().collapseAll();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/CopyAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/CopyAction.java
deleted file mode 100644
index e330d6f..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/CopyAction.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.navigator;
-
-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.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.part.ResourceTransfer;
-
-/**
- * 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(ResourceNavigatorMessages.CopyAction_title);
-        Assert.isNotNull(shell);
-        Assert.isNotNull(clipboard);
-        this.shell = shell;
-        this.clipboard = clipboard;
-        setToolTipText(ResourceNavigatorMessages.CopyAction_toolTip);
-        setId(CopyAction.ID);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				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;
-    }
-
-   
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.Action#run()
-     */
-    public void run() {
-    	 /**
-         * The <code>CopyAction</code> implementation of this method defined 
-         * on <code>IAction</code> copies the selected resources to the 
-         * clipboard.
-         */
-        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,
-                            ResourceNavigatorMessages.CopyToClipboardProblemDialog_title, ResourceNavigatorMessages.CopyToClipboardProblemDialog_message)) {
-				setClipboard(resources, fileNames, names);
-			}
-        }
-    }
-
-   
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.actions.BaseSelectionListenerAction#updateSelection(org.eclipse.jface.viewers.IStructuredSelection)
-     */
-    protected boolean updateSelection(IStructuredSelection selection) {
-    	
-    	 /**
-         * The <code>CopyAction</code> implementation of this
-         * <code>SelectionListenerAction</code> method enables this action if 
-         * one or more resources of compatible types are selected.
-         */
-    	
-        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;
-			}
-        }
-
-        return true;
-    }
-
-}
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/FilterSelectionAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/FilterSelectionAction.java
deleted file mode 100644
index 77a34a8..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/FilterSelectionAction.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.views.navigator;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ListSelectionDialog;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-
-/**
- * The FilterSelectionAction opens the filters dialog.
- */
-public class FilterSelectionAction extends ResourceNavigatorAction {
-    private static final String FILTER_TOOL_TIP = ResourceNavigatorMessages.FilterSelection_toolTip;
-
-    private static final String FILTER_SELECTION_MESSAGE = ResourceNavigatorMessages.FilterSelection_message;
-
-    private static final String FILTER_TITLE_MESSAGE = ResourceNavigatorMessages.FilterSelection_title;
-
-    /**
-     * Creates the action.
-     * 
-     * @param navigator the resource navigator
-     * @param label the label for the action
-     */
-    public FilterSelectionAction(IResourceNavigator navigator, String label) {
-        super(navigator, label);
-        setToolTipText(FILTER_TOOL_TIP);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                INavigatorHelpContextIds.FILTER_SELECTION_ACTION);
-        setEnabled(true);
-    }
-
-    /*
-     * Implementation of method defined on <code>IAction</code>.
-     */
-    public void run() {
-        IResourceNavigator navigator = getNavigator();
-        ResourcePatternFilter filter = navigator.getPatternFilter();
-        FiltersContentProvider contentProvider = new FiltersContentProvider(
-                filter);
-
-        ListSelectionDialog dialog = new ListSelectionDialog(getShell(),
-                getViewer(), contentProvider, new LabelProvider(),
-                FILTER_SELECTION_MESSAGE);
-
-        dialog.setTitle(FILTER_TITLE_MESSAGE);
-        dialog.setInitialSelections(contentProvider.getInitialSelections());
-        dialog.open();
-        if (dialog.getReturnCode() == Window.OK) {
-            Object[] results = dialog.getResult();
-            String[] selectedPatterns = new String[results.length];
-            System.arraycopy(results, 0, selectedPatterns, 0, results.length);
-            filter.setPatterns(selectedPatterns);
-            navigator.setFiltersPreference(selectedPatterns);
-            Viewer viewer = getViewer();
-            viewer.getControl().setRedraw(false);
-            viewer.refresh();
-            viewer.getControl().setRedraw(true);
-        }
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/FiltersContentProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/FiltersContentProvider.java
deleted file mode 100644
index eba01f9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/FiltersContentProvider.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.navigator;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * The FiltersContentProvider provides the elements for use by the list dialog
- * for selecting the patterns to apply.
- */
-/* package */class FiltersContentProvider implements
-        IStructuredContentProvider {
-
-    private static List definedFilters;
-
-    private static List defaultFilters;
-
-    private ResourcePatternFilter resourceFilter;
-
-    /**
-     * Create a FiltersContentProvider using the selections from the suppliec
-     * resource filter.
-     */
-    public FiltersContentProvider(ResourcePatternFilter filter) {
-        this.resourceFilter = filter;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContentProvider.
-     */
-    public void dispose() {
-    }
-
-    /**
-     * Returns the filters which are enabled by default.
-     *
-     * @return a list of strings
-     */
-    public static List getDefaultFilters() {
-        if (defaultFilters == null) {
-            readFilters();
-        }
-        return defaultFilters;
-    }
-
-    /**
-     * Returns the filters currently defined for the navigator.
-     *
-     * @return a list of strings
-     */
-    public static List getDefinedFilters() {
-        if (definedFilters == null) {
-            readFilters();
-        }
-        return definedFilters;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStructuredContentProvider.
-     */
-    public Object[] getElements(Object inputElement) {
-        return getDefinedFilters().toArray();
-    }
-
-    /**
-     * Return the initially selected elements.
-     */
-    public String[] getInitialSelections() {
-        return this.resourceFilter.getPatterns();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContentProvider.
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-    }
-
-    /**
-     * Reads the filters currently defined for the workbench. 
-     */
-    private static void readFilters() {
-        definedFilters = new ArrayList();
-        defaultFilters = new ArrayList();
-        AbstractUIPlugin plugin =  IDEWorkbenchPlugin.getDefault();
-        if (plugin != null) {
-            IExtensionPoint extension = plugin.getDescriptor()
-                    .getExtensionPoint(ResourcePatternFilter.FILTERS_TAG);
-            if (extension != null) {
-                IExtension[] extensions = extension.getExtensions();
-                for (int i = 0; i < extensions.length; i++) {
-                    IConfigurationElement[] configElements = extensions[i]
-                            .getConfigurationElements();
-                    for (int j = 0; j < configElements.length; j++) {
-                        String pattern = configElements[j]
-                                .getAttribute("pattern");//$NON-NLS-1$
-                        if (pattern != null) {
-							definedFilters.add(pattern);
-						}
-                        String selected = configElements[j]
-                                .getAttribute("selected");//$NON-NLS-1$
-                        if (selected != null
-                                && selected.equalsIgnoreCase("true")) { //$NON-NLS-1$
-							defaultFilters.add(pattern);
-						}
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoActionGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoActionGroup.java
deleted file mode 100644
index ed8f9dd..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoActionGroup.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.navigator;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.views.framelist.BackAction;
-import org.eclipse.ui.views.framelist.ForwardAction;
-import org.eclipse.ui.views.framelist.FrameList;
-import org.eclipse.ui.views.framelist.GoIntoAction;
-import org.eclipse.ui.views.framelist.UpAction;
-
-/**
- * This is the action group for the goto actions.
- */
-public class GotoActionGroup extends ResourceNavigatorActionGroup {
-
-    private BackAction backAction;
-
-    private ForwardAction forwardAction;
-
-    private GoIntoAction goIntoAction;
-
-    private UpAction upAction;
-
-    private GotoResourceAction goToResourceAction;
-
-    public GotoActionGroup(IResourceNavigator navigator) {
-        super(navigator);
-    }
-
-    public void fillContextMenu(IMenuManager menu) {
-        IStructuredSelection selection = (IStructuredSelection) getContext()
-                .getSelection();
-        if (selection.size() == 1) {
-            if (ResourceSelectionUtil.allResourcesAreOfType(selection,
-                    IResource.FOLDER)) {
-                menu.add(goIntoAction);
-            } else {
-                IStructuredSelection resourceSelection = ResourceSelectionUtil
-                        .allResources(selection, IResource.PROJECT);
-                if (resourceSelection != null && !resourceSelection.isEmpty()) {
-                    IProject project = (IProject) resourceSelection
-                            .getFirstElement();
-                    if (project.isOpen()) {
-						menu.add(goIntoAction);
-					}
-                }
-            }
-        }
-    }
-
-    public void fillActionBars(IActionBars actionBars) {
-        actionBars.setGlobalActionHandler(IWorkbenchActionConstants.GO_INTO,
-                goIntoAction);
-        actionBars.setGlobalActionHandler(ActionFactory.BACK.getId(),
-                backAction);
-        actionBars.setGlobalActionHandler(ActionFactory.FORWARD.getId(),
-                forwardAction);
-        actionBars.setGlobalActionHandler(IWorkbenchActionConstants.UP,
-                upAction);
-        actionBars.setGlobalActionHandler(
-                IWorkbenchActionConstants.GO_TO_RESOURCE, goToResourceAction);
-
-        IToolBarManager toolBar = actionBars.getToolBarManager();
-        toolBar.add(backAction);
-        toolBar.add(forwardAction);
-        toolBar.add(upAction);
-    }
-
-    protected void makeActions() {
-        FrameList frameList = navigator.getFrameList();
-        goIntoAction = new GoIntoAction(frameList);
-        backAction = new BackAction(frameList);
-        forwardAction = new ForwardAction(frameList);
-        upAction = new UpAction(frameList);
-        goToResourceAction = new GotoResourceAction(navigator,
-                ResourceNavigatorMessages.GoToResource_label);
-    }
-
-    public void updateActionBars() {
-        ActionContext context = getContext();
-        boolean enable = false;
-
-        // Fix for bug 26126. Resource change listener could call
-        // updateActionBars without a context being set.
-        // This should never happen because resource navigator sets
-        // context immediately after this group is created.
-        if (context != null) {
-            IStructuredSelection selection = (IStructuredSelection) context
-                    .getSelection();
-
-            if (selection.size() == 1) {
-                Object object = selection.getFirstElement();
-                if (object instanceof IProject) {
-                    enable = ((IProject) object).isOpen();
-                } else if (object instanceof IFolder) {
-                    enable = true;
-                }
-            }
-        }
-        goIntoAction.setEnabled(enable);
-        // the rest of the actions update by listening to frame list changes
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoResourceAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoResourceAction.java
deleted file mode 100644
index a5221a3..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoResourceAction.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.views.navigator;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * 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 ResourceNavigatorAction {
-    /**
-     * Creates a new instance of the class.
-     * 
-     * @param navigator the navigator
-     * @param label the label
-     * @since 2.0
-     */
-    public GotoResourceAction(IResourceNavigator navigator, String label) {
-        super(navigator, label);
-        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() {
-        IContainer container = (IContainer) getViewer().getInput();
-        GotoResourceDialog dialog = new GotoResourceDialog(getShell(),
-                container, 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];
-        getViewer().setSelection(new StructuredSelection(selection), true);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoResourceDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoResourceDialog.java
deleted file mode 100644
index a5abc31..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/GotoResourceDialog.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.ui.views.navigator;
-
-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.views.navigator.ResourceNavigatorMessages;
-
-/**
- * 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(ResourceNavigatorMessages.Goto_title);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parentShell,
-				INavigatorHelpContextIds.GOTO_RESOURCE_DIALOG);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/INavigatorHelpContextIds.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/INavigatorHelpContextIds.java
deleted file mode 100644
index 20e5c4b..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/INavigatorHelpContextIds.java
+++ /dev/null
@@ -1,61 +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 
- *   Sebastian Davids <sdavids@gmx.de> - Collapse all action (25826)
- *******************************************************************************/
-package org.eclipse.ui.views.navigator;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Help context ids for the resource navigator view.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * 
- */
-/*package*/interface INavigatorHelpContextIds {
-    public static final String PREFIX = PlatformUI.PLUGIN_ID + "."; //$NON-NLS-1$
-
-    // Actions
-    public static final String FILTER_SELECTION_ACTION = PREFIX
-            + "filter_selection_action_context"; //$NON-NLS-1$
-
-    public static final String GOTO_RESOURCE_ACTION = PREFIX
-            + "goto_resource_action_context"; //$NON-NLS-1$
-
-    public static final String RESOURCE_NAVIGATOR_MOVE_ACTION = PREFIX
-            + "resource_navigator_move_action_context"; //$NON-NLS-1$
-
-    public static final String RESOURCE_NAVIGATOR_RENAME_ACTION = PREFIX
-            + "resource_navigator_rename_action_context"; //$NON-NLS-1$
-
-    public static final String SHOW_IN_NAVIGATOR_ACTION = PREFIX
-            + "show_in_navigator_action_context"; //$NON-NLS-1$
-
-    public static final String SORT_VIEW_ACTION = PREFIX
-            + "sort_view_action_context"; //$NON-NLS-1$
-
-    public static final String COPY_ACTION = PREFIX
-            + "resource_navigator_copy_action_context"; //$NON-NLS-1$
-
-    public static final String PASTE_ACTION = PREFIX
-            + "resource_navigator_paste_action_context"; //$NON-NLS-1$
-
-    public static final String COLLAPSE_ALL_ACTION = PREFIX
-            + "collapse_all_action_context"; //$NON-NLS-1$
-
-    // Dialogs
-    public static final String GOTO_RESOURCE_DIALOG = PREFIX
-            + "goto_resource_dialog_context"; //$NON-NLS-1$
-
-    // Views
-    public static final String RESOURCE_VIEW = PREFIX + "resource_view_context"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/IResourceNavigator.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/IResourceNavigator.java
deleted file mode 100644
index c2bbb94..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/IResourceNavigator.java
+++ /dev/null
@@ -1,120 +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.navigator;
-
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.views.framelist.FrameList;
-
-/**
- * This interface defines the API for the resource navigator.
- * The action groups should restrict themselves to using this API.
- * <p>
- * This interface is not intended to be implemented by clients.
- * Subclass <code>org.eclipse.ui.views.ResourceNavigator</code> 
- * instead.   
- * </p>
- * 
- * @since 2.0
- */
-public interface IResourceNavigator extends IViewPart {
-
-    /**
-     * Returns the pattern filter.
-     *
-     * @return the pattern filter
-     */
-    ResourcePatternFilter getPatternFilter();
-
-    /**
-     * Returns the active working set, or <code>null<code> if none.
-     *
-     * @return the active working set, or <code>null<code> if none
-     * @since 2.0
-     */
-    IWorkingSet getWorkingSet();
-
-    /**
-     * Returns the current sorter.
-     * @return the resource navigator's sorter
-     * 
-     * @deprecated as of 3.3, use {@link IResourceNavigator#getComparator()} instead
-     */
-    ResourceSorter getSorter();
-
-    /**
-     * Sets the current sorter.
-     * @param sorter the sorter to use
-     * 
-     * @deprecated as of 3.3, use {@link IResourceNavigator#setComparator(ResourceComparator)} instead
-     */
-    void setSorter(ResourceSorter sorter);
-
-    /**
-     * Returns the current comparator.
-     * 
-     * @return the resource navigator's comparator
-     * @since 3.3
-     */
-    ResourceComparator getComparator();
-
-    /**
-     * Sets the current comparator.
-     * 
-     * @param comparator the comparator to use
-     * @since 3.3
-     */
-    void setComparator(ResourceComparator comparator);
-    
-    /**
-     * Sets the values of the filter preference to be the 
-     * strings in preference values.
-     * @param patterns filter patterns to use on contents of the resource navigator
-     */
-    void setFiltersPreference(String[] patterns);
-
-    /**
-     * Returns the viewer which shows the resource tree.
-     * @return the resource navigator's tree viewer
-     */
-    TreeViewer getViewer();
-
-    /**
-     * Returns the frame list for this navigator.
-     * @return the list of frames maintained by the resource navigator 
-     */
-    FrameList getFrameList();
-
-    /**
-     * Returns whether this navigator's selection automatically tracks the active editor.
-     * 
-     * @return <code>true</code> if linking is enabled, <code>false</code> if not
-     * @since 2.1
-     */
-    boolean isLinkingEnabled();
-
-    /**
-     * Sets the working set for this view, or <code>null</code> to clear it.
-     * 
-     * @param workingSet the working set, or <code>null</code> to clear it
-     * @since 2.0
-     */
-    void setWorkingSet(IWorkingSet workingSet);
-
-    /**
-     * Sets whether this navigator's selection automatically tracks the active editor.
-     * 
-     * @param enabled <code>true</code> to enable, <code>false</code> to disable
-     * @since 2.1
-     */
-    void setLinkingEnabled(boolean enabled);
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/LocalSelectionTransfer.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/LocalSelectionTransfer.java
deleted file mode 100644
index d0ab773..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/LocalSelectionTransfer.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.views.navigator;
-
-import org.eclipse.jface.viewers.ISelection;
-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 2.1
- */
-public class LocalSelectionTransfer extends
-		org.eclipse.jface.util.LocalSelectionTransfer {
-
-	private static final LocalSelectionTransfer INSTANCE = new LocalSelectionTransfer();
-
-	/**
-	 * The get/set methods delegate to JFace's LocalSelectionTransfer to allow
-	 * data to be exchanged freely whether the client uses this
-	 * LocalSelectionTransfer or JFace's LocalSelectionTransfer. Protected
-	 * methods such as getTypeIds() are handled via inheritance, not delegation
-	 * due to visibility constraints.
-	 */
-	private org.eclipse.jface.util.LocalSelectionTransfer jfaceTransfer = org.eclipse.jface.util.LocalSelectionTransfer
-			.getTransfer();
-
-	/**
-	 * Only the singleton instance of this class may be used.
-	 */
-	private LocalSelectionTransfer() {
-	}
-
-	/**
-	 * Returns the singleton.
-	 * 
-	 * @return the singleton
-	 */
-	public static LocalSelectionTransfer getInstance() {
-		return INSTANCE;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#getSelection()
-	 */
-	public ISelection getSelection() {
-		return jfaceTransfer.getSelection();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#getSelectionSetTime()
-	 */
-	public long getSelectionSetTime() {
-		return jfaceTransfer.getSelectionSetTime();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#setSelection(org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setSelection(ISelection s) {
-		jfaceTransfer.setSelection(s);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#setSelectionSetTime(long)
-	 */
-	public void setSelectionSetTime(long time) {
-		jfaceTransfer.setSelectionSetTime(time);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)
-	 */
-	public void javaToNative(Object object, TransferData transferData) {
-		jfaceTransfer.javaToNative(object, transferData);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#nativeToJava(org.eclipse.swt.dnd.TransferData)
-	 */
-	public Object nativeToJava(TransferData transferData) {
-		return jfaceTransfer.nativeToJava(transferData);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/MainActionGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/MainActionGroup.java
deleted file mode 100644
index d2e05f8..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/MainActionGroup.java
+++ /dev/null
@@ -1,364 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 (25826)
- *     Sebastian Davids <sdavids@gmx.de> - Images for menu items (27481)
- *******************************************************************************/
-package org.eclipse.ui.views.navigator;
-
-import java.util.List;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-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.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.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.AddBookmarkAction;
-import org.eclipse.ui.actions.AddTaskAction;
-import org.eclipse.ui.actions.ExportResourcesAction;
-import org.eclipse.ui.actions.ImportResourcesAction;
-import org.eclipse.ui.actions.NewWizardMenu;
-import org.eclipse.ui.actions.WorkingSetFilterActionGroup;
-import org.eclipse.ui.dialogs.PropertyDialogAction;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.operations.UndoRedoActionGroup;
-
-/**
- * The main action group for the navigator.
- * This contains a few actions and several subgroups.
- */
-public class MainActionGroup extends ResourceNavigatorActionGroup {
-
-    protected AddBookmarkAction addBookmarkAction;
-
-    protected AddTaskAction addTaskAction;
-
-    protected PropertyDialogAction propertyDialogAction;
-
-    protected ImportResourcesAction importAction;
-    
-    protected ExportResourcesAction exportAction;
-
-    protected CollapseAllAction collapseAllAction;
-
-    protected ToggleLinkingAction toggleLinkingAction;
-
-    protected GotoActionGroup gotoGroup;
-
-    protected OpenActionGroup openGroup;
-
-    protected RefactorActionGroup refactorGroup;
-
-    protected WorkingSetFilterActionGroup workingSetGroup;
-
-    protected SortAndFilterActionGroup sortAndFilterGroup;
-    
-    protected UndoRedoActionGroup undoRedoGroup;
-
-    protected WorkspaceActionGroup workspaceGroup;
-
-    private IResourceChangeListener resourceChangeListener;
-
-    private NewWizardMenu newWizardMenu;
-
-    /**
-     * Constructs the main action group.
-     * 
-     * @param navigator the navigator view
-     */
-    public MainActionGroup(IResourceNavigator navigator) {
-        super(navigator);
-        resourceChangeListener = new IResourceChangeListener() {
-            public void resourceChanged(IResourceChangeEvent event) {
-                handleResourceChanged(event);
-            }
-        };
-        ResourcesPlugin.getWorkspace().addResourceChangeListener(
-                resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-        makeSubGroups();
-    }
-
-    /**
-     * Handles a resource changed event by updating the enablement
-     * if one of the selected projects is opened or closed.
-     */
-    protected void handleResourceChanged(IResourceChangeEvent event) {
-        ActionContext context = getContext();
-        if (context == null) {
-            return;
-        }
-
-        final IStructuredSelection selection = (IStructuredSelection) context
-                .getSelection();
-        if (ResourceSelectionUtil.allResourcesAreOfType(selection,
-                IResource.PROJECT) == false) {
-            return;
-        }
-        List sel = selection.toList();
-        IResourceDelta delta = event.getDelta();
-        if (delta == null) {
-            return;
-        }
-        IResourceDelta[] projDeltas = delta
-                .getAffectedChildren(IResourceDelta.CHANGED);
-        for (int i = 0; i < projDeltas.length; ++i) {
-            IResourceDelta projDelta = projDeltas[i];
-            //changing the project open state or description will effect open/close/build action enablement
-            if ((projDelta.getFlags() & (IResourceDelta.OPEN | IResourceDelta.DESCRIPTION)) != 0) {
-                if (sel.contains(projDelta.getResource())) {
-                    getNavigator().getSite().getShell().getDisplay().syncExec(
-                            new Runnable() {
-                                public void run() {
-                                    addTaskAction.selectionChanged(selection);
-                                    gotoGroup.updateActionBars();
-                                    refactorGroup.updateActionBars();
-                                    workspaceGroup.updateActionBars();
-                                }
-                            });
-                }
-            }
-        }
-    }
-
-    /**
-     * Makes the actions contained directly in this action group.
-     */
-    protected void makeActions() {
-        Shell shell = navigator.getSite().getShell();
-
-        newWizardMenu = new NewWizardMenu(navigator.getSite().getWorkbenchWindow());
-        addBookmarkAction = new AddBookmarkAction(shell);
-        addTaskAction = new AddTaskAction(shell);
-        propertyDialogAction = new PropertyDialogAction(shell, navigator
-                .getViewer());
-
-        importAction = new ImportResourcesAction(navigator.getSite()
-                .getWorkbenchWindow());
-        importAction
-                .setDisabledImageDescriptor(getImageDescriptor("dtool16/import_wiz.gif")); //$NON-NLS-1$
-        importAction
-                .setImageDescriptor(getImageDescriptor("etool16/import_wiz.gif")); //$NON-NLS-1$		
-
-        exportAction = new ExportResourcesAction(navigator.getSite()
-                .getWorkbenchWindow());
-        exportAction
-                .setDisabledImageDescriptor(getImageDescriptor("dtool16/export_wiz.gif")); //$NON-NLS-1$
-        exportAction
-                .setImageDescriptor(getImageDescriptor("etool16/export_wiz.gif")); //$NON-NLS-1$		
-        
-        
-        collapseAllAction = new CollapseAllAction(navigator,
-                ResourceNavigatorMessages.CollapseAllAction_title);
-        collapseAllAction.setToolTipText(ResourceNavigatorMessages.CollapseAllAction_toolTip);
-        collapseAllAction
-                .setImageDescriptor(getImageDescriptor("elcl16/collapseall.gif")); //$NON-NLS-1$
-
-        toggleLinkingAction = new ToggleLinkingAction(navigator,
-                ResourceNavigatorMessages.ToggleLinkingAction_text);
-        toggleLinkingAction.setToolTipText(ResourceNavigatorMessages.ToggleLinkingAction_toolTip);
-        toggleLinkingAction
-                .setImageDescriptor(getImageDescriptor("elcl16/synced.gif"));//$NON-NLS-1$
-    }
-
-    /**
-     * Makes the sub action groups.
-     */
-    protected void makeSubGroups() {
-        gotoGroup = new GotoActionGroup(navigator);
-        openGroup = new OpenActionGroup(navigator);
-        refactorGroup = new RefactorActionGroup(navigator);
-        IPropertyChangeListener workingSetUpdater = new IPropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent event) {
-                String property = event.getProperty();
-
-                if (WorkingSetFilterActionGroup.CHANGE_WORKING_SET
-                        .equals(property)) {
-                    IResourceNavigator navigator = getNavigator();
-                    Object newValue = event.getNewValue();
-
-                    if (newValue instanceof IWorkingSet) {
-                        navigator.setWorkingSet((IWorkingSet) newValue);
-                    } else if (newValue == null) {
-                        navigator.setWorkingSet(null);
-                    }
-                }
-            }
-        };
-        TreeViewer treeView = navigator.getViewer();
-        Shell shell = treeView.getControl().getShell();
-        workingSetGroup = new WorkingSetFilterActionGroup(shell,
-                workingSetUpdater);
-        workingSetGroup.setWorkingSet(navigator.getWorkingSet());
-        sortAndFilterGroup = new SortAndFilterActionGroup(navigator);
-        workspaceGroup = new WorkspaceActionGroup(navigator);
-        IUndoContext workspaceContext= (IUndoContext)ResourcesPlugin.getWorkspace().getAdapter(IUndoContext.class);
-		undoRedoGroup= new UndoRedoActionGroup(getNavigator().getSite(), workspaceContext, true);
-
-    }
-    
-    /**
-     * Extends the superclass implementation to set the context in the subgroups.
-     */
-    public void setContext(ActionContext context) {
-        super.setContext(context);
-        gotoGroup.setContext(context);
-        openGroup.setContext(context);
-        refactorGroup.setContext(context);
-        sortAndFilterGroup.setContext(context);
-        workspaceGroup.setContext(context);
-        undoRedoGroup.setContext(context);
-    }
-
-    /**
-     * Fills the context menu with the actions contained in this group
-     * and its subgroups.
-     * 
-     * @param menu the context menu
-     */
-    public void fillContextMenu(IMenuManager menu) {
-        IStructuredSelection selection = (IStructuredSelection) getContext()
-                .getSelection();
-
-        MenuManager newMenu = new MenuManager(ResourceNavigatorMessages.ResourceNavigator_new);
-        menu.add(newMenu);
-        newMenu.add(newWizardMenu);
-
-        gotoGroup.fillContextMenu(menu);
-        openGroup.fillContextMenu(menu);
-        menu.add(new Separator());
-
-        refactorGroup.fillContextMenu(menu);
-        menu.add(new Separator());
-
-        menu.add(importAction);
-        menu.add(exportAction);
-        importAction.selectionChanged(selection);
-        exportAction.selectionChanged(selection);
-        menu.add(new Separator());
-
-        workspaceGroup.fillContextMenu(menu);
-
-        menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-        menu
-                .add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS
-                        + "-end")); //$NON-NLS-1$
-        menu.add(new Separator());
-
-        if (selection.size() == 1) {
-            propertyDialogAction.selectionChanged(selection);
-            menu.add(propertyDialogAction);
-        }
-    }
-
-    /**
-     * Adds the actions in this group and its subgroups to the action bars.
-     */
-    public void fillActionBars(IActionBars actionBars) {
-        actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(),
-                propertyDialogAction);
-        actionBars.setGlobalActionHandler(IDEActionFactory.BOOKMARK.getId(),
-                addBookmarkAction);
-        actionBars.setGlobalActionHandler(IDEActionFactory.ADD_TASK.getId(),
-                addTaskAction);
-
-        gotoGroup.fillActionBars(actionBars);
-        openGroup.fillActionBars(actionBars);
-        refactorGroup.fillActionBars(actionBars);
-        workingSetGroup.fillActionBars(actionBars);
-        sortAndFilterGroup.fillActionBars(actionBars);
-        workspaceGroup.fillActionBars(actionBars);
-        undoRedoGroup.fillActionBars(actionBars);
-
-        IMenuManager menu = actionBars.getMenuManager();
-        menu.add(toggleLinkingAction);
-
-        IToolBarManager toolBar = actionBars.getToolBarManager();
-        toolBar.add(new Separator());
-        toolBar.add(collapseAllAction);
-        toolBar.add(toggleLinkingAction);
-    }
-
-    /**
-     * Updates the actions which were added to the action bars,
-     * delegating to the subgroups as necessary.
-     */
-    public void updateActionBars() {
-        IStructuredSelection selection = (IStructuredSelection) getContext()
-                .getSelection();
-        propertyDialogAction.setEnabled(selection.size() == 1);
-        addBookmarkAction.selectionChanged(selection);
-        addTaskAction.selectionChanged(selection);
-
-        gotoGroup.updateActionBars();
-        openGroup.updateActionBars();
-        refactorGroup.updateActionBars();
-        workingSetGroup.updateActionBars();
-        sortAndFilterGroup.updateActionBars();
-        workspaceGroup.updateActionBars();
-        undoRedoGroup.updateActionBars();
-    }
-
-    /**
-     * Runs the default action (open file) by delegating the open group.
-     */
-    public void runDefaultAction(IStructuredSelection selection) {
-        openGroup.runDefaultAction(selection);
-    }
-
-    /**
-     * Handles a key pressed event by invoking the appropriate action,
-     * delegating to the subgroups as necessary.
-     */
-    public void handleKeyPressed(KeyEvent event) {
-        refactorGroup.handleKeyPressed(event);
-        workspaceGroup.handleKeyPressed(event);
-    }
-
-    /**
-     * Extends the superclass implementation to dispose the 
-     * actions in this group and its subgroups.
-     */
-    public void dispose() {
-        ResourcesPlugin.getWorkspace().removeResourceChangeListener(
-                resourceChangeListener);
-
-        newWizardMenu.dispose();
-        collapseAllAction.dispose();
-        importAction.dispose();
-        exportAction.dispose();
-        propertyDialogAction.dispose();
-        toggleLinkingAction.dispose();
-
-        gotoGroup.dispose();
-        openGroup.dispose();
-        refactorGroup.dispose();
-        sortAndFilterGroup.dispose();
-        workingSetGroup.dispose();
-        workspaceGroup.dispose();
-        undoRedoGroup.dispose();
-        super.dispose();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorDragAdapter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorDragAdapter.java
deleted file mode 100644
index d4d71fa..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorDragAdapter.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.ui.views.navigator;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-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.FileTransfer;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.actions.ReadOnlyStateChecker;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.part.ResourceTransfer;
-
-/**
- * Implements drag behaviour when items are dragged out of the
- * resource navigator.
- * 
- * @since 2.0
- */
-public class NavigatorDragAdapter extends DragSourceAdapter {
-    private static final String CHECK_MOVE_TITLE = ResourceNavigatorMessages.DragAdapter_title;
-
-    private static final String CHECK_DELETE_MESSAGE = ResourceNavigatorMessages.DragAdapter_checkDeleteMessage;
-
-    ISelectionProvider selectionProvider;
-
-    private TransferData lastDataType;
-
-    /**
-     * Constructs a new drag adapter.
-     * @param provider The selection provider
-     */
-    public NavigatorDragAdapter(ISelectionProvider provider) {
-        selectionProvider = provider;
-    }
-
-    /**
-     * This implementation of {@link DragSourceListener#dragFinished(DragSourceEvent)}
-     * responds to a drag that has moved resources outside the Navigator by deleting
-     * the corresponding source resource.
-     */
-    public void dragFinished(DragSourceEvent event) {
-        LocalSelectionTransfer.getInstance().setSelection(null);
-
-        if (event.doit == false) {
-			return;
-		}
-
-        final int typeMask = IResource.FOLDER | IResource.FILE;
-        if (event.detail == DND.DROP_MOVE) {
-            //never delete resources when dragging outside Eclipse. 
-            //workaround for bug 30543.
-            if (lastDataType != null
-                    && FileTransfer.getInstance().isSupportedType(lastDataType)) {
-				return;
-			}
-
-            IResource[] resources = getSelectedResources(typeMask);
-            DragSource dragSource = (DragSource) event.widget;
-            Control control = dragSource.getControl();
-            Shell shell = control.getShell();
-            ReadOnlyStateChecker checker;
-
-            if (resources == null || resources.length == 0) {
-				return;
-			}
-
-            checker = new ReadOnlyStateChecker(shell, CHECK_MOVE_TITLE,
-                    CHECK_DELETE_MESSAGE);
-            resources = checker.checkReadOnlyResources(resources);
-            //delete the old elements
-            for (int i = 0; i < resources.length; i++) {
-                try {
-                    resources[i].delete(IResource.KEEP_HISTORY
-                            | IResource.FORCE, null);
-                } catch (CoreException e) {
-                    e.printStackTrace();
-                }
-            }
-        } else if (event.detail == DND.DROP_TARGET_MOVE) {
-            IResource[] resources = getSelectedResources(typeMask);
-
-            // file moved for us by OS, no need to delete the resources, just
-            // update the view
-            if (resources == null) {
-				return;
-			}
-            for (int i = 0; i < resources.length; i++) {
-                try {
-                    resources[i].refreshLocal(IResource.DEPTH_INFINITE, null);
-                } catch (CoreException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-
-    /**
-     * This implementation of {@link DragSourceListener#dragSetData(DragSourceEvent)}
-     * sets the drag event data based on the current selection in the Navigator.
-     */
-    public void dragSetData(DragSourceEvent event) {
-        final int typeMask = IResource.FILE | IResource.FOLDER;
-        IResource[] resources = getSelectedResources(typeMask);
-
-        if (resources == null || resources.length == 0) {
-			return;
-		}
-
-        lastDataType = event.dataType;
-        //use local selection transfer if possible
-        if (LocalSelectionTransfer.getInstance()
-                .isSupportedType(event.dataType)) {
-            event.data = LocalSelectionTransfer.getInstance().getSelection();
-            return;
-        }
-        //use resource transfer if possible
-        if (ResourceTransfer.getInstance().isSupportedType(event.dataType)) {
-            event.data = resources;
-            return;
-        }
-        //resort to a file transfer
-        if (!FileTransfer.getInstance().isSupportedType(event.dataType)) {
-			return;
-		}
-
-        // 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) {
-			return;
-		}
-        // 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];
-			}
-        }
-        event.data = fileNames;
-    }
-
-    /**
-     * This implementation of {@link DragSourceListener#dragStart(DragSourceEvent)}
-     * allows the drag to start if the current Navigator selection contains resources
-     * that can be dragged.
-     */
-    public void dragStart(DragSourceEvent event) {
-        lastDataType = null;
-        // Workaround for 1GEUS9V
-        DragSource dragSource = (DragSource) event.widget;
-        Control control = dragSource.getControl();
-        if (control != control.getDisplay().getFocusControl()) {
-            event.doit = false;
-            return;
-        }
-
-        IStructuredSelection selection = (IStructuredSelection) selectionProvider
-                .getSelection();
-        for (Iterator i = selection.iterator(); i.hasNext();) {
-            Object next = i.next();
-            if (!(next instanceof IFile || next instanceof IFolder)) {
-                event.doit = false;
-                return;
-            }
-        }
-        if (selection.isEmpty()) {
-            event.doit = false;
-            return;
-        }
-        LocalSelectionTransfer.getInstance().setSelection(selection);
-        event.doit = true;
-    }
-
-    private IResource[] getSelectedResources(int resourceTypes) {
-        List resources = new ArrayList();
-        IResource[] result = new IResource[0];
-
-        ISelection selection = selectionProvider.getSelection();
-        if (!(selection instanceof IStructuredSelection) || selection.isEmpty()) {
-            return null;
-        }
-        IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-
-        // loop through list and look for matching items
-        Iterator itr = structuredSelection.iterator();
-        while (itr.hasNext()) {
-            Object obj = itr.next();
-            if (obj instanceof IResource) {
-                IResource res = (IResource) obj;
-                if ((res.getType() & resourceTypes) == res.getType()) {
-                    resources.add(res);
-                }
-            }
-        }
-        result = new IResource[resources.size()];
-        resources.toArray(result);
-        return result;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorDropAdapter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorDropAdapter.java
deleted file mode 100644
index fb80eae..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorDropAdapter.java
+++ /dev/null
@@ -1,422 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.navigator;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-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.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.osgi.util.NLS;
-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.dialogs.IOverwriteQuery;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.part.PluginDropAdapter;
-import org.eclipse.ui.part.ResourceTransfer;
-
-/**
- * Implements drop behaviour for drag and drop operations
- * that land on the resource navigator.
- * 
- * @since 2.0
- */
-public class NavigatorDropAdapter extends PluginDropAdapter implements
-        IOverwriteQuery {
-
-    /**
-     * A flag indicating that overwrites should always occur.
-     */
-    private boolean alwaysOverwrite = false;
-
-    /**
-     * The last valid operation.
-     */
-    private int lastValidOperation = DND.DROP_NONE;
-
-    /**
-     * Constructs a new drop adapter.
-     * 
-     * @param viewer the navigator's viewer
-     */
-    public NavigatorDropAdapter(StructuredViewer viewer) {
-        super(viewer);
-    }
-
-    /*
-     * @see org.eclipse.swt.dnd.DropTargetListener#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
-     */
-    public void dragEnter(DropTargetEvent event) {
-        if (FileTransfer.getInstance().isSupportedType(event.currentDataType)
-                && event.detail == DND.DROP_DEFAULT) {
-            // default to copy when dragging from outside Eclipse. Fixes bug 16308.
-            event.detail = DND.DROP_COPY;
-        }
-        super.dragEnter(event);
-    }
-
-    /**
-     * Returns an error status with the given info.
-     */
-    private IStatus error(String message) {
-        return error(message, null);
-    }
-
-    /**
-     * Returns an error status with the given info.
-     */
-    private IStatus error(String message, Throwable exception) {
-        return new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID, 0, message,
-                exception);
-    }
-
-    /**
-     * 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 before or after mouseTarget, set target to parent */
-        if (getFeedbackEnabled()) {
-            if (getCurrentLocation() == LOCATION_BEFORE
-                    || getCurrentLocation() == LOCATION_AFTER) {
-                return mouseTarget.getParent();
-            }
-        }
-        /* 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 display
-     */
-    private Display getDisplay() {
-        return getViewer().getControl().getDisplay();
-    }
-
-    /**
-     * Returns the resource selection from the LocalSelectionTransfer.
-     * 
-     * @return the resource selection from the LocalSelectionTransfer
-     */
-    private IResource[] getSelectedResources() {
-        ArrayList selectedResources = new ArrayList();
-
-        ISelection selection = LocalSelectionTransfer.getInstance()
-                .getSelection();
-        if (selection instanceof IStructuredSelection) {
-            IStructuredSelection ssel = (IStructuredSelection) selection;
-            for (Iterator i = ssel.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()]);
-    }
-
-    /**
-     * Returns the shell
-     */
-    private Shell getShell() {
-        return getViewer().getControl().getShell();
-    }
-
-    /**
-     * Returns an error status with the given info.
-     */
-    private IStatus info(String message) {
-        return new Status(IStatus.INFO, PlatformUI.PLUGIN_ID, 0, message, null);
-    }
-
-    /**
-     * 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);
-        }
-    }
-
-    /**
-     * Returns an status indicating success.
-     */
-    private IStatus ok() {
-        return new Status(IStatus.OK, PlatformUI.PLUGIN_ID, 0,
-                ResourceNavigatorMessages.DropAdapter_ok, null);
-    }
-
-    /**
-     * 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 = ResourceNavigatorMessages.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);
-    }
-
-    /**
-     * Perform the drop.
-     * @see org.eclipse.swt.dnd.DropTargetListener#drop(org.eclipse.swt.dnd.DropTargetEvent)
-     */
-    public boolean performDrop(final Object data) {
-        alwaysOverwrite = false;
-        if (getCurrentTarget() == null || data == null) {
-            return false;
-        }
-        boolean result = false;
-        IStatus status = null;
-        IResource[] resources = null;
-        TransferData currentTransfer = getCurrentTransfer();
-        if (LocalSelectionTransfer.getInstance().isSupportedType(
-                currentTransfer)) {
-            resources = getSelectedResources();
-        } else if (ResourceTransfer.getInstance().isSupportedType(
-                currentTransfer)) {
-            resources = (IResource[]) data;
-        } else if (FileTransfer.getInstance().isSupportedType(currentTransfer)) {
-            status = performFileDrop(data);
-            result = status.isOK();
-        } else {
-            result = NavigatorDropAdapter.super.performDrop(data);
-        }
-        if (resources != null && resources.length > 0) {
-            if (getCurrentOperation() == DND.DROP_COPY) {
-				status = performResourceCopy(getShell(), resources);
-			} else {
-				status = performResourceMove(resources);
-			}
-        }
-        openError(status);
-        return result;
-    }
-
-    /**
-     * Performs a drop using the FileTransfer transfer type.
-     */
-    private IStatus performFileDrop(Object data) {
-        MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 0,
-                ResourceNavigatorMessages.DropAdapter_problemImporting, null);
-        mergeStatus(problems, validateTarget(getCurrentTarget(),
-                getCurrentTransfer()));
-
-        final IContainer target = getActualTarget((IResource) 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;
-    }
-
-    /**
-     * Performs a resource copy
-     */
-    private IStatus performResourceCopy(Shell shell, IResource[] sources) {
-        MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 1,
-                ResourceNavigatorMessages.DropAdapter_problemsMoving, null);
-        mergeStatus(problems, validateTarget(getCurrentTarget(),
-                getCurrentTransfer()));
-
-        IContainer target = getActualTarget((IResource) getCurrentTarget());
-        CopyFilesAndFoldersOperation operation = new CopyFilesAndFoldersOperation(
-                shell);
-        operation.copyResources(sources, target);
-
-        return problems;
-    }
-
-    /**
-     * Performs a resource move
-     */
-    private IStatus performResourceMove(IResource[] sources) {
-        MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 1,
-                ResourceNavigatorMessages.DropAdapter_problemsMoving, null);
-        mergeStatus(problems, validateTarget(getCurrentTarget(),
-                getCurrentTransfer()));
-
-        IContainer target = getActualTarget((IResource) getCurrentTarget());
-        ReadOnlyStateChecker checker = new ReadOnlyStateChecker(
-                getShell(),
-                ResourceNavigatorMessages.MoveResourceAction_title,
-                ResourceNavigatorMessages.MoveResourceAction_checkMoveMessage);
-        sources = checker.checkReadOnlyResources(sources);
-        MoveFilesAndFoldersOperation operation = new MoveFilesAndFoldersOperation(
-                getShell());
-        operation.copyResources(sources, target);
-
-        return problems;
-    }
-
-    /*
-     * @see org.eclipse.ui.dialogs.IOverwriteQuery#queryOverwrite(java.lang.String)
-     */
-    public String queryOverwrite(String pathString) {
-        if (alwaysOverwrite) {
-			return ALL;
-		}
-
-        final String returnCode[] = { CANCEL };
-        final String msg = NLS.bind(ResourceNavigatorMessages.DropAdapter_overwriteQuery, pathString);
-        final String[] options = { IDialogConstants.YES_LABEL,
-                IDialogConstants.YES_TO_ALL_LABEL, IDialogConstants.NO_LABEL,
-                IDialogConstants.CANCEL_LABEL };
-        getDisplay().syncExec(new Runnable() {
-            public void run() {
-                MessageDialog dialog = new MessageDialog(
-                        getShell(),
-                        ResourceNavigatorMessages.DropAdapter_question, null, msg, MessageDialog.QUESTION, options, 0);
-                dialog.open();
-                int returnVal = dialog.getReturnCode();
-                String[] returnCodes = { YES, ALL, NO, CANCEL };
-                returnCode[0] = returnVal < 0 ? CANCEL : returnCodes[returnVal];
-            }
-        });
-        if (returnCode[0] == ALL) {
-			alwaysOverwrite = true;
-		}
-        return returnCode[0];
-    }
-
-    /**
-     * This method is used to notify the action that some aspect of
-     * the drop operation has changed.
-     */
-    public boolean validateDrop(Object target, int dragOperation,
-            TransferData transferType) {
-
-        if (dragOperation != DND.DROP_NONE) {
-            lastValidOperation = dragOperation;
-        }
-        if (FileTransfer.getInstance().isSupportedType(transferType)
-                && lastValidOperation != DND.DROP_COPY) {
-            // only allow copying when dragging from outside Eclipse
-            return false;
-        }
-        if (super.validateDrop(target, dragOperation, transferType)) {
-            return true;
-        }
-        return validateTarget(target, transferType).isOK();
-    }
-
-    /**
-     * Ensures that the drop target meets certain criteria
-     */
-    private IStatus validateTarget(Object target, TransferData transferType) {
-        if (!(target instanceof IResource)) {
-            return info(ResourceNavigatorMessages.DropAdapter_targetMustBeResource);
-        }
-        IResource resource = (IResource) target;
-        if (!resource.isAccessible()) {
-            return error(ResourceNavigatorMessages.DropAdapter_canNotDropIntoClosedProject);
-        }
-        IContainer destination = getActualTarget(resource);
-        if (destination.getType() == IResource.ROOT) {
-            return error(ResourceNavigatorMessages.DropAdapter_resourcesCanNotBeSiblings);
-        }
-        String message = null;
-        // drag within Eclipse?
-        if (LocalSelectionTransfer.getInstance().isSupportedType(transferType)) {
-            IResource[] selectedResources = getSelectedResources();
-
-            if (selectedResources.length == 0) {
-				message = ResourceNavigatorMessages.DropAdapter_dropOperationErrorOther;
-			} else {
-                CopyFilesAndFoldersOperation operation;
-                if (lastValidOperation == 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 error(message);
-        }
-        return ok();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorFrameSource.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorFrameSource.java
deleted file mode 100644
index 8b0bff5..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/NavigatorFrameSource.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.views.navigator;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.views.framelist.TreeFrame;
-import org.eclipse.ui.views.framelist.TreeViewerFrameSource;
-
-/**
- * Frame source for the resource navigator.
- */
-public class NavigatorFrameSource extends TreeViewerFrameSource {
-
-    private ResourceNavigator navigator;
-
-    /**
-     * Constructs a new frame source for the specified resource navigator.
-     * 
-     * @param navigator the resource navigator
-     */
-    public NavigatorFrameSource(ResourceNavigator navigator) {
-        super(navigator.getTreeViewer());
-        this.navigator = navigator;
-    }
-
-    /**
-     * Returns a new frame.  This implementation extends the super implementation
-     * by setting the frame's tool tip text to show the full path for the input
-     * element.
-     */
-    protected TreeFrame createFrame(Object input) {
-        TreeFrame frame = super.createFrame(input);
-        frame.setName(navigator.getFrameName(input));
-        frame.setToolTipText(navigator.getFrameToolTipText(input));
-        return frame;
-    }
-
-    /**
-     * Also updates the navigator's title.
-     */
-    protected void frameChanged(TreeFrame frame) {
-        IResource resource = (IResource) frame.getInput();
-        IProject project = resource.getProject();
-
-        if (project != null && project.isOpen() == false) {
-            MessageDialog
-                    .openInformation(
-                            navigator.getViewSite().getShell(),
-                            ResourceNavigatorMessages.NavigatorFrameSource_closedProject_title,
-                            NLS.bind(ResourceNavigatorMessages.NavigatorFrameSource_closedProject_message, project.getName()));
-            navigator.getFrameList().back();
-        } else {
-            super.frameChanged(frame);
-            navigator.updateTitle();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/OpenActionGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/OpenActionGroup.java
deleted file mode 100644
index 81051a3..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/OpenActionGroup.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.views.navigator;
-
-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.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.OpenFileAction;
-import org.eclipse.ui.actions.OpenInNewWindowAction;
-import org.eclipse.ui.actions.OpenWithMenu;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-
-/**
- * This is the action group for the open actions.
- */
-public class OpenActionGroup extends ResourceNavigatorActionGroup {
-
-    private OpenFileAction openFileAction;
-
-    /**
-     * The id for the Open With submenu.
-     */
-    public static final String OPEN_WITH_ID = PlatformUI.PLUGIN_ID
-            + ".OpenWithSubMenu"; //$NON-NLS-1$
-
-    public OpenActionGroup(IResourceNavigator navigator) {
-        super(navigator);
-    }
-
-    protected void makeActions() {
-        openFileAction = new OpenFileAction(navigator.getSite().getPage());
-    }
-
-    public void fillContextMenu(IMenuManager menu) {
-        IStructuredSelection selection = (IStructuredSelection) getContext()
-                .getSelection();
-
-        boolean anyResourceSelected = !selection.isEmpty()
-                && ResourceSelectionUtil.allResourcesAreOfType(selection,
-                        IResource.PROJECT | IResource.FOLDER | IResource.FILE);
-        boolean onlyFilesSelected = !selection.isEmpty()
-                && ResourceSelectionUtil.allResourcesAreOfType(selection,
-                        IResource.FILE);
-
-        if (onlyFilesSelected) {
-            openFileAction.selectionChanged(selection);
-            menu.add(openFileAction);
-            fillOpenWithMenu(menu, selection);
-        }
-
-        if (anyResourceSelected) {
-            addNewWindowAction(menu, selection);
-        }
-    }
-
-    /**
-     * Adds the OpenWith submenu to the context menu.
-     * 
-     * @param menu the context menu
-     * @param selection the current selection
-     */
-    private void fillOpenWithMenu(IMenuManager menu,
-            IStructuredSelection selection) {
-
-        // Only supported if exactly one file is selected.
-        if (selection.size() != 1) {
-			return;
-		}
-        Object element = selection.getFirstElement();
-        if (!(element instanceof IFile)) {
-			return;
-		}
-
-        MenuManager submenu = new MenuManager(ResourceNavigatorMessages.ResourceNavigator_openWith, OPEN_WITH_ID);
-        submenu.add(new OpenWithMenu(navigator.getSite().getPage(),
-                (IFile) element));
-        menu.add(submenu);
-    }
-
-    /**
-     * Adds the Open in New Window action to the context menu.
-     * 
-     * @param menu the context menu
-     * @param selection the current selection
-     */
-    private void addNewWindowAction(IMenuManager menu,
-            IStructuredSelection selection) {
-
-        // Only supported if exactly one container (i.e open project or folder) is selected.
-        if (selection.size() != 1) {
-			return;
-		}
-        Object element = selection.getFirstElement();
-        if (!(element instanceof IContainer)) {
-			return;
-		}
-        if (element instanceof IProject && !(((IProject) element).isOpen())) {
-			return;
-		}
-
-        menu.add(new OpenInNewWindowAction(navigator.getSite()
-                .getWorkbenchWindow(), (IContainer) element));
-    }
-
-    /**
-     * Runs the default action (open file).
-     */
-    public void runDefaultAction(IStructuredSelection selection) {
-        Object element = selection.getFirstElement();
-        if (element instanceof IFile) {
-            openFileAction.selectionChanged(selection);
-            openFileAction.run();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/PasteAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/PasteAction.java
deleted file mode 100644
index 2d3f8a8..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/PasteAction.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.navigator;
-
-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.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.part.ResourceTransfer;
-
-/**
- * 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(ResourceNavigatorMessages.PasteAction_title);
-        Assert.isNotNull(shell);
-        Assert.isNotNull(clipboard);
-        this.shell = shell;
-        this.clipboard = clipboard;
-        setToolTipText(ResourceNavigatorMessages.PasteAction_toolTip);
-        setId(PasteAction.ID);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				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();
-		} else {
-			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.ide/src/org/eclipse/ui/views/navigator/RefactorActionGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/RefactorActionGroup.java
deleted file mode 100644
index 42d9bcf..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/RefactorActionGroup.java
+++ /dev/null
@@ -1,160 +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
- *     Sebastian Davids <sdavids@gmx.de> - Images for menu items (27481)
- *******************************************************************************/
-package org.eclipse.ui.views.navigator;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-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.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.DeleteResourceAction;
-import org.eclipse.ui.actions.TextActionHandler;
-
-/**
- * This is the action group for refactor actions,
- * including global action handlers for copy, paste and delete.
- * 
- * @since 2.0
- */
-public class RefactorActionGroup extends ResourceNavigatorActionGroup {
-
-    private Clipboard clipboard;
-
-    private CopyAction copyAction;
-
-    private DeleteResourceAction deleteAction;
-
-    private PasteAction pasteAction;
-
-    private ResourceNavigatorRenameAction renameAction;
-
-    private ResourceNavigatorMoveAction moveAction;
-
-    private TextActionHandler textActionHandler;
-
-    public RefactorActionGroup(IResourceNavigator navigator) {
-        super(navigator);
-    }
-
-    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.add(copyAction);
-        pasteAction.selectionChanged(selection);
-        menu.add(pasteAction);
-
-        if (anyResourceSelected) {
-            deleteAction.selectionChanged(selection);
-            menu.add(deleteAction);
-            moveAction.selectionChanged(selection);
-            menu.add(moveAction);
-            renameAction.selectionChanged(selection);
-            menu.add(renameAction);
-        }
-    }
-
-    public void fillActionBars(IActionBars actionBars) {
-        textActionHandler = new TextActionHandler(actionBars); // hooks handlers
-        textActionHandler.setCopyAction(copyAction);
-        textActionHandler.setPasteAction(pasteAction);
-        textActionHandler.setDeleteAction(deleteAction);
-        renameAction.setTextActionHandler(textActionHandler);
-
-        actionBars.setGlobalActionHandler(ActionFactory.MOVE.getId(),
-                moveAction);
-        actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(),
-                renameAction);
-    }
-
-    /**
-     * Handles a key pressed event by invoking the appropriate action.
-     */
-    public void handleKeyPressed(KeyEvent event) {
-        if (event.character == SWT.DEL && event.stateMask == 0) {
-            if (deleteAction.isEnabled()) {
-                deleteAction.run();
-            }
-
-            // Swallow the event.
-            event.doit = false;
-
-        } else if (event.keyCode == SWT.F2 && event.stateMask == 0) {
-            if (renameAction.isEnabled()) {
-                renameAction.run();
-            }
-
-            // Swallow the event.
-            event.doit = false;
-        }
-    }
-
-    protected void makeActions() {
-        TreeViewer treeViewer = navigator.getViewer();
-        Shell shell = navigator.getSite().getShell();
-        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));
-
-        copyAction = new CopyAction(shell, clipboard, pasteAction);
-        copyAction.setDisabledImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_COPY_DISABLED));
-        copyAction.setImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
-
-        moveAction = new ResourceNavigatorMoveAction(shell, treeViewer);
-        renameAction = new ResourceNavigatorRenameAction(shell, treeViewer);
-
-        deleteAction = new DeleteResourceAction(shell);
-        deleteAction.setDisabledImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_DELETE_DISABLED));
-        deleteAction.setImageDescriptor(images
-                .getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
-    }
-
-    public void updateActionBars() {
-        IStructuredSelection selection = (IStructuredSelection) getContext()
-                .getSelection();
-
-        copyAction.selectionChanged(selection);
-        pasteAction.selectionChanged(selection);
-        deleteAction.selectionChanged(selection);
-        moveAction.selectionChanged(selection);
-        renameAction.selectionChanged(selection);
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceComparator.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceComparator.java
deleted file mode 100644
index 3f0a9b1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceComparator.java
+++ /dev/null
@@ -1,199 +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.navigator;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-
-/**
- * Comparator for viewers that display items of type <code>IResource</code>.
- * The sorter supports two sort criteria:
- * <p>
- * <code>NAME</code>: Folders are given order precedence, followed by files.
- * Within these two groups resources are ordered by name.  All name comparisons
- * are case-insensitive.
- * </p>
- * <p>
- * <code>TYPE</code>: Folders are given order precedence, followed by files.
- * Within these two groups resources are ordered by extension.  All extension
- * comparisons are case-insensitive.
- * </p>
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 3.3
- */
-public class ResourceComparator extends ViewerComparator {
-
-    /**
-     * Constructor argument value that indicates to sort items by name.
-     */
-    public final static int NAME = 1;
-
-    /**
-     * Constructor argument value that indicates to sort items by extension.
-     */
-    public final static int TYPE = 2;
-
-    private int criteria;
-
-    /**
-     * Creates a resource sorter that will use the given sort criteria.
-     *
-     * @param criteria the sort criterion to use: one of <code>NAME</code> or 
-     *   <code>TYPE</code>
-     */
-    public ResourceComparator(int criteria) {
-        super();
-        this.criteria = criteria;
-    }
-
-    /**
-     * Returns an integer value representing the relative sort priority of the 
-     * given element based on its class.
-     * <p>
-     * <ul>
-     *   <li>resources (<code>IResource</code>) - 2</li>
-     *   <li>project references (<code>ProjectReference</code>) - 1</li>
-     *   <li>everything else - 0</li>
-     * </ul>
-     * </p>
-     *
-     * @param element the element
-     * @return the sort priority (larger numbers means more important)
-     */
-    protected int classComparison(Object element) {
-        if (element instanceof IResource) {
-            return 2;
-        }
-        return 0;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ViewerComparator.
-     */
-    public int compare(Viewer viewer, Object o1, Object o2) {
-        //have to deal with non-resources in navigator
-        //if one or both objects are not resources, returned a comparison 
-        //based on class.
-        if (!(o1 instanceof IResource && o2 instanceof IResource)) {
-            return compareClass(o1, o2);
-        }
-        IResource r1 = (IResource) o1;
-        IResource r2 = (IResource) o2;
-
-        if (r1 instanceof IContainer && r2 instanceof IContainer) {
-			return compareNames(r1, r2);
-		} else if (r1 instanceof IContainer) {
-			return -1;
-		} else if (r2 instanceof IContainer) {
-			return 1;
-		} else if (criteria == NAME) {
-			return compareNames(r1, r2);
-		} else if (criteria == TYPE) {
-			return compareTypes(r1, r2);
-		} else {
-			return 0;
-		}
-    }
-
-    /**
-     * Returns a number reflecting the collation order of the given elements
-     * based on their class.
-     *
-     * @param element1 the first element to be ordered
-     * @param element2 the second element to be ordered
-     * @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
-     */
-    protected int compareClass(Object element1, Object element2) {
-        return classComparison(element1) - classComparison(element2);
-    }
-
-    /**
-     * Returns a number reflecting the collation order of the given resources
-     * based on their resource names.
-     *
-     * @param resource1 the first resource element to be ordered
-     * @param resource2 the second resource element to be ordered
-     * @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
-     */
-    protected int compareNames(IResource resource1, IResource resource2) {
-        return getComparator().compare(resource1.getName(), resource2.getName());
-    }
-
-    /**
-     * Returns a number reflecting the collation order of the given resources
-     * based on their respective file extensions. Resources with the same file
-     * extension will be collated based on their names.
-     *
-     * @param resource1 the first resource element to be ordered
-     * @param resource2 the second resource element to be ordered
-     * @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
-     */
-    protected int compareTypes(IResource resource1, IResource resource2) {
-        String ext1 = getExtensionFor(resource1);
-        String ext2 = getExtensionFor(resource2);
-
-        // Compare extensions.  If they're different then return a value that
-        // indicates correct extension ordering.  If they're the same then
-        // return a value that indicates the correct NAME ordering.
-        int result = getComparator().compare(ext1, ext2);
-
-        if (result != 0) {
-			return result;
-		}
-
-        return compareNames(resource1, resource2);
-    }
-
-    /**
-     * Returns the sort criteria of this sorter.
-     *
-     * @return the sort criterion: one of <code>NAME</code> or <code>TYPE</code>
-     */
-    public int getCriteria() {
-        return criteria;
-    }
-
-    /**
-     * Returns the extension portion of the given resource.
-     *
-     * @param resource the resource
-     * @return the file extension, possibily the empty string
-     */
-    private String getExtensionFor(IResource resource) {
-        String ext = resource.getFileExtension();
-        return ext == null ? "" : ext; //$NON-NLS-1$
-    }
-
-    /**
-     * Sets the sort criteria of this sorter.
-     * 
-     * @param criteria the sort criterion: 
-     *	one of <code>ResourceSorter.NAME</code> or 
-     *	<code>ResourceSorter.TYPE</code>
-     */
-    public void setCriteria(int criteria) {
-        this.criteria = criteria;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigator.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigator.java
deleted file mode 100644
index 313c50f..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigator.java
+++ /dev/null
@@ -1,1480 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.navigator;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-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.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-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.IOpenListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.OpenEvent;
-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.ViewerSorter;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-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.Shell;
-import org.eclipse.ui.IEditorPart;
-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.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ResourceWorkingSetFilter;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.ide.ResourceUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.part.ISetSelectionTarget;
-import org.eclipse.ui.part.IShowInSource;
-import org.eclipse.ui.part.IShowInTarget;
-import org.eclipse.ui.part.PluginTransfer;
-import org.eclipse.ui.part.ResourceTransfer;
-import org.eclipse.ui.part.ShowInContext;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.views.framelist.FrameList;
-import org.eclipse.ui.views.framelist.TreeFrame;
-
-/**
- * Implements the Resource Navigator view.
- */
-public class ResourceNavigator extends ViewPart implements ISetSelectionTarget,
-        IResourceNavigator {
-
-    private TreeViewer viewer;
-
-    private IDialogSettings settings;
-
-    private IMemento memento;
-
-    private FrameList frameList;
-
-    private ResourceNavigatorActionGroup actionGroup;
-
-    private ResourcePatternFilter patternFilter = new ResourcePatternFilter();
-
-    private ResourceWorkingSetFilter workingSetFilter = new ResourceWorkingSetFilter();
-
-    private boolean linkingEnabled;
-
-    private boolean dragDetected;
-
-    private Listener dragDetectListener;
-    /**
-     * Remembered working set.
-     */
-    private IWorkingSet workingSet;
-
-    /**
-	 * Marks whether the working set we're using is currently empty. In this
-	 * event we're effectively not using a working set.
-	 */
-    private boolean emptyWorkingSet = false;
-    
-    /**
-	 * Settings constant for section name (value <code>ResourceNavigator</code>).
-	 */
-    private static final String STORE_SECTION = "ResourceNavigator"; //$NON-NLS-1$
-
-    /** 
-     * Settings constant for sort order (value <code>ResourceViewer.STORE_SORT_TYPE</code>).
-     */
-    private static final String STORE_SORT_TYPE = "ResourceViewer.STORE_SORT_TYPE"; //$NON-NLS-1$
-
-    /** 
-     * Settings constant for working set (value <code>ResourceWorkingSetFilter.STORE_WORKING_SET</code>).
-     */
-    private static final String STORE_WORKING_SET = "ResourceWorkingSetFilter.STORE_WORKING_SET"; //$NON-NLS-1$
-
-    /**
-     * @deprecated No longer used but preserved to avoid an api change.
-     */
-    public static final String NAVIGATOR_VIEW_HELP_ID = INavigatorHelpContextIds.RESOURCE_VIEW;
-
-    /**
-     * True iff we've already scheduled an asynchronous call to linkToEditor
-     */
-    private boolean linkScheduled = false;
-    
-    // Persistance tags.
-    private static final String TAG_SORTER = "sorter"; //$NON-NLS-1$
-
-    private static final String TAG_FILTERS = "filters"; //$NON-NLS-1$
-
-    private static final String TAG_FILTER = "filter"; //$NON-NLS-1$
-
-    private static final String TAG_SELECTION = "selection"; //$NON-NLS-1$
-
-    private static final String TAG_EXPANDED = "expanded"; //$NON-NLS-1$
-
-    private static final String TAG_ELEMENT = "element"; //$NON-NLS-1$
-
-    private static final String TAG_IS_ENABLED = "isEnabled"; //$NON-NLS-1$
-
-    private static final String TAG_PATH = "path"; //$NON-NLS-1$
-
-    private static final String TAG_CURRENT_FRAME = "currentFrame"; //$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) {
-        }
-    };
-
-    private IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent event) {
-            String property = event.getProperty();
-            Object newValue = event.getNewValue();
-            Object oldValue = event.getOldValue();
-           
-            if (IWorkingSetManager.CHANGE_WORKING_SET_REMOVE.equals(property)
-                    && oldValue == workingSet) {
-                setWorkingSet(null);
-            } else if (IWorkingSetManager.CHANGE_WORKING_SET_NAME_CHANGE
-                    .equals(property)
-                    && newValue == workingSet) {
-                updateTitle();
-            } 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);
-					}
-				} else {
-					// we've gone from empty to non-empty on our set.
-					// Restore it.
-					if (emptyWorkingSet) {
-					    emptyWorkingSet = false;
-						workingSetFilter.setWorkingSet(workingSet);
-					}
-				}
-				getViewer().refresh();
-            }
-        }
-    };
-
-    /**
-     * Constructs a new resource navigator view.
-     */
-    public ResourceNavigator() {
-        IDialogSettings viewsSettings = getPlugin().getDialogSettings();
-
-        settings = viewsSettings.getSection(STORE_SECTION);
-        if (settings == null) {
-            settings = viewsSettings.addNewSection(STORE_SECTION);
-            migrateDialogSettings();
-        }
-
-        initLinkingEnabled();
-    }
-
-    /**
-     * Converts the given selection into a form usable by the viewer,
-     * where the elements are resources.
-     */
-    private 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) {
-        TreeViewer viewer = createViewer(parent);
-        this.viewer = viewer;
-
-        if (memento != null) {
-            restoreFilters();
-            restoreLinkingEnabled();
-        }
-        frameList = createFrameList();
-        initDragAndDrop();
-        updateTitle();
-
-        initContextMenu();
-
-        initResourceComparator();
-        initWorkingSetFilter();
-
-        // make sure input is set after sorters and filters,
-        // to avoid unnecessary refreshes
-        viewer.setInput(getInitialInput());
-
-        // make actions after setting input, because some actions
-        // look at the viewer for enablement (e.g. the Up action)
-        makeActions();
-
-        // Fill the action bars and update the global action handlers'
-        // enabled state to match the current selection.
-        getActionGroup().fillActionBars(getViewSite().getActionBars());
-        updateActionBars((IStructuredSelection) viewer.getSelection());
-
-        getSite().setSelectionProvider(viewer);
-        getSite().getPage().addPartListener(partListener);
-        IWorkingSetManager workingSetManager = getPlugin().getWorkbench()
-                .getWorkingSetManager();
-        workingSetManager.addPropertyChangeListener(propertyChangeListener);
-
-        if (memento != null) {
-			restoreState(memento);
-		}
-        memento = null;
-
-        // Set help for the view 
-        getSite().getWorkbenchWindow().getWorkbench().getHelpSystem().setHelp(
-				viewer.getControl(), getHelpContextId());
-    }
-
-    /**
-     * Returns the help context id to use for this view.
-     * 
-     * @since 2.0
-     */
-    protected String getHelpContextId() {
-        return INavigatorHelpContextIds.RESOURCE_VIEW;
-    }
-
-    /**
-     * Initializes and registers the context menu.
-     * 
-     * @since 2.0
-     */
-    protected void initContextMenu() {
-        MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-        menuMgr.setRemoveAllWhenShown(true);
-        menuMgr.addMenuListener(new IMenuListener() {
-            public void menuAboutToShow(IMenuManager manager) {
-                ResourceNavigator.this.fillContextMenu(manager);
-            }
-        });
-        TreeViewer viewer = getTreeViewer();
-        Menu menu = menuMgr.createContextMenu(viewer.getTree());
-        viewer.getTree().setMenu(menu);
-        getSite().registerContextMenu(menuMgr, viewer);
-    }
-
-    /**
-     * Creates the viewer.
-     * 
-     * @param parent the parent composite
-     * @since 2.0
-     */
-    protected TreeViewer createViewer(Composite parent) {
-        TreeViewer viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL
-                | SWT.V_SCROLL);
-        viewer.setUseHashlookup(true);
-        initContentProvider(viewer);
-        initLabelProvider(viewer);
-        initFilters(viewer);
-        initListeners(viewer);
-
-        return viewer;
-    }
-
-    /**
-     * Sets the content provider for the viewer.
-     * 
-     * @param viewer the viewer
-     * @since 2.0
-     */
-    protected void initContentProvider(TreeViewer viewer) {
-        viewer.setContentProvider(new WorkbenchContentProvider());
-    }
-
-    /**
-     * Sets the label provider for the viewer.
-     * 
-     * @param viewer the viewer
-     * @since 2.0
-     */
-    protected void initLabelProvider(TreeViewer viewer) {
-        viewer.setLabelProvider(new DecoratingLabelProvider(
-                new WorkbenchLabelProvider(), getPlugin().getWorkbench()
-                        .getDecoratorManager().getLabelDecorator()));
-    }
-
-    /**
-     * Adds the filters to the viewer.
-     * 
-     * @param viewer the viewer
-     * @since 2.0
-     */
-    protected void initFilters(TreeViewer viewer) {
-        viewer.addFilter(patternFilter);
-        viewer.addFilter(workingSetFilter);
-    }
-
-    /**
-     * Initializes the linking enabled setting from the preference store.
-     */
-    private void initLinkingEnabled() {
-        // Try the dialog settings first, which remember the last choice.
-        String setting = settings
-                .get(IWorkbenchPreferenceConstants.LINK_NAVIGATOR_TO_EDITOR);
-        if (setting != null) {
-            linkingEnabled = setting.equals("true"); //$NON-NLS-1$
-            return;
-        }
-        // If not in the dialog settings, check the preference store for the default setting. 
-        // Use the UI plugin's preference store since this is a public preference.
-        AbstractUIPlugin uiPlugin = (AbstractUIPlugin) Platform
-                .getPlugin(PlatformUI.PLUGIN_ID);
-        linkingEnabled = uiPlugin.getPreferenceStore().getBoolean(
-                IWorkbenchPreferenceConstants.LINK_NAVIGATOR_TO_EDITOR);
-    }
-
-    /**
-     * Adds the listeners to the viewer.
-     * 
-     * @param viewer the viewer
-     * @since 2.0
-     */
-    protected void initListeners(TreeViewer viewer) {
-        viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-            public void selectionChanged(SelectionChangedEvent event) {
-                handleSelectionChanged(event);
-            }
-        });
-        viewer.addDoubleClickListener(new IDoubleClickListener() {
-            public void doubleClick(DoubleClickEvent event) {
-                handleDoubleClick(event);
-            }
-        });
-        viewer.addOpenListener(new IOpenListener() {
-            public void open(OpenEvent event) {
-                handleOpen(event);
-            }
-        });
-        viewer.getControl().addKeyListener(new KeyListener() {
-            public void keyPressed(KeyEvent event) {
-                handleKeyPressed(event);
-            }
-
-            public void keyReleased(KeyEvent event) {
-                handleKeyReleased(event);
-            }
-        });
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart.
-     */
-    public void dispose() {
-        getSite().getPage().removePartListener(partListener);
-
-        IWorkingSetManager workingSetManager = getPlugin().getWorkbench()
-                .getWorkingSetManager();
-        workingSetManager.removePropertyChangeListener(propertyChangeListener);
-
-        if (getActionGroup() != null) {
-            getActionGroup().dispose();
-        }
-        Control control = viewer.getControl();
-        if (dragDetectListener != null && control != null
-                && control.isDisposed() == false) {
-            control.removeListener(SWT.DragDetect, dragDetectListener);
-        }
-        super.dispose();
-    }
-
-    /**
-     * An editor has been activated.  Sets the selection in this navigator
-     * to be the editor's input, if linking is enabled.
-     * 
-     * @param editor the active editor
-     * @since 2.0
-     */
-    protected void editorActivated(IEditorPart editor) {
-        if (!isLinkingEnabled()) {
-            return;
-        }
-
-        IFile file = ResourceUtil.getFile(editor.getEditorInput());
-        if (file != null) {
-            ISelection newSelection = new StructuredSelection(file);
-            if (getTreeViewer().getSelection().equals(newSelection)) {
-                getTreeViewer().getTree().showSelection();
-            } else {
-                getTreeViewer().setSelection(newSelection, true);
-            }
-        }
-    }
-
-    /**
-     * Called when the context menu is about to open.
-     * Delegates to the action group using the viewer's selection as the action context.
-     * @since 2.0
-     */
-    protected void fillContextMenu(IMenuManager menu) {
-        IStructuredSelection selection = (IStructuredSelection) getViewer()
-                .getSelection();
-        getActionGroup().setContext(new ActionContext(selection));
-        getActionGroup().fillContextMenu(menu);
-    }
-
-    /*
-     * @see IResourceNavigatorPart
-     * @since 2.0
-     */
-    public FrameList getFrameList() {
-        return frameList;
-    }
-
-    /** 
-     * Returns the initial input for the viewer.
-     * Tries to convert the page 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.
-     * 
-     * @since 2.0
-     */
-    protected IAdaptable getInitialInput() {
-        IAdaptable input = getSite().getPage().getInput();
-        if (input != null) {
-            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 resource;
-                default:
-                    // Unknown resource type.  Fall through.
-                    break;
-                }
-            }
-        }
-        return ResourcesPlugin.getWorkspace().getRoot();
-    }
-
-    /**
-     * Returns the pattern filter for this view.
-     *
-     * @return the pattern filter
-     * @since 2.0
-     */
-    public ResourcePatternFilter getPatternFilter() {
-        return this.patternFilter;
-    }
-
-    /**
-     * Returns the working set for this view.
-     *
-     * @return the working set
-     * @since 2.0
-     */
-    public IWorkingSet getWorkingSet() {
-        return workingSetFilter.getWorkingSet();
-    }
-
-    /**
-     * Returns the navigator's plugin.
-     * @return the UI plugin for this bundle
-     */
-    public AbstractUIPlugin getPlugin() {
-        return IDEWorkbenchPlugin.getDefault();
-    }
-
-    /**
-     * Return the sorter.
-     * 
-     * @since 2.0
-     * @deprecated as of 3.3, use {@link ResourceNavigator#getComparator()}
-     */
-    public ResourceSorter getSorter() {
-        return (ResourceSorter) getTreeViewer().getSorter();
-    }
-
-    /**
-     * Returns the comparator.
-     * 
-     * @return the <code>ResourceComparator</code>
-     * @since 3.3
-     */
-
-    public ResourceComparator getComparator(){
-    	return (ResourceComparator) getTreeViewer().getComparator();
-    }
-    /**
-     * Returns the resource viewer which shows the resource hierarchy.
-     * @since 2.0
-     */
-    public TreeViewer getViewer() {
-        return viewer;
-    }
-
-    /**
-     * Returns the tree viewer which shows the resource hierarchy.
-     * @return the tree viewer
-     * @since 2.0
-     */
-    public TreeViewer getTreeViewer() {
-        return viewer;
-    }
-
-    /**
-     * Returns the shell to use for opening dialogs.
-     * Used in this class, and in the actions.
-     * 
-     * @return the shell
-     * @deprecated use getViewSite().getShell()
-     */
-    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
-     * @since 2.0
-     */
-    protected String getStatusLineMessage(IStructuredSelection selection) {
-        if (selection.size() == 1) {
-            Object o = selection.getFirstElement();
-            if (o instanceof IResource) {
-                return ((IResource) o).getFullPath().makeRelative().toString();
-            } 
-            return ResourceNavigatorMessages.ResourceNavigator_oneItemSelected;
-        }
-        if (selection.size() > 1) {
-            return NLS.bind(ResourceNavigatorMessages.ResourceNavigator_statusLine, String.valueOf(selection.size()));
-        }
-        return ""; //$NON-NLS-1$
-    }
-
-    /**
-     * Returns the name for the given element.
-     * Used as the name for the current frame. 
-     */
-    String getFrameName(Object element) {
-        if (element instanceof IResource) {
-			return ((IResource) element).getName();
-		}
-        String text = ((ILabelProvider) getTreeViewer().getLabelProvider())
-        .getText(element);
-        if(text == null) {
-			return "";//$NON-NLS-1$
-		}
-        return text;
-    }
-
-    /**
-     * Returns the tool tip text for the given element.
-     * Used as the tool tip text for the current frame, and for the view title tooltip.
-     */
-    String getFrameToolTipText(Object element) {
-        if (element instanceof IResource) {
-            IPath path = ((IResource) element).getFullPath();
-            if (path.isRoot()) {
-				return ResourceNavigatorMessages.ResourceManager_toolTip;
-			}
-            return path.makeRelative().toString();
-        } 
-        
-        String text = ((ILabelProvider) getTreeViewer().getLabelProvider())
-        	.getText(element);
-        if(text == null) {
-			return "";//$NON-NLS-1$
-		}
-        return text;
-    }
-
-    /**
-     * Handles an open event from the viewer.
-     * Opens an editor on the selected file.
-     * 
-     * @param event the open event
-     * @since 2.0
-     */
-    protected void handleOpen(OpenEvent event) {
-        IStructuredSelection selection = (IStructuredSelection) event
-                .getSelection();
-        getActionGroup().runDefaultAction(selection);
-    }
-
-    /**
-     * Handles a double-click event from the viewer.
-     * Expands or collapses a folder when double-clicked.
-     * 
-     * @param event the double-click event
-     * @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
-        TreeViewer viewer = getTreeViewer();
-        if (viewer.isExpandable(element)) {
-            viewer.setExpandedState(element, !viewer.getExpandedState(element));
-        }
-
-    }
-
-    /**
-     * Handles a selection changed event from the viewer.
-     * Updates the status line and the action bars, and links to editor (if option enabled).
-     * 
-     * @param event the selection event
-     * @since 2.0
-     */
-    protected void handleSelectionChanged(SelectionChangedEvent event) {
-        final IStructuredSelection sel = (IStructuredSelection) event
-                .getSelection();
-        updateStatusLine(sel);
-        updateActionBars(sel);
-        dragDetected = false;
-        if (isLinkingEnabled() && !linkScheduled) {
-            // Ensure that if another selection change arrives while we're waiting for the *syncExec,
-            // we only do this work once.
-            linkScheduled = true;
-            getShell().getDisplay().asyncExec(new Runnable() {
-                public void run() {
-                    // There's no telling what might have changed since the syncExec was scheduled.
-                    // Check to make sure that the widgets haven't been disposed.
-                    linkScheduled = false;
-                    
-                    if (viewer == null || viewer.getControl() == null || viewer.getControl().isDisposed()) {
-                        return;
-                    }
-                    
-                    if (dragDetected == false) {
-                        ISelection sel = viewer.getSelection();
-                        if (sel instanceof IStructuredSelection) {
-                            IStructuredSelection selection = (IStructuredSelection)sel;
-                        
-                            // only synchronize with editor when the selection is not the result 
-                            // of a drag. Fixes bug 22274.
-                            linkToEditor(selection);
-                        }
-                    }
-                }
-            });
-        }
-    }
-
-    /**
-     * Handles a key press event from the viewer.
-     * Delegates to the action group.
-     * 
-     * @param event the key event
-     * @since 2.0
-     */
-    protected void handleKeyPressed(KeyEvent event) {
-        getActionGroup().handleKeyPressed(event);
-    }
-
-    /**
-     * Handles a key release in the viewer.  Does nothing by default.
-     * 
-     * @param event the key event
-     * @since 2.0
-     */
-    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;
-    }
-
-    /**
-     * Adds drag and drop support to the navigator.
-     * 
-     * @since 2.0
-     */
-    protected void initDragAndDrop() {
-        int ops = DND.DROP_COPY | DND.DROP_MOVE;
-        Transfer[] transfers = new Transfer[] {
-                LocalSelectionTransfer.getInstance(),
-                ResourceTransfer.getInstance(), FileTransfer.getInstance(),
-                PluginTransfer.getInstance() };
-        TreeViewer viewer = getTreeViewer();
-        viewer.addDragSupport(ops, transfers, new NavigatorDragAdapter(viewer));
-        NavigatorDropAdapter adapter = new NavigatorDropAdapter(viewer);
-        adapter.setFeedbackEnabled(false);
-        viewer.addDropSupport(ops | DND.DROP_DEFAULT, transfers, adapter);
-        dragDetectListener = new Listener() {
-            public void handleEvent(Event event) {
-                dragDetected = true;
-            }
-        };
-        viewer.getControl().addListener(SWT.DragDetect, dragDetectListener);
-    }
-
-    /**
-     * Creates the frame source and frame list, and connects them.
-     * 
-     * @since 2.0
-     */
-    protected FrameList createFrameList() {
-        NavigatorFrameSource frameSource = new NavigatorFrameSource(this);
-        FrameList frameList = new FrameList(frameSource);
-        frameSource.connectTo(frameList);
-        return frameList;
-    }
-
-    /**
-     * Initializes the sorter.
-     * 
-     * @deprecated as of 3.3, use {@link ResourceNavigator#initResourceComparator()} instead
-     */
-    protected void initResourceSorter() {
-        int sortType = ResourceSorter.NAME;
-        try {
-            int sortInt = 0;
-            if (memento != null) {
-                String sortStr = memento.getString(TAG_SORTER);
-                if (sortStr != null) {
-					sortInt = new Integer(sortStr).intValue();
-				}
-            } else {
-                sortInt = settings.getInt(STORE_SORT_TYPE);
-            }
-            if (sortInt == ResourceSorter.NAME
-                    || sortInt == ResourceSorter.TYPE) {
-				sortType = sortInt;
-			}
-        } catch (NumberFormatException e) {
-        }
-        setSorter(new ResourceSorter(sortType));
-    }
-    
-    /**
-     * Initializes the comparator.
-	 * @since 3.3
-     */
-    protected void initResourceComparator(){
-        int sortType = ResourceComparator.NAME;
-        try {
-            int sortInt = 0;
-            if (memento != null) {
-                String sortStr = memento.getString(TAG_SORTER);
-                if (sortStr != null) {
-					sortInt = new Integer(sortStr).intValue();
-				}
-            } else {
-                sortInt = settings.getInt(STORE_SORT_TYPE);
-            }
-            if (sortInt == ResourceComparator.NAME
-                    || sortInt == ResourceComparator.TYPE) {
-				sortType = sortInt;
-			}
-        } catch (NumberFormatException e) {
-        }
-        setComparator(new ResourceComparator(sortType));
-    }
-
-    /**
-     * Restores the working set filter from the persistence store.
-     */
-    protected void initWorkingSetFilter() {
-        String workingSetName = settings.get(STORE_WORKING_SET);
-
-        IWorkingSet workingSet = null;
-        
-        if (workingSetName != null && workingSetName.equals("") == false) { //$NON-NLS-1$
-			IWorkingSetManager workingSetManager = getPlugin().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 = getSite().getPage().getAggregateWorkingSet();
-		}
-
-		if (workingSet != null) {
-			// Only initialize filter. Don't set working set into viewer.
-			// Working set is set via WorkingSetFilterActionGroup
-			// during action creation.
-			workingSetFilter.setWorkingSet(workingSet);
-			internalSetWorkingSet(workingSet);
-		}
-    }
-
-    /**
-	 * Returns whether the navigator selection automatically tracks the active
-	 * editor.
-	 * 
-	 * @return <code>true</code> if linking is enabled, <code>false</code>
-	 *         if not
-	 * @since 2.0 (this was protected in 2.0, but was made public in 2.1)
-	 */
-    public boolean isLinkingEnabled() {
-        return linkingEnabled;
-    }
-
-    /**
-     * Brings the corresponding editor to top if the selected resource is open.
-     * 
-     * @since 2.0
-     */
-    protected void linkToEditor(IStructuredSelection selection) {
-
-    	if (this != this.getSite().getPage().getActivePart())
-    		return;
-    	
-        Object obj = selection.getFirstElement();
-        if (obj instanceof IFile && selection.size() == 1) {
-            IFile file = (IFile) obj;
-            IWorkbenchPage page = getSite().getPage();
-            IEditorPart editor = ResourceUtil.findEditor(page, file);
-            if (editor != null) {
-                page.bringToTop(editor);
-                return;
-            }
-        }   
-    }
-
-    /**
-     * Creates the action group, which encapsulates all actions for the view.
-     */
-    protected void makeActions() {
-        setActionGroup(new MainActionGroup(this));
-    }
-
-    /**
-     * Migrates the dialog settings from the UI plugin store to the 
-     * Views plugin store.
-     */
-    private void migrateDialogSettings() {
-        AbstractUIPlugin uiPlugin = (AbstractUIPlugin) Platform
-                .getPlugin(PlatformUI.PLUGIN_ID);
-        IDialogSettings uiSettings = uiPlugin.getDialogSettings();
-
-        uiSettings = uiSettings.getSection(STORE_SECTION);
-        if (uiSettings != null) {
-            String workingSetName = uiSettings.get(STORE_WORKING_SET);
-            if (workingSetName != null && workingSetName.length() > 0) {
-                settings.put(STORE_WORKING_SET, workingSetName);
-                uiSettings.put(STORE_WORKING_SET, ""); //$NON-NLS-1$
-            }
-            String sortType = uiSettings.get(STORE_SORT_TYPE);
-            if (sortType != null && sortType.length() > 0) {
-                settings.put(STORE_SORT_TYPE, sortType);
-                uiSettings.put(STORE_SORT_TYPE, ""); //$NON-NLS-1$
-            }
-        }
-    }
-
-    /**
-     * Restores the saved filter settings.
-     */
-    private void restoreFilters() {
-        IMemento filtersMem = memento.getChild(TAG_FILTERS);
-
-        if (filtersMem != null) { //filters have been defined
-            IMemento children[] = filtersMem.getChildren(TAG_FILTER);
-
-            // check if first element has new tag defined, indicates new version
-            if (children.length > 0
-                    && children[0].getString(TAG_IS_ENABLED) != null) {
-                ArrayList selectedFilters = new ArrayList();
-                ArrayList unSelectedFilters = new ArrayList();
-                for (int i = 0; i < children.length; i++) {
-                    if (children[i].getString(TAG_IS_ENABLED).equals(
-                            String.valueOf(true))) {
-						selectedFilters.add(children[i].getString(TAG_ELEMENT));
-					} else {
-						//enabled == false
-                        unSelectedFilters.add(children[i]
-                                .getString(TAG_ELEMENT));
-					}
-                }
-
-                /* merge filters from Memento with selected = true filters from plugins
-                 * ensure there are no duplicates & don't override user preferences	 */
-                List pluginFilters = FiltersContentProvider.getDefaultFilters();
-                for (Iterator iter = pluginFilters.iterator(); iter.hasNext();) {
-                    String element = (String) iter.next();
-                    if (!selectedFilters.contains(element)
-                            && !unSelectedFilters.contains(element)) {
-						selectedFilters.add(element);
-					}
-                }
-
-                //Convert to an array of Strings
-                String[] patternArray = new String[selectedFilters.size()];
-                selectedFilters.toArray(patternArray);
-                getPatternFilter().setPatterns(patternArray);
-
-            } else { //filters defined, old version: ignore filters from plugins
-                String filters[] = new String[children.length];
-                for (int i = 0; i < children.length; i++) {
-                    filters[i] = children[i].getString(TAG_ELEMENT);
-                }
-                getPatternFilter().setPatterns(filters);
-            }
-        } else { //no filters defined, old version: ignore filters from plugins
-            getPatternFilter().setPatterns(new String[0]);
-        }
-    }
-
-    /**
-     * Restores the state of the receiver to the state described in the specified memento.
-     *
-     * @param memento the memento
-     * @since 2.0
-     */
-    protected void restoreState(IMemento memento) {
-        TreeViewer viewer = getTreeViewer();
-        IMemento frameMemento = memento.getChild(TAG_CURRENT_FRAME);
-
-        if (frameMemento != null) {
-            TreeFrame frame = new TreeFrame(viewer);
-            frame.restoreState(frameMemento);
-            frame.setName(getFrameName(frame.getInput()));
-            frame.setToolTipText(getFrameToolTipText(frame.getInput()));
-            viewer.setSelection(new StructuredSelection(frame.getInput()));
-            frameList.gotoFrame(frame);
-        } else {
-            IContainer container = ResourcesPlugin.getWorkspace().getRoot();
-            IMemento childMem = memento.getChild(TAG_EXPANDED);
-            if (childMem != null) {
-                ArrayList elements = new ArrayList();
-                IMemento[] elementMem = childMem.getChildren(TAG_ELEMENT);
-                for (int i = 0; i < elementMem.length; i++) {
-                    Object element = container.findMember(elementMem[i]
-                            .getString(TAG_PATH));
-                    if (element != null) {
-                        elements.add(element);
-                    }
-                }
-                viewer.setExpandedElements(elements.toArray());
-            }
-            childMem = memento.getChild(TAG_SELECTION);
-            if (childMem != null) {
-                ArrayList list = new ArrayList();
-                IMemento[] elementMem = childMem.getChildren(TAG_ELEMENT);
-                for (int i = 0; i < elementMem.length; i++) {
-                    Object element = container.findMember(elementMem[i]
-                            .getString(TAG_PATH));
-                    if (element != null) {
-                        list.add(element);
-                    }
-                }
-                viewer.setSelection(new StructuredSelection(list));
-            }
-        }
-    }
-
-    /**
-     * Restores the linking enabled state.
-     */
-    private void restoreLinkingEnabled() {
-        Integer val = memento
-                .getInteger(IWorkbenchPreferenceConstants.LINK_NAVIGATOR_TO_EDITOR);
-        if (val != null) {
-            linkingEnabled = val.intValue() != 0;
-        }
-    }
-
-    /**	
-     * @see ViewPart#saveState
-     */
-    public void saveState(IMemento memento) {
-        TreeViewer viewer = getTreeViewer();
-        if (viewer == null) {
-            if (this.memento != null) {
-				memento.putMemento(this.memento);
-			}
-            return;
-        }
-
-        //save sorter
-        memento.putInteger(TAG_SORTER, getComparator().getCriteria());
-
-        //save filters
-        String filters[] = getPatternFilter().getPatterns();
-        List selectedFilters = Arrays.asList(filters);
-        List allFilters = FiltersContentProvider.getDefinedFilters();
-        IMemento filtersMem = memento.createChild(TAG_FILTERS);
-        for (Iterator iter = allFilters.iterator(); iter.hasNext();) {
-            String element = (String) iter.next();
-            IMemento child = filtersMem.createChild(TAG_FILTER);
-            child.putString(TAG_ELEMENT, element);
-            child.putString(TAG_IS_ENABLED, String.valueOf(selectedFilters
-                    .contains(element)));
-        }
-
-        if (frameList.getCurrentIndex() > 0) {
-            //save frame, it's not the "home"/workspace frame
-            TreeFrame currentFrame = (TreeFrame) frameList.getCurrentFrame();
-            IMemento frameMemento = memento.createChild(TAG_CURRENT_FRAME);
-            currentFrame.saveState(frameMemento);
-        } else {
-            //save visible expanded elements
-            Object expandedElements[] = viewer.getVisibleExpandedElements();
-            if (expandedElements.length > 0) {
-                IMemento expandedMem = memento.createChild(TAG_EXPANDED);
-                for (int i = 0; i < expandedElements.length; i++) {
-                    if (expandedElements[i] instanceof IResource) {
-                        IMemento elementMem = expandedMem
-                                .createChild(TAG_ELEMENT);
-                        elementMem.putString(TAG_PATH,
-                                ((IResource) expandedElements[i]).getFullPath()
-                                        .toString());
-                    }
-                }
-            }
-            //save selection
-            Object elements[] = ((IStructuredSelection) viewer.getSelection())
-                    .toArray();
-            if (elements.length > 0) {
-                IMemento selectionMem = memento.createChild(TAG_SELECTION);
-                for (int i = 0; i < elements.length; i++) {
-                    if (elements[i] instanceof IResource) {
-                        IMemento elementMem = selectionMem
-                                .createChild(TAG_ELEMENT);
-                        elementMem.putString(TAG_PATH,
-                                ((IResource) elements[i]).getFullPath()
-                                        .toString());
-                    }
-                }
-            }
-        }
-
-        saveLinkingEnabled(memento);
-    }
-
-    /**
-     * Saves the linking enabled state.
-     */
-    private void saveLinkingEnabled(IMemento memento) {
-        memento.putInteger(
-                IWorkbenchPreferenceConstants.LINK_NAVIGATOR_TO_EDITOR,
-                linkingEnabled ? 1 : 0);
-    }
-
-    /**
-     * Selects and reveals the specified elements.
-     */
-    public void selectReveal(ISelection selection) {
-        StructuredSelection ssel = convertSelection(selection);
-        if (!ssel.isEmpty()) {
-            getViewer().getControl().setRedraw(false);
-            getViewer().setSelection(ssel, true);
-            getViewer().getControl().setRedraw(true);
-        }
-    }
-
-    /**
-     * Saves the filters defined as strings in <code>patterns</code> 
-     * in the preference store.
-     */
-    public void setFiltersPreference(String[] patterns) {
-
-        StringBuffer sb = new StringBuffer();
-
-        for (int i = 0; i < patterns.length; i++) {
-            if (i != 0) {
-				sb.append(ResourcePatternFilter.COMMA_SEPARATOR);
-			}
-            sb.append(patterns[i]);
-        }
-
-        getPlugin().getPreferenceStore().setValue(
-                ResourcePatternFilter.FILTERS_TAG, sb.toString());
-
-        // remove value in old workbench preference store location 
-        IPreferenceStore preferenceStore = IDEWorkbenchPlugin.getDefault()
-                .getPreferenceStore();
-        String storedPatterns = preferenceStore
-                .getString(ResourcePatternFilter.FILTERS_TAG);
-        if (storedPatterns.length() > 0) {
-			preferenceStore.setValue(ResourcePatternFilter.FILTERS_TAG, ""); //$NON-NLS-1$
-		}
-    }
-
-    /**
-     * @see IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        getTreeViewer().getTree().setFocus();
-    }
-
-    /**
-     * Note: For experimental use only.
-     * Sets the decorator for the navigator.
-     * <p>
-     * As of 2.0, this method no longer has any effect.
-     * </p>
-     *
-     * @param decorator a label decorator or <code>null</code> for no decorations.
-     * @deprecated use the decorators extension point instead; see IWorkbench.getDecoratorManager()
-     */
-    public void setLabelDecorator(ILabelDecorator decorator) {
-        // do nothing
-    }
-
-    /**
-     * @see IResourceNavigator#setLinkingEnabled(boolean)
-     * @since 2.1
-     */
-    public void setLinkingEnabled(boolean enabled) {
-        this.linkingEnabled = enabled;
-
-        // remember the last setting in the dialog settings		
-        settings.put(IWorkbenchPreferenceConstants.LINK_NAVIGATOR_TO_EDITOR,
-                enabled);
-
-        // if turning linking on, update the selection to correspond to the active editor
-        if (enabled) {
-            IEditorPart editor = getSite().getPage().getActiveEditor();
-            if (editor != null) {
-                editorActivated(editor);
-            }
-        }
-    }
-
-    /**
-     * Sets the resource sorter.
-     * 
-     * @param sorter the resource sorter
-     * @since 2.0
-     * @deprecated as of 3.3, use {@link ResourceNavigator#setComparator(ResourceComparator)}
-     */
-    public void setSorter(ResourceSorter sorter) {
-        TreeViewer viewer = getTreeViewer();
-        ViewerSorter viewerSorter = viewer.getSorter();
-
-        viewer.getControl().setRedraw(false);
-        if (viewerSorter == sorter) {
-            viewer.refresh();
-        } else {
-            viewer.setSorter(sorter);
-        }
-        viewer.getControl().setRedraw(true);
-        settings.put(STORE_SORT_TYPE, sorter.getCriteria());
-
-        // update the sort actions' checked state
-        updateActionBars((IStructuredSelection) viewer.getSelection());
-    }
-    
-    /**
-     * Sets the resource comparator
-     * 
-     * @param comparator the resource comparator
-     * @since 3.3
-     */
-    public void setComparator(ResourceComparator comparator){
-        TreeViewer viewer = getTreeViewer();
-        ViewerComparator viewerComparator = viewer.getComparator();
-
-        viewer.getControl().setRedraw(false);
-        if (viewerComparator == comparator) {
-            viewer.refresh();
-        } else {
-            viewer.setComparator(comparator);
-        }
-        viewer.getControl().setRedraw(true);
-        settings.put(STORE_SORT_TYPE, comparator.getCriteria());
-
-        // update the sort actions' checked state
-        updateActionBars((IStructuredSelection) viewer.getSelection());   	
-    }
-
-    /*
-     * @see org.eclipse.ui.views.navigator.IResourceNavigatorPart#setWorkingSet(IWorkingSet)
-     * @since 2.0
-     */
-    public void setWorkingSet(IWorkingSet workingSet) {
-        TreeViewer treeViewer = getTreeViewer();
-        Object[] expanded = treeViewer.getExpandedElements();
-        ISelection selection = treeViewer.getSelection();
-        
-        internalSetWorkingSet(workingSet);
-        
-        workingSetFilter.setWorkingSet(emptyWorkingSet ? null : workingSet);
-        if (workingSet != null) {
-            settings.put(STORE_WORKING_SET, workingSet.getName());
-        } else {
-            settings.put(STORE_WORKING_SET, ""); //$NON-NLS-1$
-        }
-        updateTitle();
-        treeViewer.refresh();
-        treeViewer.setExpandedElements(expanded);
-        if (selection.isEmpty() == false
-                && selection instanceof IStructuredSelection) {
-            IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-            treeViewer.reveal(structuredSelection.getFirstElement());
-        }
-    }
-
-	/**
-	 * Set the internal working set fields specific to the navigator.
-	 * 
-	 * @param workingSet
-	 *            the new working set
-	 * @since 3.2
-	 */
-	private void internalSetWorkingSet(IWorkingSet workingSet) {
-		this.workingSet = workingSet;
-		emptyWorkingSet = workingSet != null && workingSet.isAggregateWorkingSet() 
-				&& workingSet.isEmpty();
-	}
-
-    /**
-     * Updates the action bar actions.
-     * 
-     * @param selection the current selection
-     * @since 2.0
-     */
-    protected void updateActionBars(IStructuredSelection selection) {
-        ResourceNavigatorActionGroup group = getActionGroup();
-        if (group != null) {
-            group.setContext(new ActionContext(selection));
-            group.updateActionBars();
-        }
-    }
-
-    /**
-     * Updates the message shown in the status line.
-     *
-     * @param selection the current selection
-     */
-    protected 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.
-     * Called whenever the input of the viewer changes.
-     * 
-     * @since 2.0
-     */
-    public void updateTitle() {
-        Object input = getViewer().getInput();
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        IWorkingSet workingSet = workingSetFilter.getWorkingSet();
-
-        if (input == null || input.equals(workspace)
-                || input.equals(workspace.getRoot())) {
-            setContentDescription(""); //$NON-NLS-1$
-            if (workingSet != null) {
-                setTitleToolTip(NLS.bind(ResourceNavigatorMessages.ResourceNavigator_workingSetToolTip, workingSet.getLabel()));
-            } else {
-                setTitleToolTip(""); //$NON-NLS-1$
-            }
-        } else {
-            ILabelProvider labelProvider = (ILabelProvider) getTreeViewer()
-                    .getLabelProvider();
-            String inputToolTip = getFrameToolTipText(input);
-            String text = labelProvider.getText(input);
-            if(text != null) {
-				setContentDescription(text);
-			}
-            if (workingSet != null) {
-                setTitleToolTip(NLS.bind(ResourceNavigatorMessages.ResourceNavigator_workingSetInputToolTip, inputToolTip, workingSet.getLabel()));
-            } else {
-                setTitleToolTip(inputToolTip);
-            }
-        }
-    }
-
-    /**
-     * Returns the action group.
-     * 
-     * @return the action group
-     */
-    protected ResourceNavigatorActionGroup getActionGroup() {
-        return actionGroup;
-    }
-
-    /**
-     * Sets the action group.
-     * 
-     * @param actionGroup the action group
-     */
-    protected void setActionGroup(ResourceNavigatorActionGroup actionGroup) {
-        this.actionGroup = actionGroup;
-    }
-
-    /*
-     * @see IWorkbenchPart#getAdapter(Class)
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IShowInSource.class) {
-            return getShowInSource();
-        }
-        if (adapter == IShowInTarget.class) {
-            return getShowInTarget();
-        }
-        return null;
-    }
-
-    /**
-     * Returns the <code>IShowInSource</code> for this view.
-     */
-    protected IShowInSource getShowInSource() {
-        return new IShowInSource() {
-            public ShowInContext getShowInContext() {
-                return new ShowInContext(getViewer().getInput(), getViewer()
-                        .getSelection());
-            }
-        };
-    }
-
-    /**
-     * Returns the <code>IShowInTarget</code> for this view.
-     */
-    protected IShowInTarget getShowInTarget() {
-        return new IShowInTarget() {
-            public boolean show(ShowInContext context) {
-                ArrayList toSelect = new ArrayList();
-                ISelection sel = context.getSelection();
-                if (sel instanceof IStructuredSelection) {
-                    IStructuredSelection ssel = (IStructuredSelection) sel;
-                    for (Iterator i = ssel.iterator(); i.hasNext();) {
-                        Object o = i.next();
-                        if (o instanceof IResource) {
-                            toSelect.add(o);
-                        } else if (o instanceof IMarker) {
-                            IResource r = ((IMarker) o).getResource();
-                            if (r.getType() != IResource.ROOT) {
-                                toSelect.add(r);
-                            }
-                        } else if (o instanceof IAdaptable) {
-                            IAdaptable adaptable = (IAdaptable) o;
-                            o = adaptable.getAdapter(IResource.class);
-                            if (o instanceof IResource) {
-                                toSelect.add(o);
-                            } else {
-                                o = adaptable.getAdapter(IMarker.class);
-                                if (o instanceof IMarker) {
-                                    IResource r = ((IMarker) o).getResource();
-                                    if (r.getType() != IResource.ROOT) {
-                                        toSelect.add(r);
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-                if (toSelect.isEmpty()) {
-                    Object input = context.getInput();
-                    if (input instanceof IAdaptable) {
-                        IAdaptable adaptable = (IAdaptable) input;
-                        Object o = adaptable.getAdapter(IResource.class);
-                        if (o instanceof IResource) {
-                            toSelect.add(o);
-                        }
-                    }
-                }
-                if (!toSelect.isEmpty()) {
-                    selectReveal(new StructuredSelection(toSelect));
-                    return true;
-                }
-                return false;
-            }
-        };
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorAction.java
deleted file mode 100644
index 64ddf70..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorAction.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.views.navigator;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.SelectionProviderAction;
-
-/**
- * Superclass of all actions provided by the resource navigator.
- */
-public abstract class ResourceNavigatorAction extends SelectionProviderAction {
-
-    private IResourceNavigator navigator;
-
-    /**
-     * Creates a new instance of the class.
-     */
-    public ResourceNavigatorAction(IResourceNavigator navigator, String label) {
-        super(navigator.getViewer(), label);
-        this.navigator = navigator;
-    }
-
-    /**
-     * Returns the resource navigator for which this action was created.
-     */
-    public IResourceNavigator getNavigator() {
-        return navigator;
-    }
-
-    /**
-     * Returns the resource viewer
-     */
-    protected Viewer getViewer() {
-        return getNavigator().getViewer();
-    }
-
-    /**
-     * Returns the shell to use within actions.
-     */
-    protected Shell getShell() {
-        return getNavigator().getSite().getShell();
-    }
-
-    /**
-     * Returns the workbench.
-     */
-    protected IWorkbench getWorkbench() {
-        return PlatformUI.getWorkbench();
-    }
-
-    /**
-     * Returns the workbench window.
-     */
-    protected IWorkbenchWindow getWorkbenchWindow() {
-        return getNavigator().getSite().getWorkbenchWindow();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorActionGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorActionGroup.java
deleted file mode 100644
index 05abd91..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorActionGroup.java
+++ /dev/null
@@ -1,85 +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 
- *        Sebastian Davids <sdavids@gmx.de> - Images for menu items (27481)
- *******************************************************************************/
-package org.eclipse.ui.views.navigator;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * This is the action group for all the resource navigator actions.
- * It delegates to several subgroups for most of the actions.
- * 
- * @see GotoActionGroup
- * @see OpenActionGroup
- * @see RefactorActionGroup
- * @see SortAndFilterActionGroup
- * @see WorkspaceActionGroup
- * 
- * @since 2.0
- */
-public abstract class ResourceNavigatorActionGroup extends ActionGroup {
-
-    /**
-     * The resource navigator.
-     */
-    protected IResourceNavigator navigator;
-	
-    /**
-     * Constructs a new navigator action group and creates its actions.
-     * 
-     * @param navigator the resource navigator
-     */
-    public ResourceNavigatorActionGroup(IResourceNavigator navigator) {
-        this.navigator = navigator;
-        makeActions();
-    }
-
-    /**
-     * Returns the image descriptor with the given relative path.
-     */
-    protected ImageDescriptor getImageDescriptor(String relativePath) {
-       return IDEWorkbenchPlugin.getIDEImageDescriptor(relativePath);
-     
-    }
-
-    /**
-     * Returns the resource navigator.
-     */
-    public IResourceNavigator getNavigator() {
-        return navigator;
-    }
-
-    /**
-     * Handles a key pressed event by invoking the appropriate action.
-     * Does nothing by default.
-     */
-    public void handleKeyPressed(KeyEvent event) {
-    }
-
-    /**
-     * Makes the actions contained in this action group.
-     */
-    protected abstract void makeActions();
-
-    /**
-     * Runs the default action in the group.
-     * Does nothing by default.
-     * 
-     * @param selection the current selection
-     */
-    public void runDefaultAction(IStructuredSelection selection) {
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorMessages.java
deleted file mode 100644
index 7020231..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorMessages.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.views.navigator;
-
-
-/**
- * Utility class which helps managing messages
- * @since 2.0
- * @deprecated These messages are not API and should not be referenced
- * outside of this plug-in.
- */
-public class ResourceNavigatorMessages {
-    
-	private ResourceNavigatorMessages() {
-        // 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 key;
-    }
-
-    /**
-     * 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) {
-        return key;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorMoveAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorMoveAction.java
deleted file mode 100644
index 8ed54ca..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorMoveAction.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.views.navigator;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.MoveProjectAction;
-import org.eclipse.ui.actions.MoveResourceAction;
-
-/**
- * The ResourceNavigatorMoveAction is a resource move that aso updates the navigator
- * to show the result of the move.
- * It also delegates to MoveProjectAction as needed.
- * 
- * @since 2.0
- */
-public class ResourceNavigatorMoveAction extends MoveResourceAction {
-    private StructuredViewer viewer;
-
-    private MoveProjectAction moveProjectAction;
-
-    /**
-     * Create a ResourceNavigatorMoveAction and use the supplied viewer to update the UI.
-     * @param shell Shell
-     * @param structureViewer StructuredViewer
-     */
-    public ResourceNavigatorMoveAction(Shell shell,
-            StructuredViewer structureViewer) {
-        super(shell);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                INavigatorHelpContextIds.RESOURCE_NAVIGATOR_MOVE_ACTION);
-        this.viewer = structureViewer;
-        this.moveProjectAction = new MoveProjectAction(shell);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAction.
-     */
-    public void run() {
-        if (moveProjectAction.isEnabled()) {
-            moveProjectAction.run();
-            return;
-        }
-
-        super.run();
-        List destinations = getDestinations();
-        if (destinations != null && destinations.isEmpty() == false) {
-            IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-            List resources = new ArrayList();
-            Iterator iterator = destinations.iterator();
-
-            while (iterator.hasNext()) {
-                IResource newResource = root
-                        .findMember((IPath) iterator.next());
-                if (newResource != null) {
-					resources.add(newResource);
-				}
-            }
-
-            this.viewer.setSelection(new StructuredSelection(resources), true);
-        }
-
-    }
-
-    protected boolean updateSelection(IStructuredSelection selection) {
-        moveProjectAction.selectionChanged(selection);
-        return super.updateSelection(selection)
-                || moveProjectAction.isEnabled();
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorRenameAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorRenameAction.java
deleted file mode 100644
index 83577f5..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceNavigatorRenameAction.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.views.navigator;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.RenameResourceAction;
-
-/**
- * The ResourceNavigatorRenameAction is the rename action used by the
- * ResourceNavigator that also allows updating after rename.
- * @since 2.0
- */
-public class ResourceNavigatorRenameAction extends RenameResourceAction {
-    private TreeViewer viewer;
-
-    /**
-     * Create a ResourceNavigatorRenameAction and use the tree of the supplied viewer
-     * for editing.
-     * @param shell Shell
-     * @param treeViewer TreeViewer
-     */
-    public ResourceNavigatorRenameAction(Shell shell, TreeViewer treeViewer) {
-        super(shell, treeViewer.getTree());
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                INavigatorHelpContextIds.RESOURCE_NAVIGATOR_RENAME_ACTION);
-        this.viewer = treeViewer;
-    }
-
-    /* (non-Javadoc)
-     * Run the action to completion using the supplied path.
-     */
-    protected void runWithNewPath(IPath path, IResource resource) {
-        IWorkspaceRoot root = resource.getProject().getWorkspace().getRoot();
-        super.runWithNewPath(path, resource);
-        if (this.viewer != null) {
-            IResource newResource = root.findMember(path);
-            if (newResource != null) {
-				this.viewer.setSelection(new StructuredSelection(newResource),
-                        true);
-			}
-        }
-    }
-
-    /**
-     * Handle the key release
-     */
-    public void handleKeyReleased(KeyEvent event) {
-        if (event.keyCode == SWT.F2 && event.stateMask == 0 && isEnabled()) {
-            run();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourcePatternFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourcePatternFilter.java
deleted file mode 100644
index 32f6792..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourcePatternFilter.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.navigator;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.util.PrefUtil;
-
-/**
- * Filter used to determine whether resources are to be shown or not.
- * 
- * @since 2.0
- */
-public class ResourcePatternFilter extends ViewerFilter {
-    private String[] patterns;
-
-    private StringMatcher[] matchers;
-
-    static final String COMMA_SEPARATOR = ",";//$NON-NLS-1$
-
-    static final String FILTERS_TAG = "resourceFilters";//$NON-NLS-1$
-
-    /**
-     * Creates a new resource pattern filter.
-     */
-    public ResourcePatternFilter() {
-        super();
-    }
-
-    /**
-     * Return the currently configured StringMatchers. If there aren't any look
-     * them up.
-     */
-    private StringMatcher[] getMatchers() {
-
-        if (this.matchers == null) {
-			initializeFromPreferences();
-		}
-
-        return this.matchers;
-    }
-
-    /**
-     * Gets the patterns for the receiver. Returns the cached values if there
-     * are any - if not look it up.
-     */
-    public String[] getPatterns() {
-
-        if (this.patterns == null) {
-			initializeFromPreferences();
-		}
-
-        return this.patterns;
-
-    }
-
-    /**
-     * Initializes the filters from the preference store.
-     */
-    private void initializeFromPreferences() {
-        // get the filters that were saved by ResourceNavigator.setFiltersPreference
-        IPreferenceStore viewsPrefs = IDEWorkbenchPlugin.getDefault()
-                .getPreferenceStore();
-        String storedPatterns = viewsPrefs.getString(FILTERS_TAG);
-
-        if (storedPatterns.length() == 0) {
-            // try to migrate patterns from old workbench preference store location
-            IPreferenceStore workbenchPrefs = PrefUtil.getInternalPreferenceStore();
-            storedPatterns = workbenchPrefs.getString(FILTERS_TAG);
-            if (storedPatterns.length() > 0) {
-                viewsPrefs.setValue(FILTERS_TAG, storedPatterns);
-                workbenchPrefs.setValue(FILTERS_TAG, ""); //$NON-NLS-1$
-            }
-        }
-
-        if (storedPatterns.length() == 0) {
-            // revert to all filter extensions with selected == "true"
-            // if there are no filters in the preference store
-            List defaultFilters = FiltersContentProvider.getDefaultFilters();
-            String[] patterns = new String[defaultFilters.size()];
-            defaultFilters.toArray(patterns);
-            setPatterns(patterns);
-            return;
-        }
-
-        //Get the strings separated by a comma and filter them from the currently
-        //defined ones
-        List definedFilters = FiltersContentProvider.getDefinedFilters();
-        StringTokenizer entries = new StringTokenizer(storedPatterns,
-                COMMA_SEPARATOR);
-        List patterns = new ArrayList();
-
-        while (entries.hasMoreElements()) {
-            String nextToken = entries.nextToken();
-            if (definedFilters.indexOf(nextToken) > -1) {
-				patterns.add(nextToken);
-			}
-        }
-
-        //Convert to an array of Strings
-        String[] patternArray = new String[patterns.size()];
-        patterns.toArray(patternArray);
-        setPatterns(patternArray);
-
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ViewerFilter.
-     */
-    public boolean select(Viewer viewer, Object parentElement, Object element) {
-        IResource resource = null;
-        if (element instanceof IResource) {
-            resource = (IResource) element;
-        } else if (element instanceof IAdaptable) {
-            IAdaptable adaptable = (IAdaptable) element;
-            resource = (IResource) adaptable.getAdapter(IResource.class);
-        }
-        if (resource != null) {
-            String name = resource.getName();
-            StringMatcher[] testMatchers = getMatchers();
-            for (int i = 0; i < testMatchers.length; i++) {
-                if (testMatchers[i].match(name)) {
-					return false;
-				}
-            }
-            return true;
-        }
-        return true;
-    }
-
-    /**
-     * Sets the patterns to filter out for the receiver.
-     */
-    public void setPatterns(String[] newPatterns) {
-
-        this.patterns = newPatterns;
-        this.matchers = new StringMatcher[newPatterns.length];
-        for (int i = 0; i < newPatterns.length; i++) {
-            //Reset the matchers to prevent constructor overhead
-            matchers[i] = new StringMatcher(newPatterns[i], true, false);
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceSelectionUtil.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceSelectionUtil.java
deleted file mode 100644
index f07aea0..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/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.views.navigator;
-
-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.ide/src/org/eclipse/ui/views/navigator/ResourceSorter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceSorter.java
deleted file mode 100644
index eec1e00..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ResourceSorter.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.navigator;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-/**
- * Sorter for viewers that display items of type <code>IResource</code>.
- * The sorter supports two sort criteria:
- * <p>
- * <code>NAME</code>: Folders are given order precedence, followed by files.
- * Within these two groups resources are ordered by name.  All name comparisons
- * are case-insensitive.
- * </p>
- * <p>
- * <code>TYPE</code>: Folders are given order precedence, followed by files.
- * Within these two groups resources are ordered by extension.  All extension
- * comparisons are case-insensitive.
- * </p>
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @deprecated as of 3.3, use {@link ResourceComparator} instead
- */
-public class ResourceSorter extends ViewerSorter {
-
-    /**
-     * Constructor argument value that indicates to sort items by name.
-     */
-    public final static int NAME = 1;
-
-    /**
-     * Constructor argument value that indicates to sort items by extension.
-     */
-    public final static int TYPE = 2;
-
-    private int criteria;
-
-    /**
-     * Creates a resource sorter that will use the given sort criteria.
-     *
-     * @param criteria the sort criterion to use: one of <code>NAME</code> or 
-     *   <code>TYPE</code>
-     */
-    public ResourceSorter(int criteria) {
-        super();
-        this.criteria = criteria;
-    }
-
-    /**
-     * Returns an integer value representing the relative sort priority of the 
-     * given element based on its class.
-     * <p>
-     * <ul>
-     *   <li>resources (<code>IResource</code>) - 2</li>
-     *   <li>project references (<code>ProjectReference</code>) - 1</li>
-     *   <li>everything else - 0</li>
-     * </ul>
-     * </p>
-     *
-     * @param element the element
-     * @return the sort priority (larger numbers means more important)
-     */
-    protected int classComparison(Object element) {
-        if (element instanceof IResource) {
-            return 2;
-        }
-        return 0;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ViewerSorter.
-     */
-    public int compare(Viewer viewer, Object o1, Object o2) {
-        //have to deal with non-resources in navigator
-        //if one or both objects are not resources, returned a comparison 
-        //based on class.
-        if (!(o1 instanceof IResource && o2 instanceof IResource)) {
-            return compareClass(o1, o2);
-        }
-        IResource r1 = (IResource) o1;
-        IResource r2 = (IResource) o2;
-
-        if (r1 instanceof IContainer && r2 instanceof IContainer) {
-			return compareNames(r1, r2);
-		} else if (r1 instanceof IContainer) {
-			return -1;
-		} else if (r2 instanceof IContainer) {
-			return 1;
-		} else if (criteria == NAME) {
-			return compareNames(r1, r2);
-		} else if (criteria == TYPE) {
-			return compareTypes(r1, r2);
-		} else {
-			return 0;
-		}
-    }
-
-    /**
-     * Returns a number reflecting the collation order of the given elements
-     * based on their class.
-     *
-     * @param element1 the first element to be ordered
-     * @param element2 the second element to be ordered
-     * @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
-     */
-    protected int compareClass(Object element1, Object element2) {
-        return classComparison(element1) - classComparison(element2);
-    }
-
-    /**
-     * Returns a number reflecting the collation order of the given resources
-     * based on their resource names.
-     *
-     * @param resource1 the first resource element to be ordered
-     * @param resource2 the second resource element to be ordered
-     * @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
-     */
-    protected int compareNames(IResource resource1, IResource resource2) {
-        return collator.compare(resource1.getName(), resource2.getName());
-    }
-
-    /**
-     * Returns a number reflecting the collation order of the given resources
-     * based on their respective file extensions. Resources with the same file
-     * extension will be collated based on their names.
-     *
-     * @param resource1 the first resource element to be ordered
-     * @param resource2 the second resource element to be ordered
-     * @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
-     */
-    protected int compareTypes(IResource resource1, IResource resource2) {
-        String ext1 = getExtensionFor(resource1);
-        String ext2 = getExtensionFor(resource2);
-
-        // Compare extensions.  If they're different then return a value that
-        // indicates correct extension ordering.  If they're the same then
-        // return a value that indicates the correct NAME ordering.
-        int result = collator.compare(ext1, ext2);
-
-        if (result != 0) {
-			return result;
-		}
-
-        return compareNames(resource1, resource2);
-    }
-
-    /**
-     * Returns the sort criteria of this sorter.
-     *
-     * @return the sort criterion: one of <code>NAME</code> or <code>TYPE</code>
-     */
-    public int getCriteria() {
-        return criteria;
-    }
-
-    /**
-     * Returns the extension portion of the given resource.
-     *
-     * @param resource the resource
-     * @return the file extension, possibily the empty string
-     */
-    private String getExtensionFor(IResource resource) {
-        String ext = resource.getFileExtension();
-        return ext == null ? "" : ext; //$NON-NLS-1$
-    }
-
-    /**
-     * Sets the sort criteria of this sorter.
-     * 
-     * @param criteria the sort criterion: 
-     *	one of <code>ResourceSorter.NAME</code> or 
-     *	<code>ResourceSorter.TYPE</code>
-     */
-    public void setCriteria(int criteria) {
-        this.criteria = criteria;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ShowInNavigatorAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ShowInNavigatorAction.java
deleted file mode 100644
index 57382b7..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ShowInNavigatorAction.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.views.navigator;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.SelectionProviderAction;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.part.ISetSelectionTarget;
-
-/**
- * An action which shows the current selection in the Navigator view.
- * For each element in the selection, if it is an <code>IResource</code>
- * it uses it directly, otherwise if it is an <code>IMarker</code> it uses the marker's resource,
- * otherwise if it is an <code>IAdaptable</code>, it tries to get the <code>IResource.class</code> adapter.
- */
-public class ShowInNavigatorAction extends SelectionProviderAction {
-    private IWorkbenchPage page;
-
-    /**
-     * Create a new instance of this class.
-     * 
-     * @param page the page
-     * @param viewer the viewer
-     */
-    public ShowInNavigatorAction(IWorkbenchPage page, ISelectionProvider viewer) {
-        super(viewer, ResourceNavigatorMessages.ShowInNavigator_text);
-        Assert.isNotNull(page);
-        this.page = page;
-        setDescription(ResourceNavigatorMessages.ShowInNavigator_toolTip);
-        page.getWorkbenchWindow().getWorkbench().getHelpSystem().setHelp(this,
-				INavigatorHelpContextIds.SHOW_IN_NAVIGATOR_ACTION);
-    }
-
-    /**
-     * Returns the resources in the given selection.
-     *
-     * @return a list of <code>IResource</code>
-     */
-    List getResources(IStructuredSelection selection) {
-        List v = new ArrayList();
-        for (Iterator i = selection.iterator(); i.hasNext();) {
-            Object o = i.next();
-            if (o instanceof IResource) {
-                v.add(o);
-            } else if (o instanceof IMarker) {
-                IResource resource = ((IMarker) o).getResource();
-                v.add(resource);
-            } else if (o instanceof IAdaptable) {
-                IResource resource = (IResource) ((IAdaptable) o)
-                        .getAdapter(IResource.class);
-                if (resource != null) {
-                    v.add(resource);
-                }
-            }
-        }
-        return v;
-    }
-
-    /*
-     * (non-Javadoc)
-     * Method declared on IAction.
-     */
-    /**
-     * Shows the Navigator view and sets its selection to the resources
-     * selected in this action's selection provider.
-     */
-    public void run() {
-        List v = getResources(getStructuredSelection());
-        if (v.isEmpty()) {
-			return;
-		}
-        try {
-            IViewPart view = page.showView(IPageLayout.ID_RES_NAV);
-            if (view instanceof ISetSelectionTarget) {
-                ISelection selection = new StructuredSelection(v);
-                ((ISetSelectionTarget) view).selectReveal(selection);
-            }
-        } catch (PartInitException e) {
-            ErrorDialog.openError(page.getWorkbenchWindow().getShell(),
-                    ResourceNavigatorMessages.ShowInNavigator_errorMessage,
-                    e.getMessage(), e.getStatus());
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * Method declared on SelectionProviderAction.
-     */
-    public void selectionChanged(IStructuredSelection selection) {
-        setEnabled(!getResources(selection).isEmpty());
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/SortAndFilterActionGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/SortAndFilterActionGroup.java
deleted file mode 100644
index a6a7a8d..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/SortAndFilterActionGroup.java
+++ /dev/null
@@ -1,65 +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
- *     Sebastian Davids <sdavids@gmx.de> - Images for menu items (27481)
- *******************************************************************************/
-package org.eclipse.ui.views.navigator;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-
-/**
- * This is the action group for the sort and filter actions.
- */
-public class SortAndFilterActionGroup extends ResourceNavigatorActionGroup {
-
-    private SortViewAction sortByTypeAction;
-
-    private SortViewAction sortByNameAction;
-
-    private FilterSelectionAction filterAction;
-
-    /**
-     * Constructor. 
-     * 
-     * @param navigator
-     */
-    public SortAndFilterActionGroup(IResourceNavigator navigator) {
-        super(navigator);
-    }
-
-    protected void makeActions() {
-        sortByNameAction = new SortViewAction(navigator, false);
-        sortByTypeAction = new SortViewAction(navigator, true);
-
-        filterAction = new FilterSelectionAction(navigator,
-                ResourceNavigatorMessages.ResourceNavigator_filterText);
-        filterAction
-                .setDisabledImageDescriptor(getImageDescriptor("dlcl16/filter_ps.gif"));//$NON-NLS-1$
-        filterAction
-                .setImageDescriptor(getImageDescriptor("elcl16/filter_ps.gif"));//$NON-NLS-1$
-    }
-
-    public void fillActionBars(IActionBars actionBars) {
-        IMenuManager menu = actionBars.getMenuManager();
-        IMenuManager submenu = new MenuManager(ResourceNavigatorMessages.ResourceNavigator_sort);
-        menu.add(submenu);
-        submenu.add(sortByNameAction);
-        submenu.add(sortByTypeAction);
-        menu.add(filterAction);
-    }
-
-    public void updateActionBars() {
-        int criteria = navigator.getComparator().getCriteria();
-        sortByNameAction.setChecked(criteria == ResourceComparator.NAME);
-        sortByTypeAction.setChecked(criteria == ResourceComparator.TYPE);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/SortViewAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/SortViewAction.java
deleted file mode 100644
index b56bc2c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/SortViewAction.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.views.navigator;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-
-/**
- * Implementation of the view sorting actions.
- * @since 2.0
- */
-public class SortViewAction extends ResourceNavigatorAction {
-    private int sortCriteria;
-
-    /**
-     * Creates the action.
-     *
-     * @param navigator the resource navigator
-     * @param sortByType <code>true</code> for sort by type, <code>false</code> for sort by name
-     */
-    public SortViewAction(IResourceNavigator navigator, boolean sortByType) {
-        super(
-                navigator,
-                sortByType ? ResourceNavigatorMessages.SortView_byType : ResourceNavigatorMessages.SortView_byName);
-        if (sortByType) {
-            setToolTipText(ResourceNavigatorMessages.SortView_toolTipByType);
-        } else {
-            setToolTipText(ResourceNavigatorMessages.SortView_toolTipByName);
-        }
-        setEnabled(true);
-        sortCriteria = sortByType ? ResourceComparator.TYPE : ResourceComparator.NAME;
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				INavigatorHelpContextIds.SORT_VIEW_ACTION);
-    }
-
-    public void run() {
-        IResourceNavigator navigator = getNavigator();
-        ResourceComparator comparator = navigator.getComparator();
-
-        if (comparator == null) {
-			navigator.setComparator(new ResourceComparator(sortCriteria));
-		} else {
-			comparator.setCriteria(sortCriteria);
-            navigator.setComparator(comparator);
-        }
-
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/StringMatcher.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/StringMatcher.java
deleted file mode 100644
index c7dbaed..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/StringMatcher.java
+++ /dev/null
@@ -1,449 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.navigator;
-
-import java.util.Vector;
-
-/**
- * A string pattern matcher, suppporting ?*? and ??? wildcards.
- */
-/* package */class StringMatcher {
-    protected String fPattern;
-
-    protected int fLength; // pattern length
-
-    protected boolean fIgnoreWildCards;
-
-    protected boolean fIgnoreCase;
-
-    protected boolean fHasLeadingStar;
-
-    protected boolean fHasTrailingStar;
-
-    protected String fSegments[]; //the given pattern is split into * separated segments
-
-    /* boundary value beyond which we don't need to search in the text */
-    protected int fBound = 0;
-
-    protected static final char fSingleWildCard = '\u0000';
-
-    public static class Position {
-        int start; //inclusive
-
-        int end; //exclusive
-
-        public Position(int start, int end) {
-            this.start = start;
-            this.end = end;
-        }
-
-        public int getStart() {
-            return start;
-        }
-
-        public int getEnd() {
-            return end;
-        }
-    }
-
-    /**
-     * StringMatcher constructor takes in a String object that is a simple 
-     * pattern which may contain '*' for 0 and many characters and
-     * '?' for exactly one character.  
-     *
-     * Literal '*' and '?' characters must be escaped in the pattern 
-     * e.g., "\*" means literal "*", etc.
-     *
-     * Escaping any other character (including the escape character itself), 
-     * just results in that character in the pattern.
-     * e.g., "\a" means "a" and "\\" means "\"
-     *
-     * If invoking the StringMatcher with string literals in Java, don't forget
-     * escape characters are represented by "\\".
-     *
-     * @param pattern the pattern to match text against
-     * @param ignoreCase if true, case is ignored
-     * @param ignoreWildCards if true, wild cards and their escape sequences are ignored
-     * 		  (everything is taken literally).
-     */
-    public StringMatcher(String pattern, boolean ignoreCase,
-            boolean ignoreWildCards) {
-        if (pattern == null) {
-			throw new IllegalArgumentException();
-		}
-        fIgnoreCase = ignoreCase;
-        fIgnoreWildCards = ignoreWildCards;
-        fPattern = pattern;
-        fLength = pattern.length();
-
-        if (fIgnoreWildCards) {
-            parseNoWildCards();
-        } else {
-            parseWildCards();
-        }
-    }
-
-    /**
-     * Find the first occurrence of the pattern between <code>start</code)(inclusive) 
-     * and <code>end</code>(exclusive).  
-     * @param <code>text</code>, the String object to search in 
-     * @param <code>start</code>, the starting index of the search range, inclusive
-     * @param <code>end</code>, the ending index of the search range, exclusive
-     * @return an <code>StringMatcher.Position</code> object that keeps the starting 
-     * (inclusive) and ending positions (exclusive) of the first occurrence of the 
-     * pattern in the specified range of the text; return null if not found or subtext
-     * is empty (start==end). A pair of zeros is returned if pattern is empty string
-     * Note that for pattern like "*abc*" with leading and trailing stars, position of "abc"
-     * is returned. For a pattern like"*??*" in text "abcdf", (1,3) is returned
-     */
-    public StringMatcher.Position find(String text, int start, int end) {
-        if (text == null) {
-			throw new IllegalArgumentException();
-		}
-
-        int tlen = text.length();
-        if (start < 0) {
-			start = 0;
-		}
-        if (end > tlen) {
-			end = tlen;
-		}
-        if (end < 0 || start >= end) {
-			return null;
-		}
-        if (fLength == 0) {
-			return new Position(start, start);
-		}
-        if (fIgnoreWildCards) {
-            int x = posIn(text, start, end);
-            if (x < 0) {
-				return null;
-			}
-            return new Position(x, x + fLength);
-        }
-
-        int segCount = fSegments.length;
-        if (segCount == 0) {
-			return new Position(start, end);
-		}
-
-        int curPos = start;
-        int matchStart = -1;
-        int i;
-        for (i = 0; i < segCount && curPos < end; ++i) {
-            String current = fSegments[i];
-            int nextMatch = regExpPosIn(text, curPos, end, current);
-            if (nextMatch < 0) {
-				return null;
-			}
-            if (i == 0) {
-				matchStart = nextMatch;
-			}
-            curPos = nextMatch + current.length();
-        }
-        if (i < segCount) {
-			return null;
-		}
-        return new Position(matchStart, curPos);
-    }
-
-    /**
-     * match the given <code>text</code> with the pattern 
-     * @return true if matched eitherwise false
-     * @param <code>text</code>, a String object 
-     */
-    public boolean match(String text) {
-        return match(text, 0, text.length());
-    }
-
-    /**
-     * Given the starting (inclusive) and the ending (exclusive) poisitions in the   
-     * <code>text</code>, determine if the given substring matches with aPattern  
-     * @return true if the specified portion of the text matches the pattern
-     * @param String <code>text</code>, a String object that contains the substring to match 
-     * @param int <code>start<code> marks the starting position (inclusive) of the substring
-     * @param int <code>end<code> marks the ending index (exclusive) of the substring 
-     */
-    public boolean match(String text, int start, int end) {
-        if (null == text) {
-			throw new IllegalArgumentException();
-		}
-
-        if (start > end) {
-			return false;
-		}
-
-        if (fIgnoreWildCards) {
-			return (end - start == fLength)
-                    && fPattern.regionMatches(fIgnoreCase, 0, text, start,
-                            fLength);
-		}
-        int segCount = fSegments.length;
-        if (segCount == 0 && (fHasLeadingStar || fHasTrailingStar)) {
-			return true;
-		}
-        if (start == end) {
-			return fLength == 0;
-		}
-        if (fLength == 0) {
-			return start == end;
-		}
-
-        int tlen = text.length();
-        if (start < 0) {
-			start = 0;
-		}
-        if (end > tlen) {
-			end = tlen;
-		}
-
-        int tCurPos = start;
-        int bound = end - fBound;
-        if (bound < 0) {
-			return false;
-		}
-        int i = 0;
-        String current = fSegments[i];
-        int segLength = current.length();
-
-        /* process first segment */
-        if (!fHasLeadingStar) {
-            if (!regExpRegionMatches(text, start, current, 0, segLength)) {
-                return false;
-            } else {
-                ++i;
-                tCurPos = tCurPos + segLength;
-            }
-        }
-        if ((fSegments.length == 1) && (!fHasLeadingStar)
-                && (!fHasTrailingStar)) {
-            // only one segment to match, no wildcards specified
-            return tCurPos == end;
-        }
-        /* process middle segments */
-        for (; i < segCount && tCurPos <= bound; ++i) {
-            current = fSegments[i];
-            int currentMatch;
-            int k = current.indexOf(fSingleWildCard);
-            if (k < 0) {
-                currentMatch = textPosIn(text, tCurPos, end, current);
-                if (currentMatch < 0) {
-					return false;
-				}
-            } else {
-                currentMatch = regExpPosIn(text, tCurPos, end, current);
-                if (currentMatch < 0) {
-					return false;
-				}
-            }
-            tCurPos = currentMatch + current.length();
-        }
-
-        /* process final segment */
-        if (!fHasTrailingStar && tCurPos != end) {
-            int clen = current.length();
-            return regExpRegionMatches(text, end - clen, current, 0, clen);
-        }
-        return i == segCount;
-    }
-
-    /**
-     * This method parses the given pattern into segments seperated by wildcard '*' characters.
-     * Since wildcards are not being used in this case, the pattern consists of a single segment.
-     */
-    private void parseNoWildCards() {
-        fSegments = new String[1];
-        fSegments[0] = fPattern;
-        fBound = fLength;
-    }
-
-    /**
-     * Parses the given pattern into segments seperated by wildcard '*' characters.
-     * @param p, a String object that is a simple regular expression with '*' and/or '?'
-     */
-    private void parseWildCards() {
-        if (fPattern.startsWith("*")) { //$NON-NLS-1$
-			fHasLeadingStar = true;
-		}
-        if (fPattern.endsWith("*")) {//$NON-NLS-1$
-            /* make sure it's not an escaped wildcard */
-            if (fLength > 1 && fPattern.charAt(fLength - 2) != '\\') {
-                fHasTrailingStar = true;
-            }
-        }
-
-        Vector temp = new Vector();
-
-        int pos = 0;
-        StringBuffer buf = new StringBuffer();
-        while (pos < fLength) {
-            char c = fPattern.charAt(pos++);
-            switch (c) {
-            case '\\':
-                if (pos >= fLength) {
-                    buf.append(c);
-                } else {
-                    char next = fPattern.charAt(pos++);
-                    /* if it's an escape sequence */
-                    if (next == '*' || next == '?' || next == '\\') {
-                        buf.append(next);
-                    } else {
-                        /* not an escape sequence, just insert literally */
-                        buf.append(c);
-                        buf.append(next);
-                    }
-                }
-                break;
-            case '*':
-                if (buf.length() > 0) {
-                    /* new segment */
-                    temp.addElement(buf.toString());
-                    fBound += buf.length();
-                    buf.setLength(0);
-                }
-                break;
-            case '?':
-                /* append special character representing single match wildcard */
-                buf.append(fSingleWildCard);
-                break;
-            default:
-                buf.append(c);
-            }
-        }
-
-        /* add last buffer to segment list */
-        if (buf.length() > 0) {
-            temp.addElement(buf.toString());
-            fBound += buf.length();
-        }
-
-        fSegments = new String[temp.size()];
-        temp.copyInto(fSegments);
-    }
-
-    /** 
-     * @param <code>text</code>, a string which contains no wildcard
-     * @param <code>start</code>, the starting index in the text for search, inclusive
-     * @param <code>end</code>, the stopping point of search, exclusive
-     * @return the starting index in the text of the pattern , or -1 if not found 
-     */
-    protected int posIn(String text, int start, int end) {//no wild card in pattern
-        int max = end - fLength;
-
-        if (!fIgnoreCase) {
-            int i = text.indexOf(fPattern, start);
-            if (i == -1 || i > max) {
-				return -1;
-			}
-            return i;
-        }
-
-        for (int i = start; i <= max; ++i) {
-            if (text.regionMatches(true, i, fPattern, 0, fLength)) {
-				return i;
-			}
-        }
-
-        return -1;
-    }
-
-    /** 
-     * @param <code>text</code>, a simple regular expression that may only contain '?'(s)
-     * @param <code>start</code>, the starting index in the text for search, inclusive
-     * @param <code>end</code>, the stopping point of search, exclusive
-     * @param <code>p</code>, a simple regular expression that may contains '?'
-     * @param <code>caseIgnored</code>, wether the pattern is not casesensitive
-     * @return the starting index in the text of the pattern , or -1 if not found 
-     */
-    protected int regExpPosIn(String text, int start, int end, String p) {
-        int plen = p.length();
-
-        int max = end - plen;
-        for (int i = start; i <= max; ++i) {
-            if (regExpRegionMatches(text, i, p, 0, plen)) {
-				return i;
-			}
-        }
-        return -1;
-    }
-
-    /**
-     * 
-     * @return boolean
-     * @param <code>text</code>, a String to match
-     * @param <code>start</code>, int that indicates the starting index of match, inclusive
-     * @param <code>end</code> int that indicates the ending index of match, exclusive
-     * @param <code>p</code>, String,  String, a simple regular expression that may contain '?'
-     * @param <code>ignoreCase</code>, boolean indicating wether code>p</code> is case sensitive
-     */
-    protected boolean regExpRegionMatches(String text, int tStart, String p,
-            int pStart, int plen) {
-        while (plen-- > 0) {
-            char tchar = text.charAt(tStart++);
-            char pchar = p.charAt(pStart++);
-
-            /* process wild cards */
-            if (!fIgnoreWildCards) {
-                /* skip single wild cards */
-                if (pchar == fSingleWildCard) {
-                    continue;
-                }
-            }
-            if (pchar == tchar) {
-				continue;
-			}
-            if (fIgnoreCase) {
-                if (Character.toUpperCase(tchar) == Character
-                        .toUpperCase(pchar)) {
-					continue;
-				}
-                // comparing after converting to upper case doesn't handle all cases;
-                // also compare after converting to lower case
-                if (Character.toLowerCase(tchar) == Character
-                        .toLowerCase(pchar)) {
-					continue;
-				}
-            }
-            return false;
-        }
-        return true;
-    }
-
-    /** 
-     * @param <code>text</code>, the string to match
-     * @param <code>start</code>, the starting index in the text for search, inclusive
-     * @param <code>end</code>, the stopping point of search, exclusive
-     * @param code>p</code>, a string that has no wildcard
-     * @param <code>ignoreCase</code>, boolean indicating wether code>p</code> is case sensitive
-     * @return the starting index in the text of the pattern , or -1 if not found 
-     */
-    protected int textPosIn(String text, int start, int end, String p) {
-
-        int plen = p.length();
-        int max = end - plen;
-
-        if (!fIgnoreCase) {
-            int i = text.indexOf(p, start);
-            if (i == -1 || i > max) {
-				return -1;
-			}
-            return i;
-        }
-
-        for (int i = 0; i <= max; ++i) {
-            if (text.regionMatches(true, i, p, 0, plen)) {
-				return i;
-			}
-        }
-
-        return -1;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ToggleLinkingAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ToggleLinkingAction.java
deleted file mode 100644
index c3996ba..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/ToggleLinkingAction.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.views.navigator;
-
-/**
- * This action toggles whether this navigator links its selection to the active
- * editor.
- * 
- * @since 2.1
- */
-public class ToggleLinkingAction extends ResourceNavigatorAction {
-
-    /**
-     * Constructs a new action.
-     */
-    public ToggleLinkingAction(IResourceNavigator navigator, String label) {
-        super(navigator, label);
-        setChecked(navigator.isLinkingEnabled());
-    }
-
-    /**
-     * Runs the action.
-     */
-    public void run() {
-        getNavigator().setLinkingEnabled(isChecked());
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/WorkspaceActionGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/WorkspaceActionGroup.java
deleted file mode 100644
index a233684..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/WorkspaceActionGroup.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.views.navigator;
-
-import java.util.Iterator;
-
-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.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-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.ide.IDEActionFactory;
-
-/**
- * This is the action group for workspace actions such as Build, Refresh Local,
- * and Open/Close Project.
- */
-public class WorkspaceActionGroup extends ResourceNavigatorActionGroup {
-
-    private BuildAction buildAction;
-
-    private OpenResourceAction openProjectAction;
-
-    private CloseResourceAction closeProjectAction;
-    
-    private CloseUnrelatedProjectsAction closeUnrelatedProjectsAction;
-
-    private RefreshAction refreshAction;
-
-    public WorkspaceActionGroup(IResourceNavigator navigator) {
-        super(navigator);
-    }
-
-    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);
-    }
-
-    /**
-     * 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.add(buildAction);
-        }
-        if (!hasClosedProjects) {
-            refreshAction.selectionChanged(selection);
-            menu.add(refreshAction);
-        }
-        if (isProjectSelection) {
-            if (hasClosedProjects) {
-                openProjectAction.selectionChanged(selection);
-                menu.add(openProjectAction);
-            }
-            if (hasOpenProjects) {
-                closeProjectAction.selectionChanged(selection);
-                menu.add(closeProjectAction);
-                closeUnrelatedProjectsAction.selectionChanged(selection);
-                menu.add(closeUnrelatedProjectsAction);
-            }
-        }
-    }
-
-    /**
-     * Handles a key pressed event by invoking the appropriate action.
-     */
-    public void handleKeyPressed(KeyEvent event) {
-        if (event.keyCode == SWT.F5 && event.stateMask == 0) {
-            if (refreshAction.isEnabled()) {
-                refreshAction.refreshAll();
-            }
-
-            // Swallow the event
-            event.doit = false;
-        }
-    }
-
-    /**
-     * 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() {
-        Shell shell = navigator.getSite().getShell();
-        openProjectAction = new OpenResourceAction(shell);
-        closeProjectAction = new CloseResourceAction(shell);
-        closeUnrelatedProjectsAction = new CloseUnrelatedProjectsAction(shell);
-        refreshAction = new RefreshAction(shell);
-        refreshAction
-                .setDisabledImageDescriptor(getImageDescriptor("dlcl16/refresh_nav.gif"));//$NON-NLS-1$
-        refreshAction
-                .setImageDescriptor(getImageDescriptor("elcl16/refresh_nav.gif"));//$NON-NLS-1$	
-        buildAction = new BuildAction(shell,
-                IncrementalProjectBuilder.INCREMENTAL_BUILD);
-    }
-
-    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.ide/src/org/eclipse/ui/views/navigator/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/package.html
deleted file mode 100644
index 35b201e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/navigator/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 Resource Navigator view which
-presents the tree of resources in the workspace.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/FilePropertySource.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/FilePropertySource.java
deleted file mode 100644
index 0425926..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/FilePropertySource.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.ui.views.properties;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.osgi.util.TextProcessor;
-import org.eclipse.ui.internal.ide.dialogs.IDEResourceInfoUtils;
-
-/**
- * The FilePropertySource gives the extra information that is shown for files
- */
-public class FilePropertySource extends ResourcePropertySource {
-
-    private static PropertyDescriptor fileDescriptor;
-    static {
-        fileDescriptor = new PropertyDescriptor(
-                IResourcePropertyConstants.P_SIZE_RES,
-                IResourcePropertyConstants.P_DISPLAY_SIZE);
-        fileDescriptor.setAlwaysIncompatible(true);
-        fileDescriptor
-                .setCategory(IResourcePropertyConstants.P_FILE_SYSTEM_CATEGORY);
-    }
-
-    /**
-     * Creates an property source for a file resource.
-     * @param file the file resource
-     */
-    public FilePropertySource(IFile file) {
-        super(file);
-    }
-
-    /**
-     * Get a PropertyDescriptor that defines the size property
-     * @return the PropertyDescriptor
-     */
-    private static PropertyDescriptor getInitialPropertyDescriptor() {
-        return fileDescriptor;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource.
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        IPropertyDescriptor[] superDescriptors = super.getPropertyDescriptors();
-        int superLength = superDescriptors.length;
-        IPropertyDescriptor[] fileDescriptors = new IPropertyDescriptor[superLength + 1];
-        System.arraycopy(superDescriptors, 0, fileDescriptors, 0, superLength);
-        fileDescriptors[superLength] = getInitialPropertyDescriptor();
-
-        return fileDescriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource.
-     */
-    public Object getPropertyValue(Object key) {
-    	Object returnValue = (key.equals(IBasicPropertyConstants.P_TEXT)) ? TextProcessor
-				.process(element.getName())
-				: super.getPropertyValue(key);
-
-        if (returnValue != null) {
-			return returnValue;
-		}
-
-        if (key.equals(IResourcePropertyConstants.P_SIZE_RES)) {
-			return IDEResourceInfoUtils.getSizeString((IFile) element);
-		}
-        return null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/IDEPropertiesMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/IDEPropertiesMessages.java
deleted file mode 100644
index e2a17be..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/IDEPropertiesMessages.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.views.properties;
-
-
-/**
- * Utility class which helps manage messages.
- * @deprecated These messages are not API and should not be referenced
- * outside of this plug-in.
- */
-class IDEPropertiesMessages {
-    private IDEPropertiesMessages() {
-        // 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 key;
-    }
-
-    /**
-     * 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) {
-        return key;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/IResourcePropertyConstants.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/IResourcePropertyConstants.java
deleted file mode 100644
index 32408c9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/IResourcePropertyConstants.java
+++ /dev/null
@@ -1,110 +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.internal.views.properties.IDEPropertiesMessages;
-
-/**
- * This interface documents the property constants used by the resource
- * property source.
- */
-public interface IResourcePropertyConstants {
-    /** 
-     * The <code>IResource</code> property key for name.
-     */
-    public static final String P_LABEL_RES = IDEPropertiesMessages.IResourcePropertyConstants_name;
-
-    /** 
-     * The <code>IResource</code> property key for path.
-     */
-    public static final String P_PATH_RES = "org.eclipse.ui.path"; //$NON-NLS-1$
-
-    /** 
-     * The <code>IResource</code> property key for display path.
-     */
-    public static final String P_DISPLAYPATH_RES = IDEPropertiesMessages.IResourcePropertyConstants_path;
-
-    /** 
-     * The <code>IResource</code> property key for read-only.
-     */
-    public static final String P_EDITABLE_RES = "org.eclipse.ui.editable"; //$NON-NLS-1$
-
-    /** 
-     * The <code>IResource</code> property key for display read-only.
-     */
-    public static final String P_DISPLAYEDITABLE_RES = IDEPropertiesMessages.IResourcePropertyConstants_editable;
-
-    /** 
-     * The <code>IResource</code> property key for read-only.
-     */
-    public static final String P_DERIVED_RES = "org.eclipse.ui.derived"; //$NON-NLS-1$
-
-    /** 
-     * The <code>IResource</code> property key for display read-only.
-     */
-    public static final String P_DISPLAYDERIVED_RES = IDEPropertiesMessages.IResourcePropertyConstants_derived;
-
-    /** 
-     * The <code>IResource</code> property key for location.
-     */
-    public static final String P_LOCATION_RES = "org.eclipse.ui.location"; //$NON-NLS-1$
-
-    /** 
-     * The <code>IResource</code> property key for display location.
-     */
-    public static final String P_DISPLAYLOCATION_RES = IDEPropertiesMessages.IResourcePropertyConstants_location;
-
-    /** 
-     * The <code>IResource</code> property key for resolved location.
-     */
-    public static final String P_RESOLVED_LOCATION_RES = "org.eclipse.ui.resolvedLocation"; //$NON-NLS-1$,
-
-    /** 
-     * The <code>IResource</code> property key for display resolved location.
-     */
-    public static final String P_DISPLAYRESOLVED_LOCATION_RES = IDEPropertiesMessages.IResourcePropertyConstants_resolvedLocation;
-
-    /** 
-     * The <code>IResource</code> property key for linked.
-     */
-    public static final String P_LINKED_RES = "org.eclipse.ui.linked"; //$NON-NLS-1$,
-
-    /** 
-     * The <code>IResource</code> property key for display linked.
-     */
-    public static final String P_DISPLAYLINKED_RES = IDEPropertiesMessages.IResourcePropertyConstants_linked;
-
-    /**
-     * The <code>IResource</code> category for the base values
-     */
-    public static final String P_FILE_SYSTEM_CATEGORY = IDEPropertiesMessages.IResourcePropertyConstants_info;
-
-    /** 
-     * The <code>IResource</code> property key for path.
-     */
-    public static final String P_SIZE_RES = "org.eclipse.ui.size"; //$NON-NLS-1$
-
-    /**
-     * The <code>IResource</code> property key for displaying size
-     */
-    public static final String P_DISPLAY_SIZE = IDEPropertiesMessages.IResourcePropertyConstants_size;
-
-    /** 
-     * The <code>IResource</code> property key for path.
-     */
-    public static final String P_LAST_MODIFIED_RES = "org.eclipse.ui.lastmodified"; //$NON-NLS-1$
-
-    /**
-     * The <code>IResource</code> category for last modified
-     */
-    public static final String P_DISPLAY_LAST_MODIFIED = IDEPropertiesMessages.IResourcePropertyConstants_lastModified;
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/ResourcePropertySource.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/ResourcePropertySource.java
deleted file mode 100644
index ebbe290..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/properties/ResourcePropertySource.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.io.File;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourceAttributes;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.osgi.util.TextProcessor;
-import org.eclipse.ui.internal.ide.dialogs.IDEResourceInfoUtils;
-import org.eclipse.ui.internal.views.properties.IDEPropertiesMessages;
-
-/**
- * A Resource property source.
- */
-public class ResourcePropertySource implements IPropertySource {
-    protected static String NOT_LOCAL_TEXT = IDEPropertiesMessages.PropertySource_notLocal;
-
-    protected static String FILE_NOT_FOUND = IDEPropertiesMessages.PropertySource_notFound;
-
-    protected static String UNDEFINED_PATH_VARIABLE = IDEPropertiesMessages.PropertySource_undefinedPathVariable;
-
-    protected static String FILE_NOT_EXIST_TEXT = IDEPropertiesMessages.PropertySource_fileNotExist;
-
-    // The element for the property source
-    protected IResource element;
-
-    // Error message when setting a property incorrectly
-    protected String errorMessage = IDEPropertiesMessages.PropertySource_readOnly;
-
-    // Property Descriptors
-    static protected IPropertyDescriptor[] propertyDescriptors = new IPropertyDescriptor[7];
-
-    static protected IPropertyDescriptor[] propertyDescriptorsLinkVariable = new IPropertyDescriptor[8];
-    static {
-        PropertyDescriptor descriptor;
-
-        // resource name
-        descriptor = new PropertyDescriptor(IBasicPropertyConstants.P_TEXT,
-                IResourcePropertyConstants.P_LABEL_RES);
-        descriptor.setAlwaysIncompatible(true);
-        descriptor
-                .setCategory(IResourcePropertyConstants.P_FILE_SYSTEM_CATEGORY);
-        propertyDescriptors[0] = descriptor;
-        propertyDescriptorsLinkVariable[0] = descriptor;
-
-        // Relative path
-        descriptor = new PropertyDescriptor(
-                IResourcePropertyConstants.P_PATH_RES,
-                IResourcePropertyConstants.P_DISPLAYPATH_RES);
-        descriptor.setAlwaysIncompatible(true);
-        descriptor
-                .setCategory(IResourcePropertyConstants.P_FILE_SYSTEM_CATEGORY);
-        propertyDescriptors[1] = descriptor;
-        propertyDescriptorsLinkVariable[1] = descriptor;
-
-        // readwrite state
-        descriptor = new PropertyDescriptor(
-                IResourcePropertyConstants.P_EDITABLE_RES,
-                IResourcePropertyConstants.P_DISPLAYEDITABLE_RES);
-        descriptor.setAlwaysIncompatible(true);
-        descriptor
-                .setCategory(IResourcePropertyConstants.P_FILE_SYSTEM_CATEGORY);
-        propertyDescriptors[2] = descriptor;
-        propertyDescriptorsLinkVariable[2] = descriptor;
-
-        // derived state
-        descriptor = new PropertyDescriptor(
-                IResourcePropertyConstants.P_DERIVED_RES,
-                IResourcePropertyConstants.P_DISPLAYDERIVED_RES);
-        descriptor.setAlwaysIncompatible(true);
-        descriptor
-                .setCategory(IResourcePropertyConstants.P_FILE_SYSTEM_CATEGORY);
-        propertyDescriptors[3] = descriptor;
-        propertyDescriptorsLinkVariable[3] = descriptor;
-
-        // last modified state
-        descriptor = new PropertyDescriptor(
-                IResourcePropertyConstants.P_LAST_MODIFIED_RES,
-                IResourcePropertyConstants.P_DISPLAY_LAST_MODIFIED);
-        descriptor.setAlwaysIncompatible(true);
-        descriptor
-                .setCategory(IResourcePropertyConstants.P_FILE_SYSTEM_CATEGORY);
-        propertyDescriptors[4] = descriptor;
-        propertyDescriptorsLinkVariable[4] = descriptor;
-
-        // link state
-        descriptor = new PropertyDescriptor(
-                IResourcePropertyConstants.P_LINKED_RES,
-                IResourcePropertyConstants.P_DISPLAYLINKED_RES);
-        descriptor.setAlwaysIncompatible(true);
-        descriptor
-                .setCategory(IResourcePropertyConstants.P_FILE_SYSTEM_CATEGORY);
-        propertyDescriptors[5] = descriptor;
-        propertyDescriptorsLinkVariable[5] = descriptor;
-
-        // location
-        descriptor = new PropertyDescriptor(
-                IResourcePropertyConstants.P_LOCATION_RES,
-                IResourcePropertyConstants.P_DISPLAYLOCATION_RES);
-        descriptor.setAlwaysIncompatible(true);
-        descriptor
-                .setCategory(IResourcePropertyConstants.P_FILE_SYSTEM_CATEGORY);
-        propertyDescriptors[6] = descriptor;
-        propertyDescriptorsLinkVariable[6] = descriptor;
-
-        // resolved location
-        descriptor = new PropertyDescriptor(
-                IResourcePropertyConstants.P_RESOLVED_LOCATION_RES,
-                IResourcePropertyConstants.P_DISPLAYRESOLVED_LOCATION_RES);
-        descriptor.setAlwaysIncompatible(true);
-        descriptor
-                .setCategory(IResourcePropertyConstants.P_FILE_SYSTEM_CATEGORY);
-        propertyDescriptorsLinkVariable[7] = descriptor;
-
-    }
-
-    /**
-     * Creates a PropertySource and stores its IResource
-     *
-     * @param res the resource for which this is a property source
-     */
-    public ResourcePropertySource(IResource res) {
-        Assert.isNotNull(res);
-        this.element = res;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource.
-     */
-    public Object getEditableValue() {
-        return this;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource.
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        if (isPathVariable(element)) {
-			return propertyDescriptorsLinkVariable;
-		}
-		return propertyDescriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource.
-     */
-    public Object getPropertyValue(Object name) {
-        if (name.equals(IBasicPropertyConstants.P_TEXT)) {
-            return element.getName();
-        }
-        if (name.equals(IResourcePropertyConstants.P_PATH_RES)) {
-            return TextProcessor.process(element.getFullPath().toString());
-        }
-        if (name.equals(IResourcePropertyConstants.P_LAST_MODIFIED_RES)) {
-            return IDEResourceInfoUtils.getDateStringValue(element);
-        }
-        if (name.equals(IResourcePropertyConstants.P_EDITABLE_RES)) {
-            final ResourceAttributes attributes = element.getResourceAttributes();
-			if (attributes == null || attributes.isReadOnly()) {
-				return IDEPropertiesMessages.ResourceProperty_false;
-			} 
-			return IDEPropertiesMessages.ResourceProperty_true;
-        }
-        if (name.equals(IResourcePropertyConstants.P_DERIVED_RES)) {
-            if (element.isDerived())
-            	return IDEPropertiesMessages.ResourceProperty_true;
-        	return IDEPropertiesMessages.ResourceProperty_false;
-        }
-        if (name.equals(IResourcePropertyConstants.P_LINKED_RES)) {
-        	if (element.isLinked())
-        		return IDEPropertiesMessages.ResourceProperty_true;
-        	return IDEPropertiesMessages.ResourceProperty_false;
-        }
-        if (name.equals(IResourcePropertyConstants.P_LOCATION_RES)) {
-            return TextProcessor.process(IDEResourceInfoUtils.getLocationText(element));
-        }
-        if (name.equals(IResourcePropertyConstants.P_RESOLVED_LOCATION_RES)) {
-            return TextProcessor.process(IDEResourceInfoUtils.getResolvedLocationText(element));
-        }
-        return null;
-    }
-
-    /**
-     * Returns whether the given resource is a linked resource bound 
-     * to a path variable.
-     * 
-     * @param resource resource to test
-     * @return boolean <code>true</code> the given resource is a linked 
-     * 	resource bound to a path variable. <code>false</code> the given 
-     * 	resource is either not a linked resource or it is not using a
-     * 	path variable.  
-     */
-    private boolean isPathVariable(IResource resource) {
-        if (!resource.isLinked()) {
-			return false;
-		}
-
-        IPath resolvedLocation = resource.getLocation();
-        if (resolvedLocation == null) {
-            // missing path variable
-            return true;
-        }
-        IPath rawLocation = resource.getRawLocation();
-        if (resolvedLocation.equals(rawLocation)) {
-			return false;
-		}
-
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource.
-     */
-    public boolean isPropertySet(Object property) {
-        return false;
-    }
-
-    /**
-     * The <code>ResourcePropertySource</code> implementation of this
-     * <code>IPropertySource</code> method does nothing since all
-     * properties are read-only.
-     */
-    public void resetPropertyValue(Object property) {
-    }
-
-    /**
-     * The <code>ResourcePropertySource</code> implementation of this
-     * <code>IPropertySource</code> method does nothing since all
-     * properties are read-only.
-     */
-    public void setPropertyValue(Object name, Object value) {
-    }
-
-    /** 
-     * Get the java.io.File equivalent of the passed
-     * IFile. If the location does not exist then return
-     * <code>null</code>
-     * @param resource the resource to lookup
-     * @return java.io.File or <code>null</code>.
-     */
-    protected File getFile(IResource resource) {
-        IPath location = resource.getLocation();
-        if (location == null) {
-			return null;
-		}
-		return location.toFile();
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/CopyTaskAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/CopyTaskAction.java
deleted file mode 100644
index 26bb730..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/CopyTaskAction.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.views.tasklist;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWTError;
-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.tasklist.TaskListMessages;
-import org.eclipse.ui.part.MarkerTransfer;
-
-/**
- * Copies a task to the clipboard.
- */
-class CopyTaskAction extends TaskAction {
- 
-	/**
-     * Creates the action.
-	 * @param tasklist the task list
-	 * @param id the id
-     */
-    public CopyTaskAction(TaskList tasklist, String id) {
-        super(tasklist, id);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				ITaskListHelpContextIds.COPY_TASK_ACTION);
-    }
-
-    /**
-     * Performs this action.
-     */
-    public void run() {
-        // Get the selected markers
-        TaskList taskList = getTaskList();
-        TableViewer viewer = taskList.getTableViewer();
-        IStructuredSelection selection = (IStructuredSelection) viewer
-                .getSelection();
-        if (selection.isEmpty()) {
-            return;
-        }
-        taskList.cancelEditing();
-        List list = selection.toList();
-        IMarker[] markers = new IMarker[list.size()];
-        list.toArray(markers);
-
-        setClipboard(markers, TaskList.createMarkerReport(markers));
-
-        //Update paste enablement
-        taskList.updatePasteEnablement();
-    }
-
-    private void setClipboard(IMarker[] markers, String markerReport) {
-        try {
-            // Place the markers on the clipboard
-            Object[] data = new Object[] { markers, markerReport };
-            Transfer[] transferTypes = new Transfer[] {
-                    MarkerTransfer.getInstance(), TextTransfer.getInstance() };
-
-            // set the clipboard contents
-            getTaskList().getClipboard().setContents(data, transferTypes);
-        } catch (SWTError e) {
-            if (e.code != DND.ERROR_CANNOT_SET_CLIPBOARD) {
-				throw e;
-			}
-            if (MessageDialog
-                    .openQuestion(
-                            getShell(),
-                            TaskListMessages.CopyToClipboardProblemDialog_title, TaskListMessages.CopyToClipboardProblemDialog_message)) {
-				setClipboard(markers, markerReport);
-			}
-        }
-    }
-}
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/DefaultTaskListResourceAdapter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/DefaultTaskListResourceAdapter.java
deleted file mode 100644
index 13527a2..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/DefaultTaskListResourceAdapter.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.views.tasklist;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * The DefaultTaskListResourceAdapter is the default
- * implementation of the ITaskListResourceAdapter used by the
- * TaskList for resource adaption.
- */
-class DefaultTaskListResourceAdapter implements ITaskListResourceAdapter {
-
-    private static ITaskListResourceAdapter singleton;
-
-    /**
-     * Constructor for DefaultTaskListResourceAdapter.
-     */
-    DefaultTaskListResourceAdapter() {
-        super();
-    }
-
-    /**
-     * Return the default instance used for TaskList adapting.
-     */
-    static ITaskListResourceAdapter getDefault() {
-        if (singleton == null) {
-			singleton = new DefaultTaskListResourceAdapter();
-		}
-        return singleton;
-    }
-
-    /*
-     * @see ITaskListResourceAdapter#getAffectedResource(IAdaptable)
-     */
-    public IResource getAffectedResource(IAdaptable adaptable) {
-
-        IResource resource = (IResource) adaptable.getAdapter(IResource.class);
-        if (resource == null) {
-			return (IFile) adaptable.getAdapter(IFile.class);
-		} else {
-			return resource;
-		}
-
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/FiltersAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/FiltersAction.java
deleted file mode 100644
index e35524a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/FiltersAction.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.views.tasklist;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This action opens an editor for the resource
- * associated with the selected marker, and
- * jumps to the marker's location in the editor.
- */
-class FiltersAction extends TaskAction {
-
-    /**
-     * Creates the action.
-     * @param tasklist the task list
-     * @param id the id
-     */
-    public FiltersAction(TaskList tasklist, String id) {
-        super(tasklist, id);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				ITaskListHelpContextIds.FILTERS_ACTION);
-    }
-
-    /**
-     * Performs this action.
-     */
-    public void run() {
-        FiltersDialog dialog = new FiltersDialog(getShell());
-        TasksFilter filter = getTaskList().getFilter();
-        dialog.setFilter(filter);
-        int result = dialog.open();
-        if (result == Window.OK) {
-            getTaskList().filterChanged();
-        }
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/FiltersDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/FiltersDialog.java
deleted file mode 100644
index c805300..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/FiltersDialog.java
+++ /dev/null
@@ -1,963 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.tasklist;
-
-import com.ibm.icu.text.Collator; 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.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.Label;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetSelectionDialog;
-import org.eclipse.ui.internal.views.tasklist.TaskListMessages;
-
-class FiltersDialog extends TrayDialog {
-    /**
-     * ID for the Reset button
-     */
-    static final int RESET_ID = IDialogConstants.CLIENT_ID;
-
-    static final int SELECT_ID = IDialogConstants.CLIENT_ID + 1;
-
-    private static class EnumValue {
-        private int value;
-
-        private String text;
-
-        private Image image;
-
-        EnumValue(int value, String text, Image image) {
-            this.value = value;
-            this.text = text;
-            this.image = image;
-        }
-
-        int getValue() {
-            return value;
-        }
-
-        String getText() {
-            return text;
-        }
-
-        Image getImage() {
-            return image;
-        }
-    }
-
-    private static class EnumType {
-        private EnumValue[] values;
-
-        EnumType(EnumValue[] values) {
-            this.values = values;
-        }
-
-        EnumValue[] getValues() {
-            return values;
-        }
-    }
-
-    private EnumType severityType;
-
-    private EnumType priorityType;
-
-    private EnumType completionType;
-
-    private class CheckboxEnumGroup {
-        private EnumType type;
-
-        private Button enableButton;
-
-        private Button[] valueButtons;
-
-        CheckboxEnumGroup(Composite parent, String text, EnumType type) {
-            this.type = type;
-            // although not needed for layout, this composite is needed to get the tab order right
-            Composite enableComposite = new Composite(parent, SWT.NONE);
-            enableComposite
-                    .setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-            enableComposite.setLayout(new FillLayout());
-            enableButton = new Button(enableComposite, SWT.CHECK);
-            enableButton.addSelectionListener(selectionListener);
-            enableButton.setText(text);
-            Composite valueComposite = new Composite(parent, SWT.NONE);
-            valueComposite
-                    .setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-            valueComposite.setLayout(new FillLayout());
-            EnumValue[] values = type.getValues();
-            valueButtons = new Button[values.length];
-            for (int i = 0; i < values.length; ++i) {
-                Button valueButton = new Button(valueComposite, SWT.CHECK);
-                valueButton.setText(values[i].getText());
-                valueButtons[i] = valueButton;
-            }
-        }
-
-        boolean getEnabled() {
-            return enableButton.getEnabled();
-        }
-
-        void setEnabled(boolean enabled) {
-            enableButton.setEnabled(enabled);
-            updateEnabledState();
-        }
-
-        boolean getSelection() {
-            return enableButton.getSelection();
-        }
-
-        void setSelection(boolean selected) {
-            enableButton.setSelection(selected);
-            updateEnabledState();
-        }
-
-        void updateEnabledState() {
-            boolean enabled = enableButton.isEnabled()
-                    && enableButton.getSelection();
-            for (int i = 0; i < valueButtons.length; ++i) {
-                valueButtons[i].setEnabled(enabled);
-            }
-        }
-
-        int getValueMask() {
-            int mask = 0;
-            EnumValue[] values = type.getValues();
-            for (int i = 0; i < valueButtons.length; ++i) {
-                if (valueButtons[i].getSelection()) {
-                    mask |= (1 << values[i].getValue());
-                }
-            }
-            return mask;
-        }
-
-        void setValueMask(int mask) {
-            EnumValue[] values = type.getValues();
-            for (int i = 0; i < values.length; ++i) {
-                valueButtons[i]
-                        .setSelection((mask & (1 << values[i].getValue())) != 0);
-            }
-        }
-    }
-
-    private class LabelComboTextGroup {
-        Label label;
-
-        Combo combo;
-
-        Text text;
-
-        LabelComboTextGroup(Composite parent, String labelText,
-                String[] comboStrings, String initialText, int widthHint) {
-            Font font = parent.getFont();
-            Composite group = new Composite(parent, SWT.NONE);
-            GridLayout layout = new GridLayout();
-            layout.numColumns = 3;
-            //Set the margin width to 0 in order to line up with other items
-            layout.marginWidth = 0;
-            group.setLayout(layout);
-            group.setFont(font);
-            label = new Label(group, SWT.NONE);
-            label.setText(labelText);
-            label.setFont(font);
-            combo = createCombo(group, comboStrings, 0);
-            text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-            GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-            gridData.widthHint = widthHint;
-            text.setLayoutData(gridData);
-            text.setFont(font);
-            text.setText(initialText);
-        }
-    }
-
-    /**
-     * Creates and manages a group of widgets for selecting a working 
-     * set task filter.
-     */
-    private class WorkingSetGroup {
-        private Button button;
-
-        /**
-         * Creates the working set filter selection widgets.
-         * 
-         * @param parent the parent composite of the working set widgets
-         */
-        WorkingSetGroup(Composite parent) {
-            // radio button has to be part of main radio button group
-            button = createRadioButton(parent, TaskListMessages.TaskList_noWorkingSet);
-            GridData data = new GridData(GridData.FILL_HORIZONTAL);
-            button.setLayoutData(data);
-
-            Composite composite = new Composite(parent, SWT.NONE);
-            composite.setFont(parent.getFont());
-            GridLayout layout = new GridLayout();
-            Button radio = new Button(parent, SWT.RADIO);
-            layout.marginWidth = radio.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
-            layout.marginHeight = 0;
-            radio.dispose();
-            composite.setLayout(layout);
-            createButton(composite, SELECT_ID, TaskListMessages.TaskList_workingSetSelect, false);
-        }
-
-        /**
-         * Returns wether or not a working set filter should be used
-         * 
-         * @return 
-         * 	true=a working set filter should be used
-         * 	false=a working set filter should not be used
-         */
-        boolean getSelection() {
-            return button.getSelection();
-        }
-
-        /**
-         * Returns the selected working set filter or null if none 
-         * is selected.
-         * 
-         * @return the selected working set filter or null if none 
-         * 	is selected.
-         */
-        IWorkingSet getWorkingSet() {
-            return (IWorkingSet) button.getData();
-        }
-
-        /**
-         * Sets the working set filter selection.
-         * 
-         * @param selected true=a working set filter should be used
-         * 	false=no working set filter should be used
-         */
-        void setSelection(boolean selected) {
-            button.setSelection(selected);
-            if (selected) {
-                anyResourceButton.setSelection(false);
-                anyResourceInSameProjectButton.setSelection(false);
-                selectedResourceButton.setSelection(false);
-                selectedResourceAndChildrenButton.setSelection(false);
-            }
-        }
-
-        /**
-         * Opens the working set selection dialog.
-         */
-        void selectPressed() {
-            IWorkingSetSelectionDialog dialog = PlatformUI.getWorkbench()
-                    .getWorkingSetManager().createWorkingSetSelectionDialog(
-                            getShell(), false);
-            IWorkingSet workingSet = getWorkingSet();
-
-            if (workingSet != null) {
-                dialog.setSelection(new IWorkingSet[] { workingSet });
-            }
-            if (dialog.open() == Window.OK) {
-                IWorkingSet[] result = dialog.getSelection();
-                if (result != null && result.length > 0) {
-                    setWorkingSet(result[0]);
-                } else {
-                    setWorkingSet(null);
-                }
-                if (getSelection() == false) {
-                    setSelection(true);
-                }
-            }
-        }
-
-        /**
-         * Sets the specified working set.
-         * 
-         * @param workingSet the working set 
-         */
-        void setWorkingSet(IWorkingSet workingSet) {
-            button.setData(workingSet);
-            if (workingSet != null) {
-                button.setText(NLS.bind(TaskListMessages.TaskList_workingSet,  workingSet.getLabel()));
-            } else {
-                button.setText(TaskListMessages.TaskList_noWorkingSet);
-            }
-        }
-    }
-
-    private TasksFilter filter;
-
-    MarkerTypesModel markerTypesModel = new MarkerTypesModel();
-
-    private MarkerType[] markerTypes;
-
-    private CheckboxTreeViewer typesViewer;
-
-    Button anyResourceButton;
-
-    Button anyResourceInSameProjectButton; // added by cagatayk@acm.org
-
-    Button selectedResourceButton;
-
-    Button selectedResourceAndChildrenButton;
-
-    private WorkingSetGroup workingSetGroup;
-
-    private LabelComboTextGroup descriptionGroup;
-
-    private CheckboxEnumGroup severityGroup;
-
-    private CheckboxEnumGroup priorityGroup;
-
-    private CheckboxEnumGroup completionGroup;
-
-    private Button filterOnMarkerLimit;
-
-    private Text markerLimit;
-
-    SelectionListener selectionListener = new SelectionAdapter() {
-        public void widgetSelected(SelectionEvent e) {
-            FiltersDialog.this.widgetSelected(e);
-        }
-    };
-
-    private ICheckStateListener checkStateListener = new ICheckStateListener() {
-        public void checkStateChanged(CheckStateChangedEvent event) {
-            FiltersDialog.this.checkStateChanged(event);
-        }
-    };
-
-    /**
-     * Creates a new filters dialog.
-     * 
-     * @param parentShell the parent shell
-     */
-    public FiltersDialog(Shell parentShell) {
-        super(parentShell);
-        initTypes();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected void buttonPressed(int buttonId) {
-        if (RESET_ID == buttonId) {
-            resetPressed();
-        } else if (SELECT_ID == buttonId) {
-            workingSetGroup.selectPressed();
-        } else {
-            super.buttonPressed(buttonId);
-        }
-    }
-
-    /**
-     * Check state change.
-     * 
-     * @param event the event
-     */
-    public void checkStateChanged(CheckStateChangedEvent event) {
-        MarkerType type = (MarkerType) event.getElement();
-        typesViewer.setSubtreeChecked(type, event.getChecked());
-        MarkerType[] allSupertypes = type.getAllSupertypes();
-        for (int i = 0; i < allSupertypes.length; ++i) {
-            typesViewer.setChecked(allSupertypes[i], false);
-        }
-        updateEnabledState();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Window.
-     */
-    protected void configureShell(Shell newShell) {
-        super.configureShell(newShell);
-        newShell.setText(TaskListMessages.TaskList_filter);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell,
-				ITaskListHelpContextIds.FILTERS_DIALOG);
-    }
-
-    /**
-     * Creates the area showing filtering criteria on attribute values.
-     *
-     * @param parent the parent composite
-     */
-    void createAttributesArea(Composite parent) {
-        Composite composite = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        composite.setLayout(layout);
-        composite.setFont(parent.getFont());
-
-        String[] filters = {
-                TaskListMessages.TaskList_contains, TaskListMessages.TaskList_doesNotContain }; 
-        descriptionGroup = new LabelComboTextGroup(composite, TaskListMessages.TaskList_whereDescription, filters, "", 200);//$NON-NLS-1$ 
-        severityGroup = new CheckboxEnumGroup(composite, TaskListMessages.TaskList_severity_label, severityType); 
-        priorityGroup = new CheckboxEnumGroup(composite, TaskListMessages.TaskList_priority_label, priorityType); 
-        completionGroup = new CheckboxEnumGroup(composite, TaskListMessages.TaskList_status_label, completionType); 
-    }
-
-    void createResetArea(Composite parent) {
-        Composite composite = new Composite(parent, SWT.NONE);
-        composite.setFont(parent.getFont());
-        composite.setLayout(new GridLayout());
-        composite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-
-        Button reset = new Button(composite, SWT.PUSH);
-        reset.setText(TaskListMessages.TaskList_resetText);
-        reset.setData(new Integer(RESET_ID));
-
-        reset.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                buttonPressed(((Integer) event.widget.getData()).intValue());
-            }
-        });
-
-        reset.setFont(composite.getFont());
-        setButtonLayoutData(reset);
-    }
-
-    /**
-     * Creates a check box button with the given parent and text.
-     *
-     * @param parent the parent composite
-     * @param text the text for the check box
-     * @param grabRow <code>true</code>to grab the remaining horizontal space, <code>false</code> otherwise
-     * @return the check box button
-     */
-    Button createCheckbox(Composite parent, String text, boolean grabRow) {
-        Button button = new Button(parent, SWT.CHECK);
-        if (grabRow) {
-            GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-            button.setLayoutData(gridData);
-        }
-        button.setText(text);
-        button.addSelectionListener(selectionListener);
-        button.setFont(parent.getFont());
-        return button;
-    }
-
-    /**
-     * Creates a combo box with the given parent, items, and selection
-     *
-     * @param parent the parent composite
-     * @param items the items for the combo box
-     * @param selectionIndex the index of the item to select
-     * @return the combo box
-     */
-    Combo createCombo(Composite parent, String[] items, int selectionIndex) {
-        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(selectionIndex);
-        combo.addSelectionListener(selectionListener);
-        return combo;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected Control createDialogArea(Composite parent) {
-        Composite composite = (Composite) super.createDialogArea(parent);
-        createMarkerLimitArea(composite);
-        createTypesArea(composite);
-        createResourceArea(composite);
-        createAttributesArea(composite);
-        createResetArea(composite);
-        createSeparatorLine(composite);
-
-        updateUIFromFilter(getFilter());
-
-        return composite;
-    }
-
-    /**
-     * Creates a separator line above the OK/Cancel buttons bar
-     * 
-     * @param parent the parent composite
-     */
-    void createSeparatorLine(Composite parent) {
-        // Build the separator line
-        Label separator = new Label(parent, SWT.HORIZONTAL | SWT.SEPARATOR);
-        GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-        gd.horizontalSpan = 1;
-        separator.setLayoutData(gd);
-    }
-
-    /**
-     * Creates a radio button with the given parent and text.
-     *
-     * @param parent the parent composite
-     * @param text the text for the check box
-     * @return the radio box button
-     */
-    Button createRadioButton(Composite parent, String text) {
-        Button button = new Button(parent, SWT.RADIO);
-        button.setText(text);
-        button.setFont(parent.getFont());
-        button.addSelectionListener(selectionListener);
-        return button;
-    }
-
-    /**
-     * Creates the area showing which resources should be considered.
-     *
-     * @param parent the parent composite
-     */
-    void createResourceArea(Composite parent) {
-        Composite group = new Composite(parent, SWT.NONE);
-        group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        group.setLayout(new GridLayout());
-        group.setFont(parent.getFont());
-        anyResourceButton = createRadioButton(group, TaskListMessages.TaskList_anyResource);
-        anyResourceInSameProjectButton = createRadioButton(group,
-                TaskListMessages.TaskList_anyResourceInSameProject);// added by cagatayk@acm.org
-        selectedResourceButton = createRadioButton(group, TaskListMessages.TaskList_selectedResource); 
-        selectedResourceAndChildrenButton = createRadioButton(group,
-                TaskListMessages.TaskList_selectedAndChildren); 
-        workingSetGroup = new WorkingSetGroup(group);
-    }
-
-    /**
-     * Creates the area showing which marker types should be included.
-     *
-     * @param parent the parent composite
-     */
-    void createTypesArea(Composite parent) {
-        Composite composite = new Composite(parent, SWT.NONE);
-        composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        GridLayout layout = new GridLayout();
-        composite.setLayout(layout);
-
-        Label label = new Label(composite, SWT.NONE);
-        label.setText(TaskListMessages.TaskList_showItemsOfType);
-
-        typesViewer = new CheckboxTreeViewer(composite);
-        GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-        gridData.heightHint = 100;
-        typesViewer.getControl().setLayoutData(gridData);
-        typesViewer.setContentProvider(getContentProvider());
-        typesViewer.setLabelProvider(getLabelProvider());
-        typesViewer.setComparator(getViewerComparator());
-        typesViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
-        typesViewer.addCheckStateListener(checkStateListener);
-        typesViewer.setInput(getMarkerTypes());
-    }
-
-    ITreeContentProvider getContentProvider() {
-        return new ITreeContentProvider() {
-            public void inputChanged(Viewer viewer, Object oldInput,
-                    Object newInput) {
-            }
-
-            public void dispose() {
-            }
-
-            public Object[] getElements(Object inputElement) {
-                return new Object[] {
-                        markerTypesModel.getType(IMarker.PROBLEM),
-                        markerTypesModel.getType(IMarker.TASK) };
-            }
-
-            public Object[] getChildren(Object parentElement) {
-                MarkerType type = (MarkerType) parentElement;
-                return type.getSubtypes();
-            }
-
-            public Object getParent(Object element) {
-                return null;
-            }
-
-            public boolean hasChildren(Object element) {
-                return getChildren(element).length > 0;
-            }
-        };
-    }
-
-    void createMarkerLimitArea(Composite parent) {
-        Font font = parent.getFont();
-        Composite composite = new Composite(parent, SWT.NONE);
-        composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        composite.setFont(font);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        composite.setLayout(layout);
-        filterOnMarkerLimit = createCheckbox(composite, TaskListMessages.TaskList_limitVisibleTasksTo, false);
-        filterOnMarkerLimit.setLayoutData(new GridData());
-        markerLimit = new Text(composite, SWT.SINGLE | SWT.BORDER);
-        markerLimit.setTextLimit(6);
-        GridData gridData = new GridData();
-        gridData.widthHint = convertWidthInCharsToPixels(10);
-        markerLimit.setLayoutData(gridData);
-        markerLimit.setFont(font);
-    }
-
-    /**
-     * Returns the filter which this dialog is configuring.
-     *
-     * @return the filter
-     */
-    public TasksFilter getFilter() {
-        if (filter == null) {
-			filter = new TasksFilter();
-		}
-        return filter;
-    }
-
-    ILabelProvider getLabelProvider() {
-        return new LabelProvider() {
-            public String getText(Object element) {
-                MarkerType type = (MarkerType) element;
-                return type.getLabel();
-            }
-        };
-    }
-
-    /**
-     * Returns the marker types to display.
-     *
-     * @return the marker types to display
-     */
-    MarkerType[] getMarkerTypes() {
-        if (markerTypes == null) {
-            ArrayList typesList = new ArrayList();
-            MarkerType[] types = markerTypesModel.getTypes();
-            for (int i = 0; i < types.length; ++i) {
-                MarkerType type = types[i];
-                if (type.getLabel().length() > 0) {
-                    if (type.isSubtypeOf(markerTypesModel
-                            .getType(IMarker.PROBLEM))
-                            || type.isSubtypeOf(markerTypesModel
-                                    .getType(IMarker.TASK))) {
-                        typesList.add(type);
-                    }
-                }
-            }
-            Collections.sort(typesList, new Comparator() {
-                Collator collator = Collator.getInstance();
-
-                public int compare(Object o1, Object o2) {
-                    return collator.compare(((MarkerType) o1).getLabel(),
-                            ((MarkerType) o2).getLabel());
-                }
-            });
-            markerTypes = new MarkerType[typesList.size()];
-            typesList.toArray(markerTypes);
-        }
-        return markerTypes;
-    }
-
-    /**
-     * Returns the ids of the selected marker types.
-     *
-     * @return the ids of the selected marker types
-     */
-    String[] getSelectedTypes() {
-        Object[] checked = typesViewer.getCheckedElements();
-        ArrayList list = new ArrayList();
-        for (int i = 0; i < checked.length; ++i) {
-            MarkerType type = (MarkerType) checked[i];
-            // Skip it if any supertypes have already been included.
-            // Relies on getCheckedElements() using a pre-order traversal 
-            // so parents are earlier in the list.
-            boolean found = false;
-            for (int j = list.size(); --j >= 0;) {
-                if (type.isSubtypeOf((MarkerType) list.get(j))) {
-                    found = true;
-                    break;
-                }
-            }
-            if (!found) {
-                list.add(type);
-            }
-        }
-        String[] types = new String[list.size()];
-        for (int i = 0; i < list.size(); ++i) {
-            types[i] = ((MarkerType) list.get(i)).getId();
-        }
-        return types;
-    }
-
-    private ViewerComparator getViewerComparator() {
-        return new ViewerComparator() {
-            public int compare(Viewer viewer, Object e1, Object e2) {
-                MarkerType t1 = (MarkerType) e1;
-                MarkerType t2 = (MarkerType) e2;
-                return getComparator().compare(t1.getLabel(), t2.getLabel());
-            }
-        };
-    }
-
-    /**
-     * Returns the id of the marker type at the given index
-     *
-     * @param typeIndex the index of the marker type in the UI list
-     * @return the id of the marker type at the given index
-     */
-    String getTypeId(int typeIndex) {
-        return getMarkerTypes()[typeIndex].getId();
-    }
-
-    /**
-     * Returns the index of the given marker type
-     *
-     * @param markerType the marker type id
-     * @return the index of the marker type
-     */
-    int getTypeIndex(String markerType) {
-        MarkerType[] types = getMarkerTypes();
-        for (int i = 0; i < types.length; ++i) {
-            String id = types[i].getId();
-            if (id == null ? markerType == null : id.equals(markerType)) {
-				return i;
-			}
-        }
-        return -1;
-    }
-
-    void initTypes() {
-        severityType = new EnumType(
-                new EnumValue[] {
-                        new EnumValue(
-                                IMarker.SEVERITY_ERROR,
-                                TaskListMessages.TaskList_severity_error, MarkerUtil.getImage("error")),//$NON-NLS-1$
-                        new EnumValue(
-                                IMarker.SEVERITY_WARNING,
-                                TaskListMessages.TaskList_severity_warning, MarkerUtil.getImage("warn")),//$NON-NLS-1$
-                        new EnumValue(
-                                IMarker.SEVERITY_INFO,
-                                TaskListMessages.TaskList_severity_info, MarkerUtil.getImage("info"))  //$NON-NLS-1$
-                });
-
-        priorityType = new EnumType(
-                new EnumValue[] {
-                        new EnumValue(
-                                IMarker.PRIORITY_HIGH,
-                                TaskListMessages.TaskList_priority_high, MarkerUtil.getImage("hprio")), //$NON-NLS-1$
-                        new EnumValue(IMarker.PRIORITY_NORMAL, TaskListMessages.TaskList_priority_normal, null), 
-                        new EnumValue(
-                                IMarker.PRIORITY_LOW,
-                                TaskListMessages.TaskList_priority_low, MarkerUtil.getImage("lprio")) //$NON-NLS-1$
-                });
-
-        completionType = new EnumType(new EnumValue[] {
-                new EnumValue(1, TaskListMessages.TaskList_status_completed, null), 
-                new EnumValue(0, TaskListMessages.TaskList_status_notCompleted, null) 
-                });
-    }
-
-    /**
-     * Updates the filter from the UI state.
-     * Must be done here rather than by extending open()
-     * because after super.open() is called, the widgetry is disposed.
-     */
-    protected void okPressed() {
-        try {
-            int parseResult = Integer.parseInt(this.markerLimit.getText());
-
-            if (parseResult < 1) {
-                throw new NumberFormatException();
-            }
-
-            updateFilterFromUI(getFilter());
-            super.okPressed();
-        } catch (NumberFormatException eNumberFormat) {
-            MessageBox messageBox = new MessageBox(getShell(), SWT.OK
-                    | SWT.APPLICATION_MODAL | SWT.ICON_ERROR);
-            messageBox.setText(TaskListMessages.TaskList_titleMarkerLimitInvalid);
-            messageBox.setMessage(TaskListMessages.TaskList_messageMarkerLimitInvalid); 
-            messageBox.open();
-
-            if (markerLimit.forceFocus()) {
-                markerLimit.setSelection(0, markerLimit.getCharCount());
-                markerLimit.showSelection();
-            }
-        }
-    }
-
-    /**
-     * Handles a press of the Reset button.
-     * Updates the UI state to correspond to a reset filter,
-     * but doesn't actually reset our filter.
-     */
-    void resetPressed() {
-        updateUIFromFilter(new TasksFilter());
-    }
-
-    /**
-     * Returns whether any of the selected types are a subtype of the given type.
-     */
-    boolean selectionIncludesSubtypeOf(String type) {
-        MarkerType superType = markerTypesModel.getType(type);
-        if (superType == null) {
-            return false;
-        }
-        Object[] checked = typesViewer.getCheckedElements();
-        for (int i = 0; i < checked.length; ++i) {
-            if (((MarkerType) checked[i]).isSubtypeOf(superType)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Sets the filter which this dialog is to configure.
-     *
-     * @param filter the filter
-     */
-    public void setFilter(TasksFilter filter) {
-        this.filter = filter;
-    }
-
-    /**
-     * Sets the selected marker types.
-     *
-     * @param typeIds the ids of the marker types to select
-     */
-    void setSelectedTypes(String[] typeIds) {
-        typesViewer.setCheckedElements(new MarkerType[0]);
-        for (int i = 0; i < typeIds.length; ++i) {
-            MarkerType type = markerTypesModel.getType(typeIds[i]);
-            if (type != null) {
-                typesViewer.setSubtreeChecked(type, true);
-            }
-        }
-    }
-
-    /**
-     * Updates the enabled state of the widgetry.
-     */
-    void updateEnabledState() {
-        markerLimit.setEnabled(filterOnMarkerLimit.getSelection());
-        boolean isProblemSelected = selectionIncludesSubtypeOf(IMarker.PROBLEM);
-        boolean isTaskSelected = selectionIncludesSubtypeOf(IMarker.TASK);
-        severityGroup.setEnabled(isProblemSelected);
-        priorityGroup.setEnabled(isTaskSelected);
-        completionGroup.setEnabled(isTaskSelected);
-    }
-
-    /**
-     * Updates the given filter from the UI state.
-     *
-     * @param tasksFilter the filter to update
-     */
-    void updateFilterFromUI(TasksFilter tasksFilter) {
-
-        tasksFilter.types = getSelectedTypes();
-
-        if (selectedResourceButton.getSelection()) {
-			tasksFilter.onResource = TasksFilter.ON_SELECTED_RESOURCE_ONLY;
-		} else if (selectedResourceAndChildrenButton.getSelection()) {
-			tasksFilter.onResource = TasksFilter.ON_SELECTED_RESOURCE_AND_CHILDREN;
-		} else if (anyResourceInSameProjectButton.getSelection()) {
-			tasksFilter.onResource = TasksFilter.ON_ANY_RESOURCE_OF_SAME_PROJECT;
-		} else if (workingSetGroup.getSelection()) {
-			tasksFilter.onResource = TasksFilter.ON_WORKING_SET;
-		} else {
-			tasksFilter.onResource = TasksFilter.ON_ANY_RESOURCE;
-		}
-
-        tasksFilter.workingSet = workingSetGroup.getWorkingSet();
-        tasksFilter.descriptionFilterKind = descriptionGroup.combo
-                .getSelectionIndex();
-        tasksFilter.descriptionFilter = descriptionGroup.text.getText();
-        tasksFilter.filterOnDescription = !tasksFilter.descriptionFilter
-                .equals("");//$NON-NLS-1$
-
-        tasksFilter.filterOnSeverity = severityGroup.getSelection();
-        tasksFilter.severityFilter = severityGroup.getValueMask();
-
-        tasksFilter.filterOnPriority = priorityGroup.getSelection();
-        tasksFilter.priorityFilter = priorityGroup.getValueMask();
-
-        tasksFilter.filterOnCompletion = completionGroup.getSelection();
-        tasksFilter.completionFilter = completionGroup.getValueMask();
-
-        int limit = TasksFilter.DEFAULT_MARKER_LIMIT;
-
-        try {
-            limit = Integer.parseInt(this.markerLimit.getText());
-        } catch (NumberFormatException eNumberFormat) {
-        }
-
-        tasksFilter.setMarkerLimit(limit);
-        tasksFilter.setFilterOnMarkerLimit(filterOnMarkerLimit.getSelection());
-    }
-
-    /**
-     * Updates the UI state from the given filter.
-     *
-     * @param tasksFilter the filter to use
-     */
-    void updateUIFromFilter(TasksFilter tasksFilter) {
-
-        setSelectedTypes(tasksFilter.types);
-
-        int on = tasksFilter.onResource;
-        anyResourceButton.setSelection(on == TasksFilter.ON_ANY_RESOURCE);
-        anyResourceInSameProjectButton
-                .setSelection(on == TasksFilter.ON_ANY_RESOURCE_OF_SAME_PROJECT); // added by cagatayk@acm.org
-        selectedResourceButton
-                .setSelection(on == TasksFilter.ON_SELECTED_RESOURCE_ONLY);
-        selectedResourceAndChildrenButton
-                .setSelection(on == TasksFilter.ON_SELECTED_RESOURCE_AND_CHILDREN);
-        workingSetGroup.setSelection(on == TasksFilter.ON_WORKING_SET);
-        workingSetGroup.setWorkingSet(tasksFilter.workingSet);
-
-        descriptionGroup.combo.select(tasksFilter.descriptionFilterKind);
-        descriptionGroup.text.setText(tasksFilter.descriptionFilter);
-
-        severityGroup.setSelection(tasksFilter.filterOnSeverity);
-        severityGroup.setValueMask(tasksFilter.severityFilter);
-
-        priorityGroup.setSelection(tasksFilter.filterOnPriority);
-        priorityGroup.setValueMask(tasksFilter.priorityFilter);
-
-        completionGroup.setSelection(tasksFilter.filterOnCompletion);
-        completionGroup.setValueMask(tasksFilter.completionFilter);
-
-        markerLimit.setText("" + tasksFilter.getMarkerLimit()); //$NON-NLS-1$
-        filterOnMarkerLimit.setSelection(tasksFilter.getFilterOnMarkerLimit());
-
-        updateEnabledState();
-    }
-
-    /**
-     * Handles selection on a check box or combo box.
-     */
-    void widgetSelected(SelectionEvent e) {
-        updateEnabledState();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/GotoTaskAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/GotoTaskAction.java
deleted file mode 100644
index dde0e25..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/GotoTaskAction.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.views.tasklist;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.util.OpenStrategy;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.DialogUtil;
-import org.eclipse.ui.internal.views.tasklist.TaskListMessages;
-
-/**
- * This action opens an editor for the resource
- * associated with the selected marker, and
- * jumps to the marker's location in the editor.
- */
-class GotoTaskAction extends TaskAction {
-
-    /**
-     * Creates the action.
-     * 
-     * @param tasklist the task list
-     * @param id the id
-     */
-    public GotoTaskAction(TaskList tasklist, String id) {
-        super(tasklist, id);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				ITaskListHelpContextIds.GOTO_TASK_ACTION);
-    }
-
-    /**
-     * Performs this action. This action works only for single selection.
-     */
-    public void run() {
-        IStructuredSelection selection = (IStructuredSelection) getTaskList()
-                .getSelection();
-        Object o = selection.getFirstElement();
-        if (!(o instanceof IMarker)) {
-			return;
-		}
-        IMarker marker = (IMarker) o;
-        IResource resource = marker.getResource();
-        if (marker.exists() && resource instanceof IFile) {
-            IWorkbenchPage page = getTaskList().getSite().getPage();
-            try {
-                IDE.openEditor(page, marker, OpenStrategy.activateOnOpen());
-            } catch (PartInitException e) {
-                DialogUtil.openError(page.getWorkbenchWindow().getShell(),
-                        TaskListMessages.GotoTask_errorMessage, 
-                        e.getMessage(), e);
-            }
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/IMarkerConstants.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/IMarkerConstants.java
deleted file mode 100644
index d0c57b9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/IMarkerConstants.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.tasklist;
-
-/**
- * This interface defines constants used for marker properties
- * and attributes.
- *
- * @see org.eclipse.core.resources.IMarker
- */
-interface IMarkerConstants {
-    public static final String PREFIX = "org.eclipse.ui.tasklist."; //$NON-NLS-1$
-
-    public static final String P_PRIORITY_IMAGE = PREFIX + "priorityImage"; //$NON-NLS-1$
-
-    public static final String P_COMPLETE_IMAGE = PREFIX + "completeImage"; //$NON-NLS-1$
-
-    public static final String P_RESOURCE_NAME = PREFIX + "resourceName"; //$NON-NLS-1$
-
-    public static final String P_CONTAINER_NAME = PREFIX + "containerName"; //$NON-NLS-1$
-
-    public static final String P_LINE_AND_LOCATION = PREFIX + "lineAndLocation"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ITaskListHelpContextIds.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ITaskListHelpContextIds.java
deleted file mode 100644
index be182ff..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ITaskListHelpContextIds.java
+++ /dev/null
@@ -1,101 +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.tasklist;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Help context ids for the task list view.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * 
- */
-interface ITaskListHelpContextIds {
-    public static final String PREFIX = PlatformUI.PLUGIN_ID + "."; //$NON-NLS-1$
-
-    // Actions
-    public static final String PURGE_COMPLETED_TASK_ACTION = PREFIX
-            + "purge_completed_task_action_context"; //$NON-NLS-1$
-
-    public static final String COPY_TASK_ACTION = PREFIX
-            + "copy_task_action_context"; //$NON-NLS-1$
-
-    public static final String PASTE_TASK_ACTION = PREFIX
-            + "paste_task_action_context"; //$NON-NLS-1$
-
-    public static final String NEW_TASK_ACTION = PREFIX
-            + "new_task_action_context"; //$NON-NLS-1$
-
-    public static final String REMOVE_TASK_ACTION = PREFIX
-            + "remove_task_action_context"; //$NON-NLS-1$
-
-    public static final String GOTO_TASK_ACTION = PREFIX
-            + "goto_task_action_context"; //$NON-NLS-1$
-
-    public static final String FILTERS_ACTION = PREFIX
-            + "filters_action_context"; //$NON-NLS-1$
-
-    public static final String MARK_COMPLETED_ACTION = PREFIX
-            + "mark_completed_action_context"; //$NON-NLS-1$
-
-    public static final String RESOLVE_MARKER_ACTION = PREFIX
-            + "resolve_marker_action_context"; //$NON-NLS-1$
-
-    public static final String SELECT_ALL_TASKS_ACTION = PREFIX
-            + "select_all_tasks_action_context"; //$NON-NLS-1$
-
-    public static final String TASK_PROPERTIES_ACTION = PREFIX
-            + "task_properties_action_context"; //$NON-NLS-1$
-
-    public static final String TASK_SORT_TYPE_ACTION = PREFIX
-            + "task_sort_type_action_context"; //$NON-NLS-1$
-
-    public static final String TASK_SORT_COMPLETED_ACTION = PREFIX
-            + "task_sort_completed_action_context"; //$NON-NLS-1$
-
-    public static final String TASK_SORT_PRIORITY_ACTION = PREFIX
-            + "task_sort_priority_action_context"; //$NON-NLS-1$
-
-    public static final String TASK_SORT_DESCRIPTION_ACTION = PREFIX
-            + "task_sort_description_action_context"; //$NON-NLS-1$
-
-    public static final String TASK_SORT_RESOURCE_ACTION = PREFIX
-            + "task_sort_resource_action_context"; //$NON-NLS-1$
-
-    public static final String TASK_SORT_FOLDER_ACTION = PREFIX
-            + "task_sort_folder_action_context"; //$NON-NLS-1$
-
-    public static final String TASK_SORT_LOCATION_ACTION = PREFIX
-            + "task_sort_location_action_context"; //$NON-NLS-1$
-
-    public static final String TASK_SORT_CREATION_TIME_ACTION = PREFIX
-            + "task_sort_creation_time_action_context"; //$NON-NLS-1$
-
-    public static final String TASK_SORT_ASCENDING_ACTION = PREFIX
-            + "task_sort_ascending_action_context"; //$NON-NLS-1$
-
-    public static final String TASK_SORT_DESCENDING_ACTION = PREFIX
-            + "task_sort_descending_action_context"; //$NON-NLS-1$
-
-    // Dialogs
-    public static final String FILTERS_DIALOG = PREFIX
-            + "task_filters_dialog_context"; //$NON-NLS-1$
-
-    public static final String PROPERTIES_DIALOG = PREFIX
-            + "task_properties_dialog_context"; //$NON-NLS-1$
-
-    // Views
-    public static final String TASK_LIST_VIEW = PREFIX
-            + "task_list_view_context"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ITaskListResourceAdapter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ITaskListResourceAdapter.java
deleted file mode 100644
index 7736d2c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ITaskListResourceAdapter.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.tasklist;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * <code>ITaskListResourceAdapter</code> is an adapter interface that
- * supplies the resource to query for markers to display in the task list.
- * <p>
- * The Tasks view checks for this adapter before the <code>IResource</code>
- * adapter, allowing the object to provide a resource to the Tasks view without
- * necessarily exposing it to other components that look for an <code>IResource</code>
- * adapter.     
- * </p>
- * <p>
- * Implementors of this interface are typically registered with an
- * IAdapterFactory for lookup via the getAdapter() mechanism.
- * </p>
- */
-public interface ITaskListResourceAdapter {
-
-    /**
-     * Returns the resource to query for the markers to display
-     * for the given adaptable.
-     * 
-     * @param adaptable the adaptable being queried.
-     * @return the resource or <code>null</code> if there
-     * 	is no adapted resource for this object.
-     */
-    public IResource getAffectedResource(IAdaptable adaptable);
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkCompletedAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkCompletedAction.java
deleted file mode 100644
index 22b0333..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkCompletedAction.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.views.tasklist;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.UpdateMarkersOperation;
-
-class MarkCompletedAction extends TaskAction {
-
-    /**
-     * Create a MarkCompletedAction.
-     * @param tasklist
-     * @param id
-     */
-    protected MarkCompletedAction(TaskList tasklist, String id) {
-        super(tasklist, id);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                ITaskListHelpContextIds.MARK_COMPLETED_ACTION);
-    }
-
-    /**
-     * Sets the completed value of the currently selected
-     * actions.
-     */
-    public void run() {
-        ISelection selectedMarkers = getTaskList().getSelection();
-        if (selectedMarkers instanceof IStructuredSelection) {
-            Iterator selections = ((IStructuredSelection) selectedMarkers).iterator();
-            ArrayList markers = new ArrayList();
-            while (selections.hasNext()) {
-                Object marker = selections.next();
-                if (marker instanceof IMarker) {
-                	markers.add(marker);
-                }
-            }
-    		Map attrs = new HashMap();
-    		attrs.put(IMarker.DONE, Boolean.TRUE);
-    		IUndoableOperation op = new UpdateMarkersOperation((IMarker [])markers.toArray(new IMarker [markers.size()]), 
-    				attrs, getText(), true);
-    		execute(op, getText(), null, null);
-
-        }
-        
-    }
-
-    /**
-     * Returns whether this action should be enabled for the given selection.
-     * 
-     * @param selection the selection
-     * @return enablement
-     */
-    public boolean shouldEnable(IStructuredSelection selection) {
-        if (selection.isEmpty()) {
-			return false;
-		}
-        for (Iterator i = selection.iterator(); i.hasNext();) {
-            IMarker marker = (IMarker) i.next();
-            if (!(MarkerUtil.isMarkerType(marker, IMarker.TASK)
-                    && !MarkerUtil.isComplete(marker) && MarkerUtil
-                    .isEditable(marker))) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerType.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerType.java
deleted file mode 100644
index 48e6443..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerType.java
+++ /dev/null
@@ -1,135 +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.tasklist;
-
-import java.util.ArrayList;
-
-/**
- * Represents a marker type.
- */
-class MarkerType {
-    private MarkerTypesModel model;
-
-    private String id;
-
-    private String label;
-
-    private String[] supertypeIds;
-
-    /**
-     * Creates a new marker type.
-     */
-    public MarkerType(MarkerTypesModel model, String id, String label,
-            String[] supertypeIds) {
-        this.model = model;
-        this.id = id;
-        this.label = label;
-        this.supertypeIds = supertypeIds;
-    }
-
-    /**
-     * Returns all this type's supertypes.
-     */
-    public MarkerType[] getAllSupertypes() {
-        ArrayList result = new ArrayList();
-        getAllSupertypes(result);
-        return (MarkerType[]) result.toArray(new MarkerType[result.size()]);
-    }
-
-    /**
-     * Appends all this type's supertypes to the given list.
-     */
-    private void getAllSupertypes(ArrayList result) {
-        MarkerType[] supers = getSupertypes();
-        for (int i = 0; i < supers.length; ++i) {
-            MarkerType sup = supers[i];
-            if (!result.contains(sup)) {
-                result.add(sup);
-                sup.getAllSupertypes(result);
-            }
-        }
-    }
-
-    /**
-     * Returns the marker type id.
-     */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * Returns the human-readable label for this marker type.
-     */
-    public String getLabel() {
-        return label;
-    }
-
-    /**
-     * Returns the types which have this type as a direct supertype.
-     *
-     * @return the direct subtypes of this type
-     */
-    public MarkerType[] getSubtypes() {
-        MarkerType[] types = model.getTypes();
-        ArrayList result = new ArrayList();
-        for (int i = 0; i < types.length; ++i) {
-            MarkerType type = types[i];
-            String[] supers = type.getSupertypeIds();
-            for (int j = 0; j < supers.length; ++j) {
-                if (supers[j].equals(id)) {
-                    result.add(type);
-                }
-            }
-        }
-        return (MarkerType[]) result.toArray(new MarkerType[result.size()]);
-    }
-
-    /**
-     * Returns the marker type ids for this type's supertypes.
-     */
-    public String[] getSupertypeIds() {
-        return supertypeIds;
-    }
-
-    /**
-     * Returns this type's direct supertypes.
-     */
-    public MarkerType[] getSupertypes() {
-        ArrayList result = new ArrayList();
-        for (int i = 0; i < supertypeIds.length; ++i) {
-            MarkerType sup = model.getType(supertypeIds[i]);
-            if (sup != null) {
-                result.add(sup);
-            }
-        }
-        return (MarkerType[]) result.toArray(new MarkerType[result.size()]);
-    }
-
-    /**
-     * Returns whether this marker type is considered to be a subtype of
-     * the given marker type. 
-     *
-     * @return boolean <code>true</code>if this type is the same as (or a subtype of) the given type
-     */
-    public boolean isSubtypeOf(MarkerType superType) {
-        if (id.equals(superType.getId())) {
-            return true;
-        }
-        for (int i = 0; i < supertypeIds.length; ++i) {
-            MarkerType sup = model.getType(supertypeIds[i]);
-            if (sup != null && sup.isSubtypeOf(superType)) {
-                return true;
-            }
-        }
-        return false;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerTypesModel.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerTypesModel.java
deleted file mode 100644
index 572baa6..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerTypesModel.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.views.tasklist;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * Maintains a model of all known marker types.
- */
-class MarkerTypesModel {
-    /**
-     * Maps from marker type id to MarkerType.
-     */
-    private HashMap types;
-
-    /**
-     * Creates a new marker types model.
-     */
-    public MarkerTypesModel() {
-        types = readTypes();
-    }
-
-    /**
-     * Returns the marker type with the given id, or <code>null</code> if there is no such marker type.
-     */
-    public MarkerType getType(String id) {
-        return (MarkerType) types.get(id);
-    }
-
-    /**
-     * Returns all known marker types.
-     */
-    public MarkerType[] getTypes() {
-        MarkerType[] result = new MarkerType[types.size()];
-        types.values().toArray(result);
-        return result;
-    }
-
-    /**
-     * Returns the label for the given marker type.
-     * Workaround until we have labels in XML.
-     */
-    private String getWellKnownLabel(String type) {
-        if (type.equals(IMarker.PROBLEM)) {
-			return "Problem";//$NON-NLS-1$
-		}
-        if (type.equals(IMarker.TASK)) {
-			return "Task";//$NON-NLS-1$
-		}
-        if (type.equals("org.eclipse.jdt.core.problem")) { //$NON-NLS-1$
-			return "Java Problem";//$NON-NLS-1$
-		}
-        return type;
-    }
-
-    /**
-     * Reads the marker types from the registry.
-     */
-    private HashMap readTypes() {
-        HashMap types = new HashMap();
-        IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(
-                ResourcesPlugin.PI_RESOURCES, ResourcesPlugin.PT_MARKERS);
-        if (point != null) {
-            // Gather all registered marker types.
-            IExtension[] extensions = point.getExtensions();
-            for (int i = 0; i < extensions.length; ++i) {
-                IExtension ext = extensions[i];
-                String id = ext.getUniqueIdentifier();
-                String label = ext.getLabel();
-                if (label.equals("")) {//$NON-NLS-1$
-                    label = getWellKnownLabel(id);
-                }
-                ArrayList supersList = new ArrayList();
-                IConfigurationElement[] configElements = ext
-                        .getConfigurationElements();
-                for (int j = 0; j < configElements.length; ++j) {
-                    IConfigurationElement elt = configElements[j];
-                    if (elt.getName().equalsIgnoreCase("super")) {//$NON-NLS-1$
-                        String sup = elt.getAttribute("type");//$NON-NLS-1$
-                        if (sup != null) {
-                            supersList.add(sup);
-                        }
-                    }
-                }
-                String[] superTypes = new String[supersList.size()];
-                supersList.toArray(superTypes);
-                MarkerType type = new MarkerType(this, id, label, superTypes);
-                types.put(id, type);
-            }
-        }
-        return types;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerUtil.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerUtil.java
deleted file mode 100644
index 1c58996..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/MarkerUtil.java
+++ /dev/null
@@ -1,497 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.tasklist;
-
-import com.ibm.icu.text.DateFormat;
-import com.ibm.icu.text.MessageFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.views.tasklist.TaskListMessages;
-
-/**
- * Utility class for accessing marker attributes.
- */
-class MarkerUtil implements IMarkerConstants {
-	
-   private static Map imageDescriptors;
-
-    private static ImageRegistry imageRegistry = new ImageRegistry();
-
-    private static MessageFormat line = new MessageFormat(TaskListMessages.TaskList_line);
-
-    private static MessageFormat lineAndLocation = new MessageFormat(
-            TaskListMessages.TaskList_lineAndLocation); 
-
-    static {
-        createImageDescriptors();
-    }
-
-    /**
-     * Don't allow instantiation.
-     */
-    private MarkerUtil() {
-    }
-
-    /**
-     * Creates the map of image descriptors.
-     */
-    static void createImageDescriptors() {
-    
-
-        imageDescriptors = new HashMap(51);
-        imageDescriptors
-                .put(
-                        "header_complete", IDEWorkbenchPlugin.getIDEImageDescriptor("obj16/header_complete.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "header_priority", IDEWorkbenchPlugin.getIDEImageDescriptor("obj16/header_priority.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors.put(
-                "task", IDEWorkbenchPlugin.getIDEImageDescriptor("obj16/taskmrk_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors.put(
-                "error", IDEWorkbenchPlugin.getIDEImageDescriptor("obj16/error_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors.put(
-                "warn", IDEWorkbenchPlugin.getIDEImageDescriptor("obj16/warn_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors.put(
-                "info", IDEWorkbenchPlugin.getIDEImageDescriptor("obj16/info_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors.put(
-                "hprio", IDEWorkbenchPlugin.getIDEImageDescriptor("obj16/hprio_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors.put(
-                "lprio", IDEWorkbenchPlugin.getIDEImageDescriptor("obj16/lprio_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "complete_tsk", IDEWorkbenchPlugin.getIDEImageDescriptor("obj16/complete_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "incomplete_tsk", IDEWorkbenchPlugin.getIDEImageDescriptor("obj16/incomplete_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors.put(
-                "gotoobj", IDEWorkbenchPlugin.getIDEImageDescriptor("elcl16/gotoobj_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors.put(
-                "addtsk", IDEWorkbenchPlugin.getIDEImageDescriptor("elcl16/addtsk_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "addtsk_disabled", IDEWorkbenchPlugin.getIDEImageDescriptor("dlcl16/addtsk_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "showcomplete", IDEWorkbenchPlugin.getIDEImageDescriptor("elcl16/showcomplete_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "selected_mode", IDEWorkbenchPlugin.getIDEImageDescriptor("elcl16/selected_mode.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "selected_mode_disabled", IDEWorkbenchPlugin.getIDEImageDescriptor("dlcl16/selected_mode.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "showchild_mode", IDEWorkbenchPlugin.getIDEImageDescriptor("elcl16/showchild_mode.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "showchild_mode_disabled", IDEWorkbenchPlugin.getIDEImageDescriptor("dlcl16/showchild_mode.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "showerr_disabled", IDEWorkbenchPlugin.getIDEImageDescriptor("dlcl16/showerr_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "showwarn_disabled", IDEWorkbenchPlugin.getIDEImageDescriptor("dlcl16/showwarn_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors
-                .put(
-                        "showtsk_disabled", IDEWorkbenchPlugin.getIDEImageDescriptor("dlcl16/showtsk_tsk.gif"));//$NON-NLS-2$//$NON-NLS-1$
-        imageDescriptors.put(
-                "filter", IDEWorkbenchPlugin.getIDEImageDescriptor("elcl16/filter_ps.gif"));//$NON-NLS-2$//$NON-NLS-1$
-    }
-
-    /**
-     * Returns the ending character offset of the given marker.
-     */
-    public static int getCharEnd(IMarker marker) {
-        return marker.getAttribute(IMarker.CHAR_END, -1);
-    }
-
-    /**
-     * Returns the starting character offset of the given marker.
-     */
-    public static int getCharStart(IMarker marker) {
-        return marker.getAttribute(IMarker.CHAR_START, -1);
-    }
-
-    /**
-     * Returns the icon to be used in the tasklist
-     * for the complete state of a task. Returns null
-     * for markers that are not tasks.
-     */
-    public static Image getCompleteImage(IMarker marker) {
-        if (isMarkerType(marker, IMarker.TASK)) {
-            if (isComplete(marker)) {
-				return getImage("complete_tsk");//$NON-NLS-1$
-			} else if (!isReadOnly(marker)) {
-				return getImage("incomplete_tsk");//$NON-NLS-1$
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Returns the text to be used for the complete state of a task. 
-     * Returns the empty string for markers that are not tasks.
-     */
-    public static String getCompleteText(IMarker marker) {
-        if (isMarkerType(marker, IMarker.TASK)) {
-            if (isComplete(marker)) {
-				return TaskListMessages.TaskList_completed;
-			} else {
-				return TaskListMessages.TaskList_notCompleted;
-			}
-        }
-        return ""; //$NON-NLS-1$
-    }
-
-    /**
-     * Returns the text to be used for the kind of marker.
-     */
-    public static String getKindText(IMarker marker) {
-        if (isMarkerType(marker, IMarker.TASK)) {
-            return TaskListMessages.TaskList_task; 
-        }
-        switch (getSeverity(marker)) {
-        case IMarker.SEVERITY_ERROR:
-            return TaskListMessages.TaskList_error; 
-        case IMarker.SEVERITY_WARNING:
-            return TaskListMessages.TaskList_warning; 
-        case IMarker.SEVERITY_INFO:
-            return TaskListMessages.TaskList_info; 
-        }
-        return ""; //$NON-NLS-1$
-    }
-
-    /**
-     * Returns the container name if it is defined, or empty string if not.
-     */
-    public static String getContainerName(IMarker marker) {
-        IPath path = marker.getResource().getFullPath();
-        int n = path.segmentCount() - 1; // n is the number of segments in container, not path
-        if (n <= 0) {
-			return ""; //$NON-NLS-1$
-		}
-        int len = 0;
-        for (int i = 0; i < n; ++i) {
-			len += path.segment(i).length();
-		}
-        // account for /'s
-        if (n > 1) {
-			len += n - 1;
-		}
-        StringBuffer sb = new StringBuffer(len);
-        for (int i = 0; i < n; ++i) {
-            if (i != 0) {
-				sb.append('/');
-			}
-            sb.append(path.segment(i));
-        }
-        return sb.toString();
-    }
-
-    /**
-     * Returns the image with the given key, or <code>null</code> if not found.
-     */
-    static Image getImage(String key) {
-        Image image = imageRegistry.get(key);
-        if (image == null) {
-            ImageDescriptor desc = getImageDescriptor(key);
-            if (desc != null) {
-                image = desc.createImage(false);
-                if (image == null) {
-                    System.err
-                            .println("TaskList: Error creating image for " + key);//$NON-NLS-1$
-                }
-                imageRegistry.put(key, image);
-            }
-        }
-        return image;
-    }
-
-    /**
-     * Returns the image that should be used to visually represent
-     * the marker, based on its type and priority.
-     */
-    static public Image getImage(IMarker marker) {
-        if (isMarkerType(marker, IMarker.PROBLEM)) {
-            switch (getSeverity(marker)) {
-            case IMarker.SEVERITY_ERROR:
-                return getImage("error");//$NON-NLS-1$
-            case IMarker.SEVERITY_WARNING:
-                return getImage("warn");//$NON-NLS-1$
-            case IMarker.SEVERITY_INFO:
-                return getImage("info");//$NON-NLS-1$
-            }
-        } else if (isMarkerType(marker, IMarker.TASK)) {
-            return getImage("task");//$NON-NLS-1$
-        }
-        return null;
-    }
-
-    /**
-     * Returns the image descriptor with the given key, or <code>null</code> if not found.
-     */
-    static ImageDescriptor getImageDescriptor(String key) {
-        ImageDescriptor desc = (ImageDescriptor) imageDescriptors.get(key);
-        if (desc == null) {
-        		IDEWorkbenchPlugin.log("TaskList: No image descriptor for " + key); //$NON-NLS-1$
-        }
-        return desc;
-    }
-
-    /**
-     * Returns the text for the line and location column given the marker.
-     */
-    public static String getLineAndLocation(IMarker marker) {
-        int lineNumber = getLineNumber(marker);
-        String location = getLocation(marker);
-        return getLineAndLocation(lineNumber, location);
-    }
-
-    /**
-     * Returns the text for the line and location column given the line number and location text.
-     */
-    public static String getLineAndLocation(int lineNumber, String location) {
-        if (lineNumber == -1) {
-            if (location.equals("")) {//$NON-NLS-1$
-                return "";//$NON-NLS-1$
-            } else {
-                return location;
-            }
-        } else {
-            if (location.equals("")) {//$NON-NLS-1$
-                return line
-                        .format(new Object[] { Integer.toString(lineNumber) });
-            } else {
-                return lineAndLocation.format(new Object[] {
-                        Integer.toString(lineNumber), location });
-            }
-        }
-    }
-
-    /**
-     * Returns the line number of the given marker.
-     */
-    public static int getLineNumber(IMarker marker) {
-        return marker.getAttribute(IMarker.LINE_NUMBER, -1);
-    }
-
-    /**
-     * Returns the text for the location field.
-     */
-    public static String getLocation(IMarker marker) {
-        return marker.getAttribute(IMarker.LOCATION, "");//$NON-NLS-1$
-    }
-
-    /**
-     * Returns the message attribute of the given marker,
-     * or the empty string if the message attribute is not defined.
-     */
-    public static String getMessage(IMarker marker) {
-        return marker.getAttribute(IMarker.MESSAGE, "");//$NON-NLS-1$
-    }
-
-    /**
-     * Returns the numeric value of the given string, which is assumed to represent a numeric value.
-     *
-     * @return <code>true</code> if numeric, <code>false</code> if not
-     */
-    static public int getNumericValue(String value) {
-        boolean negative = false;
-        int i = 0;
-        int len = value.length();
-
-        // skip any leading '#'
-        // workaround for 1GCE69U: ITPJCORE:ALL - Java problems should not have '#' in location.
-        if (i < len && value.charAt(i) == '#') {
-			++i;
-		}
-
-        if (i < len && value.charAt(i) == '-') {
-            negative = true;
-            ++i;
-        }
-
-        int result = 0;
-        while (i < len) {
-            int digit = Character.digit(value.charAt(i++), 10);
-            if (digit < 0) {
-                return result;
-            }
-            result = result * 10 + digit;
-        }
-        if (negative) {
-            result = -result;
-        }
-        return result;
-    }
-
-    /**
-     * Returns the priority of the given marker.  Default is PRIORITY_NORMAL.
-     */
-    public static int getPriority(IMarker marker) {
-        return marker.getAttribute(IMarker.PRIORITY, IMarker.PRIORITY_NORMAL);
-    }
-
-    /**
-     * Returns an image that should visually represent marker's priority
-     * in the tasklist.
-     */
-    public static Image getPriorityImage(IMarker marker) {
-        switch (getPriority(marker)) {
-        case IMarker.PRIORITY_HIGH:
-            return getImage("hprio");//$NON-NLS-1$
-        case IMarker.PRIORITY_NORMAL:
-            return null; // no image for normal priority
-        case IMarker.PRIORITY_LOW:
-            return getImage("lprio");//$NON-NLS-1$
-        }
-        return null;
-    }
-
-    /**
-     * Returns the text for the given marker's priority.
-     */
-    public static String getPriorityText(IMarker marker) {
-        if (!isMarkerType(marker, IMarker.TASK)) {
-			return ""; //$NON-NLS-1$
-		}
-
-        switch (getPriority(marker)) {
-        case IMarker.PRIORITY_HIGH:
-            return TaskListMessages.TaskList_high; 
-        case IMarker.PRIORITY_NORMAL:
-            return TaskListMessages.TaskList_normal;
-        case IMarker.PRIORITY_LOW:
-            return TaskListMessages.TaskList_low;
-        }
-        return ""; //$NON-NLS-1$		
-    }
-
-    /**
-     * Implements IProvider interface by supporting a number of
-     * properties required for visual representation of markers
-     * in the tasklist.
-     */
-    static public Object getProperty(Object object, String key) {
-        IMarker marker = (IMarker) object;
-
-        // optimizations:
-        // - check properties needed for TaskListLabelProvider first,
-        //   then those needed for cell modifiers
-        // - use == instead of equals for efficiency
-        if (IBasicPropertyConstants.P_IMAGE == key) {
-            return getImage(marker);
-        }
-        if (IMarkerConstants.P_COMPLETE_IMAGE == key) {
-            return getCompleteImage(marker);
-        }
-        if (IMarkerConstants.P_PRIORITY_IMAGE == key) {
-            return getPriorityImage(marker);
-        }
-        if (IMarker.MESSAGE == key) {
-            return getMessage(marker);
-        }
-        if (IMarkerConstants.P_RESOURCE_NAME == key) {
-            return getResourceName(marker);
-        }
-        if (IMarkerConstants.P_CONTAINER_NAME == key) {
-            return getContainerName(marker);
-        }
-        if (IMarkerConstants.P_LINE_AND_LOCATION == key) {
-            return getLineAndLocation(marker);
-        }
-        if (IMarker.PRIORITY == key) {
-            // this property is used only by cell editor, where order is High, Normal, Low
-            return new Integer(IMarker.PRIORITY_HIGH - getPriority(marker));
-        }
-        if (IMarker.DONE == key) {
-            return isComplete(marker) ? Boolean.TRUE : Boolean.FALSE;
-        }
-        if (IBasicPropertyConstants.P_TEXT == key) {
-            return getMessage(marker);
-        }
-        return null;
-    }
-
-    /**
-     * Returns name if it is defined, or
-     * blank string if not.
-     */
-    public static String getResourceName(IMarker marker) {
-        return marker.getResource().getName();
-    }
-
-    /**
-     * Returns the severity of the given marker.  Default is SEVERITY_WARNING.
-     */
-    public static int getSeverity(IMarker marker) {
-        return marker.getAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
-    }
-
-    /**
-     * A helper method that returns true if the given
-     * marker is marked as complete in the tasklist.
-     * Only tasks can be complete.
-     */
-    public static boolean isComplete(IMarker marker) {
-        return marker.getAttribute(IMarker.DONE, false);
-    }
-
-    /**
-     * Returns whether the given marker is editable.
-     * Only tasks which have not been marked as read-only are editable.
-     */
-    public static boolean isEditable(IMarker marker) {
-        return isMarkerType(marker, IMarker.TASK) && !isReadOnly(marker);
-    }
-
-    /**
-     * Returns whether the given marker is of the given type (either directly or indirectly).
-     */
-    public static boolean isMarkerType(IMarker marker, String type) {
-        try {
-            return marker.isSubtypeOf(type);
-        } catch (CoreException e) {
-            return false;
-        }
-    }
-
-    /**
-     * Returns whether the given marker is read-only.
-     */
-    public static boolean isReadOnly(IMarker marker) {
-        return !marker.getAttribute(IMarker.USER_EDITABLE, true);
-    }
-
-    /**
-     * Returns the creation time of the marker as a string.
-     */
-    public static String getCreationTime(IMarker marker) {
-        try {
-            return DateFormat.getDateTimeInstance(DateFormat.LONG,
-                    DateFormat.MEDIUM).format(
-                    new Date(marker.getCreationTime()));
-        } catch (CoreException e) {
-            return null;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/NewTaskAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/NewTaskAction.java
deleted file mode 100644
index cf7ef7d..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/NewTaskAction.java
+++ /dev/null
@@ -1,86 +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.tasklist;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.tasklist.TaskListMessages;
-
-/**
- * This action creates a new task. If a resource is currently
- * present at the tasklist's input, this task will be
- * associated with it. If the tasklist is currently
- * observing all the markers in the workbench, the task
- * will not be associated with any resource.
- * <p>The newly created task will have low priority,
- * fixed description text and will not be subject to
- * sorting or filtering until its desciprion is being
- * changed for the first time. For this reason, new
- * tasks remain at the top of the task list
- * until modified. It is possible that the newly
- * created task dissapears after that if its
- * type or some other property causes it to
- * be filtered out.
- */
-class NewTaskAction extends TaskAction {
-
-    /**
-     * Creates the action.
-     * 
-     * @param tasklist the task list
-     * @param id the id
-     */
-    public NewTaskAction(TaskList tasklist, String id) {
-        super(tasklist, id);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				ITaskListHelpContextIds.NEW_TASK_ACTION);
-    }
-
-    /**
-     * Opens the new task dialog and shows the newly created task when done.
-     * The new task is created on the currently selected resource.
-     */
-    public void run() {
-        TaskPropertiesDialog dialog = new TaskPropertiesDialog(getShell());
-        dialog.setResource(getTaskList().getResource());
-        int result = dialog.open();
-        if (result == Window.OK) {
-            showMarker(dialog.getMarker());
-        }
-    }
-
-    /**
-     * Show the newly created marker.
-     */
-    private void showMarker(final IMarker marker) {
-        if (marker == null) {
-            return;
-        }
-        if (getTaskList().shouldShow(marker)) {
-            // Need to do this in an asyncExec, even though we're in the UI thread here,
-            // since the task list updates itself with the addition in an asyncExec,
-            // which hasn't been processed yet.
-            getShell().getDisplay().asyncExec(new Runnable() {
-                public void run() {
-                    getTaskList().setSelection(new StructuredSelection(marker),
-                            true);
-                }
-            });
-        } else {
-            MessageDialog.openInformation(getShell(), TaskListMessages.NewTask_notShownTitle, 
-                    TaskListMessages.NewTask_notShownMsg); 
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/PasteTaskAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/PasteTaskAction.java
deleted file mode 100644
index b848462..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/PasteTaskAction.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.views.tasklist;
-
-import java.util.ArrayList;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.CreateMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-import org.eclipse.ui.internal.views.tasklist.TaskListMessages;
-import org.eclipse.ui.part.MarkerTransfer;
-
-/**
- * Standard action for pasting tasks from the clipboard.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 2.0
- */
-class PasteTaskAction extends TaskAction {
-
-    /**
-     * Creates a new action.
-     * 
-     * @param tasklist the task list
-     * @param id the id
-     */
-    public PasteTaskAction(TaskList tasklist, String id) {
-        super(tasklist, id);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				ITaskListHelpContextIds.PASTE_TASK_ACTION);
-    }
-
-    /**
-     * Implementation of method defined on <code>IAction</code>.
-     */
-    public void run() {
-        // Get the markers from the clipboard
-        MarkerTransfer transfer = MarkerTransfer.getInstance();
-        final IMarker[] markerData = (IMarker[]) getTaskList().getClipboard()
-                .getContents(transfer);
-
-        if (markerData == null) {
-			return;
-		}
-
-        final ArrayList newMarkerAttributes = new ArrayList();
-        final ArrayList newMarkerResources = new ArrayList();
-
-        try {
-            getTaskList().getWorkspace().run(new IWorkspaceRunnable() {
-                public void run(IProgressMonitor monitor) throws CoreException {
-                    for (int i = 0; i < markerData.length; i++) {
-                        // Only paste tasks 
-                        if (!markerData[i].getType().equals(IMarker.TASK)) {
-							continue;
-						}
-                        newMarkerResources.add(markerData[i].getResource());
-                        newMarkerAttributes.add(markerData[i].getAttributes());
-                    }
-                }
-            }, null);
-        } catch (CoreException e) {
-            ErrorDialog.openError(getShell(), TaskListMessages.PasteTask_errorMessage, 
-                    null, e.getStatus());
-            return;
-        }
-        
-		final Map [] attrs = (Map []) newMarkerAttributes.toArray(new Map [newMarkerAttributes.size()]);
-		final IResource [] resources = (IResource []) newMarkerResources.toArray(new IResource [newMarkerResources.size()]);
-		final CreateMarkersOperation op = new CreateMarkersOperation(IMarker.TASK, attrs,
-				resources, getText());
-		execute(op, TaskListMessages.PasteTask_errorMessage, null,
-				WorkspaceUndoUtil.getUIInfoAdapter(getShell()));
-
-        // Need to do this in an asyncExec, even though we're in the UI thread here,
-        // since the task list updates itself with the addition in an asyncExec,
-        // which hasn't been processed yet.
-        // Must be done outside the create marker operation above since notification for add is
-        // sent after the operation is executed.
-        if (op.getMarkers() != null) {
-            getShell().getDisplay().asyncExec(new Runnable() {
-                public void run() {
-                    TaskList taskList = getTaskList();
-                    taskList.setSelection(new StructuredSelection(op.getMarkers()),
-                            true);
-                }
-            });
-        }
-    }
-
-}
-
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/PurgeCompletedAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/PurgeCompletedAction.java
deleted file mode 100644
index fe5f050..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/PurgeCompletedAction.java
+++ /dev/null
@@ -1,89 +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.tasklist;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.DeleteMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-import org.eclipse.ui.internal.views.tasklist.TaskListMessages;
-
-/**
- * This action deletes all the tasks found in the registry that
- * are marked as completed.
- */
-class PurgeCompletedAction extends TaskAction {
-
-    /**
-     * Creates the action.
-     * 
-     * @param tasklist the task list
-     * @param id the id
-     */
-    public PurgeCompletedAction(TaskList tasklist, String id) {
-        super(tasklist, id);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                ITaskListHelpContextIds.PURGE_COMPLETED_TASK_ACTION);
-    }
-
-    /**
-     * Fetches all the completed tasks in the workspace and deletes them.
-     */
-    public void run() {
-        IResource resource = getTaskList().getResource();
-        int depth = getTaskList().getResourceDepth();
-        IMarker[] tasks;
-        try {
-        	tasks = resource.findMarkers(IMarker.TASK, true, depth);
-        } catch (CoreException e) {
-            ErrorDialog.openError(
-                    getShell(),
-                    TaskListMessages.PurgeCompleted_errorMessage, null, e.getStatus()); 
-
-        	return;
-        }
-        final List completed = new ArrayList();
-        for (int i = 0; i < tasks.length; i++) {
-            IMarker task = tasks[i];
-            if (MarkerUtil.isComplete(task) && !MarkerUtil.isReadOnly(task)) {
-                completed.add(task);
-            }
-        }
-        // Check if there is anything to do
-        if (completed.size() == 0) {
-            MessageDialog.openInformation(getShell(), TaskListMessages.PurgeCompleted_title, 
-                    TaskListMessages.PurgeCompleted_noneCompleted); 
-            return;
-        }
-
-        // Verify.
-        if (!MessageDialog.openConfirm(getShell(), TaskListMessages.PurgeCompleted_title,
-                NLS.bind(TaskListMessages.PurgeCompleted_permanent,String.valueOf(completed.size())))) {
-            return;
-        }
-
-        IMarker[] toDelete = new IMarker[completed.size()];
-        completed.toArray(toDelete);
-		IUndoableOperation op = new DeleteMarkersOperation(toDelete, getText());
-		execute(op, TaskListMessages.PurgeCompleted_errorMessage, null,
-				WorkspaceUndoUtil.getUIInfoAdapter(getShell()));
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/RemoveTaskAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/RemoveTaskAction.java
deleted file mode 100644
index 41a16b2..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/RemoveTaskAction.java
+++ /dev/null
@@ -1,76 +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.tasklist;
-
-import java.util.List;
-
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.DeleteMarkersOperation;
-import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
-import org.eclipse.ui.internal.views.tasklist.TaskListMessages;
-
-/**
- * This action removes the selected task(s) from the task list.
- * Only tasks can be removed. Problems can only disappear from
- * the task list when they are fixed in the associated code.
- */
-class RemoveTaskAction extends TaskAction {
-
-    /**
-     * Creates the action.
-     * 
-     * @param tasklist the task list
-     * @param id the id
-     */
-    public RemoveTaskAction(TaskList tasklist, String id) {
-        super(tasklist, id);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				ITaskListHelpContextIds.REMOVE_TASK_ACTION);
-    }
-
-    /**
-     * Removes all the tasks in the current selection from the task list.
-     */
-    public void run() {
-        TaskList taskList = getTaskList();
-        TableViewer viewer = taskList.getTableViewer();
-        IStructuredSelection selection = (IStructuredSelection) viewer
-                .getSelection();
-        if (selection.isEmpty()) {
-            return;
-        }
-        taskList.cancelEditing();
-        // get the index of the selected item which has focus
-        Table table = viewer.getTable();
-        int focusIndex = table.getSelectionIndex();
-        List list = selection.toList();
-        IMarker[] markers = new IMarker[list.size()];
-        list.toArray(markers);
-     	IUndoableOperation op = new DeleteMarkersOperation(markers, TaskListMessages.RemoveTask_undoText);
-   		execute(op, TaskListMessages.RemoveTask_errorMessage, null,
-   				WorkspaceUndoUtil.getUIInfoAdapter(getShell()));
-        // set the selection to be the one which took the place of the one with focus
-        int count = table.getItemCount();
-        if (focusIndex < count) {
-        	table.setSelection(focusIndex);
-        } else if (count != 0) {
-        	table.setSelection(count - 1);
-        }
-        // update the viewer's selection, since setting the table selection does not notify the viewer
-        viewer.setSelection(viewer.getSelection(), true);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ResolveMarkerAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ResolveMarkerAction.java
deleted file mode 100644
index f0822ea..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/ResolveMarkerAction.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.tasklist;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.MarkerResolutionSelectionDialog;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.views.tasklist.TaskListMessages;
-
-/**
- * This action displays a list of resolutions for the selected marker
- * 
- * @since 2.0
- */
-class ResolveMarkerAction extends TaskAction {
-
-    /**
-     * Creates the action.
-     */
-    protected ResolveMarkerAction(TaskList tasklist, String id) {
-        super(tasklist, id);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                ITaskListHelpContextIds.RESOLVE_MARKER_ACTION);
-    }
-
-    /**
-     * Returns whether this action should be enabled given the selection.
-     * 
-     * @param selection the selection
-     * @return enablement
-     */
-    public boolean shouldEnable(IStructuredSelection selection) {
-        if (selection.size() != 1) {
-			return false;
-		}
-        IMarker marker = (IMarker) selection.getFirstElement();
-        if (marker == null) {
-			return false;
-		}
-        return IDE.getMarkerHelpRegistry().hasResolutions(marker);
-    }
-
-    /**
-     * Displays a list of resolutions and performs the selection.
-     */
-    public void run() {
-        IMarker marker = getMarker();
-        if (marker == null) {
-            return;
-        }
-        getTaskList().cancelEditing();
-        IMarkerResolution[] resolutions = getResolutions(marker);
-        if (resolutions.length == 0) {
-            MessageDialog.openInformation(getShell(), TaskListMessages.Resolve_title, 
-                    TaskListMessages.Resolve_noResolutionsLabel); 
-            return;
-        }
-        MarkerResolutionSelectionDialog d = new MarkerResolutionSelectionDialog(
-                getShell(), resolutions);
-        if (d.open() != Window.OK) {
-			return;
-		}
-        Object[] result = d.getResult();
-        if (result != null && result.length > 0) {
-			((IMarkerResolution) result[0]).run(marker);
-		}
-    }
-
-    /**
-     * Returns the resolutions for the given marker.
-     *
-     * @param marker the marker for which to obtain resolutions
-     * @return the resolutions for the selected marker	
-     */
-    private IMarkerResolution[] getResolutions(IMarker marker) {
-        return IDE.getMarkerHelpRegistry().getResolutions(marker);
-    }
-
-    /**
-     * Returns the selected marker (may be <code>null</code>).
-     * 
-     * @return the selected marker
-     */
-    private IMarker getMarker() {
-        IStructuredSelection selection = (IStructuredSelection) getTaskList()
-                .getSelection();
-        // only enable for single selection
-        if (selection.size() != 1) {
-			return null;
-		}
-        return (IMarker) selection.getFirstElement();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/SelectAllTasksAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/SelectAllTasksAction.java
deleted file mode 100644
index de868ec..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/SelectAllTasksAction.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.views.tasklist;
-
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This action selects all tasks currently showing in the task list.
- */
-class SelectAllTasksAction extends TaskAction {
-
-    /**
-     * Creates the action.
-     */
-    protected SelectAllTasksAction(TaskList tasklist, String id) {
-        super(tasklist, id);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                ITaskListHelpContextIds.SELECT_ALL_TASKS_ACTION);
-    }
-
-    /**
-     * Selects all resources in the view.
-     */
-    public void run() {
-        getTaskList().cancelEditing();
-        TableViewer viewer = getTaskList().getTableViewer();
-        viewer.getTable().selectAll();
-        // force viewer selection change
-        viewer.setSelection(viewer.getSelection());
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskAction.java
deleted file mode 100644
index ca21807..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskAction.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.views.tasklist;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * This is the base class of all the local actions used
- * in the task list view.
- */
-abstract class TaskAction extends Action {
-
-    private TaskList taskList;
-
-    /**
-     * TaskAction constructor.
-     */
-    protected TaskAction(TaskList tasklist, String id) {
-        super();
-        this.taskList = tasklist;
-        setId(id);
-    }
-
-    /**
-     * Returns the shell to use within actions.
-     */
-    protected Shell getShell() {
-        return taskList.getSite().getShell();
-    }
-
-    /**
-     * Returns the task list viewer.
-     */
-    protected TaskList getTaskList() {
-        return taskList;
-    }
-
-    /**
-     * Stores the current state value of this toggle action
-     * into the dialog store using action ID as a key.
-     */
-    protected void storeValue() {
-        IDialogSettings workbenchSettings = TaskList.getPlugin()
-                .getDialogSettings();
-        IDialogSettings settings = workbenchSettings.getSection("TaskAction");//$NON-NLS-1$
-        if (settings == null) {
-			settings = workbenchSettings.addNewSection("TaskAction");//$NON-NLS-1$
-		}
-        settings.put(getId(), isChecked());
-    }
-    
-	/**
-	 * Execute the specified undoable operation
-	 */
-	void execute(IUndoableOperation operation, String message,
-			IProgressMonitor monitor, IAdaptable uiInfo) {
-		try {
-			PlatformUI.getWorkbench().getOperationSupport()
-					.getOperationHistory().execute(operation, monitor, uiInfo);
-		} catch (ExecutionException e) {
-			IDEWorkbenchPlugin.log(message, e);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskList.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskList.java
deleted file mode 100644
index 2dc279d..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskList.java
+++ /dev/null
@@ -1,1738 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Cagatay Kavukcuoglu <cagatayk@acm.org> - Filter for markers in same project
- *     Sebastian Davids <sdavids@gmx.de> - Reordered menu items
- *******************************************************************************/
-
-package org.eclipse.ui.views.tasklist;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-
-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.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Assert;
-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.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.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CheckboxCellEditor;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IOpenListener;
-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.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.AccessibleControlAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlEvent;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.custom.TableEditor;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.DND;
-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.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.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.ResourceUtil;
-import org.eclipse.ui.internal.views.tasklist.TaskListMessages;
-import org.eclipse.ui.part.CellEditorActionHandler;
-import org.eclipse.ui.part.IShowInSource;
-import org.eclipse.ui.part.IShowInTargetList;
-import org.eclipse.ui.part.MarkerTransfer;
-import org.eclipse.ui.part.ShowInContext;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Main class for the Task List view for displaying tasks and problem annotations
- * on resources, and for opening an editor on the resource when the user commands.
- * <p>
- * This standard view has id <code>"org.eclipse.ui.views.TaskList"</code>.
- * </p>
- * <p>
- * The workbench will automatically instantiate this class when a Task List
- * view is needed for a workbench window. This class is not intended
- * to be instantiated or subclassed by clients.
- * </p>
- */
-public class TaskList extends ViewPart {
-
-    private Table table;
-
-    private TaskSorter comparator;
-
-    private CellEditor descriptionEditor;
-
-    private TableViewer viewer;
-
-    private TasksFilter filter = new TasksFilter();
-
-    private IMemento memento;
-
-    private boolean markerLimitExceeded;
-
-    private Composite parent;
-
-    private StackLayout stackLayout = new StackLayout();
-
-    private Composite compositeMarkerLimitExceeded;
-
-    private CellEditorActionHandler editorActionHandler;
-
-    private TaskAction newTaskAction;
-
-    private TaskAction copyTaskAction;
-
-    private TaskAction pasteTaskAction;
-
-    private TaskAction removeTaskAction;
-
-    private TaskAction purgeCompletedAction;
-
-    private TaskAction gotoTaskAction;
-
-    private TaskAction selectAllAction;
-
-    private ResolveMarkerAction resolveMarkerAction;
-
-    private TaskAction filtersAction;
-
-    private MarkCompletedAction markCompletedAction;
-
-    private TaskAction propertiesAction;
-
-    //sort by action
-    private Action sortByCategoryAction;
-
-    private Action sortByCompletedAction;
-
-    private Action sortByPriorityAction;
-
-    private Action sortByDescriptionAction;
-
-    private Action sortByResourceAction;
-
-    private Action sortByContainerAction;
-
-    private Action sortByLocationAction;
-
-    private Action sortByCreationTimeAction;
-
-    private Action sortAscendingAction;
-
-    private Action sortDescendingAction;
-
-    private Clipboard clipboard;
-
-    private static String[] tableColumnProperties = {
-            IBasicPropertyConstants.P_IMAGE, IMarker.DONE, IMarker.PRIORITY,
-            IMarker.MESSAGE, IMarkerConstants.P_RESOURCE_NAME,
-            IMarkerConstants.P_CONTAINER_NAME,
-            IMarkerConstants.P_LINE_AND_LOCATION };
-
-    // Persistance tags.
-    private static final String TAG_COLUMN = "column"; //$NON-NLS-1$
-
-    private static final String TAG_NUMBER = "number"; //$NON-NLS-1$
-
-    private static final String TAG_WIDTH = "width"; //$NON-NLS-1$
-
-    private static final String TAG_FILTER = "filter"; //$NON-NLS-1$
-
-    private static final String TAG_SELECTION = "selection"; //$NON-NLS-1$
-
-    private static final String TAG_ID = "id"; //$NON-NLS-1$
-
-    private static final String TAG_MARKER = "marker"; //$NON-NLS-1$
-
-    private static final String TAG_RESOURCE = "resource"; //$NON-NLS-1$
-
-    private static final String TAG_TOP_INDEX = "topIndex"; //$NON-NLS-1$
-
-    private static final String TAG_SORT_SECTION = "TaskListSortState"; //$NON-NLS-1$
-
-    static class TaskListLabelProvider extends LabelProvider implements
-            ITableLabelProvider {
-
-        private static String[] keys = { IBasicPropertyConstants.P_IMAGE,
-                IMarkerConstants.P_COMPLETE_IMAGE,
-                IMarkerConstants.P_PRIORITY_IMAGE, IMarker.MESSAGE,
-                IMarkerConstants.P_RESOURCE_NAME,
-                IMarkerConstants.P_CONTAINER_NAME,
-                IMarkerConstants.P_LINE_AND_LOCATION };
-
-        public String getColumnText(Object element, int columnIndex) {
-            if (columnIndex >= 3 && columnIndex <= 6) {
-				return (String) MarkerUtil.getProperty(element,
-                        keys[columnIndex]);
-			}
-            return ""; //$NON-NLS-1$
-        }
-
-        public Image getColumnImage(Object element, int columnIndex) {
-            if (columnIndex >= 0 && columnIndex <= 2) {
-                return (Image) MarkerUtil.getProperty(element,
-                        keys[columnIndex]);
-            }
-            return null;
-        }
-    }
-
-    class SortByAction extends Action {
-
-        private int column;
-
-        /**
-         * @param column
-         */
-        public SortByAction(int column) {
-            this.column = column;
-        }
-
-        public void run() {
-            comparator.setTopPriority(column);
-            updateSortingState();
-            viewer.refresh();
-            IDialogSettings workbenchSettings = getPlugin().getDialogSettings();
-            IDialogSettings settings = workbenchSettings
-                    .getSection(TAG_SORT_SECTION);
-            if (settings == null) {
-				settings = workbenchSettings.addNewSection(TAG_SORT_SECTION);
-			}
-            comparator.saveState(settings);
-        }
-    }
-
-    class SortDirectionAction extends Action {
-
-        private int direction;
-
-        /**
-         * @param direction
-         */
-        public SortDirectionAction(int direction) {
-            this.direction = direction;
-        }
-
-        public void run() {
-            comparator.setTopPriorityDirection(direction);
-            updateSortingState();
-            viewer.refresh();
-            IDialogSettings workbenchSettings = getPlugin().getDialogSettings();
-            IDialogSettings settings = workbenchSettings
-                    .getSection(TAG_SORT_SECTION);
-            if (settings == null) {
-				settings = workbenchSettings.addNewSection(TAG_SORT_SECTION);
-			}
-            comparator.saveState(settings);
-        }
-    }
-
-    private String columnHeaders[] = {
-            TaskListMessages.TaskList_headerIcon,
-            TaskListMessages.TaskList_headerCompleted, 
-            TaskListMessages.TaskList_headerPriority, 
-            TaskListMessages.TaskList_headerDescription, 
-            TaskListMessages.TaskList_headerResource,
-            TaskListMessages.TaskList_headerFolder, 
-            TaskListMessages.TaskList_headerLocation
-    };
-
-    private ColumnLayoutData columnLayouts[] = {
-            new ColumnPixelData(16, false, true), new ColumnPixelData(16, false, true),
-            new ColumnPixelData(16, false, true), new ColumnWeightData(200),
-            new ColumnWeightData(75), new ColumnWeightData(150),
-            new ColumnWeightData(60) };
-
-    private IPartListener partListener = new IPartListener() {
-        public void partActivated(IWorkbenchPart part) {
-            TaskList.this.partActivated(part);
-        }
-
-        public void partBroughtToTop(IWorkbenchPart part) {
-        }
-
-        public void partClosed(IWorkbenchPart part) {
-            TaskList.this.partClosed(part);
-        }
-
-        public void partDeactivated(IWorkbenchPart part) {
-        }
-
-        public void partOpened(IWorkbenchPart part) {
-        }
-    };
-
-    private ISelectionChangedListener focusSelectionChangedListener = new ISelectionChangedListener() {
-        public void selectionChanged(SelectionChangedEvent event) {
-            TaskList.this.focusSelectionChanged(event);
-        }
-    };
-
-    private IResource[] focusResources;
-
-    private IWorkbenchPart focusPart;
-
-    private ISelectionProvider focusSelectionProvider;
-
-    private ICellModifier cellModifier = new ICellModifier() {
-        public Object getValue(Object element, String property) {
-            return MarkerUtil.getProperty(element, property);
-        }
-
-        public boolean canModify(Object element, String property) {
-            return MarkerUtil.isEditable((IMarker) element);
-        }
-
-        /**
-         * Modifies a marker as a result of a successfully completed direct editing.
-         */
-        public void modify(Object element, String property, Object value) {
-            Item item = (Item) element;
-            IMarker marker = (IMarker) item.getData();
-            setProperty(marker, property, value);
-        }
-    };
-
-    /**
-     * Creates a new task list view.
-     */
-    public TaskList() {
-        super();
-    }
-
-    /**
-     * @param control
-     */
-    void addDragSupport(Control control) {
-
-        int operations = DND.DROP_COPY;
-        Transfer[] transferTypes = new Transfer[] {
-                MarkerTransfer.getInstance(), TextTransfer.getInstance() };
-        DragSourceListener listener = new DragSourceAdapter() {
-            public void dragSetData(DragSourceEvent event) {
-                performDragSetData(event);
-            }
-
-            public void dragFinished(DragSourceEvent event) {
-            }
-        };
-        viewer.addDragSupport(operations, transferTypes, listener);
-    }
-
-    void cancelEditing() {
-        getTableViewer().cancelEditing();
-    }
-
-    void createColumns() {
-        /**
-         * This class handles selections of the column headers.
-         * Selection of the column header will cause resorting
-         * of the shown tasks using that column's sorter.
-         * Repeated selection of the header will toggle
-         * sorting order (ascending versus descending).
-         */
-        SelectionListener headerListener = new SelectionAdapter() {
-            /**
-             * Handles the case of user selecting the
-             * header area.
-             * <p>If the column has not been selected previously,
-             * it will set the sorter of that column to be
-             * the current tasklist sorter. Repeated
-             * presses on the same column header will
-             * toggle sorting order (ascending/descending).
-             */
-            public void widgetSelected(SelectionEvent e) {
-                // column selected - need to sort
-                int column = table.indexOf((TableColumn) e.widget);
-                if (column == comparator.getTopPriority()) {
-					comparator.reverseTopPriority();
-				} else {
-                    comparator.setTopPriority(column);
-                }
-                updateSortingState();
-                viewer.refresh();
-                IDialogSettings workbenchSettings = getPlugin()
-                        .getDialogSettings();
-                IDialogSettings settings = workbenchSettings
-                        .getSection(TAG_SORT_SECTION);
-                if (settings == null) {
-					settings = workbenchSettings
-                            .addNewSection(TAG_SORT_SECTION);
-				}
-                comparator.saveState(settings);
-            }
-        };
-
-        if (memento != null) {
-            //restore columns width
-            IMemento children[] = memento.getChildren(TAG_COLUMN);
-            if (children != null) {
-                for (int i = 0; i < children.length; i++) {
-                    Integer val = children[i].getInteger(TAG_NUMBER);
-                    if (val != null) {
-                        int index = val.intValue();
-                        val = children[i].getInteger(TAG_WIDTH);
-                        if (val != null) {
-                            columnLayouts[index] = new ColumnPixelData(val
-                                    .intValue(), true);
-                        }
-                    }
-                }
-            }
-        }
-
-        boolean text = "carbon".equals(SWT.getPlatform()); //$NON-NLS-1$
-        TableLayout layout = new TableLayout();
-        table.setLayout(layout);
-        table.setHeaderVisible(true);
-
-        for (int i = 0; i < columnHeaders.length; i++) {
-            TableColumn tc = new TableColumn(table, SWT.NONE, i);
-
-            if (!text && i == 1) {
-				tc.setImage(MarkerUtil.getImage("header_complete")); //$NON-NLS-1$
-			} else if (!text && i == 2) {
-				tc.setImage(MarkerUtil.getImage("header_priority")); //$NON-NLS-1$
-			} else {
-				tc.setText(columnHeaders[i]);
-			}
-
-            if (text && (i == 1 || i == 2)) {
-                tc.pack();
-                columnLayouts[i] = new ColumnPixelData(Math.max(16, tc
-                        .getWidth()), false, true);
-            }
-
-            tc.setResizable(columnLayouts[i].resizable);
-            layout.addColumnData(columnLayouts[i]);
-            tc.addSelectionListener(headerListener);
-        }
-    }
-
-    /**
-     * Returns a string that summarizes the contents of the
-     * given markers.
-     */
-    static String createMarkerReport(IMarker[] markers) {
-        StringBuffer buf = new StringBuffer();
-        // Create the header
-        buf.append(TaskListMessages.TaskList_reportKind);
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(TaskListMessages.TaskList_reportStatus); 
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(TaskListMessages.TaskList_reportPriority); 
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(TaskListMessages.TaskList_headerDescription);
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(TaskListMessages.TaskList_headerResource); 
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(TaskListMessages.TaskList_headerFolder); 
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(TaskListMessages.TaskList_headerLocation); 
-        buf.append(System.getProperty("line.separator")); //$NON-NLS-1$
-
-        // Create the report for the markers
-        for (int i = 0; i < markers.length; i++) {
-            writeMarker(buf, markers[i]);
-        }
-        return buf.toString();
-    }
-
-    /**
-     * Writes a string representation of the given marker to the buffer.
-     */
-    static void writeMarker(StringBuffer buf, IMarker marker) {
-        buf.append(MarkerUtil.getKindText(marker));
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(MarkerUtil.getCompleteText(marker));
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(MarkerUtil.getPriorityText(marker));
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(MarkerUtil.getMessage(marker));
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(MarkerUtil.getResourceName(marker));
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(MarkerUtil.getContainerName(marker));
-        buf.append("\t"); //$NON-NLS-1$
-        buf.append(MarkerUtil.getLineAndLocation(marker));
-        buf.append(System.getProperty("line.separator")); //$NON-NLS-1$
-    }
-
-    /* package */
-    boolean isMarkerLimitExceeded() {
-        return markerLimitExceeded;
-    }
-
-    /* package */
-    void setMarkerLimitExceeded(boolean markerLimitExceeded) {
-        this.markerLimitExceeded = markerLimitExceeded;
-
-        if (markerLimitExceeded) {
-            stackLayout.topControl = compositeMarkerLimitExceeded;
-        } else {
-            stackLayout.topControl = table;
-        }
-
-        parent.layout();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart.
-     */
-    public void createPartControl(Composite parent) {
-        //	long t = System.currentTimeMillis();
-        createPartControl0(parent);
-        //	t = System.currentTimeMillis() - t;
-        //	System.out.println("TaskList.createPartControl: " + t + "ms");
-    }
-
-    private void createPartControl0(Composite parent) {
-        this.parent = parent;
-        clipboard = new Clipboard(parent.getDisplay());
-        createTable(parent);
-        viewer = new TableViewer(table);
-        viewer.setUseHashlookup(true);
-        createColumns();
-        makeActions();
-        fillActionBars();
-        addDragSupport(table);
-
-        compositeMarkerLimitExceeded = new Composite(parent, SWT.NONE);
-        compositeMarkerLimitExceeded.setLayout(new GridLayout());
-        Label labelMarkerLimitExceeded = new Label(
-                compositeMarkerLimitExceeded, SWT.WRAP);
-        labelMarkerLimitExceeded.setText(TaskListMessages.TaskList_markerLimitExceeded);
-        parent.setLayout(stackLayout);
-        setMarkerLimitExceeded(false);
-
-        viewer.setContentProvider(new TaskListContentProvider(this));
-        viewer.setLabelProvider(new TaskListLabelProvider());
-        if (memento != null) {
-            //restore filter
-            IMemento filterMem = memento.getChild(TAG_FILTER);
-            if (filterMem != null) {
-				getFilter().restoreState(filterMem);
-			}
-        }
-
-        comparator = new TaskSorter();
-        IDialogSettings workbenchSettings = getPlugin().getDialogSettings();
-        IDialogSettings settings = workbenchSettings
-                .getSection(TAG_SORT_SECTION);
-        comparator.restoreState(settings);
-        viewer.setComparator(comparator);
-
-        //update the menu to indicate how task are currently sorted
-        updateSortingState();
-        viewer.setInput(getWorkspace().getRoot());
-        viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-            public void selectionChanged(SelectionChangedEvent event) {
-                TaskList.this.selectionChanged(event);
-            }
-        });
-        viewer.addOpenListener(new IOpenListener() {
-            public void open(OpenEvent event) {
-                gotoTaskAction.run();
-            }
-        });
-        viewer.getControl().addKeyListener(new KeyAdapter() {
-            public void keyPressed(KeyEvent e) {
-                handleKeyPressed(e);
-            }
-        });
-
-        //Add in some accessibility support to supplement the description that we already 
-        //get from the SWT table.
-        viewer.getControl().getAccessible().addAccessibleControlListener(
-                new AccessibleControlAdapter() {
-
-                    /* (non-Javadoc)
-                     * @see org.eclipse.swt.accessibility.AccessibleControlListener#getValue(org.eclipse.swt.accessibility.AccessibleControlEvent)
-                     */
-                    public void getValue(AccessibleControlEvent e) {
-
-                        int childIndex = e.childID;
-
-                        if (childIndex == ACC.CHILDID_SELF) {
-                            super.getValue(e);
-                            return;
-                        }
-                        Object item = viewer.getElementAt(childIndex);
-                        if (item instanceof IMarker) {
-                            IMarker marker = (IMarker) item;
-
-                            //If it is editable all we need is completeness
-                            // the rest is found by the table accessibility
-                            if (MarkerUtil.isEditable(marker)) {
-								e.result = MarkerUtil.getCompleteText(marker);
-							} else {
-								//Otherwise all it needs is severity
-                                e.result = MarkerUtil.getKindText(marker);
-							}
-
-                        } else {
-                            super.getValue(e);
-                            return;
-                        }
-
-                    }
-
-                });
-
-        CellEditor editors[] = new CellEditor[columnHeaders.length];
-        editors[1] = new CheckboxCellEditor(table);
-        String[] priorities = new String[] {
-                TaskListMessages.TaskList_high, 
-                TaskListMessages.TaskList_normal, 
-                TaskListMessages.TaskList_low
-        };
-        editors[2] = new ComboBoxCellEditor(table, priorities, SWT.READ_ONLY);
-        editors[3] = descriptionEditor = new TextCellEditor(table);
-        viewer.setCellEditors(editors);
-        viewer.setCellModifier(cellModifier);
-        viewer.setColumnProperties(tableColumnProperties);
-
-        // Configure the context menu to be lazily populated on each pop-up.
-        MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-        menuMgr.setRemoveAllWhenShown(true);
-        menuMgr.addMenuListener(new IMenuListener() {
-            public void menuAboutToShow(IMenuManager manager) {
-                TaskList.this.fillContextMenu(manager);
-            }
-        });
-        Menu menu = menuMgr.createContextMenu(table);
-        table.setMenu(menu);
-        // Be sure to register it so that other plug-ins can add actions.
-        getSite().registerContextMenu(menuMgr, viewer);
-
-        // Track selection in the page.
-        getSite().getPage().addPartListener(partListener);
-
-        // Add global action handlers.
-        editorActionHandler = new CellEditorActionHandler(getViewSite()
-                .getActionBars());
-        editorActionHandler.addCellEditor(descriptionEditor);
-        editorActionHandler.setCopyAction(copyTaskAction);
-        editorActionHandler.setPasteAction(pasteTaskAction);
-        editorActionHandler.setDeleteAction(removeTaskAction);
-        editorActionHandler.setSelectAllAction(selectAllAction);
-
-        getViewSite().getActionBars().setGlobalActionHandler(
-                ActionFactory.PROPERTIES.getId(), propertiesAction);
-
-        getSite().setSelectionProvider(viewer);
-
-        if (memento != null) {
-			restoreState(memento);
-		}
-        memento = null;
-
-        // Set help on the view itself
-        viewer.getControl().addHelpListener(new HelpListener() {
-            /*
-             * @see HelpListener#helpRequested(HelpEvent)
-             */
-            public void helpRequested(HelpEvent e) {
-                String contextId = null;
-                // See if there is a context registered for the current selection
-                IMarker marker = (IMarker) ((IStructuredSelection) getSelection())
-                        .getFirstElement();
-                if (marker != null) {
-                    contextId = IDE.getMarkerHelpRegistry().getHelp(marker);
-                }
-
-                if (contextId == null) {
-					contextId = ITaskListHelpContextIds.TASK_LIST_VIEW;
-				}
-
-                getSite().getWorkbenchWindow().getWorkbench().getHelpSystem()
-						.displayHelp(contextId);
-            }
-        });
-
-        // Prime the status line and title.
-        updateStatusMessage();
-        updateTitle();
-    }
-
-    /**
-     * Creates the table control.
-     */
-    void createTable(Composite parent) {
-        table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI
-                | SWT.FULL_SELECTION);
-        table.setLinesVisible(true);
-        //table.setLayout(new TableLayout());
-
-        new TableEditor(table);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart.
-     */
-    public void dispose() {
-        super.dispose();
-        getSite().getPage().removePartListener(partListener);
-        if (focusSelectionProvider != null) {
-            focusSelectionProvider
-                    .removeSelectionChangedListener(focusSelectionChangedListener);
-            focusSelectionProvider = null;
-        }
-        focusPart = null;
-        if (editorActionHandler != null) {
-            editorActionHandler.dispose();
-            editorActionHandler = null;
-        }
-        if (clipboard != null) {
-			clipboard.dispose();
-		}
-    }
-
-    /**
-     * Activates the editor on the given marker.
-     * 
-     * @param marker the marker to edit
-     */
-    public void edit(IMarker marker) {
-        viewer.editElement(marker, 3);
-    }
-
-    /**
-     * Fills the local tool bar and menu manager with actions.
-     */
-    void fillActionBars() {
-        IActionBars actionBars = getViewSite().getActionBars();
-        IMenuManager menu = actionBars.getMenuManager();
-        IMenuManager submenu = new MenuManager(TaskListMessages.SortByMenu_text);
-
-        menu.add(submenu);
-        submenu.add(sortByCategoryAction);
-        submenu.add(sortByCompletedAction);
-        submenu.add(sortByPriorityAction);
-        submenu.add(sortByDescriptionAction);
-        submenu.add(sortByResourceAction);
-        submenu.add(sortByContainerAction);
-        submenu.add(sortByLocationAction);
-        submenu.add(sortByCreationTimeAction);
-        submenu.add(new Separator());
-        submenu.add(sortAscendingAction);
-        submenu.add(sortDescendingAction);
-
-        menu.add(filtersAction);
-
-        IToolBarManager toolBar = actionBars.getToolBarManager();
-        toolBar.add(newTaskAction);
-        toolBar.add(removeTaskAction);
-        toolBar.add(filtersAction);
-    }
-
-    /**
-     * Contributes actions to the pop-up menu.
-     */
-    void fillContextMenu(IMenuManager menu) {
-        // update enabled state for actions that aren't updated in selectionChanged
-        IStructuredSelection selection = (IStructuredSelection) getSelection();
-        markCompletedAction.setEnabled(markCompletedAction
-                .shouldEnable(selection));
-        resolveMarkerAction.setEnabled(resolveMarkerAction
-                .shouldEnable(selection));
-
-        // add the actions to the menu
-        menu.add(newTaskAction);
-        menu.add(gotoTaskAction);
-        menu.add(new Separator());
-        menu.add(copyTaskAction);
-        menu.add(pasteTaskAction);
-        menu.add(removeTaskAction);
-        menu.add(new Separator());
-        menu.add(markCompletedAction);
-        menu.add(purgeCompletedAction);
-        menu.add(new Separator());
-        menu.add(resolveMarkerAction);
-        menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-        menu
-                .add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS
-                        + "-end")); //$NON-NLS-1$
-        menu.add(propertiesAction);
-    }
-
-    /**
-     * The filter settings have changed.
-     * Refreshes the viewer and title bar.
-     */
-    void filterChanged() {
-
-        BusyIndicator.showWhile(viewer.getControl().getShell().getDisplay(),
-                new Runnable() {
-                    public void run() {
-                        // Filter has already been updated by dialog; just refresh.
-                        // Don't need to update labels for existing elements 
-                        // since changes to filter settings don't affect them.
-                        viewer.getControl().setRedraw(false);
-                        viewer.refresh(false);
-                        viewer.getControl().setRedraw(true);
-                        // update after refresh since the content provider caches summary info
-                        updateStatusMessage();
-                        updateTitle();
-                    }
-                });
-
-    }
-
-    void focusSelectionChanged(SelectionChangedEvent event) {
-        updateFocusResource(event.getSelection());
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IShowInSource.class) {
-            return new IShowInSource() {
-                public ShowInContext getShowInContext() {
-                    return new ShowInContext(null, getSelection());
-                }
-            };
-        }
-        if (adapter == IShowInTargetList.class) {
-            return new IShowInTargetList() {
-                public String[] getShowInTargetIds() {
-                    return new String[] { IPageLayout.ID_RES_NAV };
-                }
-
-            };
-        }
-        return super.getAdapter(adapter);
-    }
-
-    /**
-     * Returns a clipboard for cut/copy/paste actions.
-     * <p>
-     * May only be called after this part's viewer has been created.
-     * The clipboard is disposed when this part is disposed.
-     * </p>
-     * @return a clipboard
-     * @since 2.0
-     */
-    /*package*/
-    Clipboard getClipboard() {
-        return clipboard;
-    }
-
-    /**
-     * Returns the filter for the viewer.
-     */
-    TasksFilter getFilter() {
-        return filter;
-    }
-
-    /**
-     * Returns the UI plugin for the task list.
-     */
-    static AbstractUIPlugin getPlugin() {
-        return (AbstractUIPlugin) Platform.getPlugin(PlatformUI.PLUGIN_ID);
-    }
-
-    /**
-     * Returns the resource for which the task list is showing tasks.
-     *
-     * @return the resource, possibly the workspace root
-     */
-    public IResource getResource() {
-        if (showSelections()) {
-            if (focusResources != null && focusResources.length >= 1
-                    && focusResources[0] != null) {
-                return focusResources[0];
-            }
-        }
-
-        return getWorkspace().getRoot();
-    }
-
-    /**
-     * Get the resources.
-     * 
-     * @return the resources
-     */
-    public IResource[] getResources() {
-        if (showSelections()) {
-            if (focusResources != null) {
-                return focusResources;
-            }
-        }
-
-        return new IResource[] { getWorkspace().getRoot() };
-    }
-
-    /**
-     * Returns the resource depth which the task list is using to show tasks.
-     *
-     * @return an <code>IResource.DEPTH_*</code> constant
-     */
-    int getResourceDepth() {
-        if (showSelections() && !showChildrenHierarchy()) {
-			return IResource.DEPTH_ZERO;
-		}
-
-        return IResource.DEPTH_INFINITE;
-    }
-
-    /**
-     * API method which returns the current selection.
-     *
-     * @return the current selection (element type: <code>IMarker</code>)
-     */
-    public ISelection getSelection() {
-        return viewer.getSelection();
-    }
-
-    /**
-     * Returns the message to display in the status line.
-     */
-    String getStatusMessage(IStructuredSelection selection) {
-        if (selection != null && selection.size() == 1) {
-            IMarker marker = (IMarker) selection.getFirstElement();
-            return MarkerUtil.getMessage(marker);
-        }
-
-        TaskListContentProvider provider = (TaskListContentProvider) viewer
-                .getContentProvider();
-
-        if (selection != null && selection.size() > 1) {
-            return provider.getStatusSummarySelected(selection);
-        }
-        return provider.getStatusSummaryVisible();
-    }
-
-    /**
-     * When created, new task instance is cached in
-     * order to keep it at the top of the list until
-     * first edited. This method returns it, or
-     * null if there is no task instance pending
-     * for first editing.
-     */
-    TableViewer getTableViewer() {
-        return viewer;
-    }
-
-    /**
-     * Returns the workspace.
-     */
-    IWorkspace getWorkspace() {
-        return ResourcesPlugin.getWorkspace();
-    }
-
-    /**
-     * Handles key events in viewer.
-     */
-    void handleKeyPressed(KeyEvent event) {
-        if (event.character == SWT.DEL && event.stateMask == 0
-                && removeTaskAction.isEnabled()) {
-			removeTaskAction.run();
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IViewPart.
-     */
-    public void init(IViewSite site, IMemento memento) throws PartInitException {
-        super.init(site, memento);
-        this.memento = memento;
-    }
-
-    /**
-     * Returns whether we are interested in markers on the given resource.
-     */
-    boolean checkResource(IResource resource) {
-        if (!showSelections()) {
-            return true;
-        }
-
-        IResource[] resources = getResources();
-        IResource resource2;
-
-        if (showOwnerProject()) {
-            IProject project;
-
-            for (int i = 0, l = resources.length; i < l; i++) {
-                resource2 = resources[i];
-
-                if (resource2 == null) {
-                    return true;
-                }
-                project = resource2.getProject();
-
-                if (project == null
-                        || project.equals(resource.getProject())) {
-					return true;
-				}
-            }
-        }
-
-        if (showChildrenHierarchy()) {
-            for (int i = 0, l = resources.length; i < l; i++) {
-                resource2 = resources[i];
-
-                if (resource2 != null
-                        && resource2.getFullPath().isPrefixOf(
-                                resource.getFullPath())) {
-					return true;
-				}
-            }
-        } else {
-			for (int i = 0, l = resources.length; i < l; i++) {
-                resource2 = resources[i];
-
-                if (resource.equals(resource2)) {
-					return true;
-				}
-            }
-		}
-
-        return false;
-    }
-
-    /**
-     * Returns whether the given marker should be shown,
-     * given the current filter settings.
-     */
-    boolean shouldShow(IMarker marker) {
-        return checkResource(marker.getResource())
-                && getFilter().select(marker);
-    }
-
-    /**
-     * Makes actions used in the local tool bar and
-     * popup menu.
-     */
-    void makeActions() {
-        ISharedImages sharedImages = PlatformUI.getWorkbench()
-                .getSharedImages();
-
-        // goto
-        gotoTaskAction = new GotoTaskAction(this, "gotoFile"); //$NON-NLS-1$
-        gotoTaskAction.setText(TaskListMessages.GotoTask_text); 
-        gotoTaskAction.setToolTipText(TaskListMessages.GotoTask_tooltip); 
-        gotoTaskAction.setImageDescriptor(MarkerUtil
-                .getImageDescriptor("gotoobj")); //$NON-NLS-1$
-        gotoTaskAction.setEnabled(false);
-
-        // new task
-        newTaskAction = new NewTaskAction(this, "newTask"); //$NON-NLS-1$
-        newTaskAction.setText(TaskListMessages.NewTask_text); 
-        newTaskAction.setToolTipText(TaskListMessages.NewTask_tooltip);
-        newTaskAction.setImageDescriptor(MarkerUtil
-                .getImageDescriptor("addtsk")); //$NON-NLS-1$
-        newTaskAction.setDisabledImageDescriptor(MarkerUtil
-                .getImageDescriptor("addtsk_disabled")); //$NON-NLS-1$
-
-        // copy task
-        copyTaskAction = new CopyTaskAction(this, "copy"); //$NON-NLS-1$
-        copyTaskAction.setText(TaskListMessages.CopyTask_text); 
-        copyTaskAction.setToolTipText(TaskListMessages.CopyTask_tooltip);
-        copyTaskAction.setEnabled(false);
-
-        // paste task
-        pasteTaskAction = new PasteTaskAction(this, "paste"); //$NON-NLS-1$
-        pasteTaskAction.setText(TaskListMessages.PasteTask_text); 
-        pasteTaskAction.setToolTipText(TaskListMessages.PasteTask_tooltip);
-        pasteTaskAction.setEnabled(false);
-
-        // remove task
-        removeTaskAction = new RemoveTaskAction(this, "delete"); //$NON-NLS-1$
-        removeTaskAction.setText(TaskListMessages.RemoveTask_text);
-        removeTaskAction.setToolTipText(TaskListMessages.RemoveTask_tooltip); 
-        removeTaskAction.setImageDescriptor(sharedImages
-                .getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
-        removeTaskAction.setDisabledImageDescriptor(sharedImages
-                .getImageDescriptor(ISharedImages.IMG_TOOL_DELETE_DISABLED));
-        removeTaskAction.setEnabled(false);
-
-        //mark completed task
-        markCompletedAction = new MarkCompletedAction(this, "markCompleted"); //$NON-NLS-1$
-        markCompletedAction.setText(TaskListMessages.MarkCompleted_text);
-        markCompletedAction.setToolTipText(TaskListMessages.MarkCompleted_tooltip);
-        markCompletedAction.setEnabled(false);
-
-        //delete completed task
-        purgeCompletedAction = new PurgeCompletedAction(this, "deleteCompleted"); //$NON-NLS-1$
-        purgeCompletedAction.setText(TaskListMessages.PurgeCompleted_text);
-        purgeCompletedAction.setToolTipText(TaskListMessages.PurgeCompleted_tooltip); 
-        purgeCompletedAction.setImageDescriptor(sharedImages
-                .getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
-        purgeCompletedAction.setEnabled(true);
-
-        // select all
-        selectAllAction = new SelectAllTasksAction(this, "selectAll"); //$NON-NLS-1$
-        selectAllAction.setText(TaskListMessages.SelectAll_text); 
-        selectAllAction.setToolTipText(TaskListMessages.SelectAll_tooltip);
-
-        // resolutions
-        resolveMarkerAction = new ResolveMarkerAction(this, "resolve"); //$NON-NLS-1$
-        resolveMarkerAction.setText(TaskListMessages.Resolve_text); 
-        resolveMarkerAction.setToolTipText(TaskListMessages.Resolve_tooltip);
-        resolveMarkerAction.setEnabled(false);
-
-        // Sort by ->	
-        sortByCategoryAction = new SortByAction(TaskSorter.TYPE);
-        sortByCategoryAction.setText(TaskListMessages.SortByCategory_text);
-        sortByCategoryAction.setToolTipText(TaskListMessages.SortByCategory_tooltip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortByCategoryAction,
-				ITaskListHelpContextIds.TASK_SORT_TYPE_ACTION);
-
-        sortByCompletedAction = new SortByAction(TaskSorter.COMPLETION);
-        sortByCompletedAction.setText(TaskListMessages.SortByCompleted_text);
-        sortByCompletedAction.setToolTipText(TaskListMessages.SortByCompleted_tooltip); 
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(
-				sortByCompletedAction,
-				ITaskListHelpContextIds.TASK_SORT_COMPLETED_ACTION);
-
-        sortByPriorityAction = new SortByAction(TaskSorter.PRIORITY);
-        sortByPriorityAction.setText(TaskListMessages.SortByPriority_text); 
-        sortByPriorityAction.setToolTipText(TaskListMessages.SortByPriority_tooltip); 
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortByPriorityAction,
-				ITaskListHelpContextIds.TASK_SORT_PRIORITY_ACTION);
-
-        sortByDescriptionAction = new SortByAction(TaskSorter.DESCRIPTION);
-        sortByDescriptionAction.setText(TaskListMessages.SortByDescription_text); 
-        sortByDescriptionAction.setToolTipText(TaskListMessages.SortByDescription_tooltip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(
-				sortByDescriptionAction,
-				ITaskListHelpContextIds.TASK_SORT_DESCRIPTION_ACTION);
-
-        sortByResourceAction = new SortByAction(TaskSorter.RESOURCE);
-        sortByResourceAction.setText(TaskListMessages.SortByResource_text);
-        sortByResourceAction.setToolTipText(TaskListMessages.SortByResource_tooltip); 
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortByResourceAction,
-				ITaskListHelpContextIds.TASK_SORT_RESOURCE_ACTION);
-
-        sortByContainerAction = new SortByAction(TaskSorter.FOLDER);
-        sortByContainerAction.setText(TaskListMessages.SortByContainer_text); 
-        sortByContainerAction.setToolTipText(TaskListMessages.SortByContainer_tooltip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(
-				sortByContainerAction,
-				ITaskListHelpContextIds.TASK_SORT_FOLDER_ACTION);
-
-        sortByLocationAction = new SortByAction(TaskSorter.LOCATION);
-        sortByLocationAction.setText(TaskListMessages.SortByLocation_text); 
-        sortByLocationAction.setToolTipText(TaskListMessages.SortByLocation_tooltip); 
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortByLocationAction,
-				ITaskListHelpContextIds.TASK_SORT_LOCATION_ACTION);
-
-        sortByCreationTimeAction = new SortByAction(TaskSorter.CREATION_TIME);
-        sortByCreationTimeAction.setText(TaskListMessages.SortByCreationTime_text);
-        sortByCreationTimeAction.setToolTipText(TaskListMessages.SortByCreationTime_tooltip); 
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(
-				sortByCreationTimeAction,
-				ITaskListHelpContextIds.TASK_SORT_CREATION_TIME_ACTION);
-
-        sortAscendingAction = new SortDirectionAction(TaskSorter.ASCENDING);
-        sortAscendingAction.setText(TaskListMessages.SortAscending_text);
-        sortAscendingAction.setToolTipText(TaskListMessages.SortAscending_tooltip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortAscendingAction,
-				ITaskListHelpContextIds.TASK_SORT_ASCENDING_ACTION);
-
-        sortDescendingAction = new SortDirectionAction(TaskSorter.DESCENDING);
-        sortDescendingAction.setText(TaskListMessages.SortDescending_text);
-        sortDescendingAction.setToolTipText(TaskListMessages.SortDescending_tooltip);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(sortDescendingAction,
-				ITaskListHelpContextIds.TASK_SORT_DESCENDING_ACTION);
-
-        // filters...
-        filtersAction = new FiltersAction(this, "filter"); //$NON-NLS-1$
-        filtersAction.setText(TaskListMessages.Filters_text); 
-        filtersAction.setToolTipText(TaskListMessages.Filters_tooltip);
-        filtersAction.setImageDescriptor(MarkerUtil
-                .getImageDescriptor("filter")); //$NON-NLS-1$
-
-        // properties
-        propertiesAction = new TaskPropertiesAction(this, "properties"); //$NON-NLS-1$
-        propertiesAction.setText(TaskListMessages.Properties_text); 
-        propertiesAction.setToolTipText(TaskListMessages.Properties_tooltip);
-        propertiesAction.setEnabled(false);
-    }
-
-    /**
-     * The markers have changed.  Update the status line and title bar.
-     */
-    void markersChanged() {
-        updateStatusMessage();
-        updateTitle();
-    }
-
-    void partActivated(IWorkbenchPart part) {
-        if (part == focusPart) {
-			return;
-		}
-
-        if (focusSelectionProvider != null) {
-            focusSelectionProvider
-                    .removeSelectionChangedListener(focusSelectionChangedListener);
-            focusSelectionProvider = null;
-        }
-
-        focusPart = part;
-        if (focusPart != null) {
-            focusSelectionProvider = focusPart.getSite().getSelectionProvider();
-            if (focusSelectionProvider != null) {
-                focusSelectionProvider
-                        .addSelectionChangedListener(focusSelectionChangedListener);
-                updateFocusResource(focusSelectionProvider.getSelection());
-            } else {
-                updateFocusResource(null);
-            }
-        }
-
-    }
-
-    void partClosed(IWorkbenchPart part) {
-        if (part != focusPart) {
-			return;
-		}
-        if (focusSelectionProvider != null) {
-            focusSelectionProvider
-                    .removeSelectionChangedListener(focusSelectionChangedListener);
-            focusSelectionProvider = null;
-        }
-        focusPart = null;
-    }
-
-    /**
-     * The user is attempting to drag marker data.  Add the appropriate
-     * data to the event depending on the transfer type.
-     */
-    void performDragSetData(DragSourceEvent event) {
-        if (MarkerTransfer.getInstance().isSupportedType(event.dataType)) {
-            event.data = ((IStructuredSelection) viewer.getSelection())
-                    .toArray();
-            return;
-        }
-        if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
-            Object[] data = ((IStructuredSelection) viewer.getSelection())
-                    .toArray();
-            if (data != null) {
-                IMarker[] markers = new IMarker[data.length];
-                for (int i = 0; i < markers.length; i++) {
-                    markers[i] = (IMarker) data[i];
-                }
-                event.data = createMarkerReport(markers);
-            }
-            return;
-        }
-    }
-
-    void restoreState(IMemento memento) {
-        //restore selection
-        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-        IMemento selectionMem = memento.getChild(TAG_SELECTION);
-        if (selectionMem != null) {
-            ArrayList selectionList = new ArrayList();
-            IMemento markerMems[] = selectionMem.getChildren(TAG_MARKER);
-            for (int i = 0; i < markerMems.length; i++) {
-                try {
-                    long id = Long.parseLong(markerMems[i].getString(TAG_ID));
-                    IResource resource = root.findMember(markerMems[i]
-                            .getString(TAG_RESOURCE));
-                    if (resource != null) {
-                        IMarker marker = resource.findMarker(id);
-                        if (marker != null) {
-                            selectionList.add(marker);
-                        }
-                    }
-                } catch (NumberFormatException e) {
-                } catch (CoreException e) {
-                }
-
-            }
-            viewer.setSelection(new StructuredSelection(selectionList));
-        }
-
-        Table table = viewer.getTable();
-        //restore vertical position
-        try {
-            String topIndexStr = memento.getString(TAG_TOP_INDEX);
-            table.setTopIndex(Integer.parseInt(topIndexStr));
-        } catch (NumberFormatException e) {
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IViewPart.
-     */
-    public void saveState(IMemento memento) {
-        if (viewer == null) {
-            if (this.memento != null) {
-				memento.putMemento(this.memento);
-			}
-            return;
-        }
-
-        //save filter
-        getFilter().saveState(memento.createChild(TAG_FILTER));
-
-        //save columns width
-        Table table = viewer.getTable();
-        TableColumn columns[] = table.getColumns();
-        //check whether it has ever been layed out
-        //workaround for 1GDTU19: ITPUI:WIN2000 - Task list columns "collapsed" left
-        boolean shouldSave = false;
-        for (int i = 0; i < columns.length; i++) {
-            if (columnLayouts[i].resizable && columns[i].getWidth() != 0) {
-                shouldSave = true;
-                break;
-            }
-        }
-        if (shouldSave) {
-            for (int i = 0; i < columns.length; i++) {
-                if (columnLayouts[i].resizable) {
-                    IMemento child = memento.createChild(TAG_COLUMN);
-                    child.putInteger(TAG_NUMBER, i);
-                    child.putInteger(TAG_WIDTH, columns[i].getWidth());
-                }
-            }
-        }
-
-        //save selection
-        Object markers[] = ((IStructuredSelection) viewer.getSelection())
-                .toArray();
-        if (markers.length > 0) {
-            IMemento selectionMem = memento.createChild(TAG_SELECTION);
-            for (int i = 0; i < markers.length; i++) {
-                IMemento elementMem = selectionMem.createChild(TAG_MARKER);
-                IMarker marker = (IMarker) markers[i];
-                elementMem.putString(TAG_RESOURCE, marker.getResource()
-                        .getFullPath().toString());
-                elementMem.putString(TAG_ID, String.valueOf(marker.getId()));
-            }
-        }
-
-        //save vertical position
-        int topIndex = table.getTopIndex();
-        memento.putString(TAG_TOP_INDEX, String.valueOf(topIndex));
-    }
-
-    /**
-     * Handles marker selection change in the task list by updating availability of
-     * the actions in the local tool bar.
-     */
-    void selectionChanged(SelectionChangedEvent event) {
-        IStructuredSelection selection = (IStructuredSelection) event
-                .getSelection();
-        updateStatusMessage(selection);
-        updateTitle();
-
-        updatePasteEnablement();
-
-        // If selection is empty, then disable copy, remove and goto.	
-        if (selection.isEmpty()) {
-            copyTaskAction.setEnabled(false);
-            removeTaskAction.setEnabled(false);
-            gotoTaskAction.setEnabled(false);
-            propertiesAction.setEnabled(false);
-            return;
-        }
-        
-
-        // Can only open properties for a single task at a time
-        propertiesAction.setEnabled(selection.size() == 1);
-
-        // Can always copy
-        copyTaskAction.setEnabled(true);
-
-        // Determine if goto should be enabled
-        IMarker selectedMarker = (IMarker) selection.getFirstElement();
-        boolean canJump = selection.size() == 1
-                && selectedMarker.getResource().getType() == IResource.FILE;
-        gotoTaskAction.setEnabled(canJump);
-
-        // Determine if remove should be enabled
-        boolean canRemove = true;
-        for (Iterator markers = selection.iterator(); markers.hasNext();) {
-            IMarker m = (IMarker) markers.next();
-            if (!MarkerUtil.isEditable(m)) {
-                canRemove = false;
-                break;
-            }
-        }
-        removeTaskAction.setEnabled(canRemove);
-
-        // if there is an active editor on the selection's input, tell
-        // the editor to goto the marker
-        if (canJump) {
-            IEditorPart editor = getSite().getPage().getActiveEditor();
-            if (editor != null) {
-                IFile file = ResourceUtil.getFile(editor.getEditorInput());
-                if (file != null) {
-                    if (selectedMarker.getResource().equals(file)) {
-                        IDE.gotoMarker(editor, selectedMarker);
-                    }
-                }
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart.
-     */
-    public void setFocus() {
-        viewer.getControl().setFocus();
-    }
-
-    /**
-     * Sets the property on a marker to the given value.
-     */
-    void setProperty(IMarker marker, String property, Object value) {
-        if (MarkerUtil.getProperty(marker, property).equals(value)) {
-            return;
-        }
-        try {
-            if (property == tableColumnProperties[1]) { // Completed
-                marker.setAttribute(IMarker.DONE, value);
-            } else if (property == tableColumnProperties[2]) { // Priority
-                // this property is used only by cell editor, where order is High, Normal, Low
-                marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH
-                        - ((Integer) value).intValue());
-            } else if (property == tableColumnProperties[3]) { // Description
-                marker.setAttribute(IMarker.MESSAGE, value);
-                // Let's not refilter too lightly - see if it is needed
-                //			TaskSorter sorter = (TaskSorter) viewer.getSorter();
-                //			if (sorter != null && sorter.getColumnNumber() == 3) {
-                //				viewer.refresh();
-                //			}
-            }
-        } catch (CoreException e) {
-            String msg = TaskListMessages.TaskList_errorModifyingTask; 
-            ErrorDialog.openError(getSite().getShell(), msg, null, e
-                    .getStatus());
-        }
-    }
-
-    /**
-     * API method which sets the current selection of this viewer.
-     *
-     * @param selection a structured selection of <code>IMarker</code> objects
-     * @param reveal <code>true</code> to reveal the selection, <false> otherwise
-     */
-    public void setSelection(ISelection selection, boolean reveal) {
-        Assert.isTrue(selection instanceof IStructuredSelection);
-        IStructuredSelection ssel = (IStructuredSelection) selection;
-
-        for (Iterator i = ssel.iterator(); i.hasNext();) {
-			Assert.isTrue(i.next() instanceof IMarker);
-		}
-
-        if (viewer != null) {
-			viewer.setSelection(selection, reveal);
-		}
-    }
-
-    boolean showChildrenHierarchy() {
-        switch (getFilter().onResource) {
-        case TasksFilter.ON_ANY_RESOURCE:
-        case TasksFilter.ON_SELECTED_RESOURCE_AND_CHILDREN:
-        case TasksFilter.ON_ANY_RESOURCE_OF_SAME_PROJECT:
-        // added by cagatayk@acm.org
-        case TasksFilter.ON_WORKING_SET:
-        default:
-            return true;
-        case TasksFilter.ON_SELECTED_RESOURCE_ONLY:
-            return false;
-        }
-    }
-
-    boolean showSelections() {
-        switch (getFilter().onResource) {
-        case TasksFilter.ON_SELECTED_RESOURCE_ONLY:
-        case TasksFilter.ON_SELECTED_RESOURCE_AND_CHILDREN:
-        case TasksFilter.ON_ANY_RESOURCE_OF_SAME_PROJECT:
-            // added by cagatayk@acm.org
-            return true;
-        case TasksFilter.ON_ANY_RESOURCE:
-        case TasksFilter.ON_WORKING_SET:
-        default:
-            return false;
-        }
-    }
-
-    // showOwnerProject() added by cagatayk@acm.org 
-    boolean showOwnerProject() {
-        return getFilter().onResource == TasksFilter.ON_ANY_RESOURCE_OF_SAME_PROJECT;
-    }
-
-    /**
-     * Processes state change of the 'showSelections' switch.
-     * If true, it will resync with the saved input element.
-     * Otherwise, it will reconfigure to show all the
-     * problems/tasks in the workbench.
-     * 
-     * @param value the value
-     */
-    void toggleInputSelection(boolean value) {
-        /*
-         if (value) {
-         handleInput(inputSelection, false);
-         } else {
-         // detach from input and link to the workbench object
-         handleInput(WorkbenchPlugin.getPluginWorkbench(), true);
-         }
-         updateTitle();
-         */
-    }
-
-    /**
-     * If true, current input will be
-     * remembered and further selections will be
-     * ignored.
-     * 
-     * @param value the value
-     */
-    void toggleLockInput(boolean value) {
-        /*
-         if (!value) {
-         handleInput(inputSelection, false);
-         lockedInput = null;
-         } else {
-         lockedInput = (IElement) getInput();
-         }
-         String lockedInputPath = "";
-         if (lockedInput != null && lockedInput instanceof IResource) {
-         IResource resource = (IResource) lockedInput;
-         lockedInputPath = resource.getFullPath().toString();
-         }
-         IDialogStore store = WorkbenchPlugin.getDefault().getDialogStore();
-         store.put(STORE_LOCKED_INPUT, lockedInputPath);
-         updateTitle();
-         */
-    }
-
-    /**
-     * Updates the focus resource, and refreshes if we're showing only tasks for the focus resource.
-     */
-    void updateFocusResource(ISelection selection) {
-        ArrayList list = new ArrayList();
-
-        if (selection instanceof IStructuredSelection) {
-            Iterator iterator = ((IStructuredSelection) selection).iterator();
-            while (iterator.hasNext()) {
-                Object object = iterator.next();
-
-                if (object instanceof IAdaptable) {
-                    ITaskListResourceAdapter taskListResourceAdapter;
-                    Object adapter = ((IAdaptable) object)
-                            .getAdapter(ITaskListResourceAdapter.class);
-                    if (adapter != null
-                            && adapter instanceof ITaskListResourceAdapter) {
-                        taskListResourceAdapter = (ITaskListResourceAdapter) adapter;
-                    } else {
-                        taskListResourceAdapter = DefaultTaskListResourceAdapter
-                                .getDefault();
-                    }
-
-                    IResource resource = taskListResourceAdapter
-                            .getAffectedResource((IAdaptable) object);
-                    if (resource != null) {
-                        list.add(resource);
-                    }
-                }
-            }
-        }
-
-        if (list.size() == 0 && focusPart instanceof IEditorPart) {
-            IEditorInput input = ((IEditorPart) focusPart).getEditorInput();
-            if (input != null) {
-                IResource resource = ResourceUtil.getResource(input);
-                if (resource != null) {
-                    list.add(resource);
-                }
-            }
-        }
-
-        int l = list.size();
-        if (l < 1) {
-            return; // required to achieve lazy update behavior.
-        }
-
-        IResource[] resources = (IResource[]) list.toArray(new IResource[l]);
-        for (int i = 0; i < l; i++) {
-            Assert.isNotNull(resources[i]);
-        }
-
-        if (!Arrays.equals(resources, focusResources)) {
-            boolean updateNeeded = false;
-
-            if (showOwnerProject()) {
-                int m = focusResources == null ? 0 : focusResources.length;
-                if (l != m) {
-                    updateNeeded = true;
-                } else {
-                    for (int i = 0; i < l; i++) {
-                        IProject oldProject = m < 1 ? null : focusResources[0]
-                                .getProject();
-                        IProject newProject = resources[0].getProject();
-                        boolean projectsEqual = (oldProject == null ? newProject == null
-                                : oldProject.equals(newProject));
-                        if (!projectsEqual) {
-                            updateNeeded = true;
-                            break;
-                        }
-                    }
-                }
-            } else if (showSelections()) {
-                updateNeeded = true;
-            }
-
-            // remember the focus resources even if update is not needed,
-            // so that we know them if the filter settings change
-            focusResources = resources;
-
-            if (updateNeeded) {
-                viewer.getControl().setRedraw(false);
-                viewer.refresh();
-                viewer.getControl().setRedraw(true);
-                updateStatusMessage();
-                updateTitle();
-            }
-        }
-    }
-
-    /**
-     * Updates the enablement of the paste action
-     */
-    void updatePasteEnablement() {
-        // Paste if clipboard contains tasks
-        MarkerTransfer transfer = MarkerTransfer.getInstance();
-        IMarker[] markerData = (IMarker[]) getClipboard().getContents(transfer);
-        boolean canPaste = false;
-        if (markerData != null) {
-            for (int i = 0; i < markerData.length; i++) {
-                if (MarkerUtil.isMarkerType(markerData[i], IMarker.TASK)) {
-                    canPaste = true;
-                    break;
-                }
-            }
-        }
-        pasteTaskAction.setEnabled(canPaste);
-    }
-
-    /**
-     * Updates that message displayed in the status line.
-     */
-    void updateStatusMessage() {
-        ISelection selection = viewer.getSelection();
-
-        if (selection instanceof IStructuredSelection) {
-			updateStatusMessage((IStructuredSelection) selection);
-		} else {
-			updateStatusMessage(null);
-		}
-    }
-
-    /**
-     * Updates that message displayed in the status line.
-     */
-    void updateStatusMessage(IStructuredSelection selection) {
-        String message = getStatusMessage(selection);
-        getViewSite().getActionBars().getStatusLineManager()
-                .setMessage(message);
-    }
-
-    /**
-     * Updates the title of the view.  Should be called when filters change.
-     */
-    void updateTitle() {
-        TaskListContentProvider provider = (TaskListContentProvider) getTableViewer()
-                .getContentProvider();
-        String summary = provider.getTitleSummary();
-        setContentDescription(summary);
-    }
-
-    /**
-     * Method updateSortingState.
-     */
-    void updateSortingState() {
-        int curColumn = comparator.getTopPriority();
-        sortByCategoryAction.setChecked(curColumn == TaskSorter.TYPE);
-        sortByCompletedAction.setChecked(curColumn == TaskSorter.COMPLETION);
-        sortByPriorityAction.setChecked(curColumn == TaskSorter.PRIORITY);
-        sortByDescriptionAction.setChecked(curColumn == TaskSorter.DESCRIPTION);
-        sortByResourceAction.setChecked(curColumn == TaskSorter.RESOURCE);
-        sortByContainerAction.setChecked(curColumn == TaskSorter.FOLDER);
-        sortByLocationAction.setChecked(curColumn == TaskSorter.LOCATION);
-        sortByCreationTimeAction
-                .setChecked(curColumn == TaskSorter.CREATION_TIME);
-
-        int curDirection = comparator.getTopPriorityDirection();
-        sortAscendingAction.setChecked(curDirection == TaskSorter.ASCENDING);
-        sortDescendingAction.setChecked(curDirection == TaskSorter.DESCENDING);
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskListContentProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskListContentProvider.java
deleted file mode 100644
index 726ce5f..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskListContentProvider.java
+++ /dev/null
@@ -1,568 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.tasklist;
-
-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.IMarker;
-import org.eclipse.core.resources.IMarkerDelta;
-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.runtime.CoreException;
-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.osgi.util.NLS;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.internal.views.tasklist.TaskListMessages;
-
-/**
- * Task list content provider returns elements that should be
- * in the task list depending on the selection mode.
- * It goes directly to the marker manager and retreives
- * tasks and problems.
- */
-class TaskListContentProvider implements IStructuredContentProvider,
-        IResourceChangeListener {
-
-    private static final int TASKS = 0;
-
-    private static final int ERRORS = 1;
-
-    private static final int WARNINGS = 2;
-
-    private static final int INFOS = 3;
-
-    private TaskList taskList;
-
-    private TableViewer viewer;
-
-    private IResource input;
-
-    /* cached counts of tasks, errors, warnings and infos for the visible 
-     * markers, maintained incrementally */
-    private int[] visibleMarkerCounts = null;
-
-    /* cached count of all markers in workspace matching supported root types 
-     * (tasks & problems), maintained incrementally */
-    private int totalMarkerCount = -1;
-
-    /**
-     * The constructor.
-     */
-    public TaskListContentProvider(TaskList taskList) {
-        this.taskList = taskList;
-        this.viewer = taskList.getTableViewer();
-    }
-
-    private boolean getFilterOnMarkerLimit() {
-        return taskList.getFilter().getFilterOnMarkerLimit();
-    }
-
-    private int getMarkerLimit() {
-        return taskList.getFilter().getMarkerLimit();
-    }
-
-    private boolean isMarkerLimitExceeded() {
-        return taskList.isMarkerLimitExceeded();
-    }
-
-    private void setMarkerLimitExceeded(boolean markerLimitExceeded) {
-        taskList.setMarkerLimitExceeded(markerLimitExceeded);
-    }
-
-    /**
-     * Returns a one-line string containing a summary of the number
-     * of visible tasks and problems.
-     */
-    public String getStatusSummaryVisible() {
-        if (visibleMarkerCounts == null) {
-            return ""; //$NON-NLS-1$
-        }
-
-        return NLS.bind(TaskListMessages.TaskList_statusSummaryVisible,new Integer(sum(visibleMarkerCounts)),
-		getStatusSummaryBreakdown(visibleMarkerCounts));
-    }
-
-    /**
-     * Returns a one-line string containing a summary of the number
-     * of selected tasks and problems.
-     * 
-     * @param selection the current selection
-     */
-    public String getStatusSummarySelected(IStructuredSelection selection) {
-        int[] selectedMarkerCounts = getMarkerCounts(selection.toList());
-        return NLS.bind(TaskListMessages.TaskList_statusSummarySelected, new Integer(sum(selectedMarkerCounts)),
-		getStatusSummaryBreakdown(selectedMarkerCounts) );
-    }
-
-    /**
-     * Returns a one-line string containing a summary of the number of 
-     * given tasks, errors, warnings, and infos.
-     */
-    private String getStatusSummaryBreakdown(int[] counts) {
-        return NLS.bind(
-				TaskListMessages.TaskList_statusSummaryBreakdown, 
-				new Object []{ 
-						new Integer(counts[TASKS]),
-						new Integer(counts[ERRORS]),
-						new Integer(counts[WARNINGS]),
-						new Integer(counts[INFOS])});
-    }
-
-    /**
-     * Returns a one-line string containing a summary of the number items
-     * being shown by the filter, for display in the title bar.
-     */
-    public String getTitleSummary() {
-        if (visibleMarkerCounts == null) {
-            return ""; //$NON-NLS-1$
-        }
-
-        int visibleMarkerCount = sum(visibleMarkerCounts);
-        TasksFilter filter = taskList.getFilter();
-
-        if (filter.isShowingAll()) {
-            return NLS.bind(TaskListMessages.TaskList_titleSummaryUnfiltered, new Integer(visibleMarkerCount));
-        } else {
-            return NLS.bind(TaskListMessages.TaskList_titleSummaryFiltered, new Integer(visibleMarkerCount),
-			new Integer(getTotalMarkerCount()));
-        }
-    }
-
-    /**
-     * Returns the sum of the given counts.
-     */
-    private int sum(int[] counts) {
-        int sum = 0;
-
-        for (int i = 0, l = counts.length; i < l; ++i) {
-            sum += counts[i];
-        }
-
-        return sum;
-    }
-
-    /**
-     * Returns the count of all markers in the workspace which can be shown in 
-     * the task list. This is computed once, then maintained incrementally by 
-     * the delta processing.
-     */
-    private int getTotalMarkerCount() {
-        if (totalMarkerCount == -1) {
-            totalMarkerCount = 0;
-
-            try {
-                IResource root = taskList.getWorkspace().getRoot();
-                IMarker[] markers = root.findMarkers(null, true,
-                        IResource.DEPTH_INFINITE);
-
-                for (int i = 0; i < markers.length; ++i) {
-                    if (isRootType(markers[i])) {
-                        ++totalMarkerCount;
-                    }
-                }
-            } catch (CoreException e) {
-                // shouldn't happen
-            }
-        }
-
-        return totalMarkerCount;
-    }
-
-    /**
-     * Returns whether the given marker is a subtype of one of the root types.
-     */
-    private boolean isRootType(IMarker marker) {
-        String[] rootTypes = TasksFilter.ROOT_TYPES;
-
-        for (int i = 0, l = rootTypes.length; i < l; ++i) {
-            if (MarkerUtil.isMarkerType(marker, rootTypes[i])) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns the markers to show in the task list.
-     */
-    private IMarker[] getMarkers() throws CoreException {
-        IResource[] resources = taskList.getResources();
-        int l = resources.length;
-        IResource resource;
-        boolean bExists = false;
-
-        for (int i = 0; i < l; i++) {
-            resource = resources[i];
-
-            if (resource != null && resource.exists()) {
-                bExists = true;
-                break;
-            }
-        }
-
-        if (!bExists) {
-            return new IMarker[0];
-        }
-
-        if (taskList.showOwnerProject()) {
-            IResource[] projectResources = new IResource[l];
-            IResource project;
-
-            for (int i = 0; i < l; i++) {
-                resource = resources[i];
-
-                if (resource != null) {
-                    project = resource.getProject();
-
-                    if (project != null) {
-                        projectResources[i] = project;
-                    } else {
-                        projectResources[i] = resource;
-                    }
-                }
-            }
-
-            resources = projectResources;
-        }
-
-        int depth = taskList.getResourceDepth();
-        TasksFilter filter = taskList.getFilter();
-        Set set = new HashSet();
-
-        for (int i = 0; i < l; i++) {
-            resource = resources[i];
-
-            if (resource != null) {
-                IMarker[] markers = resource.findMarkers(null, true, depth);
-
-                for (int j = 0; j < markers.length; ++j) {
-                    IMarker marker = markers[j];
-
-                    if (filter.select(marker)) {
-                        set.add(marker);
-                    }
-                }
-            }
-        }
-
-        IMarker[] result = new IMarker[set.size()];
-        set.toArray(result);
-        return result;
-    }
-
-    /**
-     * Returns the number of tasks, errors, warnings, infos
-     * in the given markers.
-     */
-    private int[] getMarkerCounts(List markers) {
-        int[] markerCounts = new int[4];
-        Iterator iterator = markers.iterator();
-
-        while (iterator.hasNext()) {
-            IMarker marker = (IMarker) iterator.next();
-
-            if (MarkerUtil.isMarkerType(marker, IMarker.PROBLEM)) {
-                switch (MarkerUtil.getSeverity(marker)) {
-                case IMarker.SEVERITY_ERROR:
-                    ++markerCounts[ERRORS];
-                    break;
-                case IMarker.SEVERITY_WARNING:
-                    ++markerCounts[WARNINGS];
-                    break;
-                case IMarker.SEVERITY_INFO:
-                    ++markerCounts[INFOS];
-                    break;
-                }
-            } else if (MarkerUtil.isMarkerType(marker, IMarker.TASK)) {
-                ++markerCounts[TASKS];
-            }
-        }
-
-        return markerCounts;
-    }
-
-    /**
-     * Updates the marker counts for the given delta.
-     * Assumptions:
-     *   - the delta is either an addition or a removal
-     *   - problem severities don't change
-     */
-    private void updateMarkerCounts(IMarkerDelta markerDelta, int difference) {
-        if (visibleMarkerCounts == null) {
-			return;
-		}
-
-        if (markerDelta.isSubtypeOf(IMarker.PROBLEM)) {
-            int severity = markerDelta.getAttribute(IMarker.SEVERITY,
-                    IMarker.SEVERITY_WARNING);
-
-            switch (severity) {
-            case IMarker.SEVERITY_ERROR:
-                visibleMarkerCounts[ERRORS] += difference;
-                break;
-            case IMarker.SEVERITY_WARNING:
-                visibleMarkerCounts[WARNINGS] += difference;
-                break;
-            case IMarker.SEVERITY_INFO:
-                visibleMarkerCounts[INFOS] += difference;
-                break;
-            }
-        } else if (markerDelta.isSubtypeOf(IMarker.TASK)) {
-			visibleMarkerCounts[TASKS] += difference;
-		}
-    }
-
-    /**
-     * Updates the viewer given the lists of added, removed, and changes 
-     * markers. This is called inside an syncExec.
-     */
-    private void updateViewer(List additions, List removals, List changes) {
-
-        // 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;
-        }
-
-        //update the viewer based on the marker changes.
-        //process removals before additions, to avoid multiple equal elements in 
-        //the viewer
-        if (removals.size() > 0) {
-
-            // Cancel any open cell editor.  We assume that the one being edited 
-            // is the one being removed.
-            viewer.cancelEditing();
-            viewer.remove(removals.toArray());
-        }
-
-        if (additions.size() > 0) {
-            viewer.add(additions.toArray());
-        }
-
-        if (changes.size() > 0) {
-            viewer.update(changes.toArray(), null);
-        }
-    }
-
-    /**
-     * The visual part that is using this content provider is about
-     * to be disposed. Deallocate all allocated SWT resources.
-     */
-    public void dispose() {
-        if (input != null) {
-            input.getWorkspace().removeResourceChangeListener(this);
-            input = null;
-        }
-    }
-
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-        if (this.input != null) {
-            this.input.getWorkspace().removeResourceChangeListener(this);
-        }
-
-        this.input = (IResource) newInput;
-
-        if (this.input != null) {
-            this.input.getWorkspace().addResourceChangeListener(this,
-                    IResourceChangeEvent.POST_CHANGE);
-        }
-
-        this.viewer = (TableViewer) viewer;
-    }
-
-    /**
-     * Returns all the markers that should be shown for
-     * the current settings.
-     */
-    public Object[] getElements(Object parent) {
-        try {
-            IMarker[] markers = getMarkers();
-            this.visibleMarkerCounts = getMarkerCounts(Arrays.asList(markers));
-
-            if (getFilterOnMarkerLimit() && markers.length > getMarkerLimit()) {
-                if (!isMarkerLimitExceeded()) {
-                    setMarkerLimitExceeded(true);
-
-                    viewer.getControl().getDisplay().syncExec(new Runnable() {
-                        public void run() {
-                            viewer.refresh();
-                        }
-                    });
-                }
-
-                return new IMarker[0];
-            } else {
-                if (isMarkerLimitExceeded()) {
-                    setMarkerLimitExceeded(false);
-
-                    viewer.getControl().getDisplay().syncExec(new Runnable() {
-                        public void run() {
-                            viewer.refresh();
-                        }
-                    });
-                }
-
-                return markers;
-            }
-        } catch (CoreException e) {
-            return new IMarker[0];
-        }
-    }
-
-    /**
-     * 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) {
-        /*
-         * gather all marker changes from the delta. be sure to do this in the 
-         * calling thread, as the delta is destroyed when this method returns
-         */
-        IMarkerDelta[] markerDeltas = event.findMarkerDeltas(null, true);
-
-        if (markerDeltas == null) {
-			return;
-		}
-
-        int oldTotal = totalMarkerCount;
-        final List additions = new ArrayList();
-        final List removals = new ArrayList();
-        final List changes = new ArrayList();
-
-        for (int i = 0; i < markerDeltas.length; i++) {
-            IMarkerDelta markerDelta = markerDeltas[i];
-
-            if (markerDelta == null) {
-				continue;
-			}
-
-            int iKind = markerDelta.getKind();
-
-            for (int j = 0; j < TasksFilter.ROOT_TYPES.length; j++) {
-                if (markerDelta.isSubtypeOf(TasksFilter.ROOT_TYPES[j])) {
-
-                    /* 
-                     * Updates the total count of markers given the applicable 
-                     * marker deltas. 
-                     */
-                    if (totalMarkerCount != -1) {
-                        switch (iKind) {
-                        case IResourceDelta.ADDED:
-                            totalMarkerCount++;
-                            break;
-                        case IResourceDelta.REMOVED:
-                            totalMarkerCount--;
-                            break;
-                        }
-                    }
-
-                    /*
-                     * Partition the marker deltas into one of the three given 
-                     * lists depending on
-                     * the type of delta (add, remove, or change).
-                     * The resulting lists contain the corresponding markers, 
-                     * not the deltas.
-                     * Deltas which are not under the current focus resource are 
-                     * discarded.
-                     * This also updates the marker counts.
-                     */
-
-                    IResource resource = markerDelta.getResource();
-
-                    if (resource == null) {
-						continue;
-					}
-
-                    boolean affectedBy = taskList.checkResource(resource)
-                            && taskList.getFilter().select(markerDelta);
-
-                    if (affectedBy) {
-                        IMarker marker = markerDelta.getMarker();
-
-                        switch (iKind) {
-                        case IResourceDelta.ADDED:
-                            additions.add(marker);
-                            updateMarkerCounts(markerDelta, +1);
-                            break;
-                        case IResourceDelta.REMOVED:
-                            removals.add(marker);
-                            updateMarkerCounts(markerDelta, -1);
-                            break;
-                        case IResourceDelta.CHANGED:
-                            changes.add(marker);
-                            /* 
-                             * Assume attribute changes don't affect marker 
-                             * counts. This is only true if problem severities 
-                             * can't change. 
-                             */
-                            break;
-                        }
-                    }
-
-                    break;
-                }
-            }
-        }
-
-        if (oldTotal == totalMarkerCount
-                && additions.size() + removals.size() + changes.size() == 0) {
-            // no changes to markers that we care about
-            return;
-        }
-
-        /*
-         * do the required viewer updates in the UI thread need to use syncExec; 
-         * see 1G95PU8: ITPUI:WIN2000 - Changing task description flashes old 
-         * description
-         */
-        viewer.getControl().getDisplay().syncExec(new Runnable() {
-            public void run() {
-                if (getFilterOnMarkerLimit()
-                        && sum(visibleMarkerCounts) > getMarkerLimit()) {
-                    if (!isMarkerLimitExceeded()) {
-                        setMarkerLimitExceeded(true);
-                        viewer.refresh();
-                    }
-                } else if (taskList.isMarkerLimitExceeded()) {
-                    setMarkerLimitExceeded(false);
-                    viewer.refresh();
-                } else {
-                    updateViewer(additions, removals, changes);
-                }
-
-                /* Update the task list's status message.
-                 * XXX: Quick and dirty solution here.  
-                 * Would be better to have a separate model for the tasks and
-                 * have both the content provider and the task list register for 
-                 * updates. XXX: Do this inside the syncExec, since we're 
-                 * talking to status line widget.
-                 */
-                taskList.markersChanged();
-            }
-        });
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskPropertiesAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskPropertiesAction.java
deleted file mode 100644
index c6145ed..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskPropertiesAction.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.views.tasklist;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This action opens the properties dialog for the current task.
- */
-class TaskPropertiesAction extends TaskAction {
-
-    /**
-     * Creates the action.
-     * 
-     * @param tasklist the task list
-     * @param id the id
-     */
-    public TaskPropertiesAction(TaskList tasklist, String id) {
-        super(tasklist, id);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                ITaskListHelpContextIds.TASK_PROPERTIES_ACTION);
-    }
-
-    /**
-     * Performs this action.
-     */
-    public void run() {
-        IStructuredSelection sel = (IStructuredSelection) getTaskList()
-                .getSelection();
-        Object o = sel.getFirstElement();
-        if (o instanceof IMarker) {
-            TaskPropertiesDialog dialog = new TaskPropertiesDialog(getShell());
-            dialog.setMarker((IMarker) o);
-            dialog.open();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskPropertiesDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskPropertiesDialog.java
deleted file mode 100644
index 8dca6b9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskPropertiesDialog.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 132427 - [Markers] TaskPropertiesDialog problems
- *******************************************************************************/
-
-package org.eclipse.ui.views.tasklist;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.dialogs.IDialogSettings;
-
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.views.markers.internal.DialogTaskProperties;
-
-/**
- * Shows the properties of a new or existing task, or a problem.
- */
-public class TaskPropertiesDialog extends DialogTaskProperties {
-
-	private static final String DIALOG_SETTINGS_SECTION = "TaskPropertiesDialogSettings"; //$NON-NLS-1$
-
-	/**
-	 * Creates the dialog. By default this dialog creates a new task. To set the
-	 * resource and initial attributes for the new task, use
-	 * <code>setResource</code> and <code>setInitialAttributes</code>. To
-	 * show or modify an existing task, use <code>setMarker</code>.
-	 * 
-	 * @param parentShell
-	 *            the parent shell
-	 */
-	public TaskPropertiesDialog(Shell parentShell) {
-		super(parentShell);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Dialog#getDialogBoundsSettings()
-	 * 
-	 * @since 3.2
-	 */
-	protected IDialogSettings getDialogBoundsSettings() {
-		IDialogSettings settings = IDEWorkbenchPlugin.getDefault()
-				.getDialogSettings();
-		IDialogSettings section = settings.getSection(DIALOG_SETTINGS_SECTION);
-		if (section == null) {
-			section = settings.addNewSection(DIALOG_SETTINGS_SECTION);
-		}
-		return section;
-	}
-	
-    /**
-     * Sets the marker to show or modify.
-     * 
-     * @param marker the marker, or <code>null</code> to create a new marker
-     */
-    public void setMarker(IMarker marker) {
-    	// Method is overridden because API is being inherited from an internal class.
-        super.setMarker(marker);
-    }
-
-    /**
-     * Returns the marker being created or modified.
-     * For a new marker, this returns <code>null</code> until
-     * the dialog returns, but is non-null after.
-     * 
-     * @return the marker
-     */
-    public IMarker getMarker() {
-    	// Method is overridden because API is being inherited from an internal class.
-        return super.getMarker();
-    }
-
-    /**
-     * Sets the resource to use when creating a new task.
-     * If not set, the new task is created on the workspace root.
-     * 
-     * @param resource the resource
-     */
-    public void setResource(IResource resource) {
-    	// Method is overridden because API is being inherited from an internal class.
-        super.setResource(resource);
-    }
-
-    /**
-     * Returns the resource to use when creating a new task,
-     * or <code>null</code> if none has been set.
-     * If not set, the new task is created on the workspace root.
-     * 
-     * @return the resource
-     */
-    public IResource getResource() {
-    	// Method is overridden because API is being inherited from an internal class.
-        return super.getResource();
-    }
-
-    /**
-     * Sets initial attributes to use when creating a new task.
-     * If not set, the new task is created with default attributes.
-     * 
-     * @param initialAttributes the initial attributes
-     */
-    public void setInitialAttributes(Map initialAttributes) {
-    	// Method is overridden because API is being inherited from an internal class.
-        super.setInitialAttributes(initialAttributes);
-    }
-
-    /**
-     * Returns the initial attributes to use when creating a new task,
-     * or <code>null</code> if not set.
-     * If not set, the new task is created with default attributes.
-     * 
-     * @return the initial attributes
-     */
-    public Map getInitialAttributes() {
-    	// Method is overridden because API is being inherited from an internal class.
-        return super.getInitialAttributes();
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskSorter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskSorter.java
deleted file mode 100644
index c0ffef4..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TaskSorter.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.tasklist;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-
-/**
- * This is the task list's sorter.
- */
-class TaskSorter extends ViewerComparator {
-    private int[] priorities;
-
-    private int[] directions;
-
-    final static int ASCENDING = 1;
-
-    final static int DEFAULT_DIRECTION = 0;
-
-    final static int DESCENDING = -1;
-
-    final static int TYPE = 0;
-
-    final static int COMPLETION = 1;
-
-    final static int PRIORITY = 2;
-
-    final static int DESCRIPTION = 3;
-
-    final static int RESOURCE = 4;
-
-    final static int FOLDER = 5;
-
-    final static int LOCATION = 6;
-
-    final static int CREATION_TIME = 7;
-
-    final static int[] DEFAULT_PRIORITIES = { FOLDER, RESOURCE, LOCATION,
-            DESCRIPTION, TYPE, PRIORITY, COMPLETION, CREATION_TIME };
-
-    final static int[] DEFAULT_DIRECTIONS = { DESCENDING, //type
-            DESCENDING, //completed
-            DESCENDING, //priority
-            ASCENDING, //description
-            ASCENDING, //resource
-            ASCENDING, //folder
-            ASCENDING, //location
-            ASCENDING }; //creation time
-
-    /**
-     * Creates a new task sorter.
-     */
-    public TaskSorter() {
-        resetState();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ViewerSorter.
-     */
-    /**
-     * Compares two markers, sorting first by the main column of this sorter,
-     * then by subsequent columns, depending on the column sort order.
-     */
-    public int compare(Viewer viewer, Object e1, Object e2) {
-        IMarker m1 = (IMarker) e1;
-        IMarker m2 = (IMarker) e2;
-        return compareColumnValue(m1, m2, 0);
-    }
-
-    public void setTopPriority(int priority) {
-        if (priority < 0 || priority >= priorities.length) {
-			return;
-		}
-
-        int index = -1;
-        for (int i = 0; i < priorities.length; i++) {
-            if (priorities[i] == priority) {
-                index = i;
-                break;
-            }
-        }
-
-        if (index == -1) {
-            resetState();
-            return;
-        }
-
-        //shift the array
-        for (int i = index; i > 0; i--) {
-            priorities[i] = priorities[i - 1];
-        }
-        priorities[0] = priority;
-        directions[priority] = DEFAULT_DIRECTIONS[priority];
-    }
-
-    public int getTopPriority() {
-        return priorities[0];
-    }
-
-    public int[] getPriorities() {
-        return priorities;
-    }
-
-    public void setTopPriorityDirection(int direction) {
-        if (direction == DEFAULT_DIRECTION) {
-			directions[priorities[0]] = DEFAULT_DIRECTIONS[priorities[0]];
-		} else if (direction == ASCENDING || direction == DESCENDING) {
-			directions[priorities[0]] = direction;
-		}
-    }
-
-    public int getTopPriorityDirection() {
-        return directions[priorities[0]];
-    }
-
-    public void reverseTopPriority() {
-        directions[priorities[0]] *= -1;
-    }
-
-    public void resetState() {
-        priorities = new int[DEFAULT_PRIORITIES.length];
-        System.arraycopy(DEFAULT_PRIORITIES, 0, priorities, 0,
-                priorities.length);
-        directions = new int[DEFAULT_DIRECTIONS.length];
-        System.arraycopy(DEFAULT_DIRECTIONS, 0, directions, 0,
-                directions.length);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ViewerSorter.
-     */
-    /**
-     * Compares two markers, based only on the value of the specified column.
-     */
-    private int compareColumnValue(IMarker m1, IMarker m2, int depth) {
-        if (depth >= priorities.length) {
-			return 0;
-		}
-
-        int columnNumber = priorities[depth];
-        int direction = directions[columnNumber];
-        switch (columnNumber) {
-        case TYPE: {
-            /* category */
-            int result = getCategoryOrder(m1) - getCategoryOrder(m2);
-            if (result == 0) {
-				return compareColumnValue(m1, m2, depth + 1);
-			}
-            return result * direction;
-        }
-        case COMPLETION: {
-            /* completed */
-            int result = getCompletedOrder(m1) - getCompletedOrder(m2);
-            if (result == 0) {
-				return compareColumnValue(m1, m2, depth + 1);
-			}
-            return result * direction;
-        }
-        case PRIORITY: {
-            /* priority */
-            int result = getPriorityOrder(m1) - getPriorityOrder(m2);
-            if (result == 0) {
-				return compareColumnValue(m1, m2, depth + 1);
-			}
-            return result * direction;
-        }
-        case DESCRIPTION: {
-            /* description */
-            int result = getComparator().compare(MarkerUtil.getMessage(m1), MarkerUtil
-                    .getMessage(m2));
-            if (result == 0) {
-				return compareColumnValue(m1, m2, depth + 1);
-			}
-            return result * direction;
-        }
-        case RESOURCE: {
-            /* resource name */
-            IResource r1 = m1.getResource();
-            IResource r2 = m2.getResource();
-            String n1 = r1.getName();
-            String n2 = r2.getName();
-            int result = getComparator().compare(n1, n2);
-            if (result == 0) {
-				return compareColumnValue(m1, m2, depth + 1);
-			}
-            return result * direction;
-        }
-        case FOLDER: {
-            /* container name */
-            String c1 = MarkerUtil.getContainerName(m1);
-            String c2 = MarkerUtil.getContainerName(m2);
-            int result = c1.equals(c2) ? 0 : getComparator().compare(c1, c2);
-            if (result == 0) {
-				return compareColumnValue(m1, m2, depth + 1);
-			}
-            return result * direction;
-        }
-        case LOCATION: {
-            /* line and location */
-            int result = compareLineAndLocation(m1, m2);
-            if (result == 0) {
-				return compareColumnValue(m1, m2, depth + 1);
-			}
-            return result * direction;
-        }
-        case CREATION_TIME: {
-            /* creation time */
-            int result = compareCreationTime(m1, m2);
-            if (result == 0) {
-				return compareColumnValue(m1, m2, depth + 1);
-			}
-            return result * direction;
-        }
-        default:
-            return 0;
-        }
-    }
-
-    /**
-     * Compares the creation time of two markers.
-     */
-    private int compareCreationTime(IMarker m1, IMarker m2) {
-        long result;
-        try {
-            result = m1.getCreationTime() - m2.getCreationTime();
-        } catch (CoreException e) {
-            result = 0;
-        }
-        if (result > 0) {
-			return 1;
-		} else if (result < 0) {
-			return -1;
-		}
-        return 0;
-    }
-
-    /**
-     * Compares the line number and location of the two markers.
-     * If line number is specified for both, this sorts first by line number (numerically), 
-     * then by start offset (numerically), then by location (textually).
-     * If line number is not specified for either, this sorts by location.
-     * Otherwise, if only one has a line number, this sorts by the combined text for line number and location.
-     */
-    private int compareLineAndLocation(IMarker m1, IMarker m2) {
-        int line1 = MarkerUtil.getLineNumber(m1);
-        int line2 = MarkerUtil.getLineNumber(m2);
-        if (line1 != -1 && line2 != -1) {
-            if (line1 != line2) {
-                return line1 - line2;
-            }
-            int start1 = MarkerUtil.getCharStart(m1);
-            int start2 = MarkerUtil.getCharStart(m2);
-            if (start1 != -1 && start2 != -1) {
-                if (start1 != start2) {
-                    return start1 - start2;
-                }
-            }
-            String loc1 = MarkerUtil.getLocation(m1);
-            String loc2 = MarkerUtil.getLocation(m2);
-            return getComparator().compare(loc1, loc2);
-        }
-        if (line1 == -1 && line2 == -1) {
-            String loc1 = MarkerUtil.getLocation(m1);
-            String loc2 = MarkerUtil.getLocation(m2);
-            return getComparator().compare(loc1, loc2);
-        }
-        String loc1 = MarkerUtil.getLineAndLocation(m1);
-        String loc2 = MarkerUtil.getLineAndLocation(m2);
-        return getComparator().compare(loc1, loc2);
-    }
-
-    /**
-     * Returns the sort order for the given marker based on its category.
-     * Lower numbers appear first.
-     */
-    private int getCategoryOrder(IMarker marker) {
-        if (MarkerUtil.isMarkerType(marker, IMarker.PROBLEM)) {
-            switch (MarkerUtil.getSeverity(marker)) {
-            case IMarker.SEVERITY_ERROR:
-                return 4;
-            case IMarker.SEVERITY_WARNING:
-                return 3;
-            case IMarker.SEVERITY_INFO:
-                return 2;
-            }
-        } else if (MarkerUtil.isMarkerType(marker, IMarker.TASK)) {
-            return 1;
-        }
-        return 1000;
-    }
-
-    /**
-     * Returns the sort order for the given marker based on its completion status.
-     * Lower numbers appear first.
-     */
-    private int getCompletedOrder(IMarker marker) {
-        if (MarkerUtil.isMarkerType(marker, IMarker.TASK)) {
-			return MarkerUtil.isComplete(marker) ? 2 : 1;
-		}
-        return 0;
-    }
-
-    /**
-     * Returns the sort order for the given marker based on its priority.
-     */
-    private int getPriorityOrder(IMarker marker) {
-        if (MarkerUtil.isMarkerType(marker, IMarker.TASK)) {
-			return MarkerUtil.getPriority(marker);
-		}
-        return -1;
-    }
-
-    public void saveState(IDialogSettings settings) {
-        if (settings == null) {
-			return;
-		}
-
-        for (int i = 0; i < directions.length; i++) {
-            settings.put("direction" + i, directions[i]);//$NON-NLS-1$
-            settings.put("priority" + i, priorities[i]);//$NON-NLS-1$
-        }
-    }
-
-    public void restoreState(IDialogSettings settings) {
-        if (settings == null) {
-			return;
-		}
-
-        try {
-            for (int i = 0; i < priorities.length; i++) {
-                directions[i] = settings.getInt("direction" + i);//$NON-NLS-1$
-                priorities[i] = settings.getInt("priority" + i);//$NON-NLS-1$
-            }
-        } catch (NumberFormatException e) {
-            resetState();
-        }
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TasksFilter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TasksFilter.java
deleted file mode 100644
index 5676ae2..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/TasksFilter.java
+++ /dev/null
@@ -1,535 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *      IBM Corporation - initial API and implementation 
- * 		Cagatay Kavukcuoglu <cagatayk@acm.org> - Filter for markers in same project
- *******************************************************************************/
-
-package org.eclipse.ui.views.tasklist;
-
-import java.util.Arrays;
-import java.util.HashSet;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IMarkerDelta;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.ui.IContainmentAdapter;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistable;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-
-class TasksFilter extends ViewerFilter implements Cloneable {
-
-    public static final String[] ROOT_TYPES = new String[] { IMarker.PROBLEM,
-            IMarker.TASK };
-
-    // Filter on resource constants
-    static final int ON_ANY_RESOURCE = 0;
-
-    static final int ON_SELECTED_RESOURCE_ONLY = 1;
-
-    static final int ON_SELECTED_RESOURCE_AND_CHILDREN = 2;
-
-    static final int ON_ANY_RESOURCE_OF_SAME_PROJECT = 3; // added by cagatayk@acm.org
-
-    static final int ON_WORKING_SET = 4;
-
-    // Description filter kind constants
-    static final int FILTER_CONTAINS = 0;
-
-    static final int FILTER_DOES_NOT_CONTAIN = 1;
-
-    //final static int MINIMUM_MARKER_LIMIT = 10;
-    final static int DEFAULT_MARKER_LIMIT = 2000;
-
-    //final static int MAXIMUM_MARKER_LIMIT = 20000;
-
-    String[] types;
-
-    int onResource;
-
-    IWorkingSet workingSet;
-
-    boolean filterOnDescription;
-
-    int descriptionFilterKind;
-
-    String descriptionFilter;
-
-    boolean filterOnSeverity;
-
-    int severityFilter;
-
-    boolean filterOnPriority;
-
-    int priorityFilter;
-
-    boolean filterOnCompletion;
-
-    int completionFilter;
-
-    private boolean filterOnMarkerLimit = true;
-
-    private int markerLimit = DEFAULT_MARKER_LIMIT;
-
-    private static final String TAG_ID = "id"; //$NON-NLS-1$
-
-    private static final String TAG_TYPE = "type"; //$NON-NLS-1$
-
-    private static final String TAG_ON_RESOURCE = "onResource"; //$NON-NLS-1$
-
-    private static final String TAG_WORKING_SET = "workingSet"; //$NON-NLS-1$	
-
-    private static final String TAG_FILTER_ON_DESCRIPTION = "filterOnDescription"; //$NON-NLS-1$
-
-    private static final String TAG_DESCRIPTION_FILTER_KIND = "descriptionFilterKind"; //$NON-NLS-1$
-
-    private static final String TAG_DESCRIPTION_FILTER = "descriptionFilter"; //$NON-NLS-1$
-
-    private static final String TAG_FILTER_ON_SEVERITY = "filterOnSeverity"; //$NON-NLS-1$
-
-    private static final String TAG_SEVERITY_FILTER = "severityFilter"; //$NON-NLS-1$
-
-    private static final String TAG_FILTER_ON_PRIORITY = "filterOnPriority"; //$NON-NLS-1$
-
-    private static final String TAG_PRIORITY_FILTER = "priorityFilter"; //$NON-NLS-1$
-
-    private static final String TAG_FILTER_ON_COMPLETION = "filterOnCompletion"; //$NON-NLS-1$
-
-    private static final String TAG_COMPLETION_FILTER = "completionFilter"; //$NON-NLS-1$
-
-    private static final String TAG_FILTER_ON_MARKER_LIMIT = "filterOnMarkerLimit"; //$NON-NLS-1$ 
-
-    private static final String TAG_MARKER_LIMIT = "markerLimit"; //$NON-NLS-1$
-
-    public TasksFilter() {
-        reset();
-    }
-
-    boolean getFilterOnMarkerLimit() {
-        return filterOnMarkerLimit;
-    }
-
-    void setFilterOnMarkerLimit(boolean filterOnMarkerLimit) {
-        this.filterOnMarkerLimit = filterOnMarkerLimit;
-    }
-
-    int getMarkerLimit() {
-        return markerLimit;
-    }
-
-    void setMarkerLimit(int markerLimit) {
-        if (markerLimit < 1) {
-            markerLimit = TasksFilter.DEFAULT_MARKER_LIMIT;
-        }
-
-        //if (markerLimit < TasksFilter.MINIMUM_MARKER_LIMIT) {
-        //	markerLimit = TasksFilter.MINIMUM_MARKER_LIMIT;
-        //} else if (markerLimit > TasksFilter.MAXIMUM_MARKER_LIMIT) {
-        //	markerLimit = TasksFilter.MAXIMUM_MARKER_LIMIT;
-        //} 
-
-        this.markerLimit = markerLimit;
-    }
-
-    boolean checkDescription(String desc) {
-        if (desc == null) { // be paranoid
-            desc = ""; //$NON-NLS-1$
-        }
-        boolean contains = containsSubstring(desc, descriptionFilter);
-        return descriptionFilterKind == FILTER_CONTAINS ? contains : !contains;
-    }
-
-    public Object clone() {
-        try {
-            return super.clone();
-        } catch (CloneNotSupportedException e) {
-            throw new Error(); // shouldn't happen
-        }
-    }
-
-    boolean containsSubstring(String string, String substring) {
-        int strLen = string.length();
-        int subLen = substring.length();
-        int len = strLen - subLen;
-        for (int i = 0; i <= len; ++i) {
-            if (string.regionMatches(true, i, substring, 0, subLen)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Returns if the given resource is enclosed by a working set element.
-     * The IContainmentAdapter of each working set element is used for the
-     * containment test. If there is no IContainmentAdapter for a working 
-     * set element, a simple resource based test is used. 
-     * 
-     * @param element resource to test for enclosure by a working set
-     * 	element 
-     * @return true if element is enclosed by a working set element and 
-     * 	false otherwise. 
-     */
-    private boolean isEnclosed(IResource element) {
-        IPath elementPath = element.getFullPath();
-        IAdaptable[] workingSetElements = workingSet.getElements();
-
-        if (elementPath.isEmpty() || elementPath.isRoot()) {
-            return false;
-        }
-        for (int i = 0; i < workingSetElements.length; i++) {
-            IAdaptable workingSetElement = workingSetElements[i];
-            IContainmentAdapter containmentAdapter = (IContainmentAdapter) workingSetElement
-                    .getAdapter(IContainmentAdapter.class);
-
-            // if there is no IContainmentAdapter defined for the working  
-            // set element type fall back to using resource based  
-            // containment check 
-            if (containmentAdapter != null) {
-                if (containmentAdapter.contains(workingSetElement, element,
-                        IContainmentAdapter.CHECK_CONTEXT
-                                | IContainmentAdapter.CHECK_IF_CHILD
-                                | IContainmentAdapter.CHECK_IF_DESCENDANT)) {
-					return true;
-				}
-            } else if (isEnclosedResource(element, elementPath,
-                    workingSetElement)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Returns if the given resource is enclosed by a working set element.
-     * A resource is enclosed if it is either a parent of a working set 
-     * element, a child of a working set element or a working set element
-     * itself.
-     * Simple path comparison is used. This is only guaranteed to return
-     * correct results for resource working set elements. 
-     * 
-     * @param element resource to test for enclosure by a working set
-     * 	element
-     * @param elementPath full, absolute path of the element to test 
-     * @return true if element is enclosed by a working set element and 
-     * 	false otherwise. 
-     */
-    private boolean isEnclosedResource(IResource element, IPath elementPath,
-            IAdaptable workingSetElement) {
-        IResource workingSetResource = null;
-
-        if (workingSetElement.equals(element)) {
-			return true;
-		}
-        if (workingSetElement instanceof IResource) {
-            workingSetResource = (IResource) workingSetElement;
-        } else {
-            workingSetResource = (IResource) workingSetElement
-                    .getAdapter(IResource.class);
-        }
-        if (workingSetResource != null) {
-            IPath resourcePath = workingSetResource.getFullPath();
-            if (resourcePath.isPrefixOf(elementPath)) {
-				return true;
-			}
-        }
-        return false;
-    }
-
-    public void reset() {
-        types = ROOT_TYPES;
-        onResource = ON_ANY_RESOURCE;
-        filterOnDescription = false;
-        descriptionFilter = ""; //$NON-NLS-1$
-        filterOnSeverity = false;
-        severityFilter = 0;
-        filterOnPriority = false;
-        priorityFilter = 0;
-        filterOnCompletion = false;
-        completionFilter = 0;
-        filterOnMarkerLimit = true;
-        markerLimit = DEFAULT_MARKER_LIMIT;
-    }
-
-    /**
-     * @see IPersistable
-     */
-    public void restoreState(IMemento memento) {
-        IMemento children[] = memento.getChildren(TAG_TYPE);
-        types = new String[children.length];
-        for (int i = 0; i < children.length; i++) {
-            types[i] = children[i].getString(TAG_ID);
-        }
-        Integer ival = memento.getInteger(TAG_ON_RESOURCE);
-        onResource = ival == null ? ON_ANY_RESOURCE : ival.intValue();
-        restoreWorkingSet(memento.getString(TAG_WORKING_SET));
-        ival = memento.getInteger(TAG_FILTER_ON_DESCRIPTION);
-        filterOnDescription = ival != null && ival.intValue() == 1;
-        ival = memento.getInteger(TAG_DESCRIPTION_FILTER_KIND);
-        descriptionFilterKind = ival == null ? FILTER_CONTAINS : ival
-                .intValue();
-        descriptionFilter = memento.getString(TAG_DESCRIPTION_FILTER);
-        if (descriptionFilter == null) {
-			descriptionFilter = ""; //$NON-NLS-1$
-		}
-        ival = memento.getInteger(TAG_FILTER_ON_SEVERITY);
-        filterOnSeverity = ival != null && ival.intValue() == 1;
-        ival = memento.getInteger(TAG_SEVERITY_FILTER);
-        severityFilter = ival == null ? 0 : ival.intValue();
-        ival = memento.getInteger(TAG_FILTER_ON_PRIORITY);
-        filterOnPriority = ival != null && ival.intValue() == 1;
-        ival = memento.getInteger(TAG_PRIORITY_FILTER);
-        priorityFilter = ival == null ? 0 : ival.intValue();
-        ival = memento.getInteger(TAG_FILTER_ON_COMPLETION);
-        filterOnCompletion = ival != null && ival.intValue() == 1;
-        ival = memento.getInteger(TAG_COMPLETION_FILTER);
-        completionFilter = ival == null ? 0 : ival.intValue();
-        ival = memento.getInteger(TAG_FILTER_ON_MARKER_LIMIT);
-        filterOnMarkerLimit = ival == null || ival.intValue() == 1;
-        ival = memento.getInteger(TAG_MARKER_LIMIT);
-        markerLimit = ival == null ? DEFAULT_MARKER_LIMIT : ival.intValue();
-    }
-
-    /**
-     * Restores the saved working set, if any.
-     * 
-     * @param the saved working set name or null
-     */
-    private void restoreWorkingSet(String workingSetName) {
-        if (workingSetName != null) {
-            IWorkingSetManager workingSetManager = PlatformUI.getWorkbench()
-                    .getWorkingSetManager();
-            IWorkingSet workingSet = workingSetManager
-                    .getWorkingSet(workingSetName);
-
-            if (workingSet != null) {
-                this.workingSet = workingSet;
-            }
-        }
-    }
-
-    /**
-     * Saves the object state within a memento.
-     *
-     * @param memento a memento to receive the object state
-     */
-    public void saveState(IMemento memento) {
-        for (int i = 0; i < types.length; i++) {
-            memento.createChild(TAG_TYPE).putString(TAG_ID, types[i]);
-        }
-        memento.putInteger(TAG_ON_RESOURCE, onResource);
-        if (workingSet != null) {
-            memento.putString(TAG_WORKING_SET, workingSet.getName());
-        }
-        memento.putInteger(TAG_FILTER_ON_DESCRIPTION, filterOnDescription ? 1
-                : 0);
-        memento.putInteger(TAG_DESCRIPTION_FILTER_KIND, descriptionFilterKind);
-        memento.putString(TAG_DESCRIPTION_FILTER, descriptionFilter);
-        memento.putInteger(TAG_FILTER_ON_SEVERITY, filterOnSeverity ? 1 : 0);
-        memento.putInteger(TAG_SEVERITY_FILTER, severityFilter);
-        memento.putInteger(TAG_FILTER_ON_PRIORITY, filterOnPriority ? 1 : 0);
-        memento.putInteger(TAG_PRIORITY_FILTER, priorityFilter);
-        memento
-                .putInteger(TAG_FILTER_ON_COMPLETION, filterOnCompletion ? 1
-                        : 0);
-        memento.putInteger(TAG_COMPLETION_FILTER, completionFilter);
-        memento.putInteger(TAG_FILTER_ON_MARKER_LIMIT, filterOnMarkerLimit ? 1
-                : 0);
-        memento.putInteger(TAG_MARKER_LIMIT, markerLimit);
-    }
-
-    public boolean select(Viewer viewer, Object parentElement, Object element) {
-        return select((IMarker) element);
-    }
-
-    public boolean select(IMarker marker) {
-        // resource settings are handled by the content provider
-        return selectByType(marker) && selectByAttributes(marker)
-                && selectByWorkingSet(marker);
-    }
-
-    public boolean select(IMarkerDelta markerDelta) {
-        // resource settings are handled by the content provider
-        return selectByType(markerDelta) && selectByAttributes(markerDelta)
-                && selectByWorkingSet(markerDelta);
-    }
-
-    private boolean selectByType(IMarker marker) {
-        for (int i = 0; i < types.length; ++i) {
-            if (MarkerUtil.isMarkerType(marker, types[i])) {
-				return true;
-			}
-        }
-        return false;
-    }
-
-    private boolean selectByType(IMarkerDelta markerDelta) {
-        for (int i = 0; i < types.length; ++i) {
-            if (markerDelta.isSubtypeOf(types[i])) {
-				return true;
-			}
-        }
-        return false;
-    }
-
-    /**
-     * Returns whether the specified marker should be filter out or not.
-     * 
-     * @param marker the marker to test
-     * @return 
-     * 	true=the marker should not be filtered out
-     * 	false=the marker should be filtered out
-     */
-    private boolean selectByWorkingSet(IMarker marker) {
-        if (workingSet == null || onResource != ON_WORKING_SET) {
-            return true;
-        }
-        IResource resource = marker.getResource();
-        if (resource != null) {
-            return isEnclosed(resource);
-        }
-        return false;
-    }
-
-    /**
-     * Returns whether the specified marker delta should be filter out 
-     * or not.
-     * 
-     * @param markerDelta the marker delta to test
-     * @return 
-     * 	true=the marker delta should not be filtered out
-     * 	false=the marker delta should be filtered out
-     */
-    private boolean selectByWorkingSet(IMarkerDelta markerDelta) {
-        if (workingSet == null || onResource != ON_WORKING_SET) {
-            return true;
-        }
-        IResource resource = markerDelta.getResource();
-        if (resource != null) {
-            return isEnclosed(resource);
-        }
-        return false;
-    }
-
-    /* 
-     * WARNING: selectByAttributes(IMarker) and selectByAttributes(IMarkerDelta) must correspond.
-     */
-
-    private boolean selectByAttributes(IMarker marker) {
-
-        // severity filter applies only to problems
-        if (filterOnSeverity
-                && MarkerUtil.isMarkerType(marker, IMarker.PROBLEM)) {
-            int sev = MarkerUtil.getSeverity(marker);
-            if ((severityFilter & (1 << sev)) == 0) {
-				return false;
-			}
-        }
-
-        // priority and completion filters apply only to tasks
-        // avoid doing type check more than once
-        if ((filterOnPriority || filterOnCompletion)
-                && MarkerUtil.isMarkerType(marker, IMarker.TASK)) {
-            if (filterOnPriority) {
-                int pri = MarkerUtil.getPriority(marker);
-                if ((priorityFilter & (1 << pri)) == 0) {
-					return false;
-				}
-            }
-            if (filterOnCompletion) {
-                boolean complete = MarkerUtil.isComplete(marker);
-                if ((completionFilter & (complete ? 2 : 1)) == 0) {
-					return false;
-				}
-            }
-        }
-
-        // description applies to all markers
-        if (filterOnDescription) {
-            String desc = MarkerUtil.getMessage(marker);
-            if (!checkDescription(desc)) {
-				return false;
-			}
-        }
-        return true;
-    }
-
-    private boolean selectByAttributes(IMarkerDelta markerDelta) {
-
-        // severity filter applies only to problems
-        if (filterOnSeverity && markerDelta.isSubtypeOf(IMarker.PROBLEM)) {
-            int sev = markerDelta.getAttribute(IMarker.SEVERITY,
-                    IMarker.SEVERITY_WARNING);
-            if ((severityFilter & (1 << sev)) == 0) {
-				return false;
-			}
-        }
-
-        // priority and completion filters apply only to tasks
-        // avoid doing type check more than once
-        if ((filterOnPriority || filterOnCompletion)
-                && markerDelta.isSubtypeOf(IMarker.TASK)) {
-            if (filterOnPriority) {
-                int pri = markerDelta.getAttribute(IMarker.PRIORITY,
-                        IMarker.PRIORITY_NORMAL);
-                if ((priorityFilter & (1 << pri)) == 0) {
-					return false;
-				}
-            }
-            if (filterOnCompletion) {
-                boolean complete = markerDelta
-                        .getAttribute(IMarker.DONE, false);
-                if ((completionFilter & (complete ? 2 : 1)) == 0) {
-					return false;
-				}
-            }
-        }
-
-        // description applies to all markers
-        if (filterOnDescription) {
-            String desc = markerDelta.getAttribute(IMarker.MESSAGE, ""); //$NON-NLS-1$
-            if (!checkDescription(desc)) {
-				return false;
-			}
-        }
-        return true;
-    }
-
-    /**
-     * Returns whether the filter is including all markers.
-     *
-     * @return <code>true</code> if the filter includes all markers, <code>false</code> if not
-     */
-    public boolean isShowingAll() {
-        if (filterOnDescription || filterOnSeverity || filterOnPriority
-                || filterOnCompletion) {
-            return false;
-        }
-        if (onResource != ON_ANY_RESOURCE) {
-            return false;
-        }
-
-        HashSet set = new HashSet(Arrays.asList(types));
-        if (set.size() != ROOT_TYPES.length) {
-            return false;
-        }
-        for (int i = 0; i < ROOT_TYPES.length; ++i) {
-            if (!set.contains(ROOT_TYPES[i])) {
-                return false;
-            }
-        }
-        return true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/package.html
deleted file mode 100644
index 94c17f9..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/tasklist/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 Task List view for displaying
-tasks and problem annotations on resources.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ExternalProjectImportWizard.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ExternalProjectImportWizard.java
deleted file mode 100644
index 29d08d1..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ExternalProjectImportWizard.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.wizards.datatransfer;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.IImportWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.wizards.datatransfer.DataTransferMessages;
-import org.eclipse.ui.internal.wizards.datatransfer.WizardProjectsImportPage;
-
-/**
- * Standard workbench wizard for importing projects defined
- * outside of the currently defined projects into Eclipse.
- * <p>
- * This class may be instantiated and used without further configuration;
- * this class is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * IWizard wizard = new ExternalProjectImportWizard();
- * wizard.init(workbench, selection);
- * WizardDialog dialog = new WizardDialog(shell, wizard);
- * dialog.open();
- * </pre>
- * During the call to <code>open</code>, the wizard dialog is presented to the
- * user. When the user hits Finish, a project is created with the location
- * specified by the user.
- * </p>
- */
-
-public class ExternalProjectImportWizard extends Wizard implements
-        IImportWizard {
-    private static final String EXTERNAL_PROJECT_SECTION = "ExternalProjectImportWizard";//$NON-NLS-1$
-	private WizardProjectsImportPage mainPage;
-	
-    /**
-     * Constructor for ExternalProjectImportWizard.
-     */
-    public ExternalProjectImportWizard() {
-        super();
-        setNeedsProgressMonitor(true);
-        IDialogSettings workbenchSettings = IDEWorkbenchPlugin.getDefault()
-        		.getDialogSettings();
-        
-		IDialogSettings wizardSettings = workbenchSettings
-		        .getSection(EXTERNAL_PROJECT_SECTION);
-		if (wizardSettings == null) {
-			wizardSettings = workbenchSettings
-		            .addNewSection(EXTERNAL_PROJECT_SECTION);
-		}
-		setDialogSettings(wizardSettings);        
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public void addPages() {
-        super.addPages();
-        mainPage = new WizardProjectsImportPage();
-        addPage(mainPage);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchWizard.
-     */
-    public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
-        setWindowTitle(DataTransferMessages.DataTransfer_importTitle);
-        setDefaultPageImageDescriptor(
-				IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/importproj_wiz.png")); //$NON-NLS-1$
-
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public boolean performCancel() {
-    	mainPage.performCancel();
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public boolean performFinish() {
-        return mainPage.createProjects();
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileStoreStructureProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileStoreStructureProvider.java
deleted file mode 100644
index ed85298..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileStoreStructureProvider.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.wizards.datatransfer;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * FileStoreStructureProvider is the structure provider for {@link IFileStore}
- * based file structures.
- * 
- * @since 3.2
- * 
- */
-public class FileStoreStructureProvider implements IImportStructureProvider {
-
-	/**
-	 * Holds a singleton instance of this class.
-	 */
-	public final static FileStoreStructureProvider INSTANCE = new FileStoreStructureProvider();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.wizards.datatransfer.IImportStructureProvider#getChildren(java.lang.Object)
-	 */
-	public List getChildren(Object element) {
-		try {
-			return Arrays.asList(((IFileStore) element).childStores(EFS.NONE,
-					new NullProgressMonitor()));
-		} catch (CoreException exception) {
-			logException(exception);
-			return new ArrayList();
-		}
-	}
-
-	/**
-	 * Log the exception.
-	 * 
-	 * @param exception
-	 */
-	private void logException(CoreException exception) {
-		IDEWorkbenchPlugin.log(exception.getLocalizedMessage(), exception);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.wizards.datatransfer.IImportStructureProvider#getContents(java.lang.Object)
-	 */
-	public InputStream getContents(Object element) {
-		try {
-			return ((IFileStore) element).openInputStream(EFS.NONE,
-					new NullProgressMonitor());
-		} catch (CoreException exception) {
-			logException(exception);
-			return null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.wizards.datatransfer.IImportStructureProvider#getFullPath(java.lang.Object)
-	 */
-	public String getFullPath(Object element) {
-		return ((IFileStore) element).toURI().getSchemeSpecificPart();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.wizards.datatransfer.IImportStructureProvider#getLabel(java.lang.Object)
-	 */
-	public String getLabel(Object element) {
-		return ((IFileStore) element).getName();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.wizards.datatransfer.IImportStructureProvider#isFolder(java.lang.Object)
-	 */
-	public boolean isFolder(Object element) {
-		return ((IFileStore) element).fetchInfo().isDirectory();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemExportWizard.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemExportWizard.java
deleted file mode 100644
index 872264c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemExportWizard.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.wizards.datatransfer;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IExportWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.wizards.datatransfer.DataTransferMessages;
-import org.eclipse.ui.internal.wizards.datatransfer.WizardFileSystemResourceExportPage1;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Standard workbench wizard for exporting resources from the workspace
- * to the local file system.
- * <p>
- * This class may be instantiated and used without further configuration;
- * this class is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * IWizard wizard = new FileSystemExportWizard();
- * wizard.init(workbench, selection);
- * WizardDialog dialog = new WizardDialog(shell, wizard);
- * dialog.open();
- * </pre>
- * During the call to <code>open</code>, the wizard dialog is presented to the
- * user. When the user hits Finish, the user-selected workspace resources 
- * are exported to the user-specified location in the local file system,
- * the dialog closes, and the call to <code>open</code> returns.
- * </p>
- */
-public class FileSystemExportWizard extends Wizard implements IExportWizard {
-    private IStructuredSelection selection;
-
-    private WizardFileSystemResourceExportPage1 mainPage;
-
-    /**
-     * Creates a wizard for exporting workspace resources to the local file system.
-     */
-    public FileSystemExportWizard() {
-        AbstractUIPlugin plugin = (AbstractUIPlugin) Platform
-                .getPlugin(PlatformUI.PLUGIN_ID);
-        IDialogSettings workbenchSettings = plugin.getDialogSettings();
-        IDialogSettings section = workbenchSettings
-                .getSection("FileSystemExportWizard");//$NON-NLS-1$
-        if (section == null) {
-			section = workbenchSettings.addNewSection("FileSystemExportWizard");//$NON-NLS-1$
-		}
-        setDialogSettings(section);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public void addPages() {
-        super.addPages();
-        mainPage = new WizardFileSystemResourceExportPage1(selection);
-        addPage(mainPage);
-    }
-
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchWizard.
-     */
-    public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
-        this.selection = currentSelection;
-        List selectedResources = IDE.computeSelectedResources(currentSelection);
-        if (!selectedResources.isEmpty()) {
-            this.selection = new StructuredSelection(selectedResources);
-        }
-
-        // look it up if current selection (after resource adapting) is empty
-        if (selection.isEmpty() && workbench.getActiveWorkbenchWindow() != null) {
-            IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-                    .getActivePage();
-            if (page != null) {
-                IEditorPart currentEditor = page.getActiveEditor();
-                if (currentEditor != null) {
-                    Object selectedResource = currentEditor.getEditorInput()
-                            .getAdapter(IResource.class);
-                    if (selectedResource != null) {
-                        selection = new StructuredSelection(selectedResource);
-                    }
-                }
-            }
-        }
-
-        setWindowTitle(DataTransferMessages.DataTransfer_export);
-        setDefaultPageImageDescriptor(IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/exportdir_wiz.png"));//$NON-NLS-1$
-        setNeedsProgressMonitor(true);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public boolean performFinish() {
-        return mainPage.finish();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemImportWizard.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemImportWizard.java
deleted file mode 100644
index e148ace..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemImportWizard.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.wizards.datatransfer;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.IImportWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.wizards.datatransfer.DataTransferMessages;
-import org.eclipse.ui.internal.wizards.datatransfer.WizardFileSystemResourceImportPage1;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Standard workbench wizard for importing resources from the local file system
- * into the workspace.
- * <p>
- * This class may be instantiated and used without further configuration;
- * this class is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * IWizard wizard = new FileSystemImportWizard();
- * wizard.init(workbench, selection);
- * WizardDialog dialog = new WizardDialog(shell, wizard);
- * dialog.open();
- * </pre>
- * During the call to <code>open</code>, the wizard dialog is presented to the
- * user. When the user hits Finish, the user-selected files are imported
- * into the workspace, the dialog closes, and the call to <code>open</code>
- * returns.
- * </p>
- */
-public class FileSystemImportWizard extends Wizard implements IImportWizard {
-    private IWorkbench workbench;
-
-    private IStructuredSelection selection;
-
-    private WizardFileSystemResourceImportPage1 mainPage;
-
-    /**
-     * Creates a wizard for importing resources into the workspace from
-     * the file system.
-     */
-    public FileSystemImportWizard() {
-        AbstractUIPlugin plugin = (AbstractUIPlugin) Platform
-                .getPlugin(PlatformUI.PLUGIN_ID);
-        IDialogSettings workbenchSettings = plugin.getDialogSettings();
-        IDialogSettings section = workbenchSettings
-                .getSection("FileSystemImportWizard");//$NON-NLS-1$
-        if (section == null) {
-			section = workbenchSettings.addNewSection("FileSystemImportWizard");//$NON-NLS-1$
-		}
-        setDialogSettings(section);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public void addPages() {
-        super.addPages();
-        mainPage = new WizardFileSystemResourceImportPage1(workbench, selection);
-        addPage(mainPage);
-    }
-
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchWizard.
-     */
-    public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
-        this.workbench = workbench;
-        this.selection = currentSelection;
-
-        List selectedResources = IDE.computeSelectedResources(currentSelection);
-        if (!selectedResources.isEmpty()) {
-            this.selection = new StructuredSelection(selectedResources);
-        }
-
-        setWindowTitle(DataTransferMessages.DataTransfer_importTitle);
-        setDefaultPageImageDescriptor(IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/importdir_wiz.png"));//$NON-NLS-1$
-        setNeedsProgressMonitor(true);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public boolean performFinish() {
-        return mainPage.finish();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemStructureProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemStructureProvider.java
deleted file mode 100644
index 7b48b0a..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/FileSystemStructureProvider.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.wizards.datatransfer;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * This class provides information regarding the structure and
- * content of specified file system File objects.
- */
-public class FileSystemStructureProvider implements IImportStructureProvider {
-
-    /**
-     * Holds a singleton instance of this class.
-     */
-    public final static FileSystemStructureProvider INSTANCE = new FileSystemStructureProvider();
-
-    /**
-     * Creates an instance of <code>FileSystemStructureProvider</code>.
-     */
-    private FileSystemStructureProvider() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IImportStructureProvider
-     */
-    public List getChildren(Object element) {
-        File folder = (File) element;
-        String[] children = folder.list();
-        int childrenLength = children == null ? 0 : children.length;
-        List result = new ArrayList(childrenLength);
-
-        for (int i = 0; i < childrenLength; i++) {
-			result.add(new File(folder, children[i]));
-		}
-
-        return result;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IImportStructureProvider
-     */
-    public InputStream getContents(Object element) {
-        try {
-            return new FileInputStream((File) element);
-        } catch (FileNotFoundException e) {
-        	IDEWorkbenchPlugin.log(e.getLocalizedMessage(), e);
-            return null;
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IImportStructureProvider
-     */
-    public String getFullPath(Object element) {
-        return ((File) element).getPath();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IImportStructureProvider
-     */
-    public String getLabel(Object element) {
-
-        //Get the name - if it is empty then return the path as it is a file root
-        File file = (File) element;
-        String name = file.getName();
-        if (name.length() == 0) {
-			return file.getPath();
-		}
-        return name;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IImportStructureProvider
-     */
-    public boolean isFolder(Object element) {
-        return ((File) element).isDirectory();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/IImportStructureProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/IImportStructureProvider.java
deleted file mode 100644
index 3eb0119..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/IImportStructureProvider.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.wizards.datatransfer;
-
-import java.io.InputStream;
-import java.util.List;
-
-/**
- * Interface which can provide structure and content information 
- * for an element (for example, a file system element).
- * Used by the import wizards to abstract the commonalities
- * between importing from the file system and importing from an archive.
- */
-public interface IImportStructureProvider {
-    /**
-     * Returns a collection with the children of the specified structured element.
-     */
-    List getChildren(Object element);
-
-    /**
-     * Returns the contents of the specified structured element, or
-     * <code>null</code> if there is a problem determining the element's
-     * contents.
-     *
-     * @param element a structured element
-     * @return the contents of the structured element, or <code>null</code>
-     */
-    InputStream getContents(Object element);
-
-    /**
-     * Returns the full path of the specified structured element.
-     *
-     * @param element a structured element
-     * @return the display label of the structured element
-     */
-    String getFullPath(Object element);
-
-    /**
-     * Returns the display label of the specified structured element.
-     *
-     * @param element a structured element
-     * @return the display label of the structured element
-     */
-    String getLabel(Object element);
-
-    /**
-     * Returns a boolean indicating whether the passed structured element represents
-     * a container element (as opposed to a leaf element).
-     *
-     * @return boolean
-     * @param element java.lang.Object
-     */
-    boolean isFolder(Object element);
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ImportOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ImportOperation.java
deleted file mode 100644
index 731413f..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ImportOperation.java
+++ /dev/null
@@ -1,866 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Red Hat, Inc - changed TarFileStructureProvider to TarLeveledStructureProvider 
- *******************************************************************************/
-package org.eclipse.ui.wizards.datatransfer;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourceAttributes;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.dialogs.ContainerGenerator;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.wizards.datatransfer.DataTransferMessages;
-import org.eclipse.ui.internal.wizards.datatransfer.TarLeveledStructureProvider;
-
-/**
- * An operation which does the actual work of copying objects from the local file
- * system into the workspace.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class ImportOperation extends WorkspaceModifyOperation {
-    private static final int POLICY_DEFAULT = 0;
-
-    private static final int POLICY_SKIP_CHILDREN = 1;
-
-    private static final int POLICY_FORCE_OVERWRITE = 2;
-
-    private Object source;
-
-    private IPath destinationPath;
-
-    private IContainer destinationContainer;
-
-    private List selectedFiles;
-
-    private List rejectedFiles;
-
-    private IImportStructureProvider provider;
-
-    private IProgressMonitor monitor;
-
-    protected IOverwriteQuery overwriteCallback;
-
-    private Shell context;
-
-    private List errorTable = new ArrayList();
-
-    private boolean createContainerStructure = true;
-
-    //The constants for the overwrite 3 state
-    private static final int OVERWRITE_NOT_SET = 0;
-
-    private static final int OVERWRITE_NONE = 1;
-
-    private static final int OVERWRITE_ALL = 2;
-
-    private int overwriteState = OVERWRITE_NOT_SET;
-
-    /**
-     * Creates a new operation that recursively imports the entire contents of the
-     * specified root file system object.
-     * <p>
-     * The <code>source</code> parameter represents the root file system object to 
-     * import. All contents of this object are imported. Valid types for this parameter
-     * are determined by the supplied <code>IImportStructureProvider</code>.
-     * </p>
-     * <p>
-     * The <code>provider</code> parameter allows this operation to deal with the
-     * source object in an abstract way. This operation calls methods on the provider
-     * and the provider in turn calls specific methods on the source object.
-     * </p>
-     *  <p>
-     * The default import behavior is to recreate the complete container structure
-     * for the contents of the root file system object in their destination. 
-     * If <code>setCreateContainerStructure</code> is set to false then the container 
-     * structure created is relative to the root file system object.
-     * </p>
-     * 
-     * @param containerPath the full path of the destination container within the
-     *   workspace
-     * @param source the root file system object to import
-     * @param provider the file system structure provider to use
-     * @param overwriteImplementor the overwrite strategy to use
-     */
-    public ImportOperation(IPath containerPath, Object source,
-            IImportStructureProvider provider,
-            IOverwriteQuery overwriteImplementor) {
-        super();
-        this.destinationPath = containerPath;
-        this.source = source;
-        this.provider = provider;
-        overwriteCallback = overwriteImplementor;
-    }
-
-    /**
-     * Creates a new operation that imports specific file system objects.
-     * In this usage context, the specified source file system object is used by the
-     * operation solely to determine the destination container structure of the file system
-     * objects being imported.
-     * <p>
-     * The <code>source</code> parameter represents the root file system object to 
-     * import. Valid types for this parameter are determined by the supplied 
-     * <code>IImportStructureProvider</code>. The contents of the source which
-     * are to be imported are specified in the <code>filesToImport</code>
-     * parameter.
-     * </p>
-     * <p>
-     * The <code>provider</code> parameter allows this operation to deal with the
-     * source object in an abstract way. This operation calls methods on the provider
-     * and the provider in turn calls specific methods on the source object.
-     * </p>
-     * <p>
-     * The <code>filesToImport</code> parameter specifies what contents of the root
-     * file system object are to be imported.
-     * </p>
-     * <p>
-     * The default import behavior is to recreate the complete container structure
-     * for the file system objects in their destination. If <code>setCreateContainerStructure</code>
-     * is set to <code>false</code>, then the container structure created for each of 
-     * the file system objects is relative to the supplied root file system object.
-     * </p>
-     *
-     * @param containerPath the full path of the destination container within the
-     *   workspace
-     * @param source the root file system object to import from
-     * @param provider the file system structure provider to use
-     * @param overwriteImplementor the overwrite strategy to use
-     * @param filesToImport the list of file system objects to be imported
-     *  (element type: <code>Object</code>)
-     */
-    public ImportOperation(IPath containerPath, Object source,
-            IImportStructureProvider provider,
-            IOverwriteQuery overwriteImplementor, List filesToImport) {
-        this(containerPath, source, provider, overwriteImplementor);
-        setFilesToImport(filesToImport);
-    }
-
-    /**
-     * Creates a new operation that imports specific file system objects.
-     * <p>
-     * The <code>provider</code> parameter allows this operation to deal with the
-     * source object in an abstract way. This operation calls methods on the provider
-     * and the provider in turn calls specific methods on the source object.
-     * </p>
-     * <p>
-     * The <code>filesToImport</code> parameter specifies what file system objects 
-     * are to be imported.
-     * </p>
-     * <p>
-     * The default import behavior is to recreate the complete container structure
-     * for the file system objects in their destination. If <code>setCreateContainerStructure</code>
-     * is set to <code>false</code>, then no container structure is created for each of 
-     * the file system objects.
-     * </p>
-     *
-     * @param containerPath the full path of the destination container within the
-     *   workspace
-     * @param provider the file system structure provider to use
-     * @param overwriteImplementor the overwrite strategy to use
-     * @param filesToImport the list of file system objects to be imported
-     *  (element type: <code>Object</code>)
-     */
-    public ImportOperation(IPath containerPath,
-            IImportStructureProvider provider,
-            IOverwriteQuery overwriteImplementor, List filesToImport) {
-        this(containerPath, null, provider, overwriteImplementor);
-        setFilesToImport(filesToImport);
-    }
-
-    /**
-     * Prompts if existing resources should be overwritten. Recursively collects
-     * existing read-only files to overwrite and resources that should not be
-     * overwritten.
-     * 
-     * @param sourceStart destination path to check for existing files
-     * @param sources file system objects that may exist in the destination
-     * @param noOverwrite files that were selected to be skipped (don't overwrite).
-     * 	object type IPath
-     * @param overwriteReadonly the collected existing read-only files to overwrite.
-     * 	object type IPath
-     * @param policy on of the POLICY constants defined in the
-     * class.
-     */
-    void collectExistingReadonlyFiles(IPath sourceStart, List sources,
-            ArrayList noOverwrite, ArrayList overwriteReadonly, int policy) {
-        IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
-        Iterator sourceIter = sources.iterator();
-        IPath sourceRootPath = null;
-
-        if (this.source != null) {
-            sourceRootPath = new Path(provider.getFullPath(this.source));
-        }
-        while (sourceIter.hasNext()) {
-            Object nextSource = sourceIter.next();
-            IPath sourcePath = new Path(provider.getFullPath(nextSource));
-            IPath newDestinationPath;
-            IResource newDestination;
-
-            if (sourceRootPath == null) {
-                newDestinationPath = sourceStart.append(provider
-                        .getLabel(nextSource));
-            } else {
-                int prefixLength = sourcePath
-                        .matchingFirstSegments(sourceRootPath);
-                IPath relativeSourcePath = sourcePath
-                        .removeFirstSegments(prefixLength);
-                newDestinationPath = this.destinationPath
-                        .append(relativeSourcePath);
-            }
-            newDestination = workspaceRoot.findMember(newDestinationPath);
-            if (newDestination == null) {
-				continue;
-			}
-
-            IFolder folder = getFolder(newDestination);
-            if (folder != null) {
-                if (policy != POLICY_FORCE_OVERWRITE) {
-                    if (this.overwriteState == OVERWRITE_NONE
-                            || !queryOverwrite(newDestinationPath)) {
-                        noOverwrite.add(folder);
-                        continue;
-                    }
-                }
-                if (provider.isFolder(nextSource)) {
-					collectExistingReadonlyFiles(newDestinationPath, provider
-                            .getChildren(nextSource), noOverwrite,
-                            overwriteReadonly, POLICY_FORCE_OVERWRITE);
-				}
-            } else {
-                IFile file = getFile(newDestination);
-
-                if (file != null) {
-                    if (!queryOverwriteFile(file, policy)) {
-						noOverwrite.add(file.getFullPath());
-					} else if (file.isReadOnly()) {
-						overwriteReadonly.add(file);
-					}
-                }
-            }
-        }
-    }
-
-    /**
-     * Creates the folders that appear in the specified resource path.
-     * These folders are created relative to the destination container.
-     *
-     * @param path the relative path of the resource
-     * @return the container resource coresponding to the given path
-     * @exception CoreException if this method failed
-     */
-    IContainer createContainersFor(IPath path) throws CoreException {
-
-        IContainer currentFolder = destinationContainer;
-
-        int segmentCount = path.segmentCount();
-
-        //No containers to create
-        if (segmentCount == 0) {
-			return currentFolder;
-		}
-
-        //Needs to be handles differently at the root
-        if (currentFolder.getType() == IResource.ROOT) {
-			return createFromRoot(path);
-		}
-
-        for (int i = 0; i < segmentCount; i++) {
-            currentFolder = currentFolder.getFolder(new Path(path.segment(i)));
-            if (!currentFolder.exists()) {
-				((IFolder) currentFolder).create(false, true, null);
-			}
-        }
-
-        return currentFolder;
-    }
-
-    /**
-     * Creates the folders that appear in the specified resource path
-     * assuming that the destinationContainer begins at the root. Do not create projects.
-     *
-     * @param path the relative path of the resource
-     * @return the container resource coresponding to the given path
-     * @exception CoreException if this method failed
-     */
-    private IContainer createFromRoot(IPath path) throws CoreException {
-
-        int segmentCount = path.segmentCount();
-
-        //Assume the project exists 
-        IContainer currentFolder = ((IWorkspaceRoot) destinationContainer)
-                .getProject(path.segment(0));
-
-        for (int i = 1; i < segmentCount; i++) {
-            currentFolder = currentFolder.getFolder(new Path(path.segment(i)));
-            if (!currentFolder.exists()) {
-				((IFolder) currentFolder).create(false, true, null);
-			}
-        }
-
-        return currentFolder;
-    }
-
-    /**
-     * Deletes the given resource. If the resource fails to be deleted, adds a
-     * status object to the list to be returned by <code>getResult</code>.
-     *
-     * @param resource the resource
-     */
-    void deleteResource(IResource resource) {
-        try {
-            resource.delete(IResource.KEEP_HISTORY, null);
-        } catch (CoreException e) {
-            errorTable.add(e.getStatus());
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkbenchModifyOperation.
-     * Imports the specified file system objects from the file system.
-     */
-    protected void execute(IProgressMonitor progressMonitor) {
-
-        monitor = progressMonitor;
-
-        try {
-            if (selectedFiles == null) {
-                //Set the amount to 1000 as we have no idea of how long this will take
-                monitor.beginTask(DataTransferMessages.DataTransfer_importTask, 1000);
-                ContainerGenerator generator = new ContainerGenerator(
-                        destinationPath);
-                monitor.worked(30);
-                validateFiles(Arrays.asList(new Object[] { source }));
-                monitor.worked(50);
-                destinationContainer = generator
-                        .generateContainer(new SubProgressMonitor(monitor, 50));
-                importRecursivelyFrom(source, POLICY_DEFAULT);
-                //Be sure it finishes
-                monitor.worked(90);
-            } else {
-                // Choose twice the selected files size to take folders into account
-                int creationCount = selectedFiles.size();
-                monitor.beginTask(DataTransferMessages.DataTransfer_importTask, creationCount + 100);
-                ContainerGenerator generator = new ContainerGenerator(
-                        destinationPath);
-                monitor.worked(30);
-                validateFiles(selectedFiles);
-                monitor.worked(50);
-                destinationContainer = generator
-                        .generateContainer(new SubProgressMonitor(monitor, 50));
-                importFileSystemObjects(selectedFiles);
-                monitor.done();
-            }
-        } catch (CoreException e) {
-            errorTable.add(e.getStatus());
-        } finally {
-            monitor.done();
-        }
-    }
-
-    /**
-     * Returns the container resource that the passed file system object should be
-     * imported into.
-     *
-     * @param fileSystemObject the file system object being imported
-     * @return the container resource that the passed file system object should be
-     *     imported into
-     * @exception CoreException if this method failed
-     */
-    IContainer getDestinationContainerFor(Object fileSystemObject)
-            throws CoreException {
-        IPath pathname = new Path(provider.getFullPath(fileSystemObject));
-
-        if (createContainerStructure) {
-			return createContainersFor(pathname.removeLastSegments(1));
-		}
-        if (source == fileSystemObject) {
-			return null;
-		}
-        IPath sourcePath = new Path(provider.getFullPath(source));
-        IPath destContainerPath = pathname.removeLastSegments(1);
-        IPath relativePath = destContainerPath.removeFirstSegments(
-                sourcePath.segmentCount()).setDevice(null);
-        return createContainersFor(relativePath);
-        
-    }
-
-    /**
-     * Returns the resource either casted to or adapted to an IFile. 
-     * 
-     * @param resource resource to cast/adapt
-     * @return the resource either casted to or adapted to an IFile.
-     * 	<code>null</code> if the resource does not adapt to IFile 
-     */
-    IFile getFile(IResource resource) {
-        if (resource instanceof IFile) {
-            return (IFile) resource;
-        }
-        Object adapted = ((IAdaptable) resource).getAdapter(IFile.class);
-        if(adapted == null) {
-			return null;
-		}
-        return (IFile) adapted;
-      
-    }
-
-    /**
-     * Returns the resource either casted to or adapted to an IFolder. 
-     * 
-     * @param resource resource to cast/adapt
-     * @return the resource either casted to or adapted to an IFolder.
-     * 	<code>null</code> if the resource does not adapt to IFolder 
-     */
-    IFolder getFolder(IResource resource) {
-        if (resource instanceof IFolder) {
-            return (IFolder) resource;
-        }
-        Object adapted = ((IAdaptable) resource).getAdapter(IFolder.class);
-        if(adapted == null) {
-			return null;
-		}
-        return (IFolder) adapted;
-    }
-
-    /**
-     * Returns the rejected files based on the given multi status.
-     *  
-     * @param multiStatus multi status to use to determine file rejection
-     * @param files source files
-     * @return list of rejected files as absolute paths. Object type IPath.
-     */
-    ArrayList getRejectedFiles(IStatus multiStatus, IFile[] files) {
-        ArrayList filteredFiles = new ArrayList();
-
-        IStatus[] status = multiStatus.getChildren();
-        for (int i = 0; i < status.length; i++) {
-            if (status[i].isOK() == false) {
-            	errorTable.add(status[i]);
-            	filteredFiles.add(files[i].getFullPath());
-            }
-        }
-        return filteredFiles;
-    }
-
-    /**
-     * Returns the status of the import operation.
-     * If there were any errors, the result is a status object containing
-     * individual status objects for each error.
-     * If there were no errors, the result is a status object with error code <code>OK</code>.
-     *
-     * @return the status
-     */
-    public IStatus getStatus() {
-        IStatus[] errors = new IStatus[errorTable.size()];
-        errorTable.toArray(errors);
-        return new MultiStatus(PlatformUI.PLUGIN_ID, IStatus.OK, errors,
-                DataTransferMessages.ImportOperation_importProblems,
-                null);
-    }
-
-    /**
-     * Imports the specified file system object into the workspace.
-     * If the import fails, adds a status object to the list to be returned by
-     * <code>getResult</code>.
-     *
-     * @param fileObject the file system object to be imported
-     * @param policy determines how the file object is imported
-     */
-    void importFile(Object fileObject, int policy) {
-        IContainer containerResource;
-        try {
-            containerResource = getDestinationContainerFor(fileObject);
-        } catch (CoreException e) {
-            IStatus coreStatus = e.getStatus();
-            String newMessage = NLS.bind(DataTransferMessages.ImportOperation_coreImportError, fileObject, coreStatus.getMessage());
-            IStatus status = new Status(coreStatus.getSeverity(), coreStatus
-                    .getPlugin(), coreStatus.getCode(), newMessage, null);
-            errorTable.add(status);
-            return;
-        }
-
-        String fileObjectPath = provider.getFullPath(fileObject);
-        monitor.subTask(fileObjectPath);
-        IFile targetResource = containerResource.getFile(new Path(provider
-                .getLabel(fileObject)));
-        monitor.worked(1);
-
-        if (rejectedFiles.contains(targetResource.getFullPath())) {
-			return;
-		}
-
-        // ensure that the source and target are not the same
-        IPath targetPath = targetResource.getLocation();
-        // Use Files for comparison to avoid platform specific case issues
-        if (targetPath != null
-                && (targetPath.toFile().equals(new File(fileObjectPath)))) {
-            errorTable.add(new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID, 0,
-                    NLS.bind(DataTransferMessages.ImportOperation_targetSameAsSourceError, fileObjectPath), null));
-            return;
-        }
-
-        InputStream contentStream = provider.getContents(fileObject);
-        if (contentStream == null) {
-            errorTable
-                    .add(new Status(
-                            IStatus.ERROR,
-                            PlatformUI.PLUGIN_ID,
-                            0,
-                            NLS.bind(DataTransferMessages.ImportOperation_openStreamError, fileObjectPath),
-                            null));
-            return;
-        }
-
-        try {
-            if (targetResource.exists()) {
-				targetResource.setContents(contentStream,
-                        IResource.KEEP_HISTORY, null);
-			} else {
-				targetResource.create(contentStream, false, null);
-			}
-            setResourceAttributes(targetResource,fileObject);
-            
-            if (provider instanceof TarLeveledStructureProvider) {
-            	try {
-            		targetResource.setResourceAttributes(((TarLeveledStructureProvider) provider).getResourceAttributes(fileObject));
-            	} catch (CoreException e) {
-            		errorTable.add(e.getStatus());
-            	}
-            }
-        } catch (CoreException e) {
-            errorTable.add(e.getStatus());
-        } finally {
-            try {
-                contentStream.close();
-            } catch (IOException e) {
-                errorTable
-                        .add(new Status(
-                                IStatus.ERROR,
-                                PlatformUI.PLUGIN_ID,
-                                0,
-                                NLS.bind(DataTransferMessages.ImportOperation_closeStreamError, fileObjectPath),
-                                e));
-            }
-        }
-    }
-
-    /**
-     * Reuse the file atttributes set in the import.
-     * @param targetResource
-     * @param fileObject
-     */
-    private void setResourceAttributes(IFile targetResource, Object fileObject) {
-    	
-    	if(fileObject instanceof File) {
-			try {
-				targetResource.setResourceAttributes(ResourceAttributes.fromFile((File) fileObject));
-			} catch (CoreException e) {
-				//Inform the log that the attributes reading failed
-				IDEWorkbenchPlugin.getDefault().getLog().log(e.getStatus());
-			}
-		}
-		
-	}
-
-	/**
-     * Imports the specified file system objects into the workspace.
-     * If the import fails, adds a status object to the list to be returned by
-     * <code>getStatus</code>.
-     *
-     * @param filesToImport the list of file system objects to import
-     *   (element type: <code>Object</code>)
-     * @exception OperationCanceledException if canceled
-     */
-    void importFileSystemObjects(List filesToImport) {
-        Iterator filesEnum = filesToImport.iterator();
-        while (filesEnum.hasNext()) {
-            Object fileSystemObject = filesEnum.next();
-            if (source == null) {
-                // We just import what we are given into the destination
-                IPath sourcePath = new Path(provider
-                        .getFullPath(fileSystemObject)).removeLastSegments(1);
-                if (provider.isFolder(fileSystemObject) && sourcePath.isEmpty()) {
-                    // If we don't have a parent then we have selected the
-                    // file systems root. Roots can't copied (at least not
-                    // under windows).
-                    errorTable.add(new Status(IStatus.INFO,
-                            PlatformUI.PLUGIN_ID, 0, DataTransferMessages.ImportOperation_cannotCopy,
-                            null));
-                    continue;
-                }
-                source = sourcePath.toFile();
-            }
-            importRecursivelyFrom(fileSystemObject, POLICY_DEFAULT);
-        }
-    }
-
-    /**
-     * Imports the specified file system container object into the workspace.
-     * If the import fails, adds a status object to the list to be returned by
-     * <code>getResult</code>.
-     *
-     * @param folderObject the file system container object to be imported
-     * @param policy determines how the folder object and children are imported
-     * @return the policy to use to import the folder's children
-     */
-    int importFolder(Object folderObject, int policy) {
-        IContainer containerResource;
-        try {
-            containerResource = getDestinationContainerFor(folderObject);
-        } catch (CoreException e) {
-            errorTable.add(e.getStatus());
-            return policy;
-        }
-
-        if (containerResource == null) {
-			return policy;
-		}
-
-        monitor.subTask(provider.getFullPath(folderObject));
-        IWorkspace workspace = destinationContainer.getWorkspace();
-        IPath containerPath = containerResource.getFullPath();
-        IPath resourcePath = containerPath.append(provider
-                .getLabel(folderObject));
-
-        // Do not attempt the import if the resource path is unchanged. This may happen
-        // when importing from a zip file.
-        if (resourcePath.equals(containerPath)) {
-			return policy;
-		}
-
-        if (workspace.getRoot().exists(resourcePath)) {
-            if (rejectedFiles.contains(resourcePath)) {
-				return POLICY_SKIP_CHILDREN;
-			}
-
-            return POLICY_FORCE_OVERWRITE;
-        }
-
-        try {
-            workspace.getRoot().getFolder(resourcePath).create(false, true,
-                    null);
-        } catch (CoreException e) {
-            errorTable.add(e.getStatus());
-        }
-
-        return policy;
-    }
-
-    /**
-     * Imports the specified file system object recursively into the workspace.
-     * If the import fails, adds a status object to the list to be returned by
-     * <code>getStatus</code>.
-     *
-     * @param fileSystemObject the file system object to be imported
-     * @param policy determines how the file system object and children are imported
-     * @exception OperationCanceledException if canceled
-     */
-    void importRecursivelyFrom(Object fileSystemObject, int policy) {
-        if (monitor.isCanceled()) {
-			throw new OperationCanceledException();
-		}
-
-        if (!provider.isFolder(fileSystemObject)) {
-            importFile(fileSystemObject, policy);
-            return;
-        }
-
-        int childPolicy = importFolder(fileSystemObject, policy);
-        if (childPolicy != POLICY_SKIP_CHILDREN) {
-            Iterator children = provider.getChildren(fileSystemObject)
-                    .iterator();
-            while (children.hasNext()) {
-				importRecursivelyFrom(children.next(), childPolicy);
-			}
-        }
-    }
-
-    /**
-     * Queries the user whether the resource with the specified path should be
-     * overwritten by a file system object that is being imported.
-     * 
-     * @param resourcePath the workspace path of the resource that needs to be overwritten
-     * @return <code>true</code> to overwrite, <code>false</code> to not overwrite
-     * @exception OperationCanceledException if canceled
-     */
-    boolean queryOverwrite(IPath resourcePath)
-            throws OperationCanceledException {
-        String overwriteAnswer = overwriteCallback.queryOverwrite(resourcePath
-                .makeRelative().toString());
-
-        if (overwriteAnswer.equals(IOverwriteQuery.CANCEL)) {
-			throw new OperationCanceledException(DataTransferMessages.DataTransfer_emptyString);
-		}
-
-        if (overwriteAnswer.equals(IOverwriteQuery.NO)) {
-            return false;
-        }
-
-        if (overwriteAnswer.equals(IOverwriteQuery.NO_ALL)) {
-            this.overwriteState = OVERWRITE_NONE;
-            return false;
-        }
-
-        if (overwriteAnswer.equals(IOverwriteQuery.ALL)) {
-			this.overwriteState = OVERWRITE_ALL;
-		}
-
-        return true;
-    }
-
-    /**
-     * Returns whether the given file should be overwritten.
-     *
-     * @param targetFile the file to ask to overwrite 
-     * @param policy determines if the user is queried for overwrite 
-     * @return <code>true</code> if the file should be overwritten, and
-     * 	<code>false</code> if not.
-     */
-    boolean queryOverwriteFile(IFile targetFile, int policy) {
-        //If force overwrite is on don't bother
-        if (policy != POLICY_FORCE_OVERWRITE) {
-            if (this.overwriteState == OVERWRITE_NOT_SET
-                    && !queryOverwrite(targetFile.getFullPath())) {
-				return false;
-			}
-            if (this.overwriteState == OVERWRITE_NONE) {
-				return false;
-			}
-        }
-        return true;
-    }
-
-    /**
-     * Sets the context for use by the VCM provider to prompt the user
-     * for check-out of files.
-     * 
-     * @param shell context for use by the VCM provider to prompt user
-     * 	for check-out. The user will not be prompted if set to <code>null</code>.
-     * @see IWorkspace#validateEdit(org.eclipse.core.resources.IFile[], java.lang.Object)
-     * @since 2.1
-     */
-    public void setContext(Shell shell) {
-        context = shell;
-    }
-
-    /**
-     * Sets whether the containment structures that are implied from the full paths
-     * of file system objects being imported should be duplicated in the workbench.
-     *
-     * @param value <code>true</code> if containers should be created, and
-     *  <code>false</code> otherwise
-     */
-    public void setCreateContainerStructure(boolean value) {
-        createContainerStructure = value;
-    }
-
-    /**
-     * Sets the file system objects to import.
-     *
-     * @param filesToImport the list of file system objects to be imported
-     *   (element type: <code>Object</code>)
-     */
-    public void setFilesToImport(List filesToImport) {
-        this.selectedFiles = filesToImport;
-    }
-
-    /**
-     * Sets whether imported file system objects should automatically overwrite
-     * existing workbench resources when a conflict occurs.
-     *
-     * @param value <code>true</code> to automatically overwrite, and 
-     *   <code>false</code> otherwise
-     */
-    public void setOverwriteResources(boolean value) {
-        if (value) {
-			this.overwriteState = OVERWRITE_ALL;
-		}
-    }
-
-    /**
-     * Validates that the given source resources can be copied to the 
-     * destination as decided by the VCM provider.
-     * 
-     * @param existingFiles existing files to validate
-     * @return list of rejected files as absolute paths. Object type IPath.
-     */
-    ArrayList validateEdit(List existingFiles) {
-       
-        if (existingFiles.size() > 0) {
-            IFile[] files = (IFile[]) existingFiles
-                    .toArray(new IFile[existingFiles.size()]);
-            IWorkspace workspace = ResourcesPlugin.getWorkspace();
-            IStatus status = workspace.validateEdit(files, context);
-
-            //If there was a mix return the bad ones
-            if (status.isMultiStatus()) {
-				return getRejectedFiles(status, files);
-			}
-            
-           if(!status.isOK()){
-           		//If just a single status reject them all
-           		errorTable.add(status);
-           		ArrayList filteredFiles = new ArrayList();
-
-           		for (int i = 0; i < files.length; i++) {
-           			filteredFiles.add(files[i].getFullPath());
-           		}
-           		return filteredFiles;
-           }
-            
-        }
-        return new ArrayList();
-    }
-
-    /**
-     * Validates the given file system objects.
-     * The user is prompted to overwrite existing files.
-     * Existing read-only files are validated with the VCM provider.
-     * 
-     * @param sourceFiles files to validate
-     */
-    void validateFiles(List sourceFiles) {
-        ArrayList noOverwrite = new ArrayList();
-        ArrayList overwriteReadonly = new ArrayList();
-
-        collectExistingReadonlyFiles(destinationPath, sourceFiles, noOverwrite,
-                overwriteReadonly, POLICY_DEFAULT);
-        rejectedFiles = validateEdit(overwriteReadonly);
-        rejectedFiles.addAll(noOverwrite);
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/PopulateRootOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/PopulateRootOperation.java
deleted file mode 100644
index 5d93f85..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/PopulateRootOperation.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.wizards.datatransfer;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.ui.dialogs.FileSystemElement;
-import org.eclipse.ui.internal.wizards.datatransfer.MinimizedFileSystemElement;
-
-/**
- * The PopulateFilesOperation is an operation used to populate a FileSystemElement one
- * level deep rather than the whole way.
- */
-public class PopulateRootOperation extends SelectFilesOperation {
-    /**
-     * Create a new <code>PopulateFilesOperation</code>.
-     * @param rootObject the object to be populated
-     * @param structureProvider the object that defines how we are to populate it.
-     */
-    public PopulateRootOperation(Object rootObject,
-            IImportStructureProvider structureProvider) {
-        super(rootObject, structureProvider);
-    }
-
-    /**
-     * Creates and returns a <code>FileSystemElement</code> if the specified
-     * file system object merits one.  The criteria for this are:
-     * - if the file system object is a container then it must have either a
-     *   child container or an associated file
-     * - if the file system object is a file then it must have an extension
-     *   suitable for selection
-     */
-    protected FileSystemElement createElement(FileSystemElement parent,
-            Object fileSystemObject) throws InterruptedException {
-
-        //Iterate on level deep
-        return createElement(parent, fileSystemObject, 2);
-
-    }
-
-    /**
-     * Creates and returns a <code>FileSystemElement</code> if the specified
-     * file system object merits one.  The criteria for this are:
-     * - if the file system object is a container then it must have either a
-     *   child container or an associated file
-     * - if the file system object is a file then it must have an extension
-     *   suitable for selection
-     * 	recurse down for depth to populate children
-     */
-    protected FileSystemElement createElement(FileSystemElement parent,
-            Object fileSystemObject, int depth) throws InterruptedException {
-        ModalContext.checkCanceled(monitor);
-        boolean isContainer = provider.isFolder(fileSystemObject);
-        String elementLabel = parent == null ? provider
-                .getFullPath(fileSystemObject) : provider
-                .getLabel(fileSystemObject);
-
-        MinimizedFileSystemElement result = new MinimizedFileSystemElement(
-                elementLabel, parent, isContainer);
-        result.setFileSystemObject(fileSystemObject);
-
-        if (isContainer) {
-            if (depth > 0) {
-                List children = provider.getChildren(fileSystemObject);
-                if (children == null) {
-					children = new ArrayList(1);
-				}
-                Iterator childrenEnum = children.iterator();
-                while (childrenEnum.hasNext()) {
-                    createElement(result, childrenEnum.next(), depth - 1);
-                }
-                result.setPopulated();
-            }
-
-        }
-
-        return result;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/SelectFilesOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/SelectFilesOperation.java
deleted file mode 100644
index 309d926..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/SelectFilesOperation.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.wizards.datatransfer;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.ui.dialogs.FileSystemElement;
-import org.eclipse.ui.internal.wizards.datatransfer.DataTransferMessages;
-
-/**
- *	Operation responsible for traversing a specified file system position
- *	recursively and building
- *	-	a tree that represents the container structure
- *	-	a collection containing all files meeting a specified extension criteria
- *
- *	This is implemented as an Operation in order to provide an escape to the user
- *	(the Cancel button) if the operation drags on for too long
- */
-public class SelectFilesOperation implements IRunnableWithProgress {
-    IProgressMonitor monitor;
-
-    Object root;
-
-    IImportStructureProvider provider;
-
-    String desiredExtensions[];
-
-    FileSystemElement result;
-
-    /**
-     * Creates a new <code>SelectFilesOperation</code>.
-     */
-    public SelectFilesOperation(Object rootObject,
-            IImportStructureProvider structureProvider) {
-        super();
-        root = rootObject;
-        provider = structureProvider;
-    }
-
-    /**
-     * Creates and returns a <code>FileSystemElement</code> if the specified
-     * file system object merits one.  The criteria for this are:
-     * - if the file system object is a container then it must have either a
-     *   child container or an associated file
-     * - if the file system object is a file then it must have an extension
-     *   suitable for selection
-     */
-    protected FileSystemElement createElement(FileSystemElement parent,
-            Object fileSystemObject) throws InterruptedException {
-        ModalContext.checkCanceled(monitor);
-        boolean isContainer = provider.isFolder(fileSystemObject);
-        String elementLabel = parent == null ? provider
-                .getFullPath(fileSystemObject) : provider
-                .getLabel(fileSystemObject);
-
-        if (!isContainer && !hasDesiredExtension(elementLabel)) {
-			return null;
-		}
-
-        FileSystemElement result = new FileSystemElement(elementLabel, parent,
-                isContainer);
-        result.setFileSystemObject(fileSystemObject);
-
-        if (isContainer) {
-            boolean haveChildOrFile = false;
-            List children = provider.getChildren(fileSystemObject);
-            if (children == null) {
-				children = new ArrayList(1);
-			}
-            Iterator childrenEnum = children.iterator();
-            while (childrenEnum.hasNext()) {
-                if (createElement(result, childrenEnum.next()) != null) {
-					haveChildOrFile = true;
-				}
-            }
-
-            if (!haveChildOrFile && parent != null) {
-                parent.removeFolder(result);
-                result = null;
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * Returns the extension portion of the passed filename string.
-     */
-    protected String getExtensionFor(String filename) {
-        int nIndex = filename.lastIndexOf('.');
-
-        if (nIndex >= 0) {
-			return filename.substring(nIndex + 1);
-		}
-
-        return "";//$NON-NLS-1$
-
-    }
-
-    /**
-     * Returns the resulting root file system element.
-     */
-    public FileSystemElement getResult() {
-        return result;
-    }
-
-    /**
-     * Returns a boolean indicating whether the extension of the passed filename
-     * is one of the extensions specified as desired by the filter.
-     */
-    protected boolean hasDesiredExtension(String filename) {
-        if (desiredExtensions == null) {
-			return true;
-		}
-
-        int extensionsSize = desiredExtensions.length;
-        for (int i = 0; i < extensionsSize; i++) {
-            if (getExtensionFor(filename)
-                    .equalsIgnoreCase(desiredExtensions[i])) {
-				return true;
-			}
-        }
-
-        return false;
-    }
-
-    /**
-     * Runs the operation.
-     */
-    public void run(IProgressMonitor monitor) throws InterruptedException {
-        try {
-            this.monitor = monitor;
-            monitor.beginTask(DataTransferMessages.DataTransfer_scanningMatching, IProgressMonitor.UNKNOWN);
-            result = createElement(null, root);
-            if (result == null) {
-                result = new FileSystemElement(provider.getLabel(root), null,
-                        provider.isFolder(root));
-                result.setFileSystemObject(root);
-            }
-        } finally {
-            monitor.done();
-        }
-    }
-
-    /**
-     * Sets the file extensions which are desired.  A value of <code>null</code>
-     * indicates that all files should be kept regardless of extension.
-     */
-    public void setDesiredExtensions(String[] extensions) {
-        desiredExtensions = extensions;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/WizardExternalProjectImportPage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/WizardExternalProjectImportPage.java
deleted file mode 100644
index db10033..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/WizardExternalProjectImportPage.java
+++ /dev/null
@@ -1,503 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.wizards.datatransfer;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceStatus;
-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.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.osgi.util.NLS;
-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.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-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.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.wizards.datatransfer.DataTransferMessages;
-
-/**
- * Standard main page for a wizard that creates a project resource from
- * whose location already contains a project.
- * <p>
- * This page may be used by clients as-is; it may be also be subclassed to suit.
- * </p>
- * <p>
- * Example usage:
- * <pre>
- * mainPage = new WizardExternalProjectImportPage("basicNewProjectPage");
- * mainPage.setTitle("Project");
- * mainPage.setDescription("Create a new project resource.");
- * </pre>
- * </p>
- */
-public class WizardExternalProjectImportPage extends WizardPage {
-
-    private FileFilter projectFilter = new FileFilter() {
-        //Only accept those files that are .project
-        public boolean accept(File pathName) {
-            return pathName.getName().equals(
-                    IProjectDescription.DESCRIPTION_FILE_NAME);
-        }
-    };
-
-    //Keep track of the directory that we browsed to last time
-    //the wizard was invoked.
-    private static String previouslyBrowsedDirectory = ""; //$NON-NLS-1$
-
-    // widgets
-    private Text projectNameField;
-
-    private Text locationPathField;
-
-    private Button browseButton;
-
-    private IProjectDescription description;
-
-    private Listener locationModifyListener = new Listener() {
-        public void handleEvent(Event e) {
-            setPageComplete(validatePage());
-        }
-    };
-
-    // constants
-    private static final int SIZING_TEXT_FIELD_WIDTH = 250;
-
-    /**
-     * Creates a new project creation wizard page.
-     *
-     */
-    public WizardExternalProjectImportPage() {
-        super("wizardExternalProjectPage"); //$NON-NLS-1$
-        setPageComplete(false);
-        setTitle(DataTransferMessages.WizardExternalProjectImportPage_title);
-        setDescription(DataTransferMessages.WizardExternalProjectImportPage_description);
-
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-
-        initializeDialogUnits(parent);
-
-        Composite composite = new Composite(parent, SWT.NULL);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
-                IIDEHelpContextIds.NEW_PROJECT_WIZARD_PAGE);
-
-        composite.setLayout(new GridLayout());
-        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-        composite.setFont(parent.getFont());
-
-        createProjectNameGroup(composite);
-        createProjectLocationGroup(composite);
-        validatePage();
-        // Show description on opening
-        setErrorMessage(null);
-        setMessage(null);
-        setControl(composite);
-    }
-
-    /**
-     * Creates the project location specification controls.
-     *
-     * @param parent the parent composite
-     */
-    private final void createProjectLocationGroup(Composite parent) {
-
-        // project specification group
-        Composite projectGroup = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        projectGroup.setLayout(layout);
-        projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        projectGroup.setFont(parent.getFont());
-
-        // new project label
-        Label projectContentsLabel = new Label(projectGroup, SWT.NONE);
-        projectContentsLabel.setText(DataTransferMessages.WizardExternalProjectImportPage_projectContentsLabel);
-        projectContentsLabel.setFont(parent.getFont());
-
-        createUserSpecifiedProjectLocationGroup(projectGroup);
-    }
-
-    /**
-     * Creates the project name specification controls.
-     *
-     * @param parent the parent composite
-     */
-    private final void createProjectNameGroup(Composite parent) {
-
-        Font dialogFont = parent.getFont();
-
-        // project specification group
-        Composite projectGroup = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        projectGroup.setFont(dialogFont);
-        projectGroup.setLayout(layout);
-        projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-        // new project label
-        Label projectLabel = new Label(projectGroup, SWT.NONE);
-        projectLabel.setText(DataTransferMessages.WizardExternalProjectImportPage_nameLabel);
-        projectLabel.setFont(dialogFont);
-
-        // new project name entry field
-        projectNameField = new Text(projectGroup, SWT.BORDER | SWT.READ_ONLY);
-        GridData data = new GridData(GridData.FILL_HORIZONTAL);
-        data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-        projectNameField.setLayoutData(data);
-        projectNameField.setFont(dialogFont);
-        projectNameField.setBackground(parent.getDisplay().getSystemColor(
-                SWT.COLOR_WIDGET_BACKGROUND));
-    }
-
-    /**
-     * Creates the project location specification controls.
-     *
-     * @param projectGroup the parent composite
-     */
-    private void createUserSpecifiedProjectLocationGroup(Composite projectGroup) {
-
-        Font dialogFont = projectGroup.getFont();
-
-        // project location entry field
-        this.locationPathField = new Text(projectGroup, SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_HORIZONTAL);
-        data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-        this.locationPathField.setLayoutData(data);
-        this.locationPathField.setFont(dialogFont);
-
-        // browse button
-        this.browseButton = new Button(projectGroup, SWT.PUSH);
-        this.browseButton.setText(DataTransferMessages.DataTransfer_browse);
-        this.browseButton.setFont(dialogFont);
-        setButtonLayoutData(this.browseButton);
-
-        this.browseButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                handleLocationBrowseButtonPressed();
-            }
-        });
-
-        locationPathField.addListener(SWT.Modify, locationModifyListener);
-    }
-
-    /**
-     * Returns the current project location path as entered by 
-     * the user, or its anticipated initial value.
-     *
-     * @return the project location path, its anticipated initial value, or <code>null</code>
-     *   if no project location path is known
-     */
-    public IPath getLocationPath() {
-
-        return new Path(getProjectLocationFieldValue());
-    }
-
-    /**
-     * Creates a project resource handle for the current project name field value.
-     * <p>
-     * This method does not create the project resource; this is the responsibility
-     * of <code>IProject::create</code> invoked by the new project resource wizard.
-     * </p>
-     *
-     * @return the new project resource handle
-     */
-    public IProject getProjectHandle() {
-        return ResourcesPlugin.getWorkspace().getRoot().getProject(
-                getProjectName());
-    }
-
-    /**
-     * Returns the current project name as entered by the user, or its anticipated
-     * initial value.
-     *
-     * @return the project name, its anticipated initial value, or <code>null</code>
-     *   if no project name is known
-     */
-    public String getProjectName() {
-        return getProjectNameFieldValue();
-    }
-
-    /**
-     * Returns the value of the project name field
-     * with leading and trailing spaces removed.
-     * 
-     * @return the project name in the field
-     */
-    private String getProjectNameFieldValue() {
-        if (projectNameField == null) {
-			return ""; //$NON-NLS-1$
-		}
-
-        return projectNameField.getText().trim();
-    }
-
-    /**
-     * Returns the value of the project location field
-     * with leading and trailing spaces removed.
-     * 
-     * @return the project location directory in the field
-     */
-    private String getProjectLocationFieldValue() {
-        return locationPathField.getText().trim();
-    }
-
-    /**
-     *	Open an appropriate directory browser
-     */
-    private void handleLocationBrowseButtonPressed() {
-        DirectoryDialog dialog = new DirectoryDialog(locationPathField
-                .getShell());
-        dialog.setMessage(DataTransferMessages.WizardExternalProjectImportPage_directoryLabel);
-
-        String dirName = getProjectLocationFieldValue();
-        if (dirName.length() == 0) {
-			dirName = previouslyBrowsedDirectory;
-		}
-
-        if (dirName.length() == 0) {
-			dialog.setFilterPath(getWorkspace().getRoot().getLocation()
-                    .toOSString());
-		} else {
-            File path = new File(dirName);
-            if (path.exists()) {
-				dialog.setFilterPath(new Path(dirName).toOSString());
-			}
-        }
-
-        String selectedDirectory = dialog.open();
-        if (selectedDirectory != null) {
-            previouslyBrowsedDirectory = selectedDirectory;
-            locationPathField.setText(previouslyBrowsedDirectory);
-            setProjectName(projectFile(previouslyBrowsedDirectory));
-        }
-    }
-
-    /**
-     * Returns whether this page's controls currently all contain valid 
-     * values.
-     *
-     * @return <code>true</code> if all controls are valid, and
-     *   <code>false</code> if at least one is invalid
-     */
-    private boolean validatePage() {
-
-        String locationFieldContents = getProjectLocationFieldValue();
-
-        if (locationFieldContents.equals("")) { //$NON-NLS-1$
-            setErrorMessage(null);
-            setMessage(DataTransferMessages.WizardExternalProjectImportPage_projectLocationEmpty);
-            return false;
-        }
-
-        IPath path = new Path(""); //$NON-NLS-1$
-        if (!path.isValidPath(locationFieldContents)) {
-            setErrorMessage(DataTransferMessages.WizardExternalProjectImportPage_locationError);
-            return false;
-        }
-
-        File projectFile = projectFile(locationFieldContents);
-        if (projectFile == null) {
-            setErrorMessage(NLS.bind(DataTransferMessages.WizardExternalProjectImportPage_notAProject, locationFieldContents));
-            return false;
-        }
-        setProjectName(projectFile);
-
-        if (getProjectHandle().exists()) {
-            setErrorMessage(DataTransferMessages.WizardExternalProjectImportPage_projectExistsMessage);
-            return false;
-        }
-
-        setErrorMessage(null);
-        setMessage(null);
-        return true;
-    }
-
-    private IWorkspace getWorkspace() {
-        IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-        return workspace;
-    }
-
-    /**
-     * Return whether or not the specifed location is a prefix
-     * of the root.
-     */
-    private boolean isPrefixOfRoot(IPath locationPath) {
-        return Platform.getLocation().isPrefixOf(locationPath);
-    }
-
-    /**
-     * Set the project name using either the name of the
-     * parent of the file or the name entry in the xml for 
-     * the file
-     */
-    private void setProjectName(File projectFile) {
-
-        //If there is no file or the user has already specified forget it
-        if (projectFile == null) {
-			return;
-		}
-
-        IPath path = new Path(projectFile.getPath());
-
-        IProjectDescription newDescription = null;
-
-        try {
-            newDescription = getWorkspace().loadProjectDescription(path);
-        } catch (CoreException exception) {
-            //no good couldn't get the name
-        }
-
-        if (newDescription == null) {
-            this.description = null;
-            this.projectNameField.setText(""); //$NON-NLS-1$
-        } else {
-            this.description = newDescription;
-            this.projectNameField.setText(this.description.getName());
-        }
-    }
-
-    /**
-     * Return a.project file from the specified location.
-     * If there isn't one return null.
-     */
-    private File projectFile(String locationFieldContents) {
-        File directory = new File(locationFieldContents);
-        if (directory.isFile()) {
-			return null;
-		}
-
-        File[] files = directory.listFiles(this.projectFilter);
-        if (files != null && files.length == 1) {
-			return files[0];
-		}
-
-        return null;
-    }
-
-    /**
-     * Creates a new project resource with the selected name.
-     * <p>
-     * In normal usage, this method is invoked after the user has pressed Finish on
-     * the wizard; the enablement of the Finish button implies that all controls
-     * on the pages currently contain valid values.
-     * </p>
-     *
-     * @return the created project resource, or <code>null</code> if the project
-     *    was not created
-     */
-    IProject createExistingProject() {
-
-        String projectName = projectNameField.getText();
-        final IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        final IProject project = workspace.getRoot().getProject(projectName);
-        if (this.description == null) {
-            this.description = workspace.newProjectDescription(projectName);
-            IPath locationPath = getLocationPath();
-            //If it is under the root use the default location
-            if (isPrefixOfRoot(locationPath)) {
-				this.description.setLocation(null);
-			} else {
-				this.description.setLocation(locationPath);
-			}
-        } else {
-			this.description.setName(projectName);
-		}
-
-        // create the new project operation
-        WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-            protected void execute(IProgressMonitor monitor)
-                    throws CoreException {
-                monitor.beginTask("", 2000); //$NON-NLS-1$
-                project.create(description, new SubProgressMonitor(monitor,
-                        1000));
-                if (monitor.isCanceled()) {
-					throw new OperationCanceledException();
-				}
-                project.open(IResource.BACKGROUND_REFRESH, new SubProgressMonitor(monitor, 1000));
-
-            }
-        };
-
-        // run the new project creation operation
-        try {
-            getContainer().run(true, true, op);
-        } catch (InterruptedException e) {
-            return null;
-        } catch (InvocationTargetException e) {
-            // ie.- one of the steps resulted in a core exception	
-            Throwable t = e.getTargetException();
-            if (t instanceof CoreException) {
-                if (((CoreException) t).getStatus().getCode() == IResourceStatus.CASE_VARIANT_EXISTS) {
-                    MessageDialog
-                            .openError(
-                                    getShell(),
-                                    DataTransferMessages.WizardExternalProjectImportPage_errorMessage,
-                                    NLS.bind(
-                                    		DataTransferMessages.WizardExternalProjectImportPage_caseVariantExistsError,
-                                    		projectName)
-                            );
-                } else {
-                    ErrorDialog
-                            .openError(
-                                    getShell(),
-                                    DataTransferMessages.WizardExternalProjectImportPage_errorMessage,
-                                    null, ((CoreException) t).getStatus());
-                }
-            }
-            return null;
-        }
-
-        return project;
-    }
-
-    /*
-     * see @DialogPage.setVisible(boolean)
-     */
-    public void setVisible(boolean visible) {
-        super.setVisible(visible);
-        if (visible) {
-			this.locationPathField.setFocus();
-		}
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileExportWizard.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileExportWizard.java
deleted file mode 100644
index 178a60c..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileExportWizard.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.wizards.datatransfer;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.IExportWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.wizards.datatransfer.DataTransferMessages;
-import org.eclipse.ui.internal.wizards.datatransfer.WizardArchiveFileResourceExportPage1;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Standard workbench wizard for exporting resources from the workspace
- * to a zip file.
- * <p>
- * This class may be instantiated and used without further configuration;
- * this class is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * IWizard wizard = new ZipFileExportWizard();
- * wizard.init(workbench, selection);
- * WizardDialog dialog = new WizardDialog(shell, wizard);
- * dialog.open();
- * </pre>
- * During the call to <code>open</code>, the wizard dialog is presented to the
- * user. When the user hits Finish, the user-selected workspace resources 
- * are exported to the user-specified zip file, the dialog closes, and the call
- * to <code>open</code> returns.
- * </p>
- */
-public class ZipFileExportWizard extends Wizard implements IExportWizard {
-    private IStructuredSelection selection;
-
-    private WizardArchiveFileResourceExportPage1 mainPage;
-
-    /**
-     * Creates a wizard for exporting workspace resources to a zip file.
-     */
-    public ZipFileExportWizard() {
-        AbstractUIPlugin plugin = (AbstractUIPlugin) Platform
-                .getPlugin(PlatformUI.PLUGIN_ID);
-        IDialogSettings workbenchSettings = plugin.getDialogSettings();
-        IDialogSettings section = workbenchSettings
-                .getSection("ZipFileExportWizard");//$NON-NLS-1$
-        if (section == null) {
-			section = workbenchSettings.addNewSection("ZipFileExportWizard");//$NON-NLS-1$
-		}
-        setDialogSettings(section);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public void addPages() {
-        super.addPages();
-        mainPage = new WizardArchiveFileResourceExportPage1(selection);
-        addPage(mainPage);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchWizard.
-     */
-    public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
-        this.selection = currentSelection;
-        List selectedResources = IDE.computeSelectedResources(currentSelection);
-        if (!selectedResources.isEmpty()) {
-            this.selection = new StructuredSelection(selectedResources);
-        }
-
-        setWindowTitle(DataTransferMessages.DataTransfer_export);
-        setDefaultPageImageDescriptor(IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/exportzip_wiz.png"));//$NON-NLS-1$
-        setNeedsProgressMonitor(true);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public boolean performFinish() {
-        return mainPage.finish();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileImportWizard.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileImportWizard.java
deleted file mode 100644
index 9afc1ba..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileImportWizard.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.wizards.datatransfer;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.IImportWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.wizards.datatransfer.DataTransferMessages;
-import org.eclipse.ui.internal.wizards.datatransfer.WizardArchiveFileResourceImportPage1;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Standard workbench wizard for importing resources from a zip file
- * into the workspace.
- * <p>
- * This class may be instantiated and used without further configuration;
- * this class is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * IWizard wizard = new ZipFileImportWizard();
- * wizard.init(workbench, selection);
- * WizardDialog dialog = new WizardDialog(shell, wizard);
- * dialog.open();
- * </pre>
- * During the call to <code>open</code>, the wizard dialog is presented to the
- * user. When the user hits Finish, the user-selected zip file is imported
- * into the workspace, the dialog closes, and the call to <code>open</code>
- * returns.
- * </p>
- */
-public class ZipFileImportWizard extends Wizard implements IImportWizard {
-    private IWorkbench workbench;
-
-    private IStructuredSelection selection;
-
-    private WizardArchiveFileResourceImportPage1 mainPage;
-
-    /**
-     * Creates a wizard for importing resources into the workspace from
-     * a zip file.
-     */
-    public ZipFileImportWizard() {
-        AbstractUIPlugin plugin = (AbstractUIPlugin) Platform
-                .getPlugin(PlatformUI.PLUGIN_ID);
-        IDialogSettings workbenchSettings = plugin.getDialogSettings();
-        IDialogSettings section = workbenchSettings
-                .getSection("ZipFileImportWizard");//$NON-NLS-1$
-        if (section == null) {
-			section = workbenchSettings.addNewSection("ZipFileImportWizard");//$NON-NLS-1$
-		}
-        setDialogSettings(section);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public void addPages() {
-        super.addPages();
-        mainPage = new WizardArchiveFileResourceImportPage1(workbench, selection);
-        addPage(mainPage);
-    }
-
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchWizard.
-     */
-    public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
-        this.workbench = workbench;
-        this.selection = currentSelection;
-        List selectedResources = IDE.computeSelectedResources(currentSelection);
-        if (!selectedResources.isEmpty()) {
-            this.selection = new StructuredSelection(selectedResources);
-        }
-
-        setWindowTitle(DataTransferMessages.DataTransfer_importTitle);
-        setDefaultPageImageDescriptor(IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/importzip_wiz.png"));//$NON-NLS-1$
-        setNeedsProgressMonitor(true);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public boolean performCancel() {
-        return mainPage.cancel();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public boolean performFinish() {
-        return mainPage.finish();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileStructureProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileStructureProvider.java
deleted file mode 100644
index 05d5e6e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileStructureProvider.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.wizards.datatransfer;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * This class provides information regarding the context structure and
- * content of specified zip file entry objects.
- */
-public class ZipFileStructureProvider implements IImportStructureProvider {
-    private ZipFile zipFile;
-
-    private ZipEntry root = new ZipEntry("/");//$NON-NLS-1$
-
-    private Map children;
-
-    private Map directoryEntryCache = new HashMap();
-
-    /**
-     * Creates a <code>ZipFileStructureProvider</code>, which will operate
-     * on the passed zip file.
-     * 
-     * @param sourceFile the zip file used to create this structure provider
-     */
-    public ZipFileStructureProvider(ZipFile sourceFile) {
-        super();
-        zipFile = sourceFile;
-    }
-
-    /**
-     * Adds the specified child to the internal collection of the parent's children.
-     */
-    protected void addToChildren(ZipEntry parent, ZipEntry child) {
-        List childList = (List) children.get(parent);
-        if (childList == null) {
-            childList = new ArrayList();
-            children.put(parent, childList);
-        }
-
-        childList.add(child);
-    }
-
-    /**
-     * Creates a new container zip entry with the specified name, iff
-     * it has not already been created.
-     */
-    protected void createContainer(IPath pathname) {
-        if (directoryEntryCache.containsKey(pathname)) {
-			return;
-		}
-
-        ZipEntry parent;
-        if (pathname.segmentCount() == 1) {
-			parent = root;
-		} else {
-			parent = (ZipEntry) directoryEntryCache.get(pathname
-                    .removeLastSegments(1));
-		}
-
-        ZipEntry newEntry = new ZipEntry(pathname.toString());
-        directoryEntryCache.put(pathname, newEntry);
-        addToChildren(parent, newEntry);
-    }
-
-    /**
-     * Creates a new file zip entry with the specified name.
-     */
-    protected void createFile(ZipEntry entry) {
-        IPath pathname = new Path(entry.getName());
-        ZipEntry parent;
-        if (pathname.segmentCount() == 1) {
-			parent = root;
-		} else {
-			parent = (ZipEntry) directoryEntryCache.get(pathname
-                    .removeLastSegments(1));
-		}
-
-        addToChildren(parent, entry);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IImportStructureProvider
-     */
-    public List getChildren(Object element) {
-        if (children == null) {
-			initialize();
-		}
-
-        return ((List) children.get(element));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IImportStructureProvider
-     */
-    public InputStream getContents(Object element) {
-        try {
-            return zipFile.getInputStream((ZipEntry) element);
-        } catch (IOException e) {
-        	IDEWorkbenchPlugin.log(e.getLocalizedMessage(), e);
-            return null;
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IImportStructureProvider
-     */
-    public String getFullPath(Object element) {
-        return ((ZipEntry) element).getName();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IImportStructureProvider
-     */
-    public String getLabel(Object element) {
-        if (element.equals(root)) {
-			return ((ZipEntry) element).getName();
-		}
-
-        return new Path(((ZipEntry) element).getName()).lastSegment();
-    }
-
-    /**
-     * Returns the entry that this importer uses as the root sentinel.
-     *
-     * @return java.util.zip.ZipEntry
-     */
-    public ZipEntry getRoot() {
-        return root;
-    }
-
-    /**
-     * Returns the zip file that this provider provides structure for.
-     * 
-     * @return the zip file this provider provides structure for
-     */
-    public ZipFile getZipFile() {
-        return zipFile;
-    }
-
-    /**
-     * Initializes this object's children table based on the contents of
-     * the specified source file.
-     */
-    protected void initialize() {
-        children = new HashMap(1000);
-
-        Enumeration entries = zipFile.entries();
-        while (entries.hasMoreElements()) {
-            ZipEntry entry = (ZipEntry) entries.nextElement();
-            if (!entry.isDirectory()) {
-                IPath path = new Path(entry.getName()).addTrailingSeparator();
-                int pathSegmentCount = path.segmentCount();
-
-                for (int i = 1; i < pathSegmentCount; i++) {
-					createContainer(path.uptoSegment(i));
-				}
-                createFile(entry);
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IImportStructureProvider
-     */
-    public boolean isFolder(Object element) {
-        return ((ZipEntry) element).isDirectory();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/package.html
deleted file mode 100644
index 83c410f..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/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 standard Import and Export wizards for
-moving resources into and out of the workspace.
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewFileResourceWizard.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewFileResourceWizard.java
deleted file mode 100644
index 43f7a17..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewFileResourceWizard.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.wizards.newresource;
-
-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.PartInitException;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ide.DialogUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.wizards.newresource.ResourceMessages;
-
-/**
- * Standard workbench wizard that create a new file resource in the workspace.
- * <p>
- * This class may be instantiated and used without further configuration;
- * this class is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * IWorkbenchWizard wizard = new BasicNewFileResourceWizard();
- * wizard.init(workbench, selection);
- * WizardDialog dialog = new WizardDialog(shell, wizard);
- * dialog.open();
- * </pre>
- * During the call to <code>open</code>, the wizard dialog is presented to the
- * user. When the user hits Finish, a file resource at the user-specified
- * workspace path is created, the dialog closes, and the call to
- * <code>open</code> returns.
- * </p>
- */
-public class BasicNewFileResourceWizard extends BasicNewResourceWizard {
-    private WizardNewFileCreationPage mainPage;
-
-    /**
-     * Creates a wizard for creating a new file resource in the workspace.
-     */
-    public BasicNewFileResourceWizard() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public void addPages() {
-        super.addPages();
-        mainPage = new WizardNewFileCreationPage("newFilePage1", getSelection());//$NON-NLS-1$
-        mainPage.setTitle(ResourceMessages.FileResource_pageTitle);
-        mainPage.setDescription(ResourceMessages.FileResource_description); 
-        addPage(mainPage);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchWizard.
-     */
-    public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
-        super.init(workbench, currentSelection);
-        setWindowTitle(ResourceMessages.FileResource_shellTitle);
-        setNeedsProgressMonitor(true);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on BasicNewResourceWizard.
-     */
-    protected void initializeDefaultPageImageDescriptor() {
-       ImageDescriptor desc = IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/newfile_wiz.png");//$NON-NLS-1$
-	   setDefaultPageImageDescriptor(desc);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public boolean performFinish() {
-        IFile file = mainPage.createNewFile();
-        if (file == null) {
-			return false;
-		}
-
-        selectAndReveal(file);
-
-        // Open editor on new file.
-        IWorkbenchWindow dw = getWorkbench().getActiveWorkbenchWindow();
-        try {
-            if (dw != null) {
-                IWorkbenchPage page = dw.getActivePage();
-                if (page != null) {
-                    IDE.openEditor(page, file, true);
-                }
-            }
-        } catch (PartInitException e) {
-            DialogUtil.openError(dw.getShell(), ResourceMessages.FileResource_errorMessage, 
-                    e.getMessage(), e);
-        }
-
-        return true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewFolderResourceWizard.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewFolderResourceWizard.java
deleted file mode 100644
index 6e1335e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewFolderResourceWizard.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.wizards.newresource;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.dialogs.WizardNewFolderMainPage;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.wizards.newresource.ResourceMessages;
-
-/**
- * Standard workbench wizard that create a new folder resource in the workspace.
- * <p>
- * This class may be instantiated and used without further configuration;
- * this class is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * IWorkbenchWizard wizard = new BasicNewFolderResourceWizard();
- * wizard.init(workbench, selection);
- * WizardDialog dialog = new WizardDialog(shell, wizard);
- * dialog.open();
- * </pre>
- * During the call to <code>open</code>, the wizard dialog is presented to the
- * user. When the user hits Finish, a folder resource at the user-specified
- * workspace path is created, the dialog closes, and the call to
- * <code>open</code> returns.
- * </p>
- */
-public class BasicNewFolderResourceWizard extends BasicNewResourceWizard {
-    private WizardNewFolderMainPage mainPage;
-
-    /**
-     * Creates a wizard for creating a new folder resource in the workspace.
-     */
-    public BasicNewFolderResourceWizard() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public void addPages() {
-        super.addPages();
-        mainPage = new WizardNewFolderMainPage(ResourceMessages.NewFolder_text, getSelection()); 
-        addPage(mainPage);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchWizard.
-     */
-    public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
-        super.init(workbench, currentSelection);
-        setWindowTitle(ResourceMessages.NewFolder_title);
-        setNeedsProgressMonitor(true);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on BasicNewResourceWizard.
-     */
-    protected void initializeDefaultPageImageDescriptor() {
-      ImageDescriptor desc = IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/newfolder_wiz.png");//$NON-NLS-1$
-      setDefaultPageImageDescriptor(desc);
-       
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizard.
-     */
-    public boolean performFinish() {
-        IFolder folder = mainPage.createNewFolder();
-        if (folder == null) {
-			return false;
-		}
-
-        selectAndReveal(folder);
-
-        return true;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewProjectResourceWizard.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewProjectResourceWizard.java
deleted file mode 100644
index 9d36c0e..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewProjectResourceWizard.java
+++ /dev/null
@@ -1,592 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.wizards.newresource;
-
-import java.lang.reflect.InvocationTargetException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-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.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.activities.IActivityManager;
-import org.eclipse.ui.activities.IIdentifier;
-import org.eclipse.ui.activities.IWorkbenchActivitySupport;
-import org.eclipse.ui.activities.WorkbenchActivityHelper;
-import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
-import org.eclipse.ui.dialogs.WizardNewProjectReferencePage;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.IPreferenceConstants;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IDEInternalPreferences;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.registry.PerspectiveDescriptor;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.internal.wizards.newresource.ResourceMessages;
-
-/**
- * Standard workbench wizard that creates a new project resource in the
- * workspace.
- * <p>
- * This class may be instantiated and used without further configuration; this
- * class is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * 
- * <pre>
- * IWorkbenchWizard wizard = new BasicNewProjectResourceWizard();
- * wizard.init(workbench, selection);
- * WizardDialog dialog = new WizardDialog(shell, wizard);
- * dialog.open();
- * </pre>
- * 
- * During the call to <code>open</code>, the wizard dialog is presented to
- * the user. When the user hits Finish, a project resource with the
- * user-specified name is created, the dialog closes, and the call to
- * <code>open</code> returns.
- * </p>
- */
-public class BasicNewProjectResourceWizard extends BasicNewResourceWizard
-        implements IExecutableExtension {
-    private WizardNewProjectCreationPage mainPage;
-
-    private WizardNewProjectReferencePage referencePage;
-
-    // cache of newly-created project
-    private IProject newProject;
-
-    /**
-     * The config element which declares this wizard.
-     */
-    private IConfigurationElement configElement;
-
-    private static String WINDOW_PROBLEMS_TITLE = ResourceMessages.NewProject_errorOpeningWindow; 
-
-    /**
-     * Extension attribute name for final perspective.
-     */
-    private static final String FINAL_PERSPECTIVE = "finalPerspective"; //$NON-NLS-1$
-
-    /**
-     * Extension attribute name for preferred perspectives.
-     */
-    private static final String PREFERRED_PERSPECTIVES = "preferredPerspectives"; //$NON-NLS-1$
-
-    /**
-     * Creates a wizard for creating a new project resource in the workspace.
-     */
-    public BasicNewProjectResourceWizard() {
-        IDialogSettings workbenchSettings = IDEWorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings section = workbenchSettings
-                .getSection("BasicNewProjectResourceWizard");//$NON-NLS-1$
-        if (section == null) {
-			section = workbenchSettings
-                    .addNewSection("BasicNewProjectResourceWizard");//$NON-NLS-1$
-		}
-        setDialogSettings(section);
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public void addPages() {
-        super.addPages();
-
-        mainPage = new WizardNewProjectCreationPage("basicNewProjectPage");//$NON-NLS-1$
-        mainPage.setTitle(ResourceMessages.NewProject_title);
-        mainPage.setDescription(ResourceMessages.NewProject_description);
-        this.addPage(mainPage);
-
-        // only add page if there are already projects in the workspace
-        if (ResourcesPlugin.getWorkspace().getRoot().getProjects().length > 0) {
-            referencePage = new WizardNewProjectReferencePage(
-                    "basicReferenceProjectPage");//$NON-NLS-1$
-            referencePage.setTitle(ResourceMessages.NewProject_referenceTitle);
-            referencePage.setDescription(ResourceMessages.NewProject_referenceDescription);
-            this.addPage(referencePage);
-        }
-    }
-
-    /**
-     * Creates a new project resource with the selected name.
-     * <p>
-     * In normal usage, this method is invoked after the user has pressed Finish
-     * on the wizard; the enablement of the Finish button implies that all
-     * controls on the pages currently contain valid values.
-     * </p>
-     * <p>
-     * Note that this wizard caches the new project once it has been
-     * successfully created; subsequent invocations of this method will answer
-     * the same project resource without attempting to create it again.
-     * </p>
-     * 
-     * @return the created project resource, or <code>null</code> if the
-     *         project was not created
-     */
-    private IProject createNewProject() {
-        if (newProject != null) {
-			return newProject;
-		}
-
-        // get a project handle
-        final IProject newProjectHandle = mainPage.getProjectHandle();
-
-        // get a project descriptor
-        URI location = null;
-        if (!mainPage.useDefaults()) {
-			location = mainPage.getLocationURI();
-		}
-
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        final IProjectDescription description = workspace
-                .newProjectDescription(newProjectHandle.getName());
-        description.setLocationURI(location);
-
-        // update the referenced project if provided
-        if (referencePage != null) {
-            IProject[] refProjects = referencePage.getReferencedProjects();
-            if (refProjects.length > 0) {
-				description.setReferencedProjects(refProjects);
-			}
-        }
-
-        // create the new project operation
-        WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-            protected void execute(IProgressMonitor monitor)
-                    throws CoreException {
-                createProject(description, newProjectHandle, monitor);
-            }
-        };
-
-        // run the new project creation operation
-        try {
-            getContainer().run(true, true, op);
-        } catch (InterruptedException e) {
-            return null;
-        } catch (InvocationTargetException e) {
-            // ie.- one of the steps resulted in a core exception
-            Throwable t = e.getTargetException();
-            if (t instanceof CoreException) {
-                if (((CoreException) t).getStatus().getCode() == IResourceStatus.CASE_VARIANT_EXISTS) {
-                    MessageDialog
-                            .openError(
-                                    getShell(),
-                                    ResourceMessages.NewProject_errorMessage, 
-                                    NLS.bind(ResourceMessages.NewProject_caseVariantExistsError, newProjectHandle.getName()) 
-                            );
-                } else {
-                    ErrorDialog.openError(getShell(), ResourceMessages.NewProject_errorMessage,
-                            null, // no special message
-                            ((CoreException) t).getStatus());
-                }
-            } else {
-                // CoreExceptions are handled above, but unexpected runtime
-                // exceptions and errors may still occur.
-                IDEWorkbenchPlugin.getDefault().getLog().log(
-                        new Status(IStatus.ERROR,
-                                IDEWorkbenchPlugin.IDE_WORKBENCH, 0, t
-                                        .toString(), t));
-                MessageDialog
-                        .openError(
-                                getShell(),
-                                ResourceMessages.NewProject_errorMessage,
-                                NLS.bind(ResourceMessages.NewProject_internalError, t.getMessage()));
-            }
-            return null;
-        }
-
-        newProject = newProjectHandle;
-
-        return newProject;
-    }
-
-    /**
-     * Creates a project resource given the project handle and description.
-     * 
-     * @param description
-     *            the project description to create a project resource for
-     * @param projectHandle
-     *            the project handle to create a project resource for
-     * @param monitor
-     *            the progress monitor to show visual progress with
-     * 
-     * @exception CoreException
-     *                if the operation fails
-     * @exception OperationCanceledException
-     *                if the operation is canceled
-     */
-    void createProject(IProjectDescription description, IProject projectHandle,
-            IProgressMonitor monitor) throws CoreException,
-            OperationCanceledException {
-        try {
-            monitor.beginTask("", 2000);//$NON-NLS-1$
-
-            projectHandle.create(description, new SubProgressMonitor(monitor,
-                    1000));
-
-            if (monitor.isCanceled()) {
-				throw new OperationCanceledException();
-			}
-
-            projectHandle.open(IResource.BACKGROUND_REFRESH, new SubProgressMonitor(monitor, 1000));
-
-        } finally {
-            monitor.done();
-        }
-    }
-
-    /**
-     * Returns the newly created project.
-     * 
-     * @return the created project, or <code>null</code> if project not
-     *         created
-     */
-    public IProject getNewProject() {
-        return newProject;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWorkbenchWizard.
-     */
-    public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
-        super.init(workbench, currentSelection);
-        setNeedsProgressMonitor(true);
-        setWindowTitle(ResourceMessages.NewProject_windowTitle);
-    }
-
-    /*
-     * (non-Javadoc) Method declared on BasicNewResourceWizard.
-     */
-    protected void initializeDefaultPageImageDescriptor() {
-		ImageDescriptor desc = IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/newprj_wiz.png");//$NON-NLS-1$
-        setDefaultPageImageDescriptor(desc);
-    }
-
-    /*
-     * (non-Javadoc) Opens a new window with a particular perspective and input.
-     */
-    private static void openInNewWindow(IPerspectiveDescriptor desc) {
-
-        // Open the page.
-        try {
-            PlatformUI.getWorkbench().openWorkbenchWindow(desc.getId(),
-                    ResourcesPlugin.getWorkspace().getRoot());
-        } catch (WorkbenchException e) {
-            IWorkbenchWindow window = PlatformUI.getWorkbench()
-                    .getActiveWorkbenchWindow();
-            if (window != null) {
-                ErrorDialog.openError(window.getShell(), WINDOW_PROBLEMS_TITLE,
-                        e.getMessage(), e.getStatus());
-            }
-        }
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public boolean performFinish() {
-        createNewProject();
-
-        if (newProject == null) {
-			return false;
-		}
-
-        updatePerspective();
-        selectAndReveal(newProject);
-
-        return true;
-    }
-
-    /*
-     * (non-Javadoc) Replaces the current perspective with the new one.
-     */
-    private static void replaceCurrentPerspective(IPerspectiveDescriptor persp) {
-
-        //Get the active page.
-        IWorkbenchWindow window = PlatformUI.getWorkbench()
-                .getActiveWorkbenchWindow();
-        if (window == null) {
-			return;
-		}
-        IWorkbenchPage page = window.getActivePage();
-        if (page == null) {
-			return;
-		}
-
-        // Set the perspective.
-        page.setPerspective(persp);
-    }
-
-    /**
-     * Stores the configuration element for the wizard. The config element will
-     * be used in <code>performFinish</code> to set the result perspective.
-     */
-    public void setInitializationData(IConfigurationElement cfig,
-            String propertyName, Object data) {
-        configElement = cfig;
-    }
-
-    /**
-     * Updates the perspective for the active page within the window.
-     */
-    protected void updatePerspective() {
-        updatePerspective(configElement);
-    }
-
-    /**
-     * Updates the perspective based on the current settings in the
-     * Workbench/Perspectives preference page.
-     * 
-     * Use the setting for the new perspective opening if we
-     * are set to open in a new perspective.
-     * <p>
-     * A new project wizard class will need to implement the
-     * <code>IExecutableExtension</code> interface so as to gain access to the
-     * wizard's <code>IConfigurationElement</code>. That is the configuration
-     * element to pass into this method.
-     * </p>
-     * @param configElement - the element we are updating with
-     * 
-     * @see IPreferenceConstants#OPM_NEW_WINDOW
-     * @see IPreferenceConstants#OPM_ACTIVE_PAGE
-     * @see IWorkbenchPreferenceConstants#NO_NEW_PERSPECTIVE
-     */
-    public static void updatePerspective(IConfigurationElement configElement) {
-        // Do not change perspective if the configuration element is
-        // not specified.
-        if (configElement == null) {
-			return;
-		}
-
-        // Retrieve the new project open perspective preference setting
-        String perspSetting = PrefUtil.getAPIPreferenceStore().getString(
-                IDE.Preferences.PROJECT_OPEN_NEW_PERSPECTIVE);
-
-        String promptSetting = IDEWorkbenchPlugin.getDefault()
-                .getPreferenceStore().getString(
-                        IDEInternalPreferences.PROJECT_SWITCH_PERSP_MODE);
-
-        // Return if do not switch perspective setting and are not prompting
-        if (!(promptSetting.equals(MessageDialogWithToggle.PROMPT))
-                && perspSetting
-                        .equals(IWorkbenchPreferenceConstants.NO_NEW_PERSPECTIVE)) {
-			return;
-		}
-
-        // Read the requested perspective id to be opened.
-        String finalPerspId = configElement.getAttribute(FINAL_PERSPECTIVE);
-        if (finalPerspId == null) {
-			return;
-		}
-
-        // Map perspective id to descriptor.
-        IPerspectiveRegistry reg = PlatformUI.getWorkbench()
-                .getPerspectiveRegistry();
-
-        // leave this code in - the perspective of a given project may map to
-        // activities other than those that the wizard itself maps to.
-        IPerspectiveDescriptor finalPersp = reg
-                .findPerspectiveWithId(finalPerspId);
-        if (finalPersp != null && finalPersp instanceof IPluginContribution) {
-            IPluginContribution contribution = (IPluginContribution) finalPersp;
-            if (contribution.getPluginId() != null) {
-                IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI
-                        .getWorkbench().getActivitySupport();
-                IActivityManager activityManager = workbenchActivitySupport
-                        .getActivityManager();
-                IIdentifier identifier = activityManager
-                        .getIdentifier(WorkbenchActivityHelper
-                                .createUnifiedId(contribution));
-                Set idActivities = identifier.getActivityIds();
-
-                if (!idActivities.isEmpty()) {
-                    Set enabledIds = new HashSet(activityManager
-                            .getEnabledActivityIds());
-
-                    if (enabledIds.addAll(idActivities)) {
-						workbenchActivitySupport
-                                .setEnabledActivityIds(enabledIds);
-					}
-                }
-            }
-        } else {
-            IDEWorkbenchPlugin.log("Unable to find persective " //$NON-NLS-1$
-                    + finalPerspId
-                    + " in BasicNewProjectResourceWizard.updatePerspective"); //$NON-NLS-1$
-            return;
-        }
-
-        // gather the preferred perspectives
-        // always consider the final perspective (and those derived from it)
-        // to be preferred
-        ArrayList preferredPerspIds = new ArrayList();
-        addPerspectiveAndDescendants(preferredPerspIds, finalPerspId);
-        String preferred = configElement.getAttribute(PREFERRED_PERSPECTIVES);
-        if (preferred != null) {
-            StringTokenizer tok = new StringTokenizer(preferred, " \t\n\r\f,"); //$NON-NLS-1$
-            while (tok.hasMoreTokens()) {
-                addPerspectiveAndDescendants(preferredPerspIds, tok.nextToken());
-            }
-        }
-
-        IWorkbenchWindow window = PlatformUI.getWorkbench()
-                .getActiveWorkbenchWindow();
-        if (window != null) {
-            IWorkbenchPage page = window.getActivePage();
-            if (page != null) {
-                IPerspectiveDescriptor currentPersp = page.getPerspective();
-
-                // don't switch if the current perspective is a preferred
-                // perspective
-                if (currentPersp != null
-                        && preferredPerspIds.contains(currentPersp.getId())) {
-                    return;
-                }
-            }
-
-            // prompt the user to switch
-            if (!confirmPerspectiveSwitch(window, finalPersp)) {
-                return;
-            }
-        }
-
-        int workbenchPerspectiveSetting = WorkbenchPlugin.getDefault()
-                .getPreferenceStore().getInt(
-                        IPreferenceConstants.OPEN_PERSP_MODE);
-
-        // open perspective in new window setting
-        if (workbenchPerspectiveSetting == IPreferenceConstants.OPM_NEW_WINDOW) {
-            openInNewWindow(finalPersp);
-            return;
-        }
-
-        // replace active perspective setting otherwise
-        replaceCurrentPerspective(finalPersp);
-    }
-
-    /**
-     * Adds to the list all perspective IDs in the Workbench who's original ID
-     * matches the given ID.
-     * 
-     * @param perspectiveIds
-     *            the list of perspective IDs to supplement.
-     * @param id
-     *            the id to query.
-     * @since 3.0
-     */
-    private static void addPerspectiveAndDescendants(List perspectiveIds,
-            String id) {
-        IPerspectiveRegistry registry = PlatformUI.getWorkbench()
-                .getPerspectiveRegistry();
-        IPerspectiveDescriptor[] perspectives = registry.getPerspectives();
-        for (int i = 0; i < perspectives.length; i++) {
-            // @issue illegal ref to workbench internal class;
-            // consider adding getOriginalId() as API on IPerspectiveDescriptor
-            PerspectiveDescriptor descriptor = ((PerspectiveDescriptor) perspectives[i]);
-            if (descriptor.getOriginalId().equals(id)) {
-                perspectiveIds.add(descriptor.getId());
-            }
-        }
-    }
-
-    /**
-     * Prompts the user for whether to switch perspectives.
-     * 
-     * @param window
-     *            The workbench window in which to switch perspectives; must not
-     *            be <code>null</code>
-     * @param finalPersp
-     *            The perspective to switch to; must not be <code>null</code>.
-     * 
-     * @return <code>true</code> if it's OK to switch, <code>false</code>
-     *         otherwise
-     */
-    private static boolean confirmPerspectiveSwitch(IWorkbenchWindow window,
-            IPerspectiveDescriptor finalPersp) {
-        IPreferenceStore store = IDEWorkbenchPlugin.getDefault()
-                .getPreferenceStore();
-        String pspm = store
-                .getString(IDEInternalPreferences.PROJECT_SWITCH_PERSP_MODE);
-        if (!IDEInternalPreferences.PSPM_PROMPT.equals(pspm)) {
-            // Return whether or not we should always switch
-            return IDEInternalPreferences.PSPM_ALWAYS.equals(pspm);
-        }
-        String desc = finalPersp.getDescription();
-        String message;
-        if (desc == null || desc.length() == 0)
-        	message = NLS.bind(ResourceMessages.NewProject_perspSwitchMessage, finalPersp.getLabel());
-        else
-        	message = NLS.bind(ResourceMessages.NewProject_perspSwitchMessageWithDesc, new String[] {finalPersp.getLabel(), desc});
-        
-        MessageDialogWithToggle dialog = MessageDialogWithToggle
-                .openYesNoQuestion(window.getShell(), ResourceMessages.NewProject_perspSwitchTitle,
-                		message,
-                        null /* use the default message for the toggle */,
-                        false /* toggle is initially unchecked */, store,
-                        IDEInternalPreferences.PROJECT_SWITCH_PERSP_MODE);
-        int result = dialog.getReturnCode();
-
-        //If we are not going to prompt anymore propogate the choice.
-        if (dialog.getToggleState()) {
-            String preferenceValue;
-            if (result == IDialogConstants.YES_ID) {
-				//Doesn't matter if it is replace or new window
-                //as we are going to use the open perspective setting
-                preferenceValue = IWorkbenchPreferenceConstants.OPEN_PERSPECTIVE_REPLACE;
-			} else {
-				preferenceValue = IWorkbenchPreferenceConstants.NO_NEW_PERSPECTIVE;
-			}
-
-            // update PROJECT_OPEN_NEW_PERSPECTIVE to correspond
-            PrefUtil.getAPIPreferenceStore().setValue(
-                    IDE.Preferences.PROJECT_OPEN_NEW_PERSPECTIVE,
-                    preferenceValue);
-        }
-        return result == IDialogConstants.YES_ID;
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewResourceWizard.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewResourceWizard.java
deleted file mode 100644
index 7a02685..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/BasicNewResourceWizard.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.wizards.newresource;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-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.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.part.ISetSelectionTarget;
-
-/**
- * Abstract base implementation of the standard workbench wizards
- * that create new resources in the workspace.
- * <p>
- * This class is not intended to be subclassed outside this package.
- * </p>
- */
-public abstract class BasicNewResourceWizard extends Wizard implements
-        INewWizard {
-
-    /**
-     * The workbench.
-     */
-    private IWorkbench workbench;
-
-    /**
-     * The current selection.
-     */
-    protected IStructuredSelection selection;
-
-    /**
-     * Creates an empty wizard for creating a new resource in the workspace.
-     */
-    protected BasicNewResourceWizard() {
-        super();
-    }
-
-    /**
-     * Returns the selection which was passed to <code>init</code>.
-     *
-     * @return the selection
-     */
-    public IStructuredSelection getSelection() {
-        return selection;
-    }
-
-    /**
-     * Returns the workbench which was passed to <code>init</code>.
-     *
-     * @return the workbench
-     */
-    public IWorkbench getWorkbench() {
-        return workbench;
-    }
-
-    /**
-     * The <code>BasicNewResourceWizard</code> implementation of this 
-     * <code>IWorkbenchWizard</code> method records the given workbench and
-     * selection, and initializes the default banner image for the pages
-     * by calling <code>initializeDefaultPageImageDescriptor</code>.
-     * Subclasses may extend.
-     */
-    public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
-        this.workbench = workbench;
-        this.selection = currentSelection;
-
-        initializeDefaultPageImageDescriptor();
-    }
-
-    /**
-     * Initializes the default page image descriptor to an appropriate banner.
-     * By calling <code>setDefaultPageImageDescriptor</code>.
-     * The default implementation of this method uses a generic new wizard image.
-     * <p>
-     * Subclasses may reimplement.
-     * </p>
-     */
-    protected void initializeDefaultPageImageDescriptor() {
-		ImageDescriptor desc = IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/new_wiz.png");//$NON-NLS-1$
-        setDefaultPageImageDescriptor(desc);
-    }
-
-    /**
-     * Selects and reveals the newly added resource in all parts
-     * of the active workbench window's active page.
-     *
-     * @see ISetSelectionTarget
-     */
-    protected void selectAndReveal(IResource newResource) {
-        selectAndReveal(newResource, getWorkbench().getActiveWorkbenchWindow());
-    }
-
-    /**
-     * Attempts to select and reveal the specified resource in all
-     * parts within the supplied workbench window's active page.
-     * <p>
-     * Checks all parts in the active page to see if they implement <code>ISetSelectionTarget</code>,
-     * either directly or as an adapter. If so, tells the part to select and reveal the
-     * specified resource.
-     * </p>
-     *
-     * @param resource the resource to be selected and revealed
-     * @param window the workbench window to select and reveal the resource
-     * 
-     * @see ISetSelectionTarget
-     */
-    public static void selectAndReveal(IResource resource,
-            IWorkbenchWindow window) {
-        // validate the input
-        if (window == null || resource == null) {
-			return;
-		}
-        IWorkbenchPage page = window.getActivePage();
-        if (page == null) {
-			return;
-		}
-
-        // get all the view and editor parts
-        List parts = new ArrayList();
-        IWorkbenchPartReference refs[] = page.getViewReferences();
-        for (int i = 0; i < refs.length; i++) {
-            IWorkbenchPart part = refs[i].getPart(false);
-            if (part != null) {
-				parts.add(part);
-			}
-        }
-        refs = page.getEditorReferences();
-        for (int i = 0; i < refs.length; i++) {
-            if (refs[i].getPart(false) != null) {
-				parts.add(refs[i].getPart(false));
-			}
-        }
-
-        final ISelection selection = new StructuredSelection(resource);
-        Iterator itr = parts.iterator();
-        while (itr.hasNext()) {
-            IWorkbenchPart part = (IWorkbenchPart) itr.next();
-
-            // get the part's ISetSelectionTarget implementation
-            ISetSelectionTarget target = null;
-            if (part instanceof ISetSelectionTarget) {
-				target = (ISetSelectionTarget) part;
-			} else {
-				target = (ISetSelectionTarget) part
-                        .getAdapter(ISetSelectionTarget.class);
-			}
-
-            if (target != null) {
-                // select and reveal resource
-                final ISetSelectionTarget finalTarget = target;
-                window.getShell().getDisplay().asyncExec(new Runnable() {
-                    public void run() {
-                        finalTarget.selectReveal(selection);
-                    }
-                });
-            }
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/package.html b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/package.html
deleted file mode 100644
index e7bcb60..0000000
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/newresource/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 standard wizards for creating files,
-folders, and projects in the workspace.
-</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 ce73933..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="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.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 d6bb453..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.project
+++ /dev/null
@@ -1,28 +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> 
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature> 
-	</natures>
-</projectDescription>
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 09a5759..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Wed Sep 27 09:31:37 EDT 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=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.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.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 cf490c7..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Thu Oct 20 14:37:29 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.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.prefs b/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index f7c3626..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Thu Oct 20 14:37:29 EDT 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=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/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 bf146a4..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +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.2.1.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.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.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.2.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)"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
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 9307c58..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/plugin.properties
+++ /dev/null
@@ -1,25 +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
-###############################################################################
-Plugin.name = Navigator Workbench Components
-Plugin.providerName = Eclipse.org 
-
-resource.extension.name=Resources
-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
-
-Advanced=Advanced
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 7e9db91..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/plugin.xml
+++ /dev/null
@@ -1,339 +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.CommonNavigator"
-            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="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>
-      
-      <!-- Action Providers -->
-      <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 
-        		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>
-              <adapt type="org.eclipse.core.resources.IResource"/>
-           </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> 
-        
-      <!-- Expression Filters -->  
-      <commonFilter
-            id="org.eclipse.ui.navigator.resources.filters.startsWithDot"
-            name="%filters.startsWithDot.name"
-            description="%filters.startsWithDot.description"
-            activeByDefault="true"
-            >
-         <filterExpression>
-         	<and>
-	            <instanceof value="org.eclipse.core.resources.IResource"/>
-            	<test property="org.eclipse.core.resources.name" value=".*"/>	            
-	        </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="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="advanced"/>
-       </propertyContributor>
-    </extension>
-    <extension
-          point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-       <propertyTabs contributorId="org.eclipse.ui.navigator.ProjectExplorer">
-          <propertyTab
-                label="%Advanced"
-                category="advanced"
-                id="CommonNavigator.tab.Advanced"/>
-       </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.Advanced"
-                tab="CommonNavigator.tab.Advanced">
-             <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/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 eaebf71..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/CopyAction.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-
-/**
- * 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("Copy"); // TODO ResourceNavigatorMessages.CopyAction_title); //$NON-NLS-1$
-        Assert.isNotNull(shell);
-        Assert.isNotNull(clipboard);
-        this.shell = shell;
-        this.clipboard = clipboard;
-        setToolTipText("Copy Tooltip"); // TODO ResourceNavigatorMessages.CopyAction_toolTip); //$NON-NLS-1$
-        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.getLocation() == 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 229afc6..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/EditActionGroup.java
+++ /dev/null
@@ -1,152 +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.core.resources.IResource;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-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.PlatformUI;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.actions.DeleteResourceAction;
-import org.eclipse.ui.navigator.ICommonMenuConstants;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
-
-/**
- * @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
-	 * @param aTree
-	 */
-	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(IWorkbenchActionDefinitionIds.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(IWorkbenchActionDefinitionIds.COPY);
- 
-		deleteAction = new DeleteResourceAction(shell);
-		deleteAction.setDisabledImageDescriptor(images
-				.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE_DISABLED));
-		deleteAction.setImageDescriptor(images
-				.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
-		deleteAction.setActionDefinitionId(IWorkbenchActionDefinitionIds.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/NewActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/NewActionProvider.java
deleted file mode 100644
index fb48705..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/NewActionProvider.java
+++ /dev/null
@@ -1,138 +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.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 IAction 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;
-
-	}
-
-}
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 e0f59a0..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PasteAction.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-
-/**
- * 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("Paste"); // TODO ResourceNavigatorMessages.PasteAction_title); //$NON-NLS-1$
-        Assert.isNotNull(shell);
-        Assert.isNotNull(clipboard);
-        this.shell = shell;
-        this.clipboard = clipboard;
-        setToolTipText("Paste ToolTip"); // TODO ResourceNavigatorMessages.PasteAction_toolTip); //$NON-NLS-1$
-        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) {
-				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 5737d35..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PortingActionProvider.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 
- *  	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.IActionBars;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-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 fillActionBars(IActionBars theActionBars) {
-		if(!contribute) {
-			return;
-		}
-
-		Assert.isTrue(!disposed);
-
-		theActionBars.setGlobalActionHandler(ActionFactory.IMPORT.getId(),
-				importAction);
-		theActionBars.setGlobalActionHandler(ActionFactory.EXPORT.getId(),
-				exportAction);
-
-	}
-
-	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 90965af..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PropertiesActionProvider.java
+++ /dev/null
@@ -1,170 +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.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.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;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
-
-/**
- * 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(IWorkbenchActionDefinitionIds.PROPERTIES); 
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public void fillContextMenu(IMenuManager menu) {
-		super.fillContextMenu(menu);
-		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)) {
-				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/QuickMenuAction.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/QuickMenuAction.java
deleted file mode 100644
index dfc98d6..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/QuickMenuAction.java
+++ /dev/null
@@ -1,300 +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.actions;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-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.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommand;
-import org.eclipse.ui.commands.ICommandManager;
-import org.eclipse.ui.commands.IKeySequenceBinding;
-
-/**
- * A quick menu actions provides support to assign short cuts to sub menus.
- * 
- * Derived from the class of the same name in the JDT internals.
- * 
- * 
- * <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 abstract class QuickMenuAction extends Action {
-
-	private static final int CHAR_INDENT = 3;
-
-	/**
-	 * Creates a new quick menu action with the given command id.
-	 * 
-	 * @param commandId
-	 *            the command id of the short cut used to open the sub menu
-	 */
-	public QuickMenuAction(String commandId) {
-		setActionDefinitionId(commandId);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public void run() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			return;
-		}
-		Control focus = display.getFocusControl();
-		if (focus == null || focus.isDisposed()) {
-			return;
-		}
-
-		MenuManager menu = new MenuManager();
-		fillMenu(menu);
-		final Menu widget = menu.createContextMenu(focus.getShell());
-		Point location = computeMenuLocation(focus, widget);
-		if (location == null) {
-			return;
-		}
-		widget.setLocation(location);
-		widget.setVisible(true);
-		while (!widget.isDisposed() && widget.isVisible()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-		if (!widget.isDisposed()) {
-			widget.dispose();
-		}
-	}
-
-	/**
-	 * Hook to fill a menu manager with the items of the sub menu.
-	 * 
-	 * @param menu
-	 *            the sub menu to fill
-	 */
-	protected abstract void fillMenu(IMenuManager menu);
-
-	/**
-	 * Returns the short cut assigned to the sub menu or <code>null</code> if no short cut is
-	 * assigned.
-	 * 
-	 * @return the short cut as a human readable string or <code>null</code>
-	 */
-	public String getShortCutString() {
-		final ICommandManager commandManager = PlatformUI.getWorkbench().getCommandSupport().getCommandManager();
-		final ICommand command = commandManager.getCommand(getActionDefinitionId());
-		if (command.isDefined()) {
-			List l = command.getKeySequenceBindings();
-			if (!l.isEmpty()) {
-				IKeySequenceBinding binding = (IKeySequenceBinding) l.get(0);
-				return binding.getKeySequence().format();
-			}
-		}
-		return null;  
-	}
-
-	private Point computeMenuLocation(Control focus, Menu menu) {
-		Point cursorLocation = focus.getDisplay().getCursorLocation();
-		Rectangle clientArea = null;
-		Point result = null;
-		if (focus instanceof StyledText) {
-			StyledText styledText = (StyledText) focus;
-			clientArea = styledText.getClientArea();
-			result = computeMenuLocation(styledText);
-		} else if (focus instanceof Tree) {
-			Tree tree = (Tree) focus;
-			clientArea = tree.getClientArea();
-			result = computeMenuLocation(tree);
-		} else if (focus instanceof Table) {
-			Table table = (Table) focus;
-			clientArea = table.getClientArea();
-			result = computeMenuLocation(table);
-		}
-		if (result == null) {
-			result = focus.toControl(cursorLocation);
-		}
-		if (clientArea != null && !clientArea.contains(result)) {
-			result = new Point(clientArea.x + clientArea.width / 2, clientArea.y + clientArea.height / 2);
-		}
-		Rectangle shellArea = focus.getShell().getClientArea();
-		if (!shellArea.contains(focus.getShell().toControl(focus.toDisplay(result)))) {
-			result = new Point(shellArea.x + shellArea.width / 2, shellArea.y + shellArea.height / 2);
-		}
-		return focus.toDisplay(result);
-	}
-
-	/**
-	 * Hook to compute the menu location if the focus widget is a styled text widget.
-	 * 
-	 * @param text
-	 *            the styled text widget that has the focus
-	 * 
-	 * @return a widget relative position of the menu to pop up or <code>null</code> if now
-	 *         position inside the widget can be computed
-	 */
-	protected Point computeMenuLocation(StyledText text) {
-		Point result = text.getLocationAtOffset(text.getCaretOffset());
-		result.y += text.getLineHeight();
-		if (!text.getClientArea().contains(result)) {
-			return null;
-		}
-		return result;
-	}
-
-	/**
-	 * Hook to compute the menu location if the focus widget is a tree widget.
-	 * 
-	 * @param tree
-	 *            the tree widget that has the focus
-	 * 
-	 * @return a widget relative position of the menu to pop up or <code>null</code> if now
-	 *         position inside the widget can be computed
-	 */
-	protected Point computeMenuLocation(Tree tree) {
-		TreeItem[] items = tree.getSelection();
-		Rectangle clientArea = tree.getClientArea();
-		switch (items.length) {
-			case 0 :
-				return null;
-			case 1 :
-				Rectangle bounds = items[0].getBounds();
-				Rectangle intersect = clientArea.intersection(bounds);
-				if (intersect != null && intersect.height == bounds.height) {
-					return new Point(Math.max(0, bounds.x + getAvarageCharWith(tree) * CHAR_INDENT), bounds.y + bounds.height);
-				}
-				return null;
-
-			default :
-				Rectangle[] rectangles = new Rectangle[items.length];
-				for (int i = 0; i < rectangles.length; i++) {
-					rectangles[i] = items[i].getBounds();
-				}
-				Point cursorLocation = tree.getDisplay().getCursorLocation();
-				Point result = findBestLocation(getIncludedPositions(rectangles, clientArea), tree.toControl(cursorLocation));
-				if (result != null) {
-					result.x = result.x + getAvarageCharWith(tree) * CHAR_INDENT;
-				}
-				return result;
-		}
-	}
-
-	/**
-	 * Hook to compute the menu location if the focus widget is a table widget.
-	 * 
-	 * @param table
-	 *            the table widget that has the focus
-	 * 
-	 * @return a widget relative position of the menu to pop up or <code>null</code> if now
-	 *         position inside the widget can be computed
-	 */
-	protected Point computeMenuLocation(Table table) {
-		TableItem[] items = table.getSelection();
-		Rectangle clientArea = table.getClientArea();
-		switch (items.length) {
-			case 0 : {
-				return null;
-			}
-			case 1 : {
-				Rectangle bounds = items[0].getBounds(0);
-				Rectangle iBounds = items[0].getImageBounds(0);
-				Rectangle intersect = clientArea.intersection(bounds);
-				if (intersect != null && intersect.height == bounds.height) {
-					return new Point(Math.max(0, bounds.x + iBounds.width + getAvarageCharWith(table) * CHAR_INDENT), bounds.y + bounds.height);
-				}
-				return null;
-
-			}
-			default : {
-				Rectangle[] rectangles = new Rectangle[items.length];
-				for (int i = 0; i < rectangles.length; i++) {
-					rectangles[i] = items[i].getBounds(0);
-				}
-				Rectangle iBounds = items[0].getImageBounds(0);
-				Point cursorLocation = table.getDisplay().getCursorLocation();
-				Point result = findBestLocation(getIncludedPositions(rectangles, clientArea), table.toControl(cursorLocation));
-				if (result != null) {
-					result.x = result.x + iBounds.width + getAvarageCharWith(table) * CHAR_INDENT;
-				}
-				return result;
-			}
-		}
-	}
-
-	private Point[] getIncludedPositions(Rectangle[] rectangles, Rectangle widgetBounds) {
-		List result = new ArrayList();
-		for (int i = 0; i < rectangles.length; i++) {
-			Rectangle rectangle = rectangles[i];
-			Rectangle intersect = widgetBounds.intersection(rectangle);
-			if (intersect != null && intersect.height == rectangle.height) {
-				result.add(new Point(intersect.x, intersect.y + intersect.height));
-			}
-		}
-		return (Point[]) result.toArray(new Point[result.size()]);
-	}
-
-	private Point findBestLocation(Point[] points, Point relativeCursor) {
-		Point result = null;
-		double bestDist = Double.MAX_VALUE;
-		for (int i = 0; i < points.length; i++) {
-			Point point = points[i];
-			int a = 0;
-			int b = 0;
-			if (point.x > relativeCursor.x) {
-				a = point.x - relativeCursor.x;
-			} else {
-				a = relativeCursor.x - point.x;
-			}
-			if (point.y > relativeCursor.y) {
-				b = point.y - relativeCursor.y;
-			} else {
-				b = relativeCursor.y - point.y;
-			}
-			double dist = Math.sqrt(a * a + b * b);
-			if (dist < bestDist) {
-				result = point;
-				bestDist = dist;
-			}
-		}
-		return result;
-	}
-
-	private int getAvarageCharWith(Control control) {
-		GC gc = null;
-		try {
-			gc = new GC(control);
-			return gc.getFontMetrics().getAverageCharWidth();
-		} finally {
-			if (gc != null) {
-				gc.dispose();
-			}
-		}
-	}
-}
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 73943ff..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.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.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;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
-
-/**
- * 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() {
-
-		moveAction = new MoveResourceAction(shell);
-		moveAction.setActionDefinitionId(IWorkbenchActionDefinitionIds.MOVE);
-		
-		renameAction = new RenameResourceAction(shell, tree);
-		renameAction.setActionDefinitionId(IWorkbenchActionDefinitionIds.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 2695907..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/RefactorActionProvider.java
+++ /dev/null
@@ -1,77 +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.core.commands.operations.IUndoContext;
-import org.eclipse.core.resources.ResourcesPlugin;
-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;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-import org.eclipse.ui.operations.UndoRedoActionGroup;
-
-/**
- * @since 3.2
- * 
- */
-public class RefactorActionProvider extends CommonActionProvider {
-
-	private UndoRedoActionGroup undoRedoGroup;
-
-	private RefactorActionGroup refactorGroup;
-
-	private ICommonActionExtensionSite site;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator.ICommonActionExtensionSite)
-	 */
-	public void init(ICommonActionExtensionSite anActionSite) {
-		site = anActionSite;
-		refactorGroup = new RefactorActionGroup(site.getViewSite().getShell(), (Tree)site.getStructuredViewer().getControl());
-
-		IUndoContext workspaceContext = (IUndoContext) ResourcesPlugin
-				.getWorkspace().getAdapter(IUndoContext.class);
-		undoRedoGroup = new UndoRedoActionGroup(((ICommonViewerWorkbenchSite) anActionSite.getViewSite()).getSite(),
-				workspaceContext, true);
-	}
-
-	public void dispose() {
-		undoRedoGroup.dispose();
-		refactorGroup.dispose();
-	}
-
-	public void fillActionBars(IActionBars actionBars) {
-		undoRedoGroup.fillActionBars(actionBars);
-		refactorGroup.fillActionBars(actionBars);
-	}
-
-	public void fillContextMenu(IMenuManager menu) {
-		undoRedoGroup.fillContextMenu(menu);
-		refactorGroup.fillContextMenu(menu);
-	}
-
-	public void setContext(ActionContext context) {
-		undoRedoGroup.setContext(context);
-		refactorGroup.setContext(context);
-	}
-
-	public void updateActionBars() {
-		undoRedoGroup.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 a28ed89..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceMgmtActionProvider.java
+++ /dev/null
@@ -1,219 +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 java.util.Iterator;
-
-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.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-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.ide.IDEActionFactory;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-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() {
-        //Shell shell = navigator.getSite().getShell();
-        openProjectAction = new OpenResourceAction(shell);
-        
-        closeProjectAction = new CloseResourceAction(shell);
-        
-        closeUnrelatedProjectsAction = new CloseUnrelatedProjectsAction(shell);
-        
-        refreshAction = new RefreshAction(shell);
-        refreshAction
-                .setDisabledImageDescriptor(getImageDescriptor("dlcl16/refresh_nav.gif"));//$NON-NLS-1$
-        refreshAction
-                .setImageDescriptor(getImageDescriptor("elcl16/refresh_nav.gif"));//$NON-NLS-1$       
-        refreshAction.setActionDefinitionId("org.eclipse.ui.file.refresh"); //$NON-NLS-1$
-        
-        buildAction = new BuildAction(shell,
-                IncrementalProjectBuilder.INCREMENTAL_BUILD);
-        buildAction.setActionDefinitionId("org.eclipse.ui.project.buildProject"); //$NON-NLS-1$
-    }
-
-    /**
-     * 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/WorkManagementActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkManagementActionProvider.java
deleted file mode 100644
index 775835c..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkManagementActionProvider.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.ui.internal.navigator.resources.actions;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-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) {
-		Shell shell = aSite.getViewSite().getShell();
-		addBookmarkAction = new AddBookmarkAction(shell);
-		addTaskAction = new AddTaskAction(shell);
-	}
-
-	/*
-	 * (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 e01561c..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkingSetActionProvider.java
+++ /dev/null
@@ -1,306 +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.core.resources.ResourcesPlugin;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkingSetFilterActionGroup;
-import org.eclipse.ui.internal.navigator.workingsets.WorkingSetsContentProvider;
-import org.eclipse.ui.navigator.CommonActionProvider;
-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 boolean ready = false;
-
-	private StructuredViewer viewer;
-
-	private INavigatorContentService contentService;
-
-	private WorkingSetFilterActionGroup workingSetActionGroup;
-	private WorkingSetRootModeActionGroup workingSetRootModeActionGroup;
-
-	private Object originalViewerInput = ResourcesPlugin.getWorkspace().getRoot();
-
-	private IExtensionStateModel extensionStateModel;
-
-	/**
-	 * 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) {
-
-			Object input = viewer.getInput();
-			if (input instanceof IWorkingSet) {
-				IWorkingSet workingSet = (IWorkingSet) input;
-
-				String property = event.getProperty();
-				Object newValue = event.getNewValue();
-				Object oldValue = event.getOldValue();
-
-				if (IWorkingSetManager.CHANGE_WORKING_SET_REMOVE.equals(property) && oldValue == workingSet) {
-					// setWorkingSet(null);
-					if (viewer != null) {
-						viewer.setInput(originalViewerInput);
-					}
-				} else if (IWorkingSetManager.CHANGE_WORKING_SET_NAME_CHANGE.equals(property) && newValue == workingSet) {
-				} 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);
-					// }
-					// } else {
-					// // we've gone from empty to non-empty on our set.
-					// // Restore it.
-					// if (emptyWorkingSet) {
-					// emptyWorkingSet = false;
-					// workingSetFilter.setWorkingSet(workingSet);
-					// }
-					// }
-					if (viewer != null) {
-						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() {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			IWorkingSet oldWorkingSet = (IWorkingSet) event.getOldValue();
-			IWorkingSet newWorkingSet = (IWorkingSet) event.getNewValue();
-
-
-			if (newWorkingSet != null && !contentService.isActive(WorkingSetsContentProvider.EXTENSION_ID)) {
-				contentService.getActivationService().activateExtensions(new String[]{WorkingSetsContentProvider.EXTENSION_ID}, false);
-				contentService.getActivationService().persistExtensionActivations();
-			}
-
-			if (viewer != null) {
-				if (newWorkingSet == null) {
-					viewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
-				} else if(oldWorkingSet != newWorkingSet) {
-					viewer.setInput(newWorkingSet);
-				}
-			}
-
-		}
-	};
-
-	private WorkingSetManagerListener managerChangeListener = new WorkingSetManagerListener();
-
-	private IExtensionActivationListener activationListener = new IExtensionActivationListener() {
-
-		private IWorkingSet workingSet;
-
-		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);
-
-						if (workingSet != null) {
-							viewer.setInput(workingSet);  
-							workingSetActionGroup.setWorkingSet(workingSet); 
-							workingSetRootModeActionGroup.setShowTopLevelWorkingSets(true);
-						}
-						managerChangeListener.listen();					
-
-
-					} else {
-						Object input = viewer.getInput();
-						if (input instanceof IWorkingSet) {
-							workingSet = (IWorkingSet) input;
-							if (viewer != null && input != originalViewerInput) {
-								viewer.setInput(originalViewerInput);
-							}
-						} else {
-							workingSet = null;
-						}
-						managerChangeListener.ignore();
-						workingSetActionGroup.setWorkingSet(null);
-						workingSetRootModeActionGroup.setShowTopLevelWorkingSets(false);
-
-					}
-				}
-			}
-		}
-
-	};
-
-	 
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator.ICommonActionExtensionSite)
-	 */
-	public void init(ICommonActionExtensionSite aSite) {
-		viewer = aSite.getStructuredViewer();
-		contentService = aSite.getContentService();
-
-		extensionStateModel = contentService.findStateModel(WorkingSetsContentProvider.EXTENSION_ID);
-
-		workingSetActionGroup = new WorkingSetFilterActionGroup(aSite.getViewSite().getShell(), filterChangeListener);
-
-		if (extensionStateModel != null) {
-			workingSetRootModeActionGroup = new WorkingSetRootModeActionGroup(viewer, extensionStateModel);
-		}
-
-
-		if (contentService.isActive(WorkingSetsContentProvider.EXTENSION_ID)) {
-			managerChangeListener.listen();
-		}
-
-		contentService.getActivationService().addExtensionActivationListener(activationListener);
-	}
-	
-	/* (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);
-
-			if(viewer != null) {
-				String lastWorkingSetName = aMemento.getString(TAG_CURRENT_WORKING_SET_NAME);			
-				IWorkingSetManager workingSetManager = PlatformUI.getWorkbench().getWorkingSetManager();			
-				IWorkingSet lastWorkingSet = workingSetManager.getWorkingSet(lastWorkingSetName);			 
-				viewer.setInput(lastWorkingSet);
-				workingSetActionGroup.setWorkingSet(lastWorkingSet);
-			}
-			ready = true;
-		} 
-
-
-	}
-	
-	/* (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(viewer != null) {
-				Object input = viewer.getInput();
-				if(input instanceof IWorkingSet) {
-					IWorkingSet workingSet = (IWorkingSet) input;
-					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(ready) {
-			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();
-
-		contentService.getActivationService().removeExtensionActivationListener(activationListener);
-	}
-}
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 80f8c50..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkingSetRootModeActionGroup.java
+++ /dev/null
@@ -1,240 +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.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;
-
-/**
- * @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 implements IAction {
-
-		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 structuredViewer
-	 * @param stateModel
-	 */
-	public WorkingSetRootModeActionGroup(StructuredViewer aStructuredViewer, IExtensionStateModel aStateModel) {
-		super();
-		structuredViewer = aStructuredViewer;
-		stateModel = aStateModel;
- 	}
-
-
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see ActionGroup#fillActionBars(IActionBars)
-	 */
-	public void fillActionBars(IActionBars actionBars) {
-		if (!hasContributedToViewMenu) {
-			synchronized (this) {
-				if (!hasContributedToViewMenu) {
-					hasContributedToViewMenu = true;
-					contributeToViewMenu(actionBars.getMenuManager());
-				}
-			}
-		}
-	}
-
-	private void contributeToViewMenu(IMenuManager viewMenu) {
-		viewMenu.add(new Separator());
-
-		// Create layout sub menu
-
-		IMenuManager topLevelSubMenu = new MenuManager(WorkbenchNavigatorMessages.WorkingSetRootModeActionGroup_Top_Level_Element_);
-		final String layoutGroupName = "topLevelElements"; //$NON-NLS-1$
-		Separator marker = new Separator(layoutGroupName);
-
-		viewMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-		viewMenu.add(marker);
-		viewMenu.appendToGroup(layoutGroupName, topLevelSubMenu);
-		viewMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS + "-end"));//$NON-NLS-1$		
-		addActions(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++) {
-				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;
-
-	} 
-
-	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 5881571..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/NavigatorUIPluginImages.java
+++ /dev/null
@@ -1,125 +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.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 String
-	 *            prefix - Icon dir structure.
-	 * @param String
-	 *            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 String
-	 *            prefix - Icon dir structure.
-	 * @param String
-	 *            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 54940d9..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/WorkbenchNavigatorMessages.java
+++ /dev/null
@@ -1,74 +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.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$
-
-	/** Message key. */
-	public static String PortingActionProvider_ImportResourcesMenu_label;
-
-	/** Message key. */
-	public static String PortingActionProvider_ExportResourcesMenu_label;
-
-	/** Message key. */
-	public static String NewActionProvider_NewMenu_label;
-
-	/** Message key. */
-	public static String OpenActionProvider_OpenWithMenu_label;
-
-	/** Message key. */
-	public static String DropAdapter_title;
-
-	/** Message key. */
-	public static String DropAdapter_problemImporting;
-
-	/** Message key. */
-	public static String DropAdapter_problemsMoving;
-
-	/** Message key. */
-	public static String DropAdapter_targetMustBeResource;
-
-	/** Message key. */
-	public static String DropAdapter_canNotDropIntoClosedProject;
-
-	/** Message key. */
-	public static String DropAdapter_resourcesCanNotBeSiblings;
-
-	/** Message key. */
-	public static String DropAdapter_dropOperationErrorOther;
-	
-
-	/** Message key. */
-	public static String MoveResourceAction_title;
-
-	/** Message key. */
-	public static String MoveResourceAction_checkMoveMessage;
-
-	public static String WorkingSetRootModeActionGroup_Top_Level_Element_;
-
-	public static String WorkingSetRootModeActionGroup_Project_;
-
-	public static String WorkingSetRootModeActionGroup_Working_Set_;
-
-	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 8cb080d..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/WorkbenchNavigatorPlugin.java
+++ /dev/null
@@ -1,150 +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.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.
- * 
- * 
- * <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 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 68067fd..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/messages.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-#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_problemsMoving=Problems occurred while moving resources.
-DropAdapter_dropOperationErrorOther=An error occurred during the drop operation.
-NewActionProvider_NewMenu_label=&New
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceComparator.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceComparator.java
deleted file mode 100644
index 4099c1c..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceComparator.java
+++ /dev/null
@@ -1,54 +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.workbench;
-
-import java.util.Comparator;
-
-import org.eclipse.ui.views.navigator.ResourceSorter;
-
-/**
- * 
- * <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 
- *
- */
-class ResourceComparator implements Comparator {
-
-	private ResourceSorter sorter = new ResourceSorter(ResourceSorter.NAME);
-
-	/**
-	 * The following compare will sort items based on their type (in the order of: ROOT, PROJECT,
-	 * FOLDER, FILE) and then based on their String representation
-	 * 
-	 * (non-Javadoc)
-	 * 
-	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-	 */
-	public int compare(Object o1, Object o2) {
-		return this.sorter.compare(null, o1, o2);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.util.Comparator#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-
-		return obj instanceof ResourceComparator;
-	}
-}
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 5525982..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionContentProvider.java
+++ /dev/null
@@ -1,300 +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 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.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.model.WorkbenchContentProvider;
-
-/**
- * <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 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) {
-		return element instanceof IContainer && 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 70a9c44..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionSorter.java
+++ /dev/null
@@ -1,30 +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.views.navigator.ResourceSorter;
-
-/**
- * @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 cfabcc4..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceLinkHelper.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.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.IFileEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-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) {
-		if (anInput instanceof IFileEditorInput)
-			return new StructuredSelection(((IFileEditorInput) anInput).getFile());
-		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 37e3d5d..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetAdapterFactory.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.internal.navigator.resources.workbench;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.ui.navigator.CommonNavigator;
-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 (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 5f0c103..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetTitleProvider.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.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;
-
-/**
- * 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().getActivePart();
-
-		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 378ad7b..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsContentProvider.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package org.eclipse.ui.internal.navigator.workingsets;
-
-import java.util.Map;
-import java.util.WeakHashMap;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.internal.AggregateWorkingSet;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonContentProvider;
-import org.eclipse.ui.navigator.IExtensionStateModel;
-
-/**
- * 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 static final int WORKING_SETS = 0;
-	private static final int PROJECTS = 1;
-
-	private WorkingSetHelper helper;
-	private int rootMode = WORKING_SETS;
-	private IExtensionStateModel extensionStateModel;	
-
-	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) {
-		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 (rootMode) {
-					case WORKING_SETS :
-						return ((AggregateWorkingSet) workingSet).getComponents();
-					case PROJECTS :
-						return workingSet.getElements();
-				}
-			}
-			return workingSet.getElements();
-		}
-		return NO_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) )
-			rootMode = WORKING_SETS;
-		else 
-			rootMode = 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()) {
-				AggregateWorkingSet aggregateSet = (AggregateWorkingSet) workingSet;
-
-				IWorkingSet[] components = aggregateSet.getComponents();
-
-				for (int componentIndex = 0; componentIndex < components.length; componentIndex++) {
-					IAdaptable[] elements = components[componentIndex].getElements();
-					for (int elementsIndex = 0; elementsIndex < elements.length; elementsIndex++) {
-						parents.put(elements[elementsIndex], components[componentIndex]);
-					}
-					parents.put(components[componentIndex], aggregateSet);
-
-				}
-			} else {
-				IAdaptable[] elements = workingSet.getElements();
-				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) {
-			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 959992f..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsLabelProvider.java
+++ /dev/null
@@ -1,49 +0,0 @@
-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) {
-		// 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
-
-	}
-
-}
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 24d207e..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDragAdapterAssistant.java
+++ /dev/null
@@ -1,151 +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.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.navigator.CommonDragAdapterAssistant;
-import org.eclipse.ui.navigator.INavigatorDnDService;
-import org.eclipse.ui.part.ResourceTransfer;
-import org.eclipse.ui.views.navigator.LocalSelectionTransfer;
-
-/**
- * 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
- * 
- */
-public final class ResourceDragAdapterAssistant extends
-		CommonDragAdapterAssistant {
-
-	private static final boolean DEBUG = false;
-
-	private static final Transfer[] SUPPORTED_TRANSFERS = new Transfer[] {
-			ResourceTransfer.getInstance(),
-			LocalSelectionTransfer.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) {
-
-		if (LocalSelectionTransfer.getInstance().isSupportedType(
-				anEvent.dataType)) {
-			anEvent.data = aSelection;
-			if (DEBUG) {
-				System.out
-						.println("ResourceDragAdapterAssistant.dragSetData set LocalSelectionTransfer"); //$NON-NLS-1$
-			}
-			return true;
-		} else if (ResourceTransfer.getInstance().isSupportedType(
-				anEvent.dataType)) {
-			anEvent.data = getSelectedResources(aSelection);
-			if (DEBUG) {
-				System.out
-						.println("ResourceDragAdapterAssistant.dragSetData set ResourceTransfer"); //$NON-NLS-1$
-			}
-			return true;
-		} else if (FileTransfer.getInstance().isSupportedType(anEvent.dataType)) {
-
-			IResource[] resources = getSelectedResources(aSelection);
-
-			// 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 (DEBUG)
-					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 31a356b..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDropAdapterAssistant.java
+++ /dev/null
@@ -1,508 +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.navigator.resources;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-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.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.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 boolean DEBUG = false;
-	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();
-
-			if (selectedResources.length == 0) {
-				message = WorkbenchNavigatorMessages.DropAdapter_dropOperationErrorOther;
-			} else {
-				CopyFilesAndFoldersOperation operation;
-				if (aDropOperation == DND.DROP_COPY) {
-					if (DEBUG) {
-						System.out
-								.println("ResourceDropAdapterAssistant.validateDrop validating COPY."); //$NON-NLS-1$
-					}
-
-					operation = new CopyFilesAndFoldersOperation(getShell());
-				} else {
-					if (DEBUG) {
-						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 (DEBUG) {
-			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();
-		} 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 (DEBUG) {
-					System.out
-							.println("ResourceDropAdapterAssistant.handleDrop executing COPY."); //$NON-NLS-1$
-				}
-				status = performResourceCopy(aDropAdapter, getShell(),
-						resources);
-			} else {
-				if (DEBUG) {
-					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.navigator/.classpath b/bundles/org.eclipse.ui.navigator/.classpath
deleted file mode 100644
index 52165ec..0000000
--- a/bundles/org.eclipse.ui.navigator/.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.navigator/.cvsignore b/bundles/org.eclipse.ui.navigator/.cvsignore
deleted file mode 100644
index 9e03f0a..0000000
--- a/bundles/org.eclipse.ui.navigator/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-temp.folder
-navigator.jar
-build.xml
-doc
diff --git a/bundles/org.eclipse.ui.navigator/.project b/bundles/org.eclipse.ui.navigator/.project
deleted file mode 100644
index b191e3d..0000000
--- a/bundles/org.eclipse.ui.navigator/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.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.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature> 
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.navigator/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.navigator/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2d750da..0000000
--- a/bundles/org.eclipse.ui.navigator/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,72 +0,0 @@
-#Mon Feb 06 11:18:56 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.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=error
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-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.unusedLabel=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.navigator/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.navigator/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index b653c09..0000000
--- a/bundles/org.eclipse.ui.navigator/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Thu Jul 21 14:21:56 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.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/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.navigator/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d8e8469..0000000
--- a/bundles/org.eclipse.ui.navigator/.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.navigator/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.navigator/META-INF/MANIFEST.MF
deleted file mode 100644
index a24bfba..0000000
--- a/bundles/org.eclipse.ui.navigator/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.navigator; singleton:=true
-Bundle-Version: 3.2.100.qualifier
-Bundle-Activator: org.eclipse.ui.internal.navigator.NavigatorPlugin
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.internal.navigator;x-friends:="org.eclipse.ui.navigator.ide,org.eclipse.ui.navigator.resources",
- org.eclipse.ui.internal.navigator.actions;x-friends:="org.eclipse.ui.navigator.ide,org.eclipse.ui.navigator.resources",
- org.eclipse.ui.internal.navigator.dnd;x-friends:="org.eclipse.ui.navigator.ide,org.eclipse.ui.navigator.resources",
- org.eclipse.ui.internal.navigator.extensions;x-friends:="org.eclipse.ui.navigator.ide,org.eclipse.ui.navigator.resources",
- org.eclipse.ui.internal.navigator.filters;x-friends:="org.eclipse.ui.navigator.ide,org.eclipse.ui.navigator.resources,org.eclipse.ui.tests.navigator",
- org.eclipse.ui.internal.navigator.sorters;x-internal:=true,
- org.eclipse.ui.internal.navigator.wizards;x-internal:=true,
- org.eclipse.ui.navigator
-Require-Bundle: org.eclipse.jface;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui.workbench;bundle-version="[3.2.1,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.2.1,4.0.0)",
- org.eclipse.core.expressions;bundle-version="[3.2.0,4.0.0)"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.ui.navigator/about.html b/bundles/org.eclipse.ui.navigator/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.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/bundles/org.eclipse.ui.navigator/build.properties b/bundles/org.eclipse.ui.navigator/build.properties
deleted file mode 100644
index bf74edb..0000000
--- a/bundles/org.eclipse.ui.navigator/build.properties
+++ /dev/null
@@ -1,21 +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.. = src/
-bin.includes = plugin.xml,\
-               icons/,\
-               .,\
-               META-INF/,\
-               plugin.properties,\
-               about.html
-output.. = bin/
-src.includes = component.xml,\
-               about.html,\
-               schema/
diff --git a/bundles/org.eclipse.ui.navigator/component.xml b/bundles/org.eclipse.ui.navigator/component.xml
deleted file mode 100644
index 8b53efc..0000000
--- a/bundles/org.eclipse.ui.navigator/component.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<component xmlns="http://eclipse.org/component"
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://eclipse.org/component ../component.xsd "
-   name="Common Navigator">
-   
-	<plugin
-		id="org.eclipse.ui.navigator" fragment="false" />	
-		
-	<plugin
-		id="org.eclipse.ui.navigator.resources" fragment="false" />
-
- <package name="org.eclipse.ui.navigator">
- 
-   <type name= "CommonNavigator" subclass="true"/>
-   <type name= "CommonViewer" subclass="true"/>
-   
-   <type name= "CommonNavigatorManager" subclass="false"/>  
-   <type name= "Priority" subclass="false"/>    
-   <type name= "INavigatorActionService" implements="false"/>    
-   <type name= "INavigatorContentService" implements="false"/>    
-   
-   <!--  Contracts for the framework  -->
-   <type name= "ICommonActionProvider" implements="true"/>        
-   <type name= "ICommonDropActionDelegate" implements="true"/>        
-   <type name= "ICommonLabelProvider" implements="true"/>         
-   <type name= "ICommonOpenListener" implements="true"/>        
-   <type name= "IDescriptionProvider" implements="true"/>            
-   <type name= "ILinkHelper" implements="true"/>        
-   <type name= "IMementoAware" implements="true"/>        
-   <type name= "INavigatorExtensionFilter" implements="true"/>    
-   
-   <!--  Contracts for the clients -->
-   <type name= "IExtensionStateModel" implements="false"/>    
-   <type name= "ICommonMenuConstants" implements="false"/>  
- </package>
- 
- <component-depends unrestricted="true"/>
-</component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/collapseall.gif b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/collapseall.gif
deleted file mode 100644
index 0bae56c..0000000
--- a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/elipses.gif b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/elipses.gif
deleted file mode 100644
index cb41506..0000000
--- a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/elipses.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/pause.gif b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/pause.gif
deleted file mode 100644
index d645fa5..0000000
--- a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/pause.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/synced.gif b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/synced.gif
deleted file mode 100644
index f865f3a..0000000
--- a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/elcl16/collapseall.gif b/bundles/org.eclipse.ui.navigator/icons/full/elcl16/collapseall.gif
deleted file mode 100644
index a2d80a9..0000000
--- a/bundles/org.eclipse.ui.navigator/icons/full/elcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/elcl16/filter_ps.gif b/bundles/org.eclipse.ui.navigator/icons/full/elcl16/filter_ps.gif
deleted file mode 100644
index a4c9e60..0000000
--- a/bundles/org.eclipse.ui.navigator/icons/full/elcl16/filter_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/elcl16/synced.gif b/bundles/org.eclipse.ui.navigator/icons/full/elcl16/synced.gif
deleted file mode 100644
index 870934b..0000000
--- a/bundles/org.eclipse.ui.navigator/icons/full/elcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/javadoc-images/framework-overview.jpg b/bundles/org.eclipse.ui.navigator/javadoc-images/framework-overview.jpg
deleted file mode 100644
index 95122e2..0000000
--- a/bundles/org.eclipse.ui.navigator/javadoc-images/framework-overview.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/javadoc-images/navigator_logical_extension.jpg b/bundles/org.eclipse.ui.navigator/javadoc-images/navigator_logical_extension.jpg
deleted file mode 100644
index eff9f7c..0000000
--- a/bundles/org.eclipse.ui.navigator/javadoc-images/navigator_logical_extension.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/jdt-patch/org.eclipse.jdt.ui_patch.txt b/bundles/org.eclipse.ui.navigator/jdt-patch/org.eclipse.jdt.ui_patch.txt
deleted file mode 100644
index 45bdabc..0000000
--- a/bundles/org.eclipse.ui.navigator/jdt-patch/org.eclipse.jdt.ui_patch.txt
+++ /dev/null
@@ -1,1577 +0,0 @@
-### Eclipse Workspace Patch 1.0
-#P org.eclipse.jdt.ui
-Index: ui/org/eclipse/jdt/internal/ui/workingsets/ConfigureWorkingSetAction.java
-===================================================================
-RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/ConfigureWorkingSetAction.java,v
-retrieving revision 1.9
-diff -u -r1.9 ConfigureWorkingSetAction.java
---- ui/org/eclipse/jdt/internal/ui/workingsets/ConfigureWorkingSetAction.java	18 Nov 2005 14:45:35 -0000	1.9
-+++ ui/org/eclipse/jdt/internal/ui/workingsets/ConfigureWorkingSetAction.java	8 Feb 2006 00:46:03 -0000
-@@ -14,6 +14,8 @@
- import java.util.Arrays;
- import java.util.List;
- 
-+import org.eclipse.swt.widgets.Shell;
-+
- import org.eclipse.jface.action.Action;
- import org.eclipse.jface.dialogs.IDialogConstants;
- 
-@@ -21,13 +23,18 @@
- import org.eclipse.ui.IWorkingSet;
- 
- public class ConfigureWorkingSetAction extends Action {
--
--	private final IWorkbenchPartSite fSite;
-+ 
- 	private WorkingSetModel fWorkingSetModel;
-+	private Shell fShell; 
- 
- 	public ConfigureWorkingSetAction(IWorkbenchPartSite site) {
- 		super(WorkingSetMessages.ConfigureWorkingSetAction_label); 
--		fSite= site;
-+		fShell= site.getShell();
-+	}
-+	
-+	public ConfigureWorkingSetAction(Shell shell) {
-+		super(WorkingSetMessages.ConfigureWorkingSetAction_label); 
-+		fShell= shell;
- 	}
- 	
- 	public void setWorkingSetModel(WorkingSetModel model) {
-@@ -39,9 +46,10 @@
- 	 */
- 	public void run() {
- 		List workingSets= new ArrayList(Arrays.asList(fWorkingSetModel.getAllWorkingSets()));
-+
- 		IWorkingSet[] activeWorkingSets= fWorkingSetModel.getActiveWorkingSets();
- 		WorkingSetConfigurationDialog dialog= new WorkingSetConfigurationDialog(
--			fSite.getShell(), 
-+			fShell, 
- 			(IWorkingSet[])workingSets.toArray(new IWorkingSet[workingSets.size()]),
- 			activeWorkingSets); 
- 		dialog.setSelection(activeWorkingSets);
-Index: ui/org/eclipse/jdt/internal/ui/workingsets/ViewActionGroup.java
-===================================================================
-RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/ViewActionGroup.java,v
-retrieving revision 1.8
-diff -u -r1.8 ViewActionGroup.java
---- ui/org/eclipse/jdt/internal/ui/workingsets/ViewActionGroup.java	13 Apr 2005 17:35:11 -0000	1.8
-+++ ui/org/eclipse/jdt/internal/ui/workingsets/ViewActionGroup.java	8 Feb 2006 00:46:03 -0000
-@@ -45,7 +45,12 @@
- 
- 	public ViewActionGroup(int mode, IPropertyChangeListener changeListener, IWorkbenchPartSite site) {
- 		fChangeListener= changeListener;
--		fFilterActionGroup= new WorkingSetFilterActionGroup(site, changeListener);
-+		if(fChangeListener == null) {
-+			fChangeListener = new IPropertyChangeListener() {
-+				public void propertyChange(PropertyChangeEvent event) {}
-+			};
-+		}
-+		fFilterActionGroup= new WorkingSetFilterActionGroup(site, fChangeListener);
- 		fShowActionGroup= new WorkingSetShowActionGroup(site);
- 		fMode= mode;
- 		if (showWorkingSets())
-@@ -70,16 +75,24 @@
- 	 */
- 	public void fillActionBars(IActionBars actionBars) {
- 		super.fillActionBars(actionBars);
--		fMenuManager= actionBars.getMenuManager();
--		IMenuManager showMenu= new MenuManager(WorkingSetMessages.ViewActionGroup_show_label); 
--		fillShowMenu(showMenu);
--		fMenuManager.add(showMenu);
--		fMenuManager.add(new Separator(IWorkingSetActionGroup.ACTION_GROUP));
-+		if(fMenuManager == null) {
-+			fMenuManager= actionBars.getMenuManager();
-+			fillViewMenu(fMenuManager);
-+		}
-+
- 		if (fActiveActionGroup == null)
- 			fActiveActionGroup= fFilterActionGroup;
- 		((ActionGroup)fActiveActionGroup).fillActionBars(actionBars);
- 	}
- 	
-+	private void fillViewMenu(IMenuManager menu) { 
-+		
-+		IMenuManager showMenu= new MenuManager(WorkingSetMessages.ViewActionGroup_show_label); 
-+		fillShowMenu(showMenu);
-+		menu.add(showMenu);
-+		menu.add(new Separator(IWorkingSetActionGroup.ACTION_GROUP));
-+	}
-+	
- 	private void fillShowMenu(IMenuManager menu) {
- 		ViewAction projects= new ViewAction(this, SHOW_PROJECTS);
- 		projects.setText(WorkingSetMessages.ViewActionGroup_projects_label); 
-@@ -116,7 +129,8 @@
- 		}
- 		fActiveActionGroup.fillViewMenu(fMenuManager);
- 		fMenuManager.updateAll(true);
--		fChangeListener.propertyChange(event);
-+		if(fChangeListener != null)
-+			fChangeListener.propertyChange(event);
- 	}
- 	
- 	public WorkingSetFilterActionGroup getFilterGroup() {
-Index: ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetModel.java
-===================================================================
-RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetModel.java,v
-retrieving revision 1.14
-diff -u -r1.14 WorkingSetModel.java
---- ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetModel.java	26 Jan 2006 14:54:03 -0000	1.14
-+++ ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetModel.java	8 Feb 2006 00:46:03 -0000
-@@ -1,13 +1,11 @@
--/*******************************************************************************
-- * 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
-+/***************************************************************************************************
-+ * 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
-- *******************************************************************************/
-+ * 
-+ * Contributors: IBM Corporation - initial API and implementation
-+ **************************************************************************************************/
- package org.eclipse.jdt.internal.ui.workingsets;
- 
- import java.util.ArrayList;
-@@ -36,12 +34,12 @@
- import org.eclipse.ui.PlatformUI;
- 
- public class WorkingSetModel {
--	
-+
- 	public static final String CHANGE_WORKING_SET_MODEL_CONTENT= "workingSetModelChanged"; //$NON-NLS-1$
--	
-+
- 	public static final IElementComparer COMPARER= new WorkingSetComparar();
--	
--	private static final String TAG_LOCAL_WORKING_SET_MANAGER= "localWorkingSetManager"; //$NON-NLS-1$
-+
-+	public static final String TAG_LOCAL_WORKING_SET_MANAGER= "localWorkingSetManager"; //$NON-NLS-1$
- 	private static final String TAG_ACTIVE_WORKING_SET= "activeWorkingSet"; //$NON-NLS-1$
- 	private static final String TAG_WORKING_SET_NAME= "workingSetName"; //$NON-NLS-1$
- 	private static final String TAG_CONFIGURED= "configured"; //$NON-NLS-1$
-@@ -53,28 +51,29 @@
- 	private OthersWorkingSetUpdater fOthersWorkingSetUpdater;
- 
- 	private ElementMapper fElementMapper= new ElementMapper();
--	
-+
- 	private boolean fConfigured;
- 
- 	private static class WorkingSetComparar implements IElementComparer {
- 		public boolean equals(Object o1, Object o2) {
--			IWorkingSet w1= o1 instanceof IWorkingSet ? (IWorkingSet)o1 : null;
--			IWorkingSet w2= o2 instanceof IWorkingSet ? (IWorkingSet)o2 : null;
-+			IWorkingSet w1= o1 instanceof IWorkingSet ? (IWorkingSet) o1 : null;
-+			IWorkingSet w2= o2 instanceof IWorkingSet ? (IWorkingSet) o2 : null;
- 			if (w1 == null || w2 == null)
- 				return o1.equals(o2);
- 			return w1 == w2;
- 		}
-+
- 		public int hashCode(Object element) {
- 			if (element instanceof IWorkingSet)
- 				return System.identityHashCode(element);
- 			return element.hashCode();
- 		}
- 	}
--	
-+
- 	private static class ElementMapper {
- 		private Map fElementToWorkingSet= new HashMap();
- 		private Map fWorkingSetToElement= new IdentityHashMap();
--		
-+
- 		private Map fResourceToWorkingSet= new HashMap();
- 
- 		public void clear() {
-@@ -82,14 +81,16 @@
- 			fWorkingSetToElement.clear();
- 			fResourceToWorkingSet.clear();
- 		}
-+
- 		public void rebuild(IWorkingSet[] workingSets) {
- 			clear();
- 			for (int i= 0; i < workingSets.length; i++) {
- 				put(workingSets[i]);
- 			}
- 		}
-+
- 		public IAdaptable[] remove(IWorkingSet ws) {
--			IAdaptable[] elements= (IAdaptable[])fWorkingSetToElement.remove(ws);
-+			IAdaptable[] elements= (IAdaptable[]) fWorkingSetToElement.remove(ws);
- 			if (elements != null) {
- 				for (int i= 0; i < elements.length; i++) {
- 					removeElement(elements[i], ws);
-@@ -97,8 +98,9 @@
- 			}
- 			return elements;
- 		}
-+
- 		public IAdaptable[] refresh(IWorkingSet ws) {
--			IAdaptable[] oldElements= (IAdaptable[])fWorkingSetToElement.get(ws);
-+			IAdaptable[] oldElements= (IAdaptable[]) fWorkingSetToElement.get(ws);
- 			if (oldElements == null)
- 				return null;
- 			IAdaptable[] newElements= ws.getElements();
-@@ -106,15 +108,16 @@
- 			List toAdd= new ArrayList(Arrays.asList(newElements));
- 			computeDelta(toRemove, toAdd, oldElements, newElements);
- 			for (Iterator iter= toAdd.iterator(); iter.hasNext();) {
--				addElement((IAdaptable)iter.next(), ws);
-+				addElement((IAdaptable) iter.next(), ws);
- 			}
- 			for (Iterator iter= toRemove.iterator(); iter.hasNext();) {
--				removeElement((IAdaptable)iter.next(), ws);
-+				removeElement((IAdaptable) iter.next(), ws);
- 			}
- 			if (toRemove.size() > 0 || toAdd.size() > 0)
- 				fWorkingSetToElement.put(ws, newElements);
- 			return oldElements;
- 		}
-+
- 		private void computeDelta(List toRemove, List toAdd, IAdaptable[] oldElements, IAdaptable[] newElements) {
- 			for (int i= 0; i < oldElements.length; i++) {
- 				toAdd.remove(oldElements[i]);
-@@ -122,20 +125,25 @@
- 			for (int i= 0; i < newElements.length; i++) {
- 				toRemove.remove(newElements[i]);
- 			}
--			
-+
- 		}
-+
- 		public IWorkingSet getFirstWorkingSet(Object element) {
--			return (IWorkingSet)getFirstElement(fElementToWorkingSet, element);
-+			return (IWorkingSet) getFirstElement(fElementToWorkingSet, element);
- 		}
-+
- 		public List getAllWorkingSets(Object element) {
- 			return getAllElements(fElementToWorkingSet, element);
- 		}
-+
- 		public IWorkingSet getFirstWorkingSetForResource(IResource resource) {
--			return (IWorkingSet)getFirstElement(fResourceToWorkingSet, resource);
-+			return (IWorkingSet) getFirstElement(fResourceToWorkingSet, resource);
- 		}
-+
- 		public List getAllWorkingSetsForResource(IResource resource) {
- 			return getAllElements(fResourceToWorkingSet, resource);
- 		}
-+
- 		private void put(IWorkingSet ws) {
- 			if (fWorkingSetToElement.containsKey(ws))
- 				return;
-@@ -145,20 +153,23 @@
- 				addElement(elements[i], ws);
- 			}
- 		}
-+
- 		private void addElement(IAdaptable element, IWorkingSet ws) {
- 			addToMap(fElementToWorkingSet, element, ws);
--			IResource resource= (IResource)element.getAdapter(IResource.class);
-+			IResource resource= (IResource) element.getAdapter(IResource.class);
- 			if (resource != null) {
- 				addToMap(fResourceToWorkingSet, resource, ws);
- 			}
- 		}
-+
- 		private void removeElement(IAdaptable element, IWorkingSet ws) {
- 			removeFromMap(fElementToWorkingSet, element, ws);
--			IResource resource= (IResource)element.getAdapter(IResource.class);
-+			IResource resource= (IResource) element.getAdapter(IResource.class);
- 			if (resource != null) {
- 				removeFromMap(fResourceToWorkingSet, resource, ws);
- 			}
- 		}
-+
- 		private void addToMap(Map map, IAdaptable key, IWorkingSet value) {
- 			Object obj= map.get(key);
- 			if (obj == null) {
-@@ -169,21 +180,22 @@
- 				l.add(value);
- 				map.put(key, l);
- 			} else if (obj instanceof List) {
--				((List)obj).add(value);
-+				((List) obj).add(value);
- 			}
- 		}
-+
- 		private void removeFromMap(Map map, IAdaptable key, IWorkingSet value) {
- 			Object current= map.get(key);
- 			if (current == null) {
- 				return;
- 			} else if (current instanceof List) {
--				List list= (List)current;
-+				List list= (List) current;
- 				list.remove(value);
- 				switch (list.size()) {
--					case 0:
-+					case 0 :
- 						map.remove(key);
- 						break;
--					case 1:
-+					case 1 :
- 						map.put(key, list.get(0));
- 						break;
- 				}
-@@ -191,16 +203,18 @@
- 				map.remove(key);
- 			}
- 		}
-+
- 		private Object getFirstElement(Map map, Object key) {
- 			Object obj= map.get(key);
--			if (obj instanceof List) 
--				return ((List)obj).get(0);
-+			if (obj instanceof List)
-+				return ((List) obj).get(0);
- 			return obj;
- 		}
-+
- 		private List getAllElements(Map map, Object key) {
- 			Object obj= map.get(key);
- 			if (obj instanceof List)
--				return (List)obj;
-+				return (List) obj;
- 			if (obj == null)
- 				return Collections.EMPTY_LIST;
- 			List result= new ArrayList(1);
-@@ -208,27 +222,27 @@
- 			return result;
- 		}
- 	}
--	
-+
- 	public WorkingSetModel() {
- 		fLocalWorkingSetManager= PlatformUI.getWorkbench().createLocalWorkingSetManager();
- 		addListenersToWorkingSetManagers();
--    	fActiveWorkingSets= new ArrayList(2);
--    	
--    	IWorkingSet others= fLocalWorkingSetManager.createWorkingSet(WorkingSetMessages.WorkingSetModel_others_name, new IAdaptable[0]); 
--    	others.setId(OthersWorkingSetUpdater.ID);
--    	fLocalWorkingSetManager.addWorkingSet(others);
--    	fActiveWorkingSets.add(others);
--    	
--    	fOthersWorkingSetUpdater.init(this);
--    	fElementMapper.rebuild(getActiveWorkingSets());
-+		fActiveWorkingSets= new ArrayList(2);
-+
-+		IWorkingSet others= fLocalWorkingSetManager.createWorkingSet(WorkingSetMessages.WorkingSetModel_others_name, new IAdaptable[0]);
-+		others.setId(OthersWorkingSetUpdater.ID);
-+		fLocalWorkingSetManager.addWorkingSet(others);
-+		fActiveWorkingSets.add(others);
-+
-+		fOthersWorkingSetUpdater.init(this);
-+		fElementMapper.rebuild(getActiveWorkingSets());
- 	}
--	
-+
- 	public WorkingSetModel(IMemento memento) {
- 		restoreState(memento);
- 		fOthersWorkingSetUpdater.init(this);
--    	fElementMapper.rebuild(getActiveWorkingSets());
-+		fElementMapper.rebuild(getActiveWorkingSets());
- 	}
--	
-+
- 	private void addListenersToWorkingSetManagers() {
- 		fListeners= new ListenerList(ListenerList.IDENTITY);
- 		fWorkingSetManagerListener= new IPropertyChangeListener() {
-@@ -239,7 +253,7 @@
- 		PlatformUI.getWorkbench().getWorkingSetManager().addPropertyChangeListener(fWorkingSetManagerListener);
- 		fLocalWorkingSetManager.addPropertyChangeListener(fWorkingSetManagerListener);
- 	}
--	
-+
- 	public void dispose() {
- 		if (fWorkingSetManagerListener != null) {
- 			PlatformUI.getWorkbench().getWorkingSetManager().removePropertyChangeListener(fWorkingSetManagerListener);
-@@ -248,118 +262,119 @@
- 			fWorkingSetManagerListener= null;
- 		}
- 	}
--	
--	//---- model relationships ---------------------------------------
--	
-+
-+	// ---- model relationships ---------------------------------------
-+
-     public IAdaptable[] getChildren(IWorkingSet workingSet) {
--    	return workingSet.getElements();
--    }
--    
--    public Object getParent(Object element) {
--    	if (element instanceof IWorkingSet && fActiveWorkingSets.contains(element))
--    		return this;
--    	return fElementMapper.getFirstWorkingSet(element);
--    }
--    
--    public Object[] getAllParents(Object element) {
--    	if (element instanceof IWorkingSet && fActiveWorkingSets.contains(element))
--    		return new Object[] {this};
--    	return fElementMapper.getAllWorkingSets(element).toArray();
--    }
--    
--    public Object[] addWorkingSets(Object[] elements) {
--    	List result= null;
--    	for (int i= 0; i < elements.length; i++) {
--    		Object element= elements[i];
--    		List sets= null;
-+		return workingSet.getElements();
-+	}
-+
-+	public Object getParent(Object element) {
-+		if (element instanceof IWorkingSet && fActiveWorkingSets.contains(element))
-+			return this;
-+		return fElementMapper.getFirstWorkingSet(element);
-+	}
-+
-+	public Object[] getAllParents(Object element) {
-+		if (element instanceof IWorkingSet && fActiveWorkingSets.contains(element))
-+			return new Object[]{this};
-+		return fElementMapper.getAllWorkingSets(element).toArray();
-+	}
-+
-+	public Object[] addWorkingSets(Object[] elements) {
-+		List result= null;
-+		for (int i= 0; i < elements.length; i++) {
-+			Object element= elements[i];
-+			List sets= null;
- 			if (element instanceof IResource) {
--    			sets= fElementMapper.getAllWorkingSetsForResource((IResource)element);
--    		} else {
--    			sets= fElementMapper.getAllWorkingSets(element);
--    		}
-+				sets= fElementMapper.getAllWorkingSetsForResource((IResource) element);
-+			} else {
-+				sets= fElementMapper.getAllWorkingSets(element);
-+			}
- 			if (sets != null && sets.size() > 0) {
- 				if (result == null)
- 					result= new ArrayList(Arrays.asList(elements));
- 				result.addAll(sets);
- 			}
- 		}
--    	if (result == null)
--    		return elements;
--    	return result.toArray();
--    }
--    
--    public boolean needsConfiguration() {
--    	return !fConfigured && fActiveWorkingSets.size() == 1 &&
--			OthersWorkingSetUpdater.ID.equals(((IWorkingSet)fActiveWorkingSets.get(0)).getId());
--    }
--    
--    public void configured() {
--    	fConfigured= true;
--    }
--    
--    //---- working set management -----------------------------------
--    
-+		if (result == null)
-+			return elements;
-+		return result.toArray();
-+	}
-+
-+	public boolean needsConfiguration() {
-+		return !fConfigured && fActiveWorkingSets.size() == 1 && OthersWorkingSetUpdater.ID.equals(((IWorkingSet) fActiveWorkingSets.get(0)).getId());
-+	}
-+
-+	public void configured() {
-+		fConfigured= true;
-+	}
-+
-+	// ---- working set management -----------------------------------
-+
- 	/**
--     * Adds a property change listener.
--     * 
--     * @param listener the property change listener to add
--     */
--    public void addPropertyChangeListener(IPropertyChangeListener listener) {
--    	fListeners.add(listener);
--    }
--    
--    /**
--     * Removes the property change listener.
--     * 
--     * @param listener the property change listener to remove
--     */
--    public void removePropertyChangeListener(IPropertyChangeListener listener) {
--    	fListeners.remove(listener);
--    }
--    
--    public IWorkingSet[] getActiveWorkingSets() {
--    	return (IWorkingSet[])fActiveWorkingSets.toArray(new IWorkingSet[fActiveWorkingSets.size()]);
--    }
--    
--    public IWorkingSet[] getAllWorkingSets() {
--    	List result= new ArrayList();
--    	result.addAll(fActiveWorkingSets);
--    	IWorkingSet[] locals= fLocalWorkingSetManager.getWorkingSets();
--    	for (int i= 0; i < locals.length; i++) {
-+	 * Adds a property change listener.
-+	 * 
-+	 * @param listener
-+	 *            the property change listener to add
-+	 */
-+	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-+		fListeners.add(listener);
-+	}
-+
-+	/**
-+	 * Removes the property change listener.
-+	 * 
-+	 * @param listener
-+	 *            the property change listener to remove
-+	 */
-+	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-+		fListeners.remove(listener);
-+	}
-+
-+	public IWorkingSet[] getActiveWorkingSets() {
-+		return (IWorkingSet[]) fActiveWorkingSets.toArray(new IWorkingSet[fActiveWorkingSets.size()]);
-+	}
-+
-+	public IWorkingSet[] getAllWorkingSets() {
-+		List result= new ArrayList();
-+		result.addAll(fActiveWorkingSets);
-+		IWorkingSet[] locals= fLocalWorkingSetManager.getWorkingSets();
-+		for (int i= 0; i < locals.length; i++) {
- 			if (!result.contains(locals[i]))
- 				result.add(locals[i]);
- 		}
--    	IWorkingSet[] globals= PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
--    	for (int i= 0; i < globals.length; i++) {
-+		IWorkingSet[] globals= PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
-+		for (int i= 0; i < globals.length; i++) {
- 			if (!result.contains(globals[i]))
- 				result.add(globals[i]);
- 		}
--    	return (IWorkingSet[])result.toArray(new IWorkingSet[result.size()]);
--    }
--    
--    public void setActiveWorkingSets(IWorkingSet[] workingSets) {
--    	fActiveWorkingSets= new ArrayList(Arrays.asList(workingSets));
--    	fElementMapper.rebuild(getActiveWorkingSets());
--    	fOthersWorkingSetUpdater.updateElements();
--    	fireEvent(new PropertyChangeEvent(this, CHANGE_WORKING_SET_MODEL_CONTENT, null, null));
--    }
--	
-+		return (IWorkingSet[]) result.toArray(new IWorkingSet[result.size()]);
-+	}
-+
-+	public void setActiveWorkingSets(IWorkingSet[] workingSets) {
-+		fActiveWorkingSets= new ArrayList(Arrays.asList(workingSets));
-+		fElementMapper.rebuild(getActiveWorkingSets());
-+		fOthersWorkingSetUpdater.updateElements();
-+		fireEvent(new PropertyChangeEvent(this, CHANGE_WORKING_SET_MODEL_CONTENT, null, null));
-+	}
-+
- 	public void saveState(IMemento memento) {
- 		memento.putString(TAG_CONFIGURED, Boolean.toString(fConfigured));
- 		fLocalWorkingSetManager.saveState(memento.createChild(TAG_LOCAL_WORKING_SET_MANAGER));
- 		for (Iterator iter= fActiveWorkingSets.iterator(); iter.hasNext();) {
- 			IMemento active= memento.createChild(TAG_ACTIVE_WORKING_SET);
--			IWorkingSet workingSet= (IWorkingSet)iter.next();
-+			IWorkingSet workingSet= (IWorkingSet) iter.next();
- 			active.putString(TAG_WORKING_SET_NAME, workingSet.getName());
- 		}
- 	}
--	
-+
- 	private void restoreState(IMemento memento) {
- 		String configured= memento.getString(TAG_CONFIGURED);
- 		if (configured != null)
- 			fConfigured= Boolean.valueOf(configured).booleanValue();
- 		fLocalWorkingSetManager= PlatformUI.getWorkbench().createLocalWorkingSetManager();
--		addListenersToWorkingSetManagers();
-+		addListenersToWorkingSetManagers(); 
- 		fLocalWorkingSetManager.restoreState(memento.getChild(TAG_LOCAL_WORKING_SET_MANAGER));
- 		IWorkingSet history= getHistoryWorkingSet();
- 		if (history != null) {
-@@ -380,54 +395,54 @@
- 			}
- 		}
- 	}
--    private void workingSetManagerChanged(PropertyChangeEvent event) {
-+
-+	private void workingSetManagerChanged(PropertyChangeEvent event) {
- 		String property= event.getProperty();
--    	if (IWorkingSetManager.CHANGE_WORKING_SET_UPDATER_INSTALLED.equals(property) && event.getSource() == fLocalWorkingSetManager) {
--			IWorkingSetUpdater updater= (IWorkingSetUpdater)event.getNewValue();
-+		if (IWorkingSetManager.CHANGE_WORKING_SET_UPDATER_INSTALLED.equals(property) && event.getSource() == fLocalWorkingSetManager) {
-+			IWorkingSetUpdater updater= (IWorkingSetUpdater) event.getNewValue();
- 			if (updater instanceof OthersWorkingSetUpdater) {
--				fOthersWorkingSetUpdater= (OthersWorkingSetUpdater)updater;
-+				fOthersWorkingSetUpdater= (OthersWorkingSetUpdater) updater;
- 			}
- 			return;
- 		}
--    	// don't handle working sets not managed by the model
--    	if (!isAffected(event))
--    		return;
--    	
-+		// don't handle working sets not managed by the model
-+		if (!isAffected(event))
-+			return;
-+
- 		if (IWorkingSetManager.CHANGE_WORKING_SET_CONTENT_CHANGE.equals(property)) {
--			IWorkingSet workingSet= (IWorkingSet)event.getNewValue();
-+			IWorkingSet workingSet= (IWorkingSet) event.getNewValue();
- 			IAdaptable[] elements= fElementMapper.refresh(workingSet);
- 			if (elements != null) {
- 				fireEvent(event);
- 			}
- 		} else if (IWorkingSetManager.CHANGE_WORKING_SET_REMOVE.equals(property)) {
--			IWorkingSet workingSet= (IWorkingSet)event.getOldValue();
-+			IWorkingSet workingSet= (IWorkingSet) event.getOldValue();
- 			List elements= new ArrayList(fActiveWorkingSets);
- 			elements.remove(workingSet);
--			setActiveWorkingSets((IWorkingSet[])elements.toArray(new IWorkingSet[elements.size()]));
--    	} else if (IWorkingSetManager.CHANGE_WORKING_SET_NAME_CHANGE.equals(property)) {
-+			setActiveWorkingSets((IWorkingSet[]) elements.toArray(new IWorkingSet[elements.size()]));
-+		} else if (IWorkingSetManager.CHANGE_WORKING_SET_NAME_CHANGE.equals(property)) {
- 			fireEvent(event);
- 		}
- 	}
--    
--    private void fireEvent(PropertyChangeEvent event) {
--    	Object[] listeners= fListeners.getListeners();
--    	for (int i= 0; i < listeners.length; i++) {
--			((IPropertyChangeListener)listeners[i]).propertyChange(event);
--		}
--    }
--    
--    private boolean isAffected(PropertyChangeEvent event) {
--    	if (fActiveWorkingSets == null)
--    		return false;
--    	Object oldValue= event.getOldValue();
--    	Object newValue= event.getNewValue();
--    	if ((oldValue != null && fActiveWorkingSets.contains(oldValue)) 
--    		|| (newValue != null && fActiveWorkingSets.contains(newValue))) {
--    		return true;
--    	}
--    	return false;
--    }
--	
-+
-+	private void fireEvent(PropertyChangeEvent event) {
-+		Object[] listeners= fListeners.getListeners();
-+		for (int i= 0; i < listeners.length; i++) {
-+			((IPropertyChangeListener) listeners[i]).propertyChange(event);
-+		}
-+	}
-+
-+	private boolean isAffected(PropertyChangeEvent event) {
-+		if (fActiveWorkingSets == null)
-+			return false;
-+		Object oldValue= event.getOldValue();
-+		Object newValue= event.getNewValue();
-+		if ((oldValue != null && fActiveWorkingSets.contains(oldValue)) || (newValue != null && fActiveWorkingSets.contains(newValue))) {
-+			return true;
-+		}
-+		return false;
-+	}
-+
- 	private IWorkingSet getHistoryWorkingSet() {
- 		IWorkingSet[] workingSets= fLocalWorkingSetManager.getWorkingSets();
- 		for (int i= 0; i < workingSets.length; i++) {
-Index: ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
-===================================================================
-RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java,v
-retrieving revision 1.50
-diff -u -r1.50 PackageExplorerContentProvider.java
---- ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java	11 Jan 2006 15:49:15 -0000	1.50
-+++ ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java	8 Feb 2006 00:46:03 -0000
-@@ -76,14 +76,22 @@
- 	private PackageFragmentProvider fPackageFragmentProvider= new PackageFragmentProvider();
- 	
- 	private int fPendingChanges;
--	PackageExplorerPart fPart;
-+	//PackageExplorerPart fPart;
-+	
-+	/**
-+	 * Creates a new content provider for Java elements.
-+	 */
-+	public PackageExplorerContentProvider(boolean provideMembers) {
-+		super(provideMembers);	
-+		//fPart= part;
-+	}
- 	
- 	/**
- 	 * Creates a new content provider for Java elements.
- 	 */
- 	public PackageExplorerContentProvider(PackageExplorerPart part, boolean provideMembers) {
- 		super(provideMembers);	
--		fPart= part;
-+		//fPart= part;
- 	}
- 	
- 	/* package */ PackageFragmentProvider getPackageFragmentProvider() {
-@@ -620,7 +628,7 @@
- 		});
- 	}
- 
--	private void postAdd(final Object parent, final Object element) {
-+	/* package */ void postAdd(final Object parent, final Object element) {
- 		postRunnable(new Runnable() {
- 			public void run() {
- 				Control ctrl= fViewer.getControl();
-@@ -647,7 +655,14 @@
- 	private void postProjectStateChanged(final Object root) {
- 		postRunnable(new Runnable() {
- 			public void run() {
--				fPart.projectStateChanged(root);
-+				//fPart.projectStateChanged(root); 
-+				Control ctrl= fViewer.getControl();
-+				if (ctrl != null && !ctrl.isDisposed()) {
-+					fViewer.refresh(root, true);
-+					// trigger a syntetic selection change so that action refresh their
-+					// enable state.
-+					fViewer.setSelection(fViewer.getSelection());
-+				}
- 			}
- 		});
- 	}
-Index: plugin.xml
-===================================================================
-RCS file: /home/eclipse/org.eclipse.jdt.ui/plugin.xml,v
-retrieving revision 1.617
-diff -u -r1.617 plugin.xml
---- plugin.xml	5 Feb 2006 18:11:23 -0000	1.617
-+++ plugin.xml	8 Feb 2006 00:46:02 -0000
-@@ -5047,4 +5047,97 @@
-       </objectContribution>
-    </extension>
- 
-+
-+    <!-- ADDITIONS BELOW THIS LINE -->
-+      
-+    <extension
-+          point="org.eclipse.ui.navigator.viewer">
-+       <viewerContentBinding 
-+             viewerId="org.eclipse.ui.navigator.resourceContent">
-+          <includes>
-+       	      <contentExtension pattern="org.eclipse.jdt.java.ui.javaContent" />       
-+          </includes>       
-+       </viewerContentBinding>
-+    </extension> 
-+      
-+    <extension
-+          point="org.eclipse.ui.navigator.navigatorContent">
-+       <navigatorContent
-+             activeByDefault="true"
-+             contentProvider="org.eclipse.jdt.internal.ui.packageview.PreferenceAwareContentProvider"
-+             icon="$nl$/icons/full/obj16/java_model.gif"
-+             id="org.eclipse.jdt.java.ui.javaContent"
-+             labelProvider="org.eclipse.jdt.internal.ui.packageview.PreferenceAwareLabelProvider"
-+             name="Java Elements"
-+             priority="high">
-+          <triggerPoints> 
-+	         <or>           
-+               <adapt 
-+	                     type="org.eclipse.core.resources.IProject" > 
-+		                  <test
-+		                     property="org.eclipse.core.resources.projectNature"
-+		                     value="org.eclipse.jdt.core.javanature" />
-+               </adapt>             
-+	           <instanceof 
-+	                 value="org.eclipse.core.resources.IWorkspaceRoot" /> 
-+	                 
-+	           <instanceof
-+	                 value="org.eclipse.core.resources.IFolder" /> 
-+	           <instanceof
-+	                value="org.eclipse.core.resources.IFile" /> 
-+	           <instanceof 
-+	                 value="org.eclipse.jdt.core.IJavaProject" /> 
-+	           <instanceof 
-+	                 value="org.eclipse.jdt.core.IJavaElement" /> 
-+	           <instanceof
-+	                 value="org.eclipse.jdt.internal.core.JarEntryFile" /> 
-+	           <instanceof
-+	                 value="org.eclipse.jdt.core.IClassFile" /> 
-+	           <instanceof
-+	                 value="org.eclipse.jdt.internal.ui.packageview.ClassPathContainer" /> 
-+	            <!--
-+				<instanceof 
-+ 					value="org.eclipse.jdt.internal.ui.workingsets.WorkingSetModel" /> 
-+ 					-->
-+	         </or>
-+          </triggerPoints>
-+          <possibleChildren> 
-+	         <or>           
-+               <adapt 
-+					type="org.eclipse.core.resources.IProject" >  
-+               </adapt>             
-+	           <instanceof 
-+	                 value="org.eclipse.core.resources.IWorkspaceRoot" /> 	                 
-+	           <instanceof
-+	                 value="org.eclipse.core.resources.IFolder" /> 
-+	           <instanceof
-+	                value="org.eclipse.core.resources.IFile" /> 
-+	           <instanceof 
-+	                 value="org.eclipse.jdt.core.IJavaProject" /> 
-+	           <instanceof 
-+	                 value="org.eclipse.jdt.core.IJavaElement" /> 
-+	           <instanceof
-+	                 value="org.eclipse.jdt.internal.core.JarEntryFile" /> 
-+	           <instanceof
-+	                 value="org.eclipse.jdt.core.IClassFile" /> 
-+	           <instanceof
-+	                 value="org.eclipse.jdt.internal.ui.packageview.ClassPathContainer" />  
-+	         </or>
-+          </possibleChildren>          
-+          <actionProvider 
-+	               class="org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionProvider">
-+	               <enablement>	               
-+	               <adapt 
-+	                     type="org.eclipse.jdt.core.IJavaElement" /> 
-+	               </enablement>
-+          </actionProvider>
-+          <override
-+                policy="InvokeAlwaysRegardlessOfSuppressedExt"
-+                suppressedExtensionId="org.eclipse.ui.navigator.resourceContent"/>
-+          <commonSorter
-+                class="org.eclipse.jdt.ui.JavaElementSorter"
-+                id="org.eclipse.jdt.ui.javaElementSorter"/> 
-+       </navigatorContent>
-+    </extension>
-+     
- </plugin>
-\ No newline at end of file
-Index: ui/org/eclipse/jdt/internal/ui/actions/MultiActionGroup.java
-===================================================================
-RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/MultiActionGroup.java,v
-retrieving revision 1.7
-diff -u -r1.7 MultiActionGroup.java
---- ui/org/eclipse/jdt/internal/ui/actions/MultiActionGroup.java	17 Jun 2005 15:51:51 -0000	1.7
-+++ ui/org/eclipse/jdt/internal/ui/actions/MultiActionGroup.java	8 Feb 2006 00:46:02 -0000
-@@ -37,6 +37,8 @@
-  */
- public class MultiActionGroup extends ActionGroup {
- 	
-+	public IAction[] NO_ACTIONS = new IAction[0];
-+	
- 	private IAction[] fActions; 
- 	
- 	private int fCurrentSelection;
-@@ -57,6 +59,32 @@
- 		fCurrentSelection= currentSelection;
- 		fActions= actions;
- 	}
-+	
-+	/**
-+	 * Creates a new action group with a given set of actions.
-+	 * 
-+	 * @param actions			the actions for this multi group
-+	 * @param currentSelection	decides which action is selected in the menu on start up.
-+	 * 							Denotes the location in the actions array of the current
-+	 * 							selected state. It cannot be null.
-+	 */
-+	public MultiActionGroup(int currentSelection) {
-+		super();
-+		
-+		fCurrentSelection= currentSelection;
-+		fActions= NO_ACTIONS;
-+	}
-+	
-+	/**
-+	 * 
-+	 * @param actions			the actions for this multi group 
-+	 */
-+	protected final void setActions(IAction[] actions) {
-+		if(actions != null)
-+			fActions = actions;
-+		else
-+			fActions = NO_ACTIONS;
-+	}
- 
- 	/**
- 	 * Add the actions to the given menu manager.
-Index: ui/org/eclipse/jdt/internal/ui/packageview/CommonLayoutActionGroup.java
-===================================================================
-RCS file: ui/org/eclipse/jdt/internal/ui/packageview/CommonLayoutActionGroup.java
-diff -N ui/org/eclipse/jdt/internal/ui/packageview/CommonLayoutActionGroup.java
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ ui/org/eclipse/jdt/internal/ui/packageview/CommonLayoutActionGroup.java	1 Jan 1970 00:00:00 -0000
-@@ -0,0 +1,131 @@
-+/*******************************************************************************
-+ * 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.jdt.internal.ui.packageview;
-+
-+import org.eclipse.jface.action.Action;
-+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.ui.IActionBars;
-+import org.eclipse.ui.IWorkbenchActionConstants;
-+import org.eclipse.ui.PlatformUI;
-+import org.eclipse.ui.navigator.IExtensionStateModel;
-+
-+import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
-+import org.eclipse.jdt.internal.ui.JavaPluginImages;
-+import org.eclipse.jdt.internal.ui.actions.MultiActionGroup;
-+import org.eclipse.jdt.internal.ui.packageview.IExtensionStateConstants.Values;
-+
-+/**
-+ * Adds view menus to switch between flat and hierarchical layout.
-+ * 
-+ * @since 2.1
-+ */
-+public class CommonLayoutActionGroup extends MultiActionGroup {
-+
-+	private boolean fHasContributedToViewMenu = false;
-+	private IAction fHierarchicalLayout = null;
-+	private IAction fFlatLayoutAction = null; 
-+
-+	public CommonLayoutActionGroup(StructuredViewer structuredViewer, IExtensionStateModel stateModel) {
-+		super(stateModel.getBooleanProperty(Values.IS_LAYOUT_FLAT) ? 0 : 1);
-+		IAction[] actions = createActions(structuredViewer, stateModel);
-+		setActions(actions); 
-+	}
-+
-+	/* (non-Javadoc)
-+	 * @see ActionGroup#fillActionBars(IActionBars)
-+	 */
-+	public void fillActionBars(IActionBars actionBars) {
-+		super.fillActionBars(actionBars);
-+		if(!fHasContributedToViewMenu) {
-+			synchronized(this) {
-+				if(!fHasContributedToViewMenu) {
-+					fHasContributedToViewMenu = true;
-+					contributeToViewMenu(actionBars.getMenuManager());
-+				}
-+			}
-+		}
-+	}
-+	
-+	private void contributeToViewMenu(IMenuManager viewMenu) {
-+		viewMenu.add(new Separator());
-+
-+		// Create layout sub menu
-+		
-+		IMenuManager layoutSubMenu= new MenuManager(PackagesMessages.LayoutActionGroup_label); 
-+		final String layoutGroupName= "layout"; //$NON-NLS-1$
-+		Separator marker= new Separator(layoutGroupName);
-+
-+		viewMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-+		viewMenu.add(marker);
-+		viewMenu.appendToGroup(layoutGroupName, layoutSubMenu);
-+		viewMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS+"-end"));//$NON-NLS-1$		
-+		addActions(layoutSubMenu);
-+	}
-+	
-+	
-+	private IAction[] createActions(StructuredViewer structuredViewer, IExtensionStateModel stateModel) {
-+		
-+		fFlatLayoutAction= new CommonLayoutAction(structuredViewer, stateModel, true);
-+		fFlatLayoutAction.setText(PackagesMessages.LayoutActionGroup_flatLayoutAction_label); 
-+		JavaPluginImages.setLocalImageDescriptors(fFlatLayoutAction, "flatLayout.gif"); //$NON-NLS-1$
-+		
-+		fHierarchicalLayout= new CommonLayoutAction(structuredViewer, stateModel, false);
-+		fHierarchicalLayout.setText(PackagesMessages.LayoutActionGroup_hierarchicalLayoutAction_label);	  
-+		JavaPluginImages.setLocalImageDescriptors(fHierarchicalLayout, "hierarchicalLayout.gif"); //$NON-NLS-1$
-+		
-+		fHierarchicalLayout.setChecked(!stateModel.getBooleanProperty(Values.IS_LAYOUT_FLAT));
-+		fFlatLayoutAction.setChecked(stateModel.getBooleanProperty(Values.IS_LAYOUT_FLAT));
-+		
-+		return new IAction[]{fFlatLayoutAction, fHierarchicalLayout};
-+	}
-+	
-+	public void setFlatLayout(boolean flatLayout) {
-+		fHierarchicalLayout.setChecked(!flatLayout);
-+		fFlatLayoutAction.setChecked(flatLayout);
-+	}
-+	 
-+}
-+
-+class CommonLayoutAction extends Action implements IAction {
-+
-+	private final boolean fIsFlatLayout;
-+	private IExtensionStateModel fStateModel;
-+	private StructuredViewer fStructuredViewer;
-+
-+	public CommonLayoutAction(StructuredViewer structuredViewer, IExtensionStateModel stateModel, boolean flat) {
-+		super("", AS_RADIO_BUTTON); //$NON-NLS-1$
-+		fStateModel = stateModel;
-+		fStructuredViewer = structuredViewer;
-+		fIsFlatLayout= flat; 
-+		if (fIsFlatLayout)
-+			PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaHelpContextIds.LAYOUT_FLAT_ACTION);
-+		else
-+			PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaHelpContextIds.LAYOUT_HIERARCHICAL_ACTION);
-+	}
-+
-+	/*
-+	 * @see org.eclipse.jface.action.IAction#run()
-+	 */
-+	public void run() {
-+		if (fStateModel.getBooleanProperty(Values.IS_LAYOUT_FLAT) != fIsFlatLayout) {
-+			fStateModel.setBooleanProperty(Values.IS_LAYOUT_FLAT, fIsFlatLayout);
-+  			 	
-+			fStructuredViewer.getControl().setRedraw(false);
-+			fStructuredViewer.refresh();
-+			fStructuredViewer.getControl().setRedraw(true);
-+		}
-+	}
-+}
-Index: ui/org/eclipse/jdt/internal/ui/packageview/PreferenceAwareContentProvider.java
-===================================================================
-RCS file: ui/org/eclipse/jdt/internal/ui/packageview/PreferenceAwareContentProvider.java
-diff -N ui/org/eclipse/jdt/internal/ui/packageview/PreferenceAwareContentProvider.java
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ ui/org/eclipse/jdt/internal/ui/packageview/PreferenceAwareContentProvider.java	1 Jan 1970 00:00:00 -0000
-@@ -0,0 +1,174 @@
-+/***************************************************************************************************
-+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
-+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
-+ * which accompanies this distribution, and is available at
-+ * http://www.eclipse.org/legal/epl-v10.html
-+ * 
-+ * Contributors: IBM Corporation - initial API and implementation
-+ **************************************************************************************************/
-+package org.eclipse.jdt.internal.ui.packageview;
-+
-+import java.util.Arrays;
-+import java.util.HashSet;
-+import java.util.Iterator;
-+import java.util.Set;
-+
-+import org.eclipse.core.resources.IResource;
-+import org.eclipse.core.resources.IWorkspaceRoot;
-+
-+import org.eclipse.jface.preference.IPreferenceStore;
-+import org.eclipse.jface.util.IPropertyChangeListener;
-+import org.eclipse.jface.util.PropertyChangeEvent;
-+import org.eclipse.jface.viewers.Viewer;
-+
-+import org.eclipse.ui.IMemento;
-+import org.eclipse.ui.navigator.IExtensionStateModel;
-+import org.eclipse.ui.navigator.IPipelinedTreeContentProvider;
-+import org.eclipse.ui.navigator.PipelinedShapeModification;
-+import org.eclipse.ui.navigator.PipelinedViewerUpdate;
-+
-+import org.eclipse.jdt.core.IJavaElement;
-+import org.eclipse.jdt.core.IJavaModel;
-+import org.eclipse.jdt.core.JavaCore;
-+
-+import org.eclipse.jdt.ui.PreferenceConstants;
-+
-+import org.eclipse.jdt.internal.ui.packageview.IExtensionStateConstants.Values;
-+
-+public class PreferenceAwareContentProvider extends
-+		PackageExplorerContentProvider implements IPipelinedTreeContentProvider {
-+
-+	public PreferenceAwareContentProvider() {
-+		super(false);
-+	}
-+
-+	public PreferenceAwareContentProvider(boolean provideMembers) {
-+		super(provideMembers);
-+	}
-+
-+	public static final String JDT_EXTENSION_ID = "org.eclipse.jdt.ui.javaContent"; //$NON-NLS-1$ 
-+
-+	private IExtensionStateModel fStateModel;
-+
-+	public void init(IExtensionStateModel stateModel, IMemento memento) {
-+		fStateModel = stateModel;
-+		// fManager = new WorkingSetModelManager(fStateModel, this);
-+		// expose the manager for the action provider
-+		// fStateModel.setProperty(WorkingSetModelManager.INSTANCE_KEY,
-+		// fManager);
-+		restoreState(memento);
-+		fStateModel.addPropertyChangeListener(new IPropertyChangeListener() {
-+			public void propertyChange(PropertyChangeEvent event) {
-+				if (Values.IS_LAYOUT_FLAT.equals(event.getProperty())) {
-+					if (event.getNewValue() != null) {
-+						boolean newValue = ((Boolean) event.getNewValue())
-+								.booleanValue() ? true : false;
-+						setIsFlatLayout(newValue);
-+					}
-+				}
-+
-+			}
-+		});
-+
-+		IPreferenceStore store = PreferenceConstants.getPreferenceStore();
-+		boolean showCUChildren = store
-+				.getBoolean(PreferenceConstants.SHOW_CU_CHILDREN);
-+		setProvideMembers(showCUChildren);
-+	}
-+
-+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-+		super.inputChanged(viewer, oldInput, findInputElement(newInput));
-+	}
-+
-+	public Object[] getElements(Object inputElement) {
-+		if (inputElement instanceof IWorkspaceRoot)
-+			return super.getElements(JavaCore
-+					.create((IWorkspaceRoot) inputElement));
-+		return super.getElements(inputElement);
-+	}
-+
-+	private Object findInputElement(Object newInput) {
-+		if (newInput instanceof IWorkspaceRoot) {
-+			return JavaCore.create((IWorkspaceRoot) newInput);
-+		}
-+		return newInput;
-+	}
-+
-+	public void restoreState(IMemento memento) {
-+
-+	}
-+
-+	public void saveState(IMemento memento) {
-+
-+	}
-+
-+	public void getPipelinedChildren(Object parent, Set currentChildren) {
-+		Object[] children = getChildren(parent);
-+		for (Iterator iter = currentChildren.iterator(); iter.hasNext();)
-+			if (iter.next() instanceof IResource)
-+				iter.remove();
-+		currentChildren.addAll(Arrays.asList(children));
-+	}
-+
-+	public void getPipelinedElements(Object input, Set currentElements) {
-+		Object[] children = getElements(input);
-+
-+		for (Iterator iter = currentElements.iterator(); iter.hasNext();)
-+			if (iter.next() instanceof IResource)
-+				iter.remove();
-+
-+		currentElements.addAll(Arrays.asList(children));
-+	}
-+
-+	public Object getPipelinedParent(Object object, Object suggestedParent) {
-+		return getParent(object);
-+	}
-+
-+	public PipelinedShapeModification interceptAdd(
-+			PipelinedShapeModification anAddModification) {
-+		// TODO Auto-generated method stub
-+		return null;
-+	}
-+
-+	public PipelinedShapeModification interceptRemove(
-+			PipelinedShapeModification aRemoveModification) {
-+		// TODO Auto-generated method stub
-+		return null;
-+	}
-+
-+	public boolean interceptRefresh(
-+			PipelinedViewerUpdate aRefreshSynchronization) {
-+		IJavaElement javaElement;
-+		Set interceptedElements = new HashSet();
-+		for (Iterator iter = aRefreshSynchronization.getRefreshTargets()
-+				.iterator(); iter.hasNext();) {
-+			Object element = iter.next();
-+			if (element instanceof IResource) {
-+				if ((javaElement = JavaCore.create((IResource) element)) != null && javaElement.exists()) {
-+					iter.remove();
-+					interceptedElements.add(javaElement);
-+				}
-+			}
-+		}
-+		if (interceptedElements.size() > 0) {
-+			aRefreshSynchronization.getRefreshTargets().addAll(
-+					interceptedElements);
-+			return true;
-+		}
-+		return false;
-+
-+	}
-+
-+	public boolean interceptUpdate(PipelinedViewerUpdate anUpdateSynchronization) {
-+		// TODO Auto-generated method stub
-+		return false;
-+	}
-+
-+	/* package */void postAdd(final Object parent, final Object element) {
-+		if (parent instanceof IJavaModel)
-+			super.postAdd(((IJavaModel) parent).getWorkspace(), element);
-+		else
-+			super.postAdd(parent, element);
-+	}
-+
-+}
-Index: ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerActionProvider.java
-===================================================================
-RCS file: ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerActionProvider.java
-diff -N ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerActionProvider.java
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerActionProvider.java	1 Jan 1970 00:00:00 -0000
-@@ -0,0 +1,126 @@
-+/***************************************************************************************************
-+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
-+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
-+ * which accompanies this distribution, and is available at
-+ * http://www.eclipse.org/legal/epl-v10.html
-+ * 
-+ * Contributors: IBM Corporation - initial API and implementation
-+ **************************************************************************************************/
-+package org.eclipse.jdt.internal.ui.packageview;
-+
-+import org.eclipse.jface.action.IMenuManager;
-+import org.eclipse.jface.preference.IPreferenceStore;
-+import org.eclipse.jface.viewers.StructuredViewer;
-+
-+import org.eclipse.ui.IActionBars;
-+import org.eclipse.ui.IMemento;
-+import org.eclipse.ui.IViewPart;
-+import org.eclipse.ui.navigator.CommonActionProvider;
-+import org.eclipse.ui.navigator.CommonActionProviderConfig;
-+import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-+import org.eclipse.ui.navigator.IExtensionStateModel;
-+import org.eclipse.ui.navigator.INavigatorContentService;
-+
-+import org.eclipse.jdt.ui.actions.CCPActionGroup;
-+
-+import org.eclipse.jdt.internal.ui.JavaPlugin;
-+import org.eclipse.jdt.internal.ui.packageview.IExtensionStateConstants.Values;
-+import org.eclipse.jdt.internal.ui.workingsets.ViewActionGroup;
-+
-+public class PackageExplorerActionProvider extends CommonActionProvider { 
-+
-+	private static final int HIERARCHICAL_LAYOUT = 0x1;
-+
-+	private static final int FLAT_LAYOUT = 0x2;
-+
-+	private static final String TAG_LAYOUT = "layout"; //$NON-NLS-1$
-+
-+	private ViewActionGroup fViewActionGroup;
-+
-+	private CommonLayoutActionGroup fLayoutActionGroup;
-+
-+	private boolean fHasFilledViewMenu = false;
-+
-+	private IExtensionStateModel fStateModel;
-+
-+	private CCPActionGroup fCCPGroup;
-+
-+	public void fillActionBars(IActionBars actionBars) {
-+		if (!fHasFilledViewMenu) {
-+			if(fViewActionGroup != null)
-+				fViewActionGroup.fillActionBars(actionBars);
-+			fLayoutActionGroup.fillActionBars(actionBars);
-+			fHasFilledViewMenu = true;
-+		}
-+
-+	}
-+
-+	public void fillContextMenu(IMenuManager menu) {
-+
-+		if(fCCPGroup != null)
-+			fCCPGroup.fillContextMenu(menu);
-+
-+	}
-+
-+	public void init(CommonActionProviderConfig config) {
-+
-+		ICommonViewerWorkbenchSite workbenchSite = null;
-+		if (config.getViewSite() instanceof ICommonViewerWorkbenchSite)
-+			workbenchSite = (ICommonViewerWorkbenchSite) config.getViewSite();
-+
-+		fStateModel = config.getExtensionStateModel();
-+//		WorkingSetModelManager workingSetModelManager = (WorkingSetModelManager) fStateModel
-+//				.getProperty(WorkingSetModelManager.INSTANCE_KEY);
-+
-+		fLayoutActionGroup = new CommonLayoutActionGroup(config
-+				.getStructuredViewer(), fStateModel);
-+
-+		if (workbenchSite != null) {
-+//			fViewActionGroup = new ViewActionGroup(
-+//					ViewActionGroup.SHOW_PROJECTS, /*workingSetModelManager,*/
-+//					workbenchSite.getSite());
-+			if (workbenchSite.getPart() != null
-+					&& workbenchSite.getPart() instanceof IViewPart) {
-+				fCCPGroup = new CCPActionGroup((IViewPart) workbenchSite
-+						.getPart());
-+			}
-+
-+		}
-+
-+	}
-+
-+	public void init(final String extensionId, final IViewPart viewPart,
-+			final INavigatorContentService contentService,
-+			final StructuredViewer structuredViewer) {
-+
-+	}
-+
-+	public void restoreState(IMemento memento) {
-+		super.restoreState(memento);
-+		restoreLayoutState(memento);
-+	}
-+
-+	private void restoreLayoutState(IMemento memento) {
-+		boolean isCurrentLayoutFlat = true;
-+		Integer state = null;
-+		if (memento != null)
-+			state = memento.getInteger(TAG_LAYOUT);
-+
-+		// If no memento try an restore from preference store
-+		if (state == null) {
-+			IPreferenceStore store = JavaPlugin.getDefault()
-+					.getPreferenceStore();
-+			state = new Integer(store.getInt(TAG_LAYOUT));
-+		}
-+
-+		if (state.intValue() == FLAT_LAYOUT)
-+			isCurrentLayoutFlat = true;
-+		else if (state.intValue() == HIERARCHICAL_LAYOUT)
-+			isCurrentLayoutFlat = false;
-+
-+		fStateModel.setBooleanProperty(Values.IS_LAYOUT_FLAT,
-+				isCurrentLayoutFlat);
-+		fLayoutActionGroup.setFlatLayout(isCurrentLayoutFlat);
-+	}
-+
-+}
-Index: ui/org/eclipse/jdt/internal/ui/packageview/PreferenceAwareLabelProvider.java
-===================================================================
-RCS file: ui/org/eclipse/jdt/internal/ui/packageview/PreferenceAwareLabelProvider.java
-diff -N ui/org/eclipse/jdt/internal/ui/packageview/PreferenceAwareLabelProvider.java
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ ui/org/eclipse/jdt/internal/ui/packageview/PreferenceAwareLabelProvider.java	1 Jan 1970 00:00:00 -0000
-@@ -0,0 +1,191 @@
-+/***************************************************************************************************
-+ * 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.jdt.internal.ui.packageview;
-+
-+import org.eclipse.core.resources.IContainer;
-+import org.eclipse.core.resources.IResource;
-+
-+import org.eclipse.swt.graphics.Color;
-+import org.eclipse.swt.graphics.Image;
-+
-+import org.eclipse.jface.util.IPropertyChangeListener;
-+import org.eclipse.jface.util.PropertyChangeEvent;
-+import org.eclipse.jface.viewers.ILabelDecorator;
-+import org.eclipse.jface.viewers.ILabelProviderListener;
-+import org.eclipse.jface.viewers.ITreeContentProvider;
-+
-+import org.eclipse.ui.IMemento;
-+import org.eclipse.ui.navigator.ICommonLabelProvider;
-+import org.eclipse.ui.navigator.IExtensionStateModel;
-+
-+import org.eclipse.jdt.core.IJavaElement;
-+
-+import org.eclipse.jdt.ui.JavaElementLabels;
-+
-+import org.eclipse.jdt.internal.ui.packageview.IExtensionStateConstants.Values;
-+import org.eclipse.jdt.internal.ui.viewsupport.AppearanceAwareLabelProvider;
-+import org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider;
-+
-+/**
-+ * Provides the labels for the Package Explorer.
-+ * <p>
-+ * It provides labels for the packages in hierarchical layout and in all other
-+ * cases delegates it to its super class.
-+ * </p>
-+ * 
-+ * @since 2.1
-+ */
-+public class PreferenceAwareLabelProvider implements ICommonLabelProvider {
-+
-+	private final long LABEL_FLAGS = JavaElementLabels.DEFAULT_QUALIFIED
-+			| JavaElementLabels.ROOT_POST_QUALIFIED
-+			| JavaElementLabels.APPEND_ROOT_PATH
-+			| JavaElementLabels.M_PARAMETER_TYPES
-+			| JavaElementLabels.M_PARAMETER_NAMES
-+			| JavaElementLabels.M_APP_RETURNTYPE
-+			| JavaElementLabels.M_EXCEPTIONS
-+			| JavaElementLabels.F_APP_TYPE_SIGNATURE
-+			| JavaElementLabels.T_TYPE_PARAMETERS;
-+
-+	private PackageExplorerLabelProvider delegeteLabelProvider;
-+
-+	private PackageExplorerContentProvider fContentProvider;
-+
-+	private IExtensionStateModel fStateModel;
-+
-+	public PreferenceAwareLabelProvider() {
-+
-+	}
-+
-+	public void init(IExtensionStateModel aStateModel,
-+			ITreeContentProvider contentProvider) {
-+		fStateModel = aStateModel;
-+
-+		fContentProvider = (PackageExplorerContentProvider) contentProvider;
-+		delegeteLabelProvider = createLabelProvider();
-+
-+		delegeteLabelProvider.setIsFlatLayout(fStateModel
-+				.getBooleanProperty(Values.IS_LAYOUT_FLAT));
-+		fStateModel.addPropertyChangeListener(new IPropertyChangeListener() {
-+			public void propertyChange(PropertyChangeEvent event) {
-+				if (Values.IS_LAYOUT_FLAT.equals(event.getProperty())) {
-+					if (event.getNewValue() != null) {
-+						boolean newValue = ((Boolean) event.getNewValue())
-+								.booleanValue() ? true : false;
-+						delegeteLabelProvider.setIsFlatLayout(newValue);
-+					}
-+				}
-+
-+			}
-+		});
-+	}
-+
-+	public String getDescription(Object anElement) {
-+		return formatMessage(anElement);
-+	}
-+
-+	private PackageExplorerLabelProvider createLabelProvider() {
-+
-+		return new PackageExplorerLabelProvider(
-+				AppearanceAwareLabelProvider.DEFAULT_TEXTFLAGS
-+						| JavaElementLabels.P_COMPRESSED,
-+				AppearanceAwareLabelProvider.DEFAULT_IMAGEFLAGS
-+						| JavaElementImageProvider.SMALL_ICONS,
-+				fContentProvider);
-+
-+	}
-+
-+	public void dispose() {
-+		delegeteLabelProvider.dispose();
-+	}
-+
-+	public void propertyChange(PropertyChangeEvent event) {
-+		delegeteLabelProvider.propertyChange(event);
-+	}
-+
-+	public void addLabelDecorator(ILabelDecorator decorator) {
-+		delegeteLabelProvider.addLabelDecorator(decorator);
-+	}
-+
-+	public void addListener(ILabelProviderListener listener) {
-+		delegeteLabelProvider.addListener(listener);
-+	}
-+
-+	public Color getBackground(Object element) {
-+		return delegeteLabelProvider.getBackground(element);
-+	}
-+
-+	public Color getForeground(Object element) {
-+		return delegeteLabelProvider.getForeground(element);
-+	}
-+
-+	public Image getImage(Object element) {
-+		return delegeteLabelProvider.getImage(element);
-+	}
-+
-+	public boolean isLabelProperty(Object element, String property) {
-+		return delegeteLabelProvider.isLabelProperty(element, property);
-+	}
-+
-+	public void removeListener(ILabelProviderListener listener) {
-+		delegeteLabelProvider.removeListener(listener);
-+	}
-+
-+	public boolean equals(Object obj) {
-+		return delegeteLabelProvider.equals(obj);
-+	}
-+
-+	public int hashCode() {
-+		return delegeteLabelProvider.hashCode();
-+	}
-+
-+	public String toString() {
-+		return delegeteLabelProvider.toString();
-+	}
-+
-+	public String getText(Object element) {
-+		return delegeteLabelProvider.getText(element);
-+	}
-+
-+	public void setIsFlatLayout(boolean state) {
-+		delegeteLabelProvider.setIsFlatLayout(state);
-+	}
-+
-+	// Taken from StatusBarUpdater
-+
-+	protected String formatMessage(Object element) {
-+		if (element instanceof IJavaElement) {
-+			return formatJavaElementMessage((IJavaElement) element);
-+		} else if (element instanceof IResource) {
-+			return formatResourceMessage((IResource) element);
-+		}
-+		return ""; //$NON-NLS-1$
-+	}
-+
-+	private String formatJavaElementMessage(IJavaElement element) {
-+		return JavaElementLabels.getElementLabel(element, LABEL_FLAGS);
-+	}
-+
-+	private String formatResourceMessage(IResource element) {
-+		IContainer parent = element.getParent();
-+		if (parent != null && parent.getType() != IResource.ROOT)
-+			return element.getName() + JavaElementLabels.CONCAT_STRING
-+					+ parent.getFullPath().makeRelative().toString();
-+		else
-+			return element.getName();
-+	}
-+
-+	public void restoreState(IMemento aMemento) {
-+
-+	}
-+
-+	public void saveState(IMemento aMemento) {
-+
-+	}
-+}
-Index: ui/org/eclipse/jdt/internal/ui/packageview/IExtensionStateConstants.java
-===================================================================
-RCS file: ui/org/eclipse/jdt/internal/ui/packageview/IExtensionStateConstants.java
-diff -N ui/org/eclipse/jdt/internal/ui/packageview/IExtensionStateConstants.java
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ ui/org/eclipse/jdt/internal/ui/packageview/IExtensionStateConstants.java	1 Jan 1970 00:00:00 -0000
-@@ -0,0 +1,23 @@
-+/***************************************************************************************************
-+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
-+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
-+ * which accompanies this distribution, and is available at
-+ * http://www.eclipse.org/legal/epl-v10.html
-+ * 
-+ * Contributors: IBM Corporation - initial API and implementation
-+ **************************************************************************************************/
-+package org.eclipse.jdt.internal.ui.packageview;
-+
-+
-+public interface IExtensionStateConstants {
-+ 
-+	String ROOT_MODE= "rootMode"; //$NON-NLS-1$ 
-+
-+	interface Values {
-+
-+		String IS_LAYOUT_FLAT= "isLayoutFlat"; //$NON-NLS-1$
-+ 
-+
-+	}
-+
-+}
diff --git a/bundles/org.eclipse.ui.navigator/models/CommonNavigator.emx b/bundles/org.eclipse.ui.navigator/models/CommonNavigator.emx
deleted file mode 100644
index 42fcc12..0000000
--- a/bundles/org.eclipse.ui.navigator/models/CommonNavigator.emx
+++ /dev/null
@@ -1,3387 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--xtools2_universal_type_manager-->
-<uml:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.ibm.com/xtools/1.5.0/Notation" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmlns:umlnotation="http://www.ibm.com/xtools/1.5.0/Umlnotation" xmi:id="_SWX3UH5GEdm797szikHjoQ" name="CommonNavigator" appliedProfile="_SWX3VH5GEdm797szikHjoQ _SWX3V35GEdm797szikHjoQ _SWX3Wn5GEdm797szikHjoQ _SWX3XX5GEdm797szikHjoQ _SWX3YH5GEdm797szikHjoQ">
-  <eAnnotations xmi:id="_SWX3UX5GEdm797szikHjoQ" source="uml2.diagrams" references="_SWX3Un5GEdm797szikHjoQ">
-    <contents xmi:type="notation:Diagram" xmi:id="_SWX3Un5GEdm797szikHjoQ" type="Class" name="Core">
-      <children xmi:id="_YIiqQH5GEdm797szikHjoQ" sourceEdges="_gmJvwH5GEdm797szikHjoQ _pbicEH5GEdm797szikHjoQ _cVmOoH5IEdm797szikHjoQ _qqjuAPy4Edm185zvv0WM_Q" targetEdges="_gmP2Y35GEdm797szikHjoQ">
-        <children xmi:id="_YIiqQ35GEdm797szikHjoQ" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_YIiqRH5GEdm797szikHjoQ" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_YIiqRX5GEdm797szikHjoQ" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_YIiqRn5GEdm797szikHjoQ" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_YIiqR35GEdm797szikHjoQ" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_YIiqSH5GEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_YIiqSX5GEdm797szikHjoQ" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_YIiqSn5GEdm797szikHjoQ" filtering="Manual">
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createCommonViewer^sign=(QComposite%3b)QCommonViewer%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=initListeners^sign=(QTreeViewer%3b)V[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=handleDoubleClick^sign=(QDoubleClickEvent%3b)V[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createCommonManager^sign=()QCommonNavigatorManager%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createCommonActionGroup^sign=()QActionGroup%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createCommonFilter^sign=(QCommonViewer%3b)QViewerFilter%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createDisposeListener^sign=()QDisposeListener%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=getInitialInput^sign=()QIAdaptable%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=updateTitle^sign=()V[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=getFrameToolTipText^sign=(QObject%3b)QString%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </styles>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_YIiqS35GEdm797szikHjoQ" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_YIiqTH5GEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_YIiqTX5GEdm797szikHjoQ" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_YIiqTn5GEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_YIiqQX5GEdm797szikHjoQ" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YIiqQn5GEdm797szikHjoQ" x="36252" y="1590"/>
-      </children>
-      <children xmi:id="_gYyCIH5GEdm797szikHjoQ" sourceEdges="_gmP2Y35GEdm797szikHjoQ _bpR7MH5IEdm797szikHjoQ" targetEdges="_gmJvwH5GEdm797szikHjoQ _w9XssPy0Edm185zvv0WM_Q">
-        <children xmi:id="_gYyCI35GEdm797szikHjoQ" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_gYyCJH5GEdm797szikHjoQ" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_gYyCJX5GEdm797szikHjoQ" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_gYyCJn5GEdm797szikHjoQ" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_gYyCJ35GEdm797szikHjoQ" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_gYyCKH5GEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_gYyCKX5GEdm797szikHjoQ" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_gYyCKn5GEdm797szikHjoQ" filtering="Manual">
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=init^sign=()V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=selectionChanged^sign=(QSelectionChangedEvent%3b)V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=restoreState^sign=(QIMemento%3b)V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=saveState^sign=(QIMemento%3b)V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=fillContextMenu^sign=(QIMenuManager%3b)V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=initContextMenu^sign=()V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=updateStatusBar^sign=(QISelection%3b)V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=getDefaultStatusBarMessage^sign=(QIStructuredSelection%3b)QString%3b[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </styles>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_gYyCK35GEdm797szikHjoQ" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_gYyCLH5GEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_gYyCLX5GEdm797szikHjoQ" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_gYyCLn5GEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_gYyCIX5GEdm797szikHjoQ" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gYyCIn5GEdm797szikHjoQ" x="43248" y="5406"/>
-      </children>
-      <children xmi:id="_pX0ZsH5GEdm797szikHjoQ" sourceEdges="_cVsVQH5IEdm797szikHjoQ" targetEdges="_pbicEH5GEdm797szikHjoQ">
-        <children xmi:id="_pX0Zs35GEdm797szikHjoQ" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_pX0ZtH5GEdm797szikHjoQ" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_pX0ZtX5GEdm797szikHjoQ" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_pX0Ztn5GEdm797szikHjoQ" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_pX0Zt35GEdm797szikHjoQ" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pX0ZuH5GEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_pX0ZuX5GEdm797szikHjoQ" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pX0Zun5GEdm797szikHjoQ" filtering="Manual">
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=init^sign=()V[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=internalAdd^sign=(QWidget%3bQObject%3b%5bQObject%3b)V[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=initDragAndDrop^sign=()V[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createTreeItem^sign=(QWidget%3bQObject%3bI)V[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </styles>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_pX0Zu35GEdm797szikHjoQ" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pX0ZvH5GEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_pX0ZvX5GEdm797szikHjoQ" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_pX0Zvn5GEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_pX0ZsX5GEdm797szikHjoQ" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pX0Zsn5GEdm797szikHjoQ" x="28620" y="1908"/>
-      </children>
-      <children xmi:id="_blp_cH5IEdm797szikHjoQ" sourceEdges="_cVyb4H5IEdm797szikHjoQ _SjfAUPy4Edm185zvv0WM_Q _cYMbofy4Edm185zvv0WM_Q" targetEdges="_bpR7MH5IEdm797szikHjoQ _Vs4hkPy1Edm185zvv0WM_Q">
-        <children xmi:id="_blp_c35IEdm797szikHjoQ" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_blp_dH5IEdm797szikHjoQ" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_blp_dX5IEdm797szikHjoQ" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_blp_dn5IEdm797szikHjoQ" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_blp_d35IEdm797szikHjoQ" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_blp_eH5IEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_blp_eX5IEdm797szikHjoQ" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_blp_en5IEdm797szikHjoQ" filtering="Manual">
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=init^sign=()V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=addCommonActionProviderMenu^sign=(QIMenuManager%3bQIStructuredSelection%3bQActionContext%3b)V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=addContentDescriptorMenu^sign=(QIMenuManager%3bQIStructuredSelection%3bQActionContext%3b)V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=findRelevantActionDescriptors^sign=(QIStructuredSelection%3b)%5bQCommonActionProviderDescriptor%3b[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=getActionProviderInstance^sign=(QCommonActionProviderDescriptor%3b)QICommonActionProvider%3b[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=addActionDescriptor^sign=(QCommonActionProviderDescriptor%3b)V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=complainIfDisposed^sign=()V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=onLoad^sign=(QNavigatorContentDescriptorInstance%3b)V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=initialize^sign=(QICommonActionProvider%3b)V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </styles>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_blp_e35IEdm797szikHjoQ" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_blp_fH5IEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_blp_fX5IEdm797szikHjoQ" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_blp_fn5IEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_blp_cX5IEdm797szikHjoQ" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_blp_cn5IEdm797szikHjoQ" x="45792" y="10812"/>
-      </children>
-      <children xmi:id="_cS1OgH5IEdm797szikHjoQ" sourceEdges="_zRaDEH5IEdm797szikHjoQ _2IBD0H5IEdm797szikHjoQ _STCGUfy0Edm185zvv0WM_Q _UZHpEPy0Edm185zvv0WM_Q _UZNvsvy0Edm185zvv0WM_Q _1xTY8Py4Edm185zvv0WM_Q" targetEdges="_cVmOoH5IEdm797szikHjoQ _cVsVQH5IEdm797szikHjoQ _cVyb4H5IEdm797szikHjoQ _zRaDGH5IEdm797szikHjoQ _2IBD2H5IEdm797szikHjoQ _UZNvwvy0Edm185zvv0WM_Q _mNKdAPy1Edm185zvv0WM_Q _SjfAWPy4Edm185zvv0WM_Q _qqjuCPy4Edm185zvv0WM_Q">
-        <children xmi:id="_cS1Og35IEdm797szikHjoQ" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_cS1OhH5IEdm797szikHjoQ" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_cS1OhX5IEdm797szikHjoQ" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_cS1Ohn5IEdm797szikHjoQ" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_cS1Oh35IEdm797szikHjoQ" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cS1OiH5IEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_cS1OiX5IEdm797szikHjoQ" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cS1Oin5IEdm797szikHjoQ" filtering="Automatic" filteringKeys="private,package,protected"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_cS1Oi35IEdm797szikHjoQ" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cS1OjH5IEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_cS1OjX5IEdm797szikHjoQ" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_cS1Ojn5IEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_cS1OgX5IEdm797szikHjoQ" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cS1Ogn5IEdm797szikHjoQ" x="28938" y="16854"/>
-      </children>
-      <children xmi:id="_zPTxUH5IEdm797szikHjoQ" sourceEdges="_zRaDGH5IEdm797szikHjoQ" targetEdges="_zRaDEH5IEdm797szikHjoQ _yKo7oPy1Edm185zvv0WM_Q">
-        <children xmi:id="_zPTxU35IEdm797szikHjoQ" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_zPTxVH5IEdm797szikHjoQ" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_zPZ38H5IEdm797szikHjoQ" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_zPZ38X5IEdm797szikHjoQ" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_zPZ38n5IEdm797szikHjoQ" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_zPZ3835IEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_zPZ39H5IEdm797szikHjoQ" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_zPZ39X5IEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_zPZ39n5IEdm797szikHjoQ" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_zPZ3935IEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_zPZ3-H5IEdm797szikHjoQ" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_zPZ3-X5IEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_zPTxUX5IEdm797szikHjoQ" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPTxUn5IEdm797szikHjoQ" x="11086" y="17457"/>
-      </children>
-      <children xmi:id="_2F0rcH5IEdm797szikHjoQ" sourceEdges="_2IBD2H5IEdm797szikHjoQ" targetEdges="_2IBD0H5IEdm797szikHjoQ _ypezwPy1Edm185zvv0WM_Q">
-        <children xmi:id="_2F0rc35IEdm797szikHjoQ" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_2F0rdH5IEdm797szikHjoQ" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_2F0rdX5IEdm797szikHjoQ" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_2F0rdn5IEdm797szikHjoQ" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_2F0rd35IEdm797szikHjoQ" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2F0reH5IEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_2F0reX5IEdm797szikHjoQ" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2F0ren5IEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_2F0re35IEdm797szikHjoQ" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2F0rfH5IEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_2F0rfX5IEdm797szikHjoQ" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_2F0rfn5IEdm797szikHjoQ"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_2F0rcX5IEdm797szikHjoQ" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2F0rcn5IEdm797szikHjoQ" x="19393" y="17449"/>
-      </children>
-      <children xmi:id="_SJw1kPy0Edm185zvv0WM_Q" sourceEdges="_STINA_y0Edm185zvv0WM_Q _STOTkvy0Edm185zvv0WM_Q" targetEdges="_STOTkvy0Edm185zvv0WM_Q">
-        <children xmi:id="_SJ28MPy0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_SJ28Mfy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_SJ28Mvy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_SJ28M_y0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_SJ28NPy0Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SJ28Nfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_SJ28Nvy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SJ28N_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_SJ28OPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SJ28Ofy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_SJ28Ovy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_SJ28O_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_SJw1kfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SJw1kvy0Edm185zvv0WM_Q" x="11448" y="31800"/>
-      </children>
-      <children xmi:id="_SLrhIPy0Edm185zvv0WM_Q" targetEdges="_STCGUfy0Edm185zvv0WM_Q _STINA_y0Edm185zvv0WM_Q">
-        <children xmi:id="_SLrhI_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_SLrhJPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_SLrhJfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_SLrhJvy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_SLrhJ_y0Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SLrhKPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_SLrhKfy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SLrhKvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_SLrhK_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SLrhLPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_SLrhLfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_SLrhLvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_SLrhIfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SLrhIvy0Edm185zvv0WM_Q" x="21624" y="31164"/>
-      </children>
-      <children xmi:id="_UTY0gPy0Edm185zvv0WM_Q" sourceEdges="_UZNvuvy0Edm185zvv0WM_Q _UZNvwvy0Edm185zvv0WM_Q _UZT2Vfy0Edm185zvv0WM_Q" targetEdges="_UZNvsvy0Edm185zvv0WM_Q _UZT2Vfy0Edm185zvv0WM_Q _KhpYMPy1Edm185zvv0WM_Q">
-        <children xmi:id="_UTY0g_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_UTY0hPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_UTY0hfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_UTY0hvy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_UTY0h_y0Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UTY0iPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_UTY0ify0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UTY0ivy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_UTY0i_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UTY0jPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_UTY0jfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_UTY0jvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_UTY0gfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UTY0gvy0Edm185zvv0WM_Q" x="37524" y="26394"/>
-      </children>
-      <children xmi:id="_UXl_EPy0Edm185zvv0WM_Q" targetEdges="_UZHpEPy0Edm185zvv0WM_Q _UZNvuvy0Edm185zvv0WM_Q">
-        <children xmi:id="_UXl_E_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_UXl_FPy0Edm185zvv0WM_Q" width="530" height="530"/>
-        </children>
-        <children xmi:id="_UXl_Ffy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_UXl_Fvy0Edm185zvv0WM_Q" type="Kind">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_UXl_F_y0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_UXl_GPy0Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UXl_Gfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_UXl_Gvy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UXl_G_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_UXl_HPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UXl_Hfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_UXl_Efy0Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
-        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UXl_Evy0Edm185zvv0WM_Q" x="30210" y="31164"/>
-      </children>
-      <children xmi:id="_mh4lQPy0Edm185zvv0WM_Q" sourceEdges="_w9XssPy0Edm185zvv0WM_Q" element="_mJViYPy0Edm185zvv0WM_Q">
-        <children xmi:id="_mh4lQ_y0Edm185zvv0WM_Q" type="CommentBody" element="_mJViYPy0Edm185zvv0WM_Q"/>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_mh4lQfy0Edm185zvv0WM_Q" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mh4lQvy0Edm185zvv0WM_Q" x="45474" y="2226" width="4928" height="1674"/>
-      </children>
-      <children xmi:id="_ADfXQPy1Edm185zvv0WM_Q" sourceEdges="_KhpYMPy1Edm185zvv0WM_Q" element="_ADTKAPy1Edm185zvv0WM_Q">
-        <children xmi:id="_ADfXQ_y1Edm185zvv0WM_Q" type="CommentBody" element="_ADTKAPy1Edm185zvv0WM_Q"/>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_ADfXQfy1Edm185zvv0WM_Q" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ADfXQvy1Edm185zvv0WM_Q" x="50244" y="26712" width="5715" height="2540"/>
-      </children>
-      <children xmi:id="_MRrLYPy1Edm185zvv0WM_Q" sourceEdges="_Vs4hkPy1Edm185zvv0WM_Q" element="_MRe-IPy1Edm185zvv0WM_Q">
-        <children xmi:id="_MRrLY_y1Edm185zvv0WM_Q" type="CommentBody" element="_MRe-IPy1Edm185zvv0WM_Q"/>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_MRrLYfy1Edm185zvv0WM_Q" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MRrLYvy1Edm185zvv0WM_Q" x="41658" y="10812" width="3175" height="5432"/>
-      </children>
-      <children xmi:id="_XJC9kPy1Edm185zvv0WM_Q" sourceEdges="_mNKdAPy1Edm185zvv0WM_Q" element="_XIwpsPy1Edm185zvv0WM_Q">
-        <children xmi:id="_XJC9k_y1Edm185zvv0WM_Q" type="CommentBody" element="_XIwpsPy1Edm185zvv0WM_Q"/>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_XJC9kfy1Edm185zvv0WM_Q" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJC9kvy1Edm185zvv0WM_Q" x="22260" y="11130" width="5715" height="4762"/>
-      </children>
-      <children xmi:id="_vA1SEPy1Edm185zvv0WM_Q" sourceEdges="_yKo7oPy1Edm185zvv0WM_Q _ypezwPy1Edm185zvv0WM_Q" element="_vAWw8Py1Edm185zvv0WM_Q">
-        <children xmi:id="_vA1SE_y1Edm185zvv0WM_Q" type="CommentBody" element="_vAWw8Py1Edm185zvv0WM_Q"/>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_vA1SEfy1Edm185zvv0WM_Q" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vA1SEvy1Edm185zvv0WM_Q" x="16826" y="9900" width="4471" height="1270"/>
-      </children>
-      <children xmi:id="_She1MPy4Edm185zvv0WM_Q" sourceEdges="_SjfAWPy4Edm185zvv0WM_Q" targetEdges="_SjfAUPy4Edm185zvv0WM_Q _cYSiQ_y4Edm185zvv0WM_Q">
-        <children xmi:id="_She1M_y4Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_She1NPy4Edm185zvv0WM_Q" width="530" height="530"/>
-        </children>
-        <children xmi:id="_She1Nfy4Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_She1Nvy4Edm185zvv0WM_Q" type="Kind">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_She1N_y4Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_She1OPy4Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_She1Ofy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_She1Ovy4Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_She1O_y4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_She1PPy4Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_She1Pfy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_She1Mfy4Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
-        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_She1Mvy4Edm185zvv0WM_Q" x="49608" y="18444"/>
-      </children>
-      <children xmi:id="_cT5xgPy4Edm185zvv0WM_Q" sourceEdges="_cYSiQ_y4Edm185zvv0WM_Q" targetEdges="_cYMbofy4Edm185zvv0WM_Q">
-        <children xmi:id="_cT_4IPy4Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_cT_4Ify4Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_cT_4Ivy4Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_cT_4I_y4Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_cT_4JPy4Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cT_4Jfy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_cT_4Jvy4Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cT_4J_y4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_cT_4KPy4Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cT_4Kfy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_cT_4Kvy4Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_cT_4K_y4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_cT5xgfy4Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cT5xgvy4Edm185zvv0WM_Q" x="52034" y="10759" width="8804"/>
-      </children>
-      <children xmi:id="_qn-7IPy4Edm185zvv0WM_Q" sourceEdges="_qqjuCPy4Edm185zvv0WM_Q" targetEdges="_qqjuAPy4Edm185zvv0WM_Q">
-        <children xmi:id="_qn-7I_y4Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_qn-7JPy4Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_qn-7Jfy4Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_qn-7Jvy4Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_qn-7J_y4Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_qn-7KPy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_qn-7Kfy4Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_qn-7Kvy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_qn-7K_y4Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_qn-7LPy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_qn-7Lfy4Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_qn-7Lvy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_qn-7Ify4Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qn-7Ivy4Edm185zvv0WM_Q" x="13705" y="25135"/>
-      </children>
-      <children xmi:id="_1ucSMPy4Edm185zvv0WM_Q" targetEdges="_1xTY8Py4Edm185zvv0WM_Q _8M1R8Py4Edm185zvv0WM_Q">
-        <children xmi:id="_1ucSM_y4Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_1ucSNPy4Edm185zvv0WM_Q" width="530" height="530"/>
-        </children>
-        <children xmi:id="_1ucSNfy4Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_1ucSNvy4Edm185zvv0WM_Q" type="Kind">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_1ucSN_y4Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_1ucSOPy4Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_1ucSOfy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_1ucSOvy4Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_1ucSO_y4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_1ucSPPy4Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_1ucSPfy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_1ucSMfy4Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
-        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1ucSMvy4Edm185zvv0WM_Q" x="4452" y="17490"/>
-      </children>
-      <children xmi:id="_8MEc8Py4Edm185zvv0WM_Q" sourceEdges="_8M1R8Py4Edm185zvv0WM_Q _E9EYgPy5Edm185zvv0WM_Q">
-        <children xmi:id="_8MKjkPy4Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_8MKjkfy4Edm185zvv0WM_Q" width="530" height="530"/>
-        </children>
-        <children xmi:id="_8MKjkvy4Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_8MKjk_y4Edm185zvv0WM_Q" type="Kind">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_8MKjlPy4Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_8MKjlfy4Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_8MKjlvy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_8MKjl_y4Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_8MKjmPy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_8MKjmfy4Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_8MKjmvy4Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_8MEc8fy4Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
-        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8MEc8vy4Edm185zvv0WM_Q" x="42294" y="21624"/>
-      </children>
-      <children xmi:id="_E7KUAPy5Edm185zvv0WM_Q" targetEdges="_E9EYgPy5Edm185zvv0WM_Q">
-        <children xmi:id="_E7KUA_y5Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_E7KUBPy5Edm185zvv0WM_Q" width="530" height="530"/>
-        </children>
-        <children xmi:id="_E7KUBfy5Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_E7KUBvy5Edm185zvv0WM_Q" type="Kind">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_E7KUB_y5Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_E7KUCPy5Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_E7KUCfy5Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_E7KUCvy5Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_E7KUC_y5Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_E7KUDPy5Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_E7KUDfy5Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_E7KUAfy5Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
-        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E7KUAvy5Edm185zvv0WM_Q" x="42612" y="18126"/>
-      </children>
-      <styles xmi:type="umlnotation:UMLDiagramStyle" xmi:id="_SWX3U35GEdm797szikHjoQ"/>
-      <edges xmi:id="_gmJvwH5GEdm797szikHjoQ" source="_YIiqQH5GEdm797szikHjoQ" target="_gYyCIH5GEdm797szikHjoQ">
-        <children xmi:id="_gmJvw35GEdm797szikHjoQ" type="KindLabel">
-          <children xmi:id="_gmP2YH5GEdm797szikHjoQ" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_gmP2Yn5GEdm797szikHjoQ" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_gmP2YX5GEdm797szikHjoQ" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_gmJvxH5GEdm797szikHjoQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_gmJvwX5GEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gmJvwn5GEdm797szikHjoQ" points="[-14, 3413, -6800, -4577]$[6786, 5000, 0, -2990]"/>
-      </edges>
-      <edges xmi:id="_gmP2Y35GEdm797szikHjoQ" source="_gYyCIH5GEdm797szikHjoQ" target="_YIiqQH5GEdm797szikHjoQ">
-        <children xmi:id="_gmP2Zn5GEdm797szikHjoQ" type="KindLabel">
-          <children xmi:id="_gmP2aH5GEdm797szikHjoQ" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_gmP2an5GEdm797szikHjoQ" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_gmP2aX5GEdm797szikHjoQ" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_gmP2Z35GEdm797szikHjoQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_gmP2ZH5GEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gmP2ZX5GEdm797szikHjoQ" points="[0, -2990, 6786, 5000]$[-6800, -4577, -14, 3413]"/>
-      </edges>
-      <edges xmi:id="_pbicEH5GEdm797szikHjoQ" source="_YIiqQH5GEdm797szikHjoQ" target="_pX0ZsH5GEdm797szikHjoQ">
-        <children xmi:id="_pbicE35GEdm797szikHjoQ" type="KindLabel">
-          <children xmi:id="_pbicFX5GEdm797szikHjoQ" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_pbicF35GEdm797szikHjoQ" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_pbicFn5GEdm797szikHjoQ" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_pbicFH5GEdm797szikHjoQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_pbicEX5GEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pbicEn5GEdm797szikHjoQ" points="[-14, 3413, 3161, -4577]$[-3189, 5000, -14, -2990]"/>
-      </edges>
-      <edges xmi:id="_bpR7MH5IEdm797szikHjoQ" source="_gYyCIH5GEdm797szikHjoQ" target="_blp_cH5IEdm797szikHjoQ">
-        <children xmi:id="_bpR7M35IEdm797szikHjoQ" type="KindLabel">
-          <children xmi:id="_bpR7NX5IEdm797szikHjoQ" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_bpR7N35IEdm797szikHjoQ" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_bpR7Nn5IEdm797szikHjoQ" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_bpR7NH5IEdm797szikHjoQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_bpR7MX5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bpR7Mn5IEdm797szikHjoQ" points="[0, 2990, 3915, -5927]$[-3916, 4578, -1, -4339]"/>
-      </edges>
-      <edges xmi:id="_cVmOoH5IEdm797szikHjoQ" source="_YIiqQH5GEdm797szikHjoQ" target="_cS1OgH5IEdm797szikHjoQ">
-        <children xmi:id="_cVmOo35IEdm797szikHjoQ" type="KindLabel">
-          <children xmi:id="_cVmOpX5IEdm797szikHjoQ" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_cVmOp35IEdm797szikHjoQ" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_cVmOpn5IEdm797szikHjoQ" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_cVmOpH5IEdm797szikHjoQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_cVmOoX5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cVmOon5IEdm797szikHjoQ" points="[-14, 3413, 10001, -25585]$[-14, 21247, 10001, -7751]$[-10015, 22833, 0, -6165]"/>
-      </edges>
-      <edges xmi:id="_cVsVQH5IEdm797szikHjoQ" source="_pX0ZsH5GEdm797szikHjoQ" target="_cS1OgH5IEdm797szikHjoQ">
-        <children xmi:id="_cVsVQ35IEdm797szikHjoQ" type="KindLabel">
-          <children xmi:id="_cVsVRX5IEdm797szikHjoQ" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_cVsVR35IEdm797szikHjoQ" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_cVsVRn5IEdm797szikHjoQ" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_cVsVRH5IEdm797szikHjoQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_cVsVQX5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cVsVQn5IEdm797szikHjoQ" points="[-14, 2990, 6826, -18018]$[2738, 4578, 9578, -16430]$[2738, 13257, 9578, -7751]$[-6840, 14843, 0, -6165]"/>
-      </edges>
-      <edges xmi:id="_cVyb4H5IEdm797szikHjoQ" source="_blp_cH5IEdm797szikHjoQ" target="_cS1OgH5IEdm797szikHjoQ">
-        <children xmi:id="_cVyb435IEdm797szikHjoQ" type="KindLabel">
-          <children xmi:id="_cVyb5X5IEdm797szikHjoQ" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_cVyb535IEdm797szikHjoQ" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_cVyb5n5IEdm797szikHjoQ" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_cVyb5H5IEdm797szikHjoQ" y="1"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_cVyb4X5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cVyb4n5IEdm797szikHjoQ" points="[26, 2963, 16325, -6244]$[26, 6562, 16325, -2645]$[-13335, 6562, 2964, -2645]"/>
-      </edges>
-      <edges xmi:id="_zRaDEH5IEdm797szikHjoQ" source="_cS1OgH5IEdm797szikHjoQ" target="_zPTxUH5IEdm797szikHjoQ">
-        <children xmi:id="_zRaDE35IEdm797szikHjoQ" type="KindLabel">
-          <children xmi:id="_zRaDFX5IEdm797szikHjoQ" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_zRaDF35IEdm797szikHjoQ" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_zRaDFn5IEdm797szikHjoQ" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_zRaDFH5IEdm797szikHjoQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_zRaDEX5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zRaDEn5IEdm797szikHjoQ" points="[0, -6165, 14565, 5926]$[-14579, -7752, -14, 4339]"/>
-      </edges>
-      <edges xmi:id="_zRaDGH5IEdm797szikHjoQ" source="_zPTxUH5IEdm797szikHjoQ" target="_cS1OgH5IEdm797szikHjoQ">
-        <children xmi:id="_zRaDG35IEdm797szikHjoQ" type="KindLabel">
-          <children xmi:id="_zRaDHX5IEdm797szikHjoQ" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_zRaDH35IEdm797szikHjoQ" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_zRaDHn5IEdm797szikHjoQ" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_zRaDHH5IEdm797szikHjoQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_zRaDGX5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zRaDGn5IEdm797szikHjoQ" points="[-14, 4339, -14579, -7752]$[14565, 5926, 0, -6165]"/>
-      </edges>
-      <edges xmi:id="_2IBD0H5IEdm797szikHjoQ" source="_cS1OgH5IEdm797szikHjoQ" target="_2F0rcH5IEdm797szikHjoQ">
-        <children xmi:id="_2IBD035IEdm797szikHjoQ" type="KindLabel">
-          <children xmi:id="_2IBD1X5IEdm797szikHjoQ" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_2IBD135IEdm797szikHjoQ" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_2IBD1n5IEdm797szikHjoQ" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_2IBD1H5IEdm797szikHjoQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_2IBD0X5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2IBD0n5IEdm797szikHjoQ" points="[0, -6165, 6509, 5926]$[-6509, -7752, 0, 4339]"/>
-      </edges>
-      <edges xmi:id="_2IBD2H5IEdm797szikHjoQ" source="_2F0rcH5IEdm797szikHjoQ" target="_cS1OgH5IEdm797szikHjoQ">
-        <children xmi:id="_2IBD235IEdm797szikHjoQ" type="KindLabel">
-          <children xmi:id="_2IBD3X5IEdm797szikHjoQ" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_2IBD335IEdm797szikHjoQ" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_2IBD3n5IEdm797szikHjoQ" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_2IBD3H5IEdm797szikHjoQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_2IBD2X5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2IBD2n5IEdm797szikHjoQ" points="[0, 4339, -6509, -7752]$[6509, 5926, 0, -6165]"/>
-      </edges>
-      <edges xmi:id="_STCGUfy0Edm185zvv0WM_Q" source="_cS1OgH5IEdm797szikHjoQ" target="_SLrhIPy0Edm185zvv0WM_Q">
-        <children xmi:id="_STCGVPy0Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_STIM8Py0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_STIM8vy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_STIM8fy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_STCGVfy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_STCGUvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_STCGU_y0Edm185zvv0WM_Q" points="[0, 6165, 3612, -6337]$[-3625, 7752, -13, -4750]"/>
-      </edges>
-      <edges xmi:id="_STINA_y0Edm185zvv0WM_Q" source="_SJw1kPy0Edm185zvv0WM_Q" target="_SLrhIPy0Edm185zvv0WM_Q">
-        <children xmi:id="_STINBvy0Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_STINCPy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_STOTkfy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_STOTkPy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_STINB_y0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_STINBPy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_STINBfy0Edm185zvv0WM_Q" points="[0, 6165, -3638, -6337]$[3625, 7752, -13, -4750]"/>
-      </edges>
-      <edges xmi:id="_STOTkvy0Edm185zvv0WM_Q" source="_SJw1kPy0Edm185zvv0WM_Q" target="_SJw1kPy0Edm185zvv0WM_Q">
-        <children xmi:id="_STOTlfy0Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_STOTl_y0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_STOTmfy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_STOTmPy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_STOTlvy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_STOTk_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_STOTlPy0Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_UZHpEPy0Edm185zvv0WM_Q" source="_cS1OgH5IEdm797szikHjoQ" target="_UXl_EPy0Edm185zvv0WM_Q">
-        <children xmi:id="_UZHpE_y0Edm185zvv0WM_Q" type="NameLabel">
-          <children xmi:id="_UZNvsPy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_UZNvsfy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_UZHpFPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_UZHpEfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UZHpEvy0Edm185zvv0WM_Q" points="[0, 6165, -3400, -6337]$[3387, 7752, -13, -4750]"/>
-      </edges>
-      <edges xmi:id="_UZNvsvy0Edm185zvv0WM_Q" source="_cS1OgH5IEdm797szikHjoQ" target="_UTY0gPy0Edm185zvv0WM_Q">
-        <children xmi:id="_UZNvtfy0Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_UZNvt_y0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_UZNvufy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_UZNvuPy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_UZNvtvy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_UZNvs_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UZNvtPy0Edm185zvv0WM_Q" points="[0, -6165, -3387, 5926]$[3387, -7752, 0, 4339]"/>
-      </edges>
-      <edges xmi:id="_UZNvuvy0Edm185zvv0WM_Q" source="_UTY0gPy0Edm185zvv0WM_Q" target="_UXl_EPy0Edm185zvv0WM_Q">
-        <children xmi:id="_UZNvvfy0Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_UZNvv_y0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_UZNvwfy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_UZNvwPy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_UZNvvvy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_UZNvu_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UZNvvPy0Edm185zvv0WM_Q" points="[0, 4339, -13, -20254]$[0, 19843, -13, -4750]"/>
-      </edges>
-      <edges xmi:id="_UZNvwvy0Edm185zvv0WM_Q" source="_UTY0gPy0Edm185zvv0WM_Q" target="_cS1OgH5IEdm797szikHjoQ">
-        <children xmi:id="_UZT2UPy0Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_UZT2Uvy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_UZT2VPy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_UZT2U_y0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_UZT2Ufy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_UZNvw_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UZNvxPy0Edm185zvv0WM_Q" points="[0, 4339, 3387, -7752]$[-3387, 5926, 0, -6165]"/>
-      </edges>
-      <edges xmi:id="_UZT2Vfy0Edm185zvv0WM_Q" source="_UTY0gPy0Edm185zvv0WM_Q" target="_UTY0gPy0Edm185zvv0WM_Q">
-        <children xmi:id="_UZT2WPy0Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_UZT2Wvy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_UZT2XPy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_UZT2W_y0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_UZT2Wfy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_UZT2Vvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UZT2V_y0Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_w9XssPy0Edm185zvv0WM_Q" type="Reference" source="_mh4lQPy0Edm185zvv0WM_Q" target="_gYyCIH5GEdm797szikHjoQ">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_w9Xssfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w9Xssvy0Edm185zvv0WM_Q" points="[0, 3413, 0, -4577]$[0, 5000, 0, -2990]"/>
-      </edges>
-      <edges xmi:id="_KhpYMPy1Edm185zvv0WM_Q" type="Reference" source="_ADfXQPy1Edm185zvv0WM_Q" target="_UTY0gPy0Edm185zvv0WM_Q">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_KhpYMfy1Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KhpYMvy1Edm185zvv0WM_Q" points="[-13, 2990, -2593, -5927]$[2580, 4578, 0, -4339]"/>
-      </edges>
-      <edges xmi:id="_Vs4hkPy1Edm185zvv0WM_Q" type="Reference" source="_MRrLYPy1Edm185zvv0WM_Q" target="_blp_cH5IEdm797szikHjoQ">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Vs4hkfy1Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Vs4hkvy1Edm185zvv0WM_Q" points="[-14, 2990, -874, -5927]$[859, 4578, -1, -4339]"/>
-      </edges>
-      <edges xmi:id="_mNKdAPy1Edm185zvv0WM_Q" type="Reference" source="_XJC9kPy1Edm185zvv0WM_Q" target="_cS1OgH5IEdm797szikHjoQ">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_mNKdAfy1Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mNKdAvy1Edm185zvv0WM_Q" points="[2170, 2434, -4603, -7064]$[2170, 3782, -4603, -5716]$[3810, 3782, -2963, -5716]"/>
-      </edges>
-      <edges xmi:id="_yKo7oPy1Edm185zvv0WM_Q" type="Reference" source="_vA1SEPy1Edm185zvv0WM_Q" target="_zPTxUH5IEdm797szikHjoQ">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_yKo7ofy1Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yKo7ovy1Edm185zvv0WM_Q" points="[0, 2990, 4035, -5927]$[-4049, 4578, -14, -4339]"/>
-      </edges>
-      <edges xmi:id="_ypezwPy1Edm185zvv0WM_Q" type="Reference" source="_vA1SEPy1Edm185zvv0WM_Q" target="_2F0rcH5IEdm797szikHjoQ">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_ypezwfy1Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ypezwvy1Edm185zvv0WM_Q" points="[0, 2990, -4021, -5927]$[4021, 4578, 0, -4339]"/>
-      </edges>
-      <edges xmi:id="_SjfAUPy4Edm185zvv0WM_Q" source="_blp_cH5IEdm797szikHjoQ" target="_She1MPy4Edm185zvv0WM_Q">
-        <children xmi:id="_SjfAU_y4Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_SjfAVfy4Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_SjfAV_y4Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_SjfAVvy4Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_SjfAVPy4Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_SjfAUfy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SjfAUvy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_SjfAWPy4Edm185zvv0WM_Q" source="_She1MPy4Edm185zvv0WM_Q" target="_cS1OgH5IEdm797szikHjoQ">
-        <children xmi:id="_SjfAW_y4Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_SjfAXfy4Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_SjlG8Py4Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_SjfAXvy4Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_SjfAXPy4Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_SjfAWfy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SjfAWvy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_cYMbofy4Edm185zvv0WM_Q" source="_blp_cH5IEdm797szikHjoQ" target="_cT5xgPy4Edm185zvv0WM_Q">
-        <children xmi:id="_cYMbpPy4Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_cYSiQPy4Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_cYSiQvy4Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_cYSiQfy4Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_cYMbpfy4Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_cYMbovy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cYMbo_y4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_cYSiQ_y4Edm185zvv0WM_Q" source="_cT5xgPy4Edm185zvv0WM_Q" target="_She1MPy4Edm185zvv0WM_Q">
-        <children xmi:id="_cYSiRvy4Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_cYSiSPy4Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_cYSiSvy4Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_cYSiSfy4Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_cYSiR_y4Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_cYSiRPy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cYSiRfy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_qqjuAPy4Edm185zvv0WM_Q" source="_YIiqQH5GEdm797szikHjoQ" target="_qn-7IPy4Edm185zvv0WM_Q">
-        <children xmi:id="_qqjuA_y4Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_qqjuBfy4Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_qqjuB_y4Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_qqjuBvy4Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_qqjuBPy4Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_qqjuAfy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qqjuAvy4Edm185zvv0WM_Q" points="[-2249, 3439, 17251, -19156]$[-2249, 36459, 17251, 13864]$[-19473, 36459, 27, 13864]$[-19473, 24976, 27, 2381]"/>
-      </edges>
-      <edges xmi:id="_qqjuCPy4Edm185zvv0WM_Q" source="_qn-7IPy4Edm185zvv0WM_Q" target="_cS1OgH5IEdm797szikHjoQ">
-        <children xmi:id="_qqjuC_y4Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_qqjuDfy4Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_qqjuD_y4Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_qqjuDvy4Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_qqjuDPy4Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_qqjuCfy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qqjuCvy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_1xTY8Py4Edm185zvv0WM_Q" source="_cS1OgH5IEdm797szikHjoQ" target="_1ucSMPy4Edm185zvv0WM_Q">
-        <children xmi:id="_1xTY8_y4Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_1xTY9fy4Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_1xTY9_y4Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_1xTY9vy4Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_1xTY9Py4Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_1xTY8fy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1xTY8vy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_8M1R8Py4Edm185zvv0WM_Q" source="_8MEc8Py4Edm185zvv0WM_Q" target="_1ucSMPy4Edm185zvv0WM_Q">
-        <children xmi:id="_8M1R8_y4Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_8M1R9fy4Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_8M1R9_y4Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_8M1R9vy4Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_8M1R9Py4Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_8M1R8fy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8M1R8vy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_E9EYgPy5Edm185zvv0WM_Q" source="_8MEc8Py4Edm185zvv0WM_Q" target="_E7KUAPy5Edm185zvv0WM_Q">
-        <children xmi:id="_E9EYg_y5Edm185zvv0WM_Q" type="NameLabel">
-          <children xmi:id="_E9EYhfy5Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_E9EYhvy5Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_E9EYhPy5Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_E9EYgfy5Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E9EYgvy5Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-    </contents>
-    <contents xmi:type="notation:Diagram" xmi:id="_0Lw7oIOwEdmyd--cXlrqyQ" type="Component" name="Extension">
-      <children xmi:id="_GABgEIO0Edmyd--cXlrqyQ" type="rectangle">
-        <children xmi:id="_GABgE4O0Edmyd--cXlrqyQ" type="DiagramName"/>
-        <children xmi:id="_GABgFIO0Edmyd--cXlrqyQ" type="Description"/>
-        <styles xmi:type="notation:ShapeStyle" xmi:id="_GABgEYO0Edmyd--cXlrqyQ" fillColor="13369343" lineColor="6737151"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GABgEoO0Edmyd--cXlrqyQ" x="14310" y="6042" width="6058" height="8254"/>
-      </children>
-      <children xmi:id="_bdRhQIOzEdmyd--cXlrqyQ" type="rectangle">
-        <children xmi:id="_bdRhQ4OzEdmyd--cXlrqyQ" type="DiagramName"/>
-        <children xmi:id="_bdRhRIOzEdmyd--cXlrqyQ" type="Description"/>
-        <styles xmi:type="notation:ShapeStyle" xmi:id="_bdRhQYOzEdmyd--cXlrqyQ" fillColor="13420443" lineColor="6737151"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bdRhQoOzEdmyd--cXlrqyQ" x="636" y="6350" width="5715" height="7937"/>
-      </children>
-      <children xmi:id="_uX5iwIO0Edmyd--cXlrqyQ" type="rectangle">
-        <children xmi:id="_uX5iw4O0Edmyd--cXlrqyQ" type="DiagramName"/>
-        <children xmi:id="_uX5ixIO0Edmyd--cXlrqyQ" type="Description"/>
-        <styles xmi:type="notation:ShapeStyle" xmi:id="_uX5iwYO0Edmyd--cXlrqyQ" fillColor="13369343" lineColor="6737151"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uX5iwoO0Edmyd--cXlrqyQ" x="635" y="9525" width="5714" height="2222"/>
-      </children>
-      <children xmi:id="_-Cw18IOwEdmyd--cXlrqyQ" targetEdges="_DeykUIOyEdmyd--cXlrqyQ" element="_9330kIOwEdmyd--cXlrqyQ">
-        <children xmi:id="_-DPXEIOwEdmyd--cXlrqyQ" type="Stereotype" element="_9330kIOwEdmyd--cXlrqyQ"/>
-        <children xmi:id="_-DPXEYOwEdmyd--cXlrqyQ" type="Kind" element="_9330kIOwEdmyd--cXlrqyQ"/>
-        <children xmi:id="_-DPXEoOwEdmyd--cXlrqyQ" type="Name" element="_9330kIOwEdmyd--cXlrqyQ"/>
-        <children xmi:id="_-DPXE4OwEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_-DPXFIOwEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_-DPXFYOwEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_-DPXFoOwEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_-DPXF4OwEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_-DPXGIOwEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_-DVdsIOwEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_-DVdsYOwEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_-DVdsoOwEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_-DVds4OwEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_-DVdtIOwEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_-DVdtYOwEdmyd--cXlrqyQ"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_-Cw18YOwEdmyd--cXlrqyQ" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-Cw18oOwEdmyd--cXlrqyQ" x="1086" y="12402"/>
-      </children>
-      <children xmi:id="_X4hTAIOxEdmyd--cXlrqyQ" sourceEdges="_gS43QIOxEdmyd--cXlrqyQ" element="_X4I4gIOxEdmyd--cXlrqyQ">
-        <children xmi:id="_X4oAsIOxEdmyd--cXlrqyQ" type="Stereotype" element="_X4I4gIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_X4oAsYOxEdmyd--cXlrqyQ" type="Kind" element="_X4I4gIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_X4oAsoOxEdmyd--cXlrqyQ" type="Name" element="_X4I4gIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_X4oAs4OxEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_X4oAtIOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_X4oAtYOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_X4oAtoOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_X4oAt4OxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_X4oAuIOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_X4oAuYOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_X4oAuoOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_X4oAu4OxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_X4oAvIOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_X4oAvYOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_X4oAvoOxEdmyd--cXlrqyQ"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_X4hTAYOxEdmyd--cXlrqyQ" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X4hTAoOxEdmyd--cXlrqyQ" x="954" y="9858"/>
-      </children>
-      <children xmi:id="_b7Ja8IOxEdmyd--cXlrqyQ" targetEdges="_gS43QIOxEdmyd--cXlrqyQ _AbrYoIOyEdmyd--cXlrqyQ" element="_b6MYsIOxEdmyd--cXlrqyQ">
-        <children xmi:id="_b7Ja84OxEdmyd--cXlrqyQ" type="Stereotype" element="_b6MYsIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_b7Ja9IOxEdmyd--cXlrqyQ" type="Kind" element="_b6MYsIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_b7Ja9YOxEdmyd--cXlrqyQ" type="Name" element="_b6MYsIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_b7Ja9oOxEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_b7Ja94OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_b7Ja-IOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_b7Ja-YOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_b7Ja-oOxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_b7Ja-4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_b7Ja_IOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_b7Ja_YOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_b7Ja_oOxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_b7Ja_4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_b7JbAIOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_b7JbAYOxEdmyd--cXlrqyQ"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_b7Ja8YOxEdmyd--cXlrqyQ" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b7Ja8oOxEdmyd--cXlrqyQ" x="1590" y="7021"/>
-      </children>
-      <children xmi:id="_jhv_8IOxEdmyd--cXlrqyQ" targetEdges="_mJKuIIOxEdmyd--cXlrqyQ _Jsqb0IOyEdmyd--cXlrqyQ" element="_jhjysIOxEdmyd--cXlrqyQ">
-        <children xmi:id="_jhv_84OxEdmyd--cXlrqyQ" type="Stereotype" element="_jhjysIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_jhv_9IOxEdmyd--cXlrqyQ" type="Kind" element="_jhjysIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_jhv_9YOxEdmyd--cXlrqyQ" type="Name" element="_jhjysIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_jhv_9oOxEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_jhv_94OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_jhv_-IOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_jhv_-YOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_jhv_-oOxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_jhv_-4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_jhv__IOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_jhv__YOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_jhv__oOxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_jhv__4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_jhwAAIOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_jhwAAYOxEdmyd--cXlrqyQ"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_jhv_8YOxEdmyd--cXlrqyQ" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jhv_8oOxEdmyd--cXlrqyQ" x="15713" y="9631"/>
-      </children>
-      <children xmi:id="_kdDxoIOxEdmyd--cXlrqyQ" sourceEdges="_mJKuIIOxEdmyd--cXlrqyQ" element="_kc3kYIOxEdmyd--cXlrqyQ">
-        <children xmi:id="_kdDxo4OxEdmyd--cXlrqyQ" type="Stereotype" element="_kc3kYIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_kdDxpIOxEdmyd--cXlrqyQ" type="Kind" element="_kc3kYIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_kdDxpYOxEdmyd--cXlrqyQ" type="Name" element="_kc3kYIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_kdDxpoOxEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_kdDxp4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_kdDxqIOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_kdDxqYOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_kdDxqoOxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_kdDxq4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_kdDxrIOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_kdDxrYOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_kdDxroOxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_kdDxr4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_kdDxsIOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_kdDxsYOxEdmyd--cXlrqyQ"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_kdDxoYOxEdmyd--cXlrqyQ" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kdDxooOxEdmyd--cXlrqyQ" x="14972" y="12408"/>
-      </children>
-      <children xmi:id="_mor7sIOxEdmyd--cXlrqyQ" targetEdges="_LdKwIIOyEdmyd--cXlrqyQ" element="_mol1EIOxEdmyd--cXlrqyQ">
-        <children xmi:id="_mor7s4OxEdmyd--cXlrqyQ" type="Stereotype" element="_mol1EIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_mor7tIOxEdmyd--cXlrqyQ" type="Kind" element="_mol1EIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_mor7tYOxEdmyd--cXlrqyQ" type="Name" element="_mol1EIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_mor7toOxEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_mor7t4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_mor7uIOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_mor7uYOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_mor7uoOxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_mor7u4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_moyCUIOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_moyCUYOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_moyCUoOxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_moyCU4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_moyCVIOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_moyCVYOxEdmyd--cXlrqyQ"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_mor7sYOxEdmyd--cXlrqyQ" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mor7soOxEdmyd--cXlrqyQ" x="14839" y="6762"/>
-      </children>
-      <children xmi:id="_4TvoMIOxEdmyd--cXlrqyQ" sourceEdges="_AbrYoIOyEdmyd--cXlrqyQ _DeykUIOyEdmyd--cXlrqyQ _Jsqb0IOyEdmyd--cXlrqyQ _LdKwIIOyEdmyd--cXlrqyQ _IVOVgIO3Edmyd--cXlrqyQ" element="_4TXNsIOxEdmyd--cXlrqyQ">
-        <children xmi:id="_4TvoM4OxEdmyd--cXlrqyQ" type="Stereotype" element="_4TXNsIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_4TvoNIOxEdmyd--cXlrqyQ" type="Kind" element="_4TXNsIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_4TvoNYOxEdmyd--cXlrqyQ" type="Name" element="_4TXNsIOxEdmyd--cXlrqyQ"/>
-        <children xmi:id="_4TvoNoOxEdmyd--cXlrqyQ" type="AttributeCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4TvoN4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_4TvoOIOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4TvoOYOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_4TvoOoOxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4TvoO4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_4TvoPIOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4TvoPYOxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_4TvoPoOxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4TvoP4OxEdmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_4T1u0IOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_4T1u0YOxEdmyd--cXlrqyQ"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_4TvoMYOxEdmyd--cXlrqyQ" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4TvoMoOxEdmyd--cXlrqyQ" x="7923" y="8983" width="4921" height="3256"/>
-      </children>
-      <children xmi:id="_DnN1oIO0Edmyd--cXlrqyQ" type="rectangle">
-        <children xmi:id="_DnN1o4O0Edmyd--cXlrqyQ" type="DiagramName"/>
-        <children xmi:id="_DnN1pIO0Edmyd--cXlrqyQ" type="Description"/>
-        <styles xmi:type="notation:ShapeStyle" xmi:id="_DnN1oYO0Edmyd--cXlrqyQ" bold="true" description="Optional" fillColor="13369343" lineColor="6737151"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DnN1ooO0Edmyd--cXlrqyQ" x="18126" y="14946" width="2247" height="635"/>
-      </children>
-      <children xmi:id="_d429cIO0Edmyd--cXlrqyQ" type="rectangle">
-        <children xmi:id="_d49EEoO0Edmyd--cXlrqyQ" type="DiagramName"/>
-        <children xmi:id="_d49EE4O0Edmyd--cXlrqyQ" type="Description"/>
-        <styles xmi:type="notation:ShapeStyle" xmi:id="_d49EEIO0Edmyd--cXlrqyQ" bold="true" description="Required" fillColor="13420443" lineColor="6737151"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d49EEYO0Edmyd--cXlrqyQ" x="18126" y="15900" width="2222" height="635"/>
-      </children>
-      <children xmi:id="_hzkqEIO1Edmyd--cXlrqyQ" type="rectangle">
-        <children xmi:id="_hzkqE4O1Edmyd--cXlrqyQ" type="DiagramName"/>
-        <children xmi:id="_hzkqFIO1Edmyd--cXlrqyQ" type="Description"/>
-        <styles xmi:type="notation:ShapeStyle" xmi:id="_hzkqEYO1Edmyd--cXlrqyQ" fillColor="13420443" lineColor="6737151"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hzkqEoO1Edmyd--cXlrqyQ" x="7314" y="9858" width="634" height="317"/>
-      </children>
-      <children xmi:id="_uNsBYIO1Edmyd--cXlrqyQ" type="rectangle">
-        <children xmi:id="_uNsBY4O1Edmyd--cXlrqyQ" type="DiagramName"/>
-        <children xmi:id="_uNsBZIO1Edmyd--cXlrqyQ" type="Description"/>
-        <styles xmi:type="notation:ShapeStyle" xmi:id="_uNsBYYO1Edmyd--cXlrqyQ" fillColor="13420443" lineColor="6737151"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uNsBYoO1Edmyd--cXlrqyQ" x="7314" y="10812" width="635" height="317"/>
-      </children>
-      <children xmi:id="_1rTpgIO1Edmyd--cXlrqyQ" element="_1rBVoIO1Edmyd--cXlrqyQ">
-        <children xmi:id="_1rTpg4O1Edmyd--cXlrqyQ" type="CommentBody" element="_1rBVoIO1Edmyd--cXlrqyQ"/>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_1rTpgYO1Edmyd--cXlrqyQ" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1rTpgoO1Edmyd--cXlrqyQ" x="636" y="14946" width="6376" height="2565"/>
-      </children>
-      <children xmi:id="_2N_DUIO2Edmyd--cXlrqyQ" targetEdges="_IVOVgIO3Edmyd--cXlrqyQ" element="_2NsvcIO2Edmyd--cXlrqyQ">
-        <children xmi:id="_2N_DU4O2Edmyd--cXlrqyQ" type="Stereotype" element="_2NsvcIO2Edmyd--cXlrqyQ"/>
-        <children xmi:id="_2N_DVIO2Edmyd--cXlrqyQ" type="Kind" element="_2NsvcIO2Edmyd--cXlrqyQ"/>
-        <children xmi:id="_2N_DVYO2Edmyd--cXlrqyQ" type="Name" element="_2NsvcIO2Edmyd--cXlrqyQ"/>
-        <children xmi:id="_2N_DVoO2Edmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2N_DV4O2Edmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_2N_DWIO2Edmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2N_DWYO2Edmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_2N_DWoO2Edmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2N_DW4O2Edmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_2N_DXIO2Edmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2N_DXYO2Edmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_2N_DXoO2Edmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2N_DX4O2Edmyd--cXlrqyQ"/>
-        </children>
-        <children xmi:id="_2N_DYIO2Edmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_2N_DYYO2Edmyd--cXlrqyQ"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_2N_DUYO2Edmyd--cXlrqyQ" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2N_DUoO2Edmyd--cXlrqyQ" x="7725" y="13228"/>
-      </children>
-      <styles xmi:type="umlnotation:UMLDiagramStyle" xmi:id="_0Lw7oYOwEdmyd--cXlrqyQ"/>
-      <edges xmi:id="_gS43QIOxEdmyd--cXlrqyQ" element="_gSmjYIOxEdmyd--cXlrqyQ" source="_X4hTAIOxEdmyd--cXlrqyQ" target="_b7Ja8IOxEdmyd--cXlrqyQ">
-        <children xmi:id="_gS43Q4OxEdmyd--cXlrqyQ" type="NameLabel" element="_gSmjYIOxEdmyd--cXlrqyQ">
-          <children xmi:id="_gS43RYOxEdmyd--cXlrqyQ" type="Stereotype" element="_gSmjYIOxEdmyd--cXlrqyQ"/>
-          <children xmi:id="_gS43RoOxEdmyd--cXlrqyQ" type="Name" element="_gSmjYIOxEdmyd--cXlrqyQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_gS43RIOxEdmyd--cXlrqyQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_gS43QYOxEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gS43QoOxEdmyd--cXlrqyQ" points="[2, -31, 5, 90]$[62, -95, 65, 26]"/>
-      </edges>
-      <edges xmi:id="_mJKuIIOxEdmyd--cXlrqyQ" element="_mI-g4IOxEdmyd--cXlrqyQ" source="_kdDxoIOxEdmyd--cXlrqyQ" target="_jhv_8IOxEdmyd--cXlrqyQ">
-        <children xmi:id="_mJKuI4OxEdmyd--cXlrqyQ" type="NameLabel" element="_mI-g4IOxEdmyd--cXlrqyQ">
-          <children xmi:id="_mJKuJYOxEdmyd--cXlrqyQ" type="Stereotype" element="_mI-g4IOxEdmyd--cXlrqyQ"/>
-          <children xmi:id="_mJQ0wIOxEdmyd--cXlrqyQ" type="Name" element="_mI-g4IOxEdmyd--cXlrqyQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_mJKuJIOxEdmyd--cXlrqyQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_mJKuIYOxEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mJKuIoOxEdmyd--cXlrqyQ" points="[-42, -820, 11, 2249]$[-42, -2249, 11, 820]"/>
-      </edges>
-      <edges xmi:id="_AbrYoIOyEdmyd--cXlrqyQ" element="_AbfLYIOyEdmyd--cXlrqyQ" source="_4TvoMIOxEdmyd--cXlrqyQ" target="_b7Ja8IOxEdmyd--cXlrqyQ">
-        <children xmi:id="_AbrYo4OyEdmyd--cXlrqyQ" type="KindLabel" element="_AbfLYIOyEdmyd--cXlrqyQ">
-          <children xmi:id="_AbrYpYOyEdmyd--cXlrqyQ" type="Stereotype" element="_AbfLYIOyEdmyd--cXlrqyQ"/>
-          <children xmi:id="_AbrYp4OyEdmyd--cXlrqyQ" type="Kind" element="_AbfLYIOyEdmyd--cXlrqyQ"/>
-          <children xmi:id="_AbrYpoOyEdmyd--cXlrqyQ" type="Name" element="_AbfLYIOyEdmyd--cXlrqyQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_AbrYpIOyEdmyd--cXlrqyQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_AbrYoYOyEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AbrYooOyEdmyd--cXlrqyQ" points="[-2434, -1085, 4604, 2011]$[-2857, -1085, 4181, 2011]$[-2857, -2963, 4181, 133]$[-5318, -2963, 1720, 133]"/>
-      </edges>
-      <edges xmi:id="_DeykUIOyEdmyd--cXlrqyQ" element="_DeUDMIOyEdmyd--cXlrqyQ" source="_4TvoMIOxEdmyd--cXlrqyQ" target="_-Cw18IOwEdmyd--cXlrqyQ">
-        <children xmi:id="_DeykU4OyEdmyd--cXlrqyQ" type="KindLabel" element="_DeUDMIOyEdmyd--cXlrqyQ">
-          <children xmi:id="_DeykVYOyEdmyd--cXlrqyQ" type="Stereotype" element="_DeUDMIOyEdmyd--cXlrqyQ"/>
-          <children xmi:id="_DeykV4OyEdmyd--cXlrqyQ" type="Kind" element="_DeUDMIOyEdmyd--cXlrqyQ"/>
-          <children xmi:id="_DeykVoOyEdmyd--cXlrqyQ" type="Name" element="_DeUDMIOyEdmyd--cXlrqyQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_DeykVIOyEdmyd--cXlrqyQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_DeykUYOyEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DeykUoOyEdmyd--cXlrqyQ" points="[-2434, 1032, 4524, -1270]$[-2857, 1032, 4101, -1270]$[-2857, 2275, 4101, -27]$[-4630, 2275, 2328, -27]"/>
-      </edges>
-      <edges xmi:id="_Jsqb0IOyEdmyd--cXlrqyQ" element="_JsSBUIOyEdmyd--cXlrqyQ" source="_4TvoMIOxEdmyd--cXlrqyQ" target="_jhv_8IOxEdmyd--cXlrqyQ">
-        <children xmi:id="_Jsqb04OyEdmyd--cXlrqyQ" type="KindLabel" element="_JsSBUIOyEdmyd--cXlrqyQ">
-          <children xmi:id="_Jsqb1YOyEdmyd--cXlrqyQ" type="Stereotype" element="_JsSBUIOyEdmyd--cXlrqyQ"/>
-          <children xmi:id="_Jsqb14OyEdmyd--cXlrqyQ" type="Kind" element="_JsSBUIOyEdmyd--cXlrqyQ"/>
-          <children xmi:id="_Jsqb1oOyEdmyd--cXlrqyQ" type="Name" element="_JsSBUIOyEdmyd--cXlrqyQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_Jsqb1IOyEdmyd--cXlrqyQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Jsqb0YOyEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Jsqb0oOyEdmyd--cXlrqyQ" points="[2143, 80, -4921, 185]$[5371, 80, -1693, 185]"/>
-      </edges>
-      <edges xmi:id="_LdKwIIOyEdmyd--cXlrqyQ" element="_Lc-i4IOyEdmyd--cXlrqyQ" source="_4TvoMIOxEdmyd--cXlrqyQ" target="_mor7sIOxEdmyd--cXlrqyQ">
-        <children xmi:id="_LdKwI4OyEdmyd--cXlrqyQ" type="KindLabel" element="_Lc-i4IOyEdmyd--cXlrqyQ">
-          <children xmi:id="_LdKwJYOyEdmyd--cXlrqyQ" type="Stereotype" element="_Lc-i4IOyEdmyd--cXlrqyQ"/>
-          <children xmi:id="_LdKwJ4OyEdmyd--cXlrqyQ" type="Kind" element="_Lc-i4IOyEdmyd--cXlrqyQ"/>
-          <children xmi:id="_LdKwJoOyEdmyd--cXlrqyQ" type="Name" element="_Lc-i4IOyEdmyd--cXlrqyQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_LdKwJIOyEdmyd--cXlrqyQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_LdKwIYOyEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LdKwIoOyEdmyd--cXlrqyQ" points="[2143, -502, -4895, 2461]$[3122, -502, -3916, 2461]$[3122, -2989, -3916, -26]$[4498, -2989, -2540, -26]"/>
-      </edges>
-      <edges xmi:id="_IVOVgIO3Edmyd--cXlrqyQ" element="_ITURAIO3Edmyd--cXlrqyQ" source="_4TvoMIOxEdmyd--cXlrqyQ" target="_2N_DUIO2Edmyd--cXlrqyQ">
-        <children xmi:id="_IVOVg4O3Edmyd--cXlrqyQ" type="KindLabel" element="_ITURAIO3Edmyd--cXlrqyQ">
-          <children xmi:id="_IVOVhYO3Edmyd--cXlrqyQ" type="Stereotype" element="_ITURAIO3Edmyd--cXlrqyQ"/>
-          <children xmi:id="_IVOVh4O3Edmyd--cXlrqyQ" type="Kind" element="_ITURAIO3Edmyd--cXlrqyQ"/>
-          <children xmi:id="_IVOVhoO3Edmyd--cXlrqyQ" type="Name" element="_ITURAIO3Edmyd--cXlrqyQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_IVOVhIO3Edmyd--cXlrqyQ" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_IVOVgYO3Edmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IVOVgoO3Edmyd--cXlrqyQ" points="[-15, 61, -17, -57]$[-100, 120, -102, 2]"/>
-      </edges>
-    </contents>
-    <contents xmi:type="notation:Diagram" xmi:id="_yKPk8PyzEdm185zvv0WM_Q" type="Class" element="_SWX3UH5GEdm797szikHjoQ" name="Drag-n-Drop">
-      <children xmi:id="_FS5Q0Py0Edm185zvv0WM_Q" sourceEdges="_GBT2APy0Edm185zvv0WM_Q _GBT2CPy0Edm185zvv0WM_Q _GBZ8oPy0Edm185zvv0WM_Q _GBZ8qPy0Edm185zvv0WM_Q">
-        <children xmi:id="_FXGbYPy0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_FXGbYfy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_FXGbYvy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FXGbY_y0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FXGbZPy0Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FXGbZfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FXGbZvy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FXGbZ_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FXGbaPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FXGbafy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FXMiAPy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FXMiAfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FS5Q0fy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FS5Q0vy0Edm185zvv0WM_Q" x="1272" y="7314"/>
-      </children>
-      <children xmi:id="_FYuMAPy0Edm185zvv0WM_Q" sourceEdges="_GBZ8sPy0Edm185zvv0WM_Q" targetEdges="_GBZ8uPy0Edm185zvv0WM_Q _GBsQgPy0Edm185zvv0WM_Q">
-        <children xmi:id="_FYuMA_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_FYuMBPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_FYuMBfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FYuMBvy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FYuMB_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FYuMCPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FYuMCfy0Edm185zvv0WM_Q" visible="false" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FYuMCvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FYuMC_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FYuMDPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FYuMDfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FYuMDvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FYuMAfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYuMAvy0Edm185zvv0WM_Q" x="1908" y="16218"/>
-      </children>
-      <children xmi:id="_FZ9iIPy0Edm185zvv0WM_Q" sourceEdges="_GBZ8uPy0Edm185zvv0WM_Q _GBgDQPy0Edm185zvv0WM_Q _GBgDSPy0Edm185zvv0WM_Q _GBgDUPy0Edm185zvv0WM_Q _GBgDWPy0Edm185zvv0WM_Q _GBmJ4_y0Edm185zvv0WM_Q" targetEdges="_GCErEfy0Edm185zvv0WM_Q _GCErGfy0Edm185zvv0WM_Q">
-        <children xmi:id="_FZ9iI_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_FZ9iJPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_FZ9iJfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FZ9iJvy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FZ9iJ_y0Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FZ9iKPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FZ9iKfy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FZ9iKvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FZ9iK_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FZ9iLPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FZ9iLfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FZ9iLvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FZ9iIfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FZ9iIvy0Edm185zvv0WM_Q" x="13038" y="7314"/>
-      </children>
-      <children xmi:id="_FcKhkPy0Edm185zvv0WM_Q" sourceEdges="_GBmJ7vy0Edm185zvv0WM_Q _GBmJ9vy0Edm185zvv0WM_Q" targetEdges="_GBZ8sPy0Edm185zvv0WM_Q _GBgDSPy0Edm185zvv0WM_Q _GBsQmPy0Edm185zvv0WM_Q _GB4dwPy0Edm185zvv0WM_Q">
-        <children xmi:id="_FcKhk_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_FcKhlPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_FcKhlfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FcKhlvy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FcKhl_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FcKhmPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FcKhmfy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FcKhmvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FcQoMPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FcQoMfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FcQoMvy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FcQoM_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FcKhkfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FcKhkvy0Edm185zvv0WM_Q" x="32754" y="33072"/>
-      </children>
-      <children xmi:id="_Fe1bEPy0Edm185zvv0WM_Q" sourceEdges="_GBmJ_vy0Edm185zvv0WM_Q" targetEdges="_GByXNfy0Edm185zvv0WM_Q _GB4d2Py0Edm185zvv0WM_Q _GB-kcvy0Edm185zvv0WM_Q">
-        <children xmi:id="_Fe1bE_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_Fe1bFPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_Fe7hsPy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fe7hsfy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fe7hsvy0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fe7hs_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fe7htPy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fe7htfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fe7htvy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fe7ht_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fe7huPy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_Fe7hufy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_Fe1bEfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fe1bEvy0Edm185zvv0WM_Q" x="32754" y="29892"/>
-      </children>
-      <children xmi:id="_FfgJcPy0Edm185zvv0WM_Q" sourceEdges="_GBsQgPy0Edm185zvv0WM_Q _GBsQiPy0Edm185zvv0WM_Q _GBsQkPy0Edm185zvv0WM_Q _GBsQmPy0Edm185zvv0WM_Q _GBsQoPy0Edm185zvv0WM_Q _GByXIvy0Edm185zvv0WM_Q _GByXKvy0Edm185zvv0WM_Q">
-        <children xmi:id="_FfgJc_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_FfgJdPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_FfgJdfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FfgJdvy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FfgJd_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FfgJePy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FfmQEPy0Edm185zvv0WM_Q" visible="false" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FfmQEfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FfmQEvy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FfmQE_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FfmQFPy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FfmQFfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FfgJcfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FfgJcvy0Edm185zvv0WM_Q" x="9858" y="16218"/>
-      </children>
-      <children xmi:id="_Ff-qkPy0Edm185zvv0WM_Q" targetEdges="_GBZ8qPy0Edm185zvv0WM_Q">
-        <children xmi:id="_Ff-qk_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_Ff-qlPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_Ff-qlfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Ff-qlvy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Ff-ql_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Ff-qmPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Ff-qmfy0Edm185zvv0WM_Q" visible="false" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Ff-qmvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Ff-qm_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Ff-qnPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Ff-qnfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_Ff-qnvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_Ff-qkfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ff-qkvy0Edm185zvv0WM_Q" y="13674"/>
-      </children>
-      <children xmi:id="_Fhsh0Py0Edm185zvv0WM_Q" targetEdges="_GBT2CPy0Edm185zvv0WM_Q">
-        <children xmi:id="_Fhsh0_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_Fhsh1Py0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_Fhsh1fy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fhsh1vy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fhsh1_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fhsh2Py0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fhsh2fy0Edm185zvv0WM_Q" visible="false" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fhsh2vy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fhsh2_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fhsh3Py0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fhsh3fy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_Fhsh3vy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_Fhsh0fy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fhsh0vy0Edm185zvv0WM_Q" x="5406" y="13674"/>
-      </children>
-      <children xmi:id="_FikEgPy0Edm185zvv0WM_Q" sourceEdges="_GByXNfy0Edm185zvv0WM_Q" targetEdges="_GBmJ7vy0Edm185zvv0WM_Q _GByXPfy0Edm185zvv0WM_Q">
-        <children xmi:id="_FikEg_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_FikEhPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_FikEhfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FikEhvy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FikEh_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FikEiPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FikEify0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FikEivy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FikEi_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FikEjPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FikEjfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FikEjvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FikEgfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FikEgvy0Edm185zvv0WM_Q" x="33072" y="25440"/>
-      </children>
-      <children xmi:id="_FjtUAPy0Edm185zvv0WM_Q" sourceEdges="_GByXPfy0Edm185zvv0WM_Q _GB4dwPy0Edm185zvv0WM_Q _GB4dyPy0Edm185zvv0WM_Q _GB4d0Py0Edm185zvv0WM_Q _GB4d2Py0Edm185zvv0WM_Q" targetEdges="_GBmJ4_y0Edm185zvv0WM_Q _GByXIvy0Edm185zvv0WM_Q _GB4dyPy0Edm185zvv0WM_Q _GCErCfy0Edm185zvv0WM_Q">
-        <children xmi:id="_FjtUA_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_FjtUBPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_FjtUBfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FjtUBvy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FjtUB_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FjtUCPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FjtUCfy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FjtUCvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FjtUC_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FjtUDPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FjtUDfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FjtUDvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FjtUAfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FjtUAvy0Edm185zvv0WM_Q" x="24995" y="25418"/>
-      </children>
-      <children xmi:id="_FyglAPy0Edm185zvv0WM_Q" sourceEdges="_GB-kYPy0Edm185zvv0WM_Q _GB-kY_y0Edm185zvv0WM_Q _GB-kavy0Edm185zvv0WM_Q _GB-kcvy0Edm185zvv0WM_Q _GCErAfy0Edm185zvv0WM_Q _GCErCfy0Edm185zvv0WM_Q" targetEdges="_GBT2APy0Edm185zvv0WM_Q _GBgDWPy0Edm185zvv0WM_Q _GByXKvy0Edm185zvv0WM_Q">
-        <children xmi:id="_FymroPy0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_Fymrofy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_Fymrovy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fymro_y0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FymrpPy0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fymrpfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fymrpvy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fymrp_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_FymrqPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fymrqfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_Fymrqvy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_Fymrq_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FyglAfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FyglAvy0Edm185zvv0WM_Q" x="17808" y="25440"/>
-      </children>
-      <children xmi:id="_F5evsPy0Edm185zvv0WM_Q" sourceEdges="_GCErEfy0Edm185zvv0WM_Q" targetEdges="_GBgDQPy0Edm185zvv0WM_Q _GBmJ9vy0Edm185zvv0WM_Q _GBsQiPy0Edm185zvv0WM_Q _GB4d0Py0Edm185zvv0WM_Q">
-        <children xmi:id="_F5evs_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_F5evtPy0Edm185zvv0WM_Q" width="530" height="530"/>
-        </children>
-        <children xmi:id="_F5evtfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F5evtvy0Edm185zvv0WM_Q" type="Kind">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F5evt_y0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F5evuPy0Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5evufy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F5evuvy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5evu_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F5evvPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5evvfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_F5evsfy0Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
-        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F5evsvy0Edm185zvv0WM_Q" x="33339" y="745"/>
-      </children>
-      <children xmi:id="_F5xDkfy0Edm185zvv0WM_Q" targetEdges="_GBsQoPy0Edm185zvv0WM_Q _GB-kYPy0Edm185zvv0WM_Q _GCErAfy0Edm185zvv0WM_Q">
-        <children xmi:id="_F5xDlPy0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_F5xDlfy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_F5xDlvy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_F5xDl_y0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_F5xDmPy0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5xDmfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_F5xDmvy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5xDm_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_F5xDnPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5xDnfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_F5xDnvy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_F5xDn_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_F5xDkvy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F5xDk_y0Edm185zvv0WM_Q" x="18126" y="33390"/>
-      </children>
-      <children xmi:id="_F6n_MPy0Edm185zvv0WM_Q" targetEdges="_GBZ8oPy0Edm185zvv0WM_Q _GBgDUPy0Edm185zvv0WM_Q _GBmJ_vy0Edm185zvv0WM_Q _GBsQkPy0Edm185zvv0WM_Q _GB-kY_y0Edm185zvv0WM_Q _GB-kavy0Edm185zvv0WM_Q">
-        <children xmi:id="_F6n_M_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_F6n_NPy0Edm185zvv0WM_Q" width="530" height="530"/>
-        </children>
-        <children xmi:id="_F6n_Nfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F6n_Nvy0Edm185zvv0WM_Q" type="Kind">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F6n_N_y0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F6n_OPy0Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F6n_Ofy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F6n_Ovy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F6n_O_y0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F6n_PPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F6n_Pfy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_F6n_Mfy0Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
-        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F6n_Mvy0Edm185zvv0WM_Q" x="28251" y="745"/>
-      </children>
-      <children xmi:id="_F66TEPy0Edm185zvv0WM_Q" sourceEdges="_GCErGfy0Edm185zvv0WM_Q">
-        <children xmi:id="_F66TE_y0Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_F66TFPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_F66TFfy0Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F66TFvy0Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F66TF_y0Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F66TGPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F66TGfy0Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F66TGvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F66TG_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F66THPy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_F66THfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_F66THvy0Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_F66TEfy0Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F66TEvy0Edm185zvv0WM_Q" x="20670" y="636"/>
-      </children>
-      <styles xmi:type="umlnotation:UMLDiagramStyle" xmi:id="_yKPk8fyzEdm185zvv0WM_Q"/>
-      <edges xmi:id="_GBT2APy0Edm185zvv0WM_Q" source="_FS5Q0Py0Edm185zvv0WM_Q" target="_FyglAPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBT2A_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBT2Bfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBT2B_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBT2Bvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBT2BPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBT2Afy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBT2Avy0Edm185zvv0WM_Q" points="[-14, 3691, -8560, -5491]$[8532, 5279, -14, -3903]"/>
-      </edges>
-      <edges xmi:id="_GBT2CPy0Edm185zvv0WM_Q" source="_FS5Q0Py0Edm185zvv0WM_Q" target="_Fhsh0Py0Edm185zvv0WM_Q">
-        <children xmi:id="_GBT2C_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBT2Dfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBT2D_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBT2Dvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBT2DPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBT2Cfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBT2Cvy0Edm185zvv0WM_Q" points="[-14, 3691, 648, -5491]$[-675, 5279, -13, -3903]"/>
-      </edges>
-      <edges xmi:id="_GBZ8oPy0Edm185zvv0WM_Q" source="_FS5Q0Py0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBZ8o_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBZ8pfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBZ8p_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBZ8pvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBZ8pPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBZ8ofy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBZ8ovy0Edm185zvv0WM_Q" points="[27, -2407, -23680, 5504]$[27, -4630, -23680, 3281]$[23733, -4630, 26, 3281]$[23733, -6826, 26, 1085]"/>
-      </edges>
-      <edges xmi:id="_GBZ8qPy0Edm185zvv0WM_Q" source="_FS5Q0Py0Edm185zvv0WM_Q" target="_Ff-qkPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBZ8q_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBZ8rfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBZ8r_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBZ8rvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBZ8rPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBZ8qfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBZ8qvy0Edm185zvv0WM_Q" points="[-14, 3691, 6640, -5491]$[-6655, 5279, -1, -3903]"/>
-      </edges>
-      <edges xmi:id="_GBZ8sPy0Edm185zvv0WM_Q" source="_FYuMAPy0Edm185zvv0WM_Q" target="_FcKhkPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBZ8s_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBZ8tfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBZ8t_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBZ8tvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBZ8tPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBZ8sfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBZ8svy0Edm185zvv0WM_Q" points="[27, 503, -30242, -18468]$[27, 4789, -30242, -14182]$[19976, 4789, -10293, -14182]$[19976, 19315, -10293, 344]$[27887, 19315, -2382, 344]"/>
-      </edges>
-      <edges xmi:id="_GBZ8uPy0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_FYuMAPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBZ8u_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBZ8vfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBZ8v_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBZ8vvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBZ8vPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBZ8ufy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBZ8uvy0Edm185zvv0WM_Q" points="[-14, 3691, -10756, -5491]$[10728, 5279, -14, -3903]"/>
-      </edges>
-      <edges xmi:id="_GBgDQPy0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_F5evsPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBgDQ_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBgDRfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBgDR_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBgDRvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBgDRPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBgDQfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBgDQvy0Edm185zvv0WM_Q" points="[-14, 3691, -2673, -35084]$[-3665, 5279, -6324, -33496]$[-3665, 34410, -6324, -4365]$[2659, 35997, 0, -2778]"/>
-      </edges>
-      <edges xmi:id="_GBgDSPy0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_FcKhkPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBgDS_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBgDTfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBgDT_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBgDTvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBgDTPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBgDSfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBgDSvy0Edm185zvv0WM_Q" points="[3096, 3335, -15928, -21351]$[8652, 3335, -10372, -21351]$[8652, 10478, -10372, -14208]$[15399, 10478, -3625, -14208]$[15399, 24686, -3625, 0]$[16616, 24686, -2408, 0]"/>
-      </edges>
-      <edges xmi:id="_GBgDUPy0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBgDU_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBgDVfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBgDV_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBgDVvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBgDVPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBgDUfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBgDUvy0Edm185zvv0WM_Q" points="[2117, 3678, -11721, 12859]$[2117, 11563, -11721, 20744]$[15161, 11563, 1323, 20744]$[15161, -8096, 1323, 1085]"/>
-      </edges>
-      <edges xmi:id="_GBgDWPy0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_FyglAPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBgDW_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBmJ4Py0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBmJ4vy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBmJ4fy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBgDXPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBgDWfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBgDWvy0Edm185zvv0WM_Q" points="[-14, 3691, -14, -5491]$[-14, 5279, -14, -3903]"/>
-      </edges>
-      <edges xmi:id="_GBmJ4_y0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_FjtUAPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBmJ5vy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBmJ6Py0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBmJ6vy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBmJ6fy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBmJ5_y0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBmJ5Py0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBmJ5fy0Edm185zvv0WM_Q" points="[-14, 3691, -9036, -15519]$[3294, 5279, -5728, -13931]$[3294, 13085, -5728, -6125]$[9009, 14672, -13, -4538]"/>
-      </edges>
-      <edges xmi:id="_GBmJ7vy0Edm185zvv0WM_Q" source="_FcKhkPy0Edm185zvv0WM_Q" target="_FikEgPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBmJ8fy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBmJ8_y0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBmJ9fy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBmJ9Py0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBmJ8vy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBmJ7_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBmJ8Py0Edm185zvv0WM_Q" points="[-1, 4537, 5278, -4366]$[-5292, 6125, -13, -2778]"/>
-      </edges>
-      <edges xmi:id="_GBmJ9vy0Edm185zvv0WM_Q" source="_FcKhkPy0Edm185zvv0WM_Q" target="_F5evsPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBmJ-fy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBmJ-_y0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBmJ_fy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBmJ_Py0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBmJ-vy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBmJ9_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBmJ-Py0Edm185zvv0WM_Q" points="[-1, 4537, 11641, -4366]$[-11642, 6125, 0, -2778]"/>
-      </edges>
-      <edges xmi:id="_GBmJ_vy0Edm185zvv0WM_Q" source="_Fe1bEPy0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBmKAfy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBmKA_y0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBmKBfy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBmKBPy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBmKAvy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBmJ__y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBmKAPy0Edm185zvv0WM_Q" points="[-2090, 0, 2778, 28999]$[-5450, 0, -582, 28999]$[-5450, -27914, -582, 1085]"/>
-      </edges>
-      <edges xmi:id="_GBsQgPy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_FYuMAPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBsQg_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBsQhfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBsQh_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBsQhvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBsQhPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBsQgfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBsQgvy0Edm185zvv0WM_Q" points="[0, 3691, -4009, -5491]$[3995, 5279, -14, -3903]"/>
-      </edges>
-      <edges xmi:id="_GBsQiPy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_F5evsPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBsQi_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBsQjfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBsQj_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBsQjvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBsQjPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBsQify0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBsQivy0Edm185zvv0WM_Q" points="[26, -502, -23204, 14605]$[26, -10213, -23204, 4894]$[23283, -10213, 53, 4894]$[23283, -14234, 53, 873]"/>
-      </edges>
-      <edges xmi:id="_GBsQkPy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBsQk_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBsQlfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBsQl_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBsQlvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBsQlPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBsQkfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBsQkvy0Edm185zvv0WM_Q" points="[1058, 503, -17066, 15399]$[1058, 8123, -17066, 23019]$[18600, 8123, 476, 23019]$[18600, -13811, 476, 1085]"/>
-      </edges>
-      <edges xmi:id="_GBsQmPy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_FcKhkPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBsQm_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBsQnfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBsQn_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GBsQnvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBsQnPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBsQmfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBsQmvy0Edm185zvv0WM_Q" points="[26, 503, -23284, -18468]$[26, 19712, -23284, 741]$[20928, 19712, -2382, 741]"/>
-      </edges>
-      <edges xmi:id="_GBsQoPy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_F5xDkfy0Edm185zvv0WM_Q">
-        <children xmi:id="_GBsQo_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GBsQpfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <children xmi:id="_GByXIfy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <children xmi:id="_GByXIPy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBsQpPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBsQofy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBsQovy0Edm185zvv0WM_Q" points="[27, 1376, 6324, -16775]$[27, 20876, 6324, 2725]$[7938, 20876, 14235, 2725]$[7938, 18574, 14235, 423]$[-3466, 18574, 2831, 423]"/>
-      </edges>
-      <edges xmi:id="_GByXIvy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_FjtUAPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GByXJfy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GByXJ_y0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GByXKfy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GByXKPy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GByXJvy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GByXI_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GByXJPy0Edm185zvv0WM_Q" points="[0, 1376, -2249, -20161]$[0, 16987, -2249, -4550]"/>
-      </edges>
-      <edges xmi:id="_GByXKvy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_FyglAPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GByXLfy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GByXL_y0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GByXMfy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GByXMPy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GByXLvy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GByXK_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GByXLPy0Edm185zvv0WM_Q" points="[53, 1376, 6800, -7991]$[53, 6827, 6800, -2540]$[-6720, 6827, 27, -2540]$[-6720, 7620, 27, -1747]"/>
-      </edges>
-      <edges xmi:id="_GByXNfy0Edm185zvv0WM_Q" source="_FikEgPy0Edm185zvv0WM_Q" target="_Fe1bEPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GByXOPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GByXOvy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GByXPPy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GByXO_y0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GByXOfy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GByXNvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GByXN_y0Edm185zvv0WM_Q" points="[-13, 2778, 7673, -3374]$[-7686, 4366, 0, -1786]"/>
-      </edges>
-      <edges xmi:id="_GByXPfy0Edm185zvv0WM_Q" source="_FjtUAPy0Edm185zvv0WM_Q" target="_FikEgPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GByXQPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GByXQvy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GByXRPy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GByXQ_y0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GByXQfy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GByXPvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GByXP_y0Edm185zvv0WM_Q" points="[-13, 4537, -13, -15028]$[-13, 16787, -13, -2778]"/>
-      </edges>
-      <edges xmi:id="_GB4dwPy0Edm185zvv0WM_Q" source="_FjtUAPy0Edm185zvv0WM_Q" target="_FcKhkPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GB4dw_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GB4dxfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB4dx_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB4dxvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB4dxPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB4dwfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB4dwvy0Edm185zvv0WM_Q" points="[-13, 4537, -5292, -6125]$[5278, 6124, -1, -4538]"/>
-      </edges>
-      <edges xmi:id="_GB4dyPy0Edm185zvv0WM_Q" source="_FjtUAPy0Edm185zvv0WM_Q" target="_FjtUAPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GB4dy_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GB4dzfy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB4dz_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB4dzvy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB4dzPy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB4dyfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB4dyvy0Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_GB4d0Py0Edm185zvv0WM_Q" source="_FjtUAPy0Edm185zvv0WM_Q" target="_F5evsPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GB4d0_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GB4d1fy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB4d1_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB4d1vy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB4d1Py0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB4d0fy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB4d0vy0Edm185zvv0WM_Q" points="[-13, 4537, 6350, -15028]$[-4617, 6124, 1746, -13441]$[-4617, 15200, 1746, -4365]$[-6363, 16787, 0, -2778]"/>
-      </edges>
-      <edges xmi:id="_GB4d2Py0Edm185zvv0WM_Q" source="_FjtUAPy0Edm185zvv0WM_Q" target="_Fe1bEPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GB4d2_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GB4d3fy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB4d3_y0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB4d3vy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB4d3Py0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB4d2fy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB4d2vy0Edm185zvv0WM_Q" points="[1614, 3466, -5371, 1534]$[1614, 3916, -5371, 1984]$[6297, 3916, -688, 1984]$[6297, 2858, -688, 926]"/>
-      </edges>
-      <edges xmi:id="_GB-kYPy0Edm185zvv0WM_Q" type="OwnedElement" source="_FyglAPy0Edm185zvv0WM_Q" target="_F5xDkfy0Edm185zvv0WM_Q">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB-kYfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB-kYvy0Edm185zvv0WM_Q" points="[-14, 3902, -477, -6126]$[462, 5490, -1, -4538]"/>
-      </edges>
-      <edges xmi:id="_GB-kY_y0Edm185zvv0WM_Q" source="_FyglAPy0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GB-kZvy0Edm185zvv0WM_Q" visible="false" type="NameLabel">
-          <children xmi:id="_GB-kaPy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB-kafy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB-kZ_y0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB-kZPy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB-kZfy0Edm185zvv0WM_Q" points="[-14, 3902, 4921, -36301]$[-4935, 5490, 0, -34713]$[-4935, 39118, 0, -1085]"/>
-      </edges>
-      <edges xmi:id="_GB-kavy0Edm185zvv0WM_Q" source="_FyglAPy0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GB-kbfy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GB-kb_y0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB-kcfy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB-kcPy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB-kbvy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB-ka_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB-kbPy0Edm185zvv0WM_Q" points="[2778, 0, -6588, 25189]$[10239, 0, 873, 25189]$[10239, -24104, 873, 1085]"/>
-      </edges>
-      <edges xmi:id="_GB-kcvy0Edm185zvv0WM_Q" source="_FyglAPy0Edm185zvv0WM_Q" target="_Fe1bEPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GB-kdfy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GB-kd_y0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GCErAPy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GB-kePy0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB-kdvy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB-kc_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB-kdPy0Edm185zvv0WM_Q" points="[2302, 1561, -11932, -2249]$[2302, 13176, -11932, 9366]$[4894, 13176, -9340, 9366]$[4894, 5609, -9340, 1799]$[14287, 5609, 53, 1799]$[14287, 4736, 53, 926]"/>
-      </edges>
-      <edges xmi:id="_GCErAfy0Edm185zvv0WM_Q" source="_FyglAPy0Edm185zvv0WM_Q" target="_F5xDkfy0Edm185zvv0WM_Q">
-        <children xmi:id="_GCErBPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GCErBvy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <children xmi:id="_GCErCPy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <children xmi:id="_GCErB_y0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GCErBfy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GCErAvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GCErA_y0Edm185zvv0WM_Q" points="[-14, 3902, -477, -6126]$[462, 5490, -1, -4538]"/>
-      </edges>
-      <edges xmi:id="_GCErCfy0Edm185zvv0WM_Q" source="_FyglAPy0Edm185zvv0WM_Q" target="_FjtUAPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GCErDPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GCErDvy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GCErEPy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GCErD_y0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GCErDfy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GCErCvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GCErC_y0Edm185zvv0WM_Q" points="[-14, 3902, -9036, -6126]$[9009, 5490, -13, -4538]"/>
-      </edges>
-      <edges xmi:id="_GCErEfy0Edm185zvv0WM_Q" source="_F5evsPy0Edm185zvv0WM_Q" target="_FZ9iIPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GCErFPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GCErFvy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GCErGPy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GCErF_y0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GCErFfy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GCErEvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GCErE_y0Edm185zvv0WM_Q" points="[0, -2778, 2659, 35997]$[-5901, -4365, -3242, 34410]$[-5901, -33496, -3242, 5279]$[-2673, -35084, -14, 3691]"/>
-      </edges>
-      <edges xmi:id="_GCErGfy0Edm185zvv0WM_Q" source="_F66TEPy0Edm185zvv0WM_Q" target="_FZ9iIPy0Edm185zvv0WM_Q">
-        <children xmi:id="_GCErHPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
-          <children xmi:id="_GCErHvy0Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GCErIPy0Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_GCErH_y0Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_GCErHfy0Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GCErGvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GCErG_y0Edm185zvv0WM_Q" points="[-13, 1997, -14, -5278]$[-13, 3584, -14, -3691]"/>
-      </edges>
-    </contents>
-    <contents xmi:type="notation:Diagram" xmi:id="_H10VAPy-Edm185zvv0WM_Q" type="Class" element="_SWX3UH5GEdm797szikHjoQ" name="Link-with-Editor">
-      <children xmi:id="_KDiw0Py-Edm185zvv0WM_Q" targetEdges="_NC76IPy-Edm185zvv0WM_Q">
-        <children xmi:id="_KDiw0_y-Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_KDiw1Py-Edm185zvv0WM_Q" width="530" height="530"/>
-        </children>
-        <children xmi:id="_KDiw1fy-Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_KDiw1vy-Edm185zvv0WM_Q" type="Kind">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_KDiw1_y-Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_KDiw2Py-Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_KDiw2fy-Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_KDiw2vy-Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_KDiw2_y-Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_KDiw3Py-Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_KDiw3fy-Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_KDiw0fy-Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
-        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KDiw0vy-Edm185zvv0WM_Q" x="5688" y="3439"/>
-      </children>
-      <children xmi:id="_M7rbkPy-Edm185zvv0WM_Q" sourceEdges="_NC1zgfy-Edm185zvv0WM_Q _NC76IPy-Edm185zvv0WM_Q _NC76KPy-Edm185zvv0WM_Q _NC76MPy-Edm185zvv0WM_Q" targetEdges="_NC76KPy-Edm185zvv0WM_Q">
-        <children xmi:id="_M7rbk_y-Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_M7rblPy-Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_M7rblfy-Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_M7rblvy-Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_M7rbl_y-Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M7rbmPy-Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_M7rbmfy-Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M7rbmvy-Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_M7rbm_y-Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M7rbnPy-Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_M7rbnfy-Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_M7rbnvy-Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_M7rbkfy-Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M7rbkvy-Edm185zvv0WM_Q" x="10176" y="3180"/>
-      </children>
-      <children xmi:id="_M9fZcPy-Edm185zvv0WM_Q" targetEdges="_NC1zgfy-Edm185zvv0WM_Q _NC76MPy-Edm185zvv0WM_Q">
-        <children xmi:id="_M9fZc_y-Edm185zvv0WM_Q" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_M9fZdPy-Edm185zvv0WM_Q" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_M9fZdfy-Edm185zvv0WM_Q" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_M9fZdvy-Edm185zvv0WM_Q" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_M9fZd_y-Edm185zvv0WM_Q" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M9fZePy-Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_M9fZefy-Edm185zvv0WM_Q" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M9fZevy-Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_M9fZe_y-Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M9fZfPy-Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_M9fZffy-Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_M9fZfvy-Edm185zvv0WM_Q"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_M9fZcfy-Edm185zvv0WM_Q" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M9fZcvy-Edm185zvv0WM_Q" x="11561" y="10466"/>
-      </children>
-      <styles xmi:type="umlnotation:UMLDiagramStyle" xmi:id="_H10VAfy-Edm185zvv0WM_Q"/>
-      <edges xmi:id="_NC1zgfy-Edm185zvv0WM_Q" type="OwnedElement" source="_M7rbkPy-Edm185zvv0WM_Q" target="_M9fZcPy-Edm185zvv0WM_Q">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_NC1zgvy-Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NC1zg_y-Edm185zvv0WM_Q" points="[0, 2857, 0, -6125]$[0, 4444, 0, -4538]"/>
-      </edges>
-      <edges xmi:id="_NC76IPy-Edm185zvv0WM_Q" source="_M7rbkPy-Edm185zvv0WM_Q" target="_KDiw0Py-Edm185zvv0WM_Q">
-        <children xmi:id="_NC76I_y-Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_NC76Jfy-Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_NC76J_y-Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_NC76Jvy-Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_NC76JPy-Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_NC76Ify-Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NC76Ivy-Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_NC76KPy-Edm185zvv0WM_Q" source="_M7rbkPy-Edm185zvv0WM_Q" target="_M7rbkPy-Edm185zvv0WM_Q">
-        <children xmi:id="_NC76K_y-Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_NC76Lfy-Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_NC76L_y-Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_NC76Lvy-Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_NC76LPy-Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_NC76Kfy-Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NC76Kvy-Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_NC76MPy-Edm185zvv0WM_Q" source="_M7rbkPy-Edm185zvv0WM_Q" target="_M9fZcPy-Edm185zvv0WM_Q">
-        <children xmi:id="_NC76M_y-Edm185zvv0WM_Q" type="KindLabel">
-          <children xmi:id="_NC76Nfy-Edm185zvv0WM_Q" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <children xmi:id="_NC76N_y-Edm185zvv0WM_Q" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <children xmi:id="_NC76Nvy-Edm185zvv0WM_Q" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_NC76NPy-Edm185zvv0WM_Q" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_NC76Mfy-Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NC76Mvy-Edm185zvv0WM_Q" points="[0, 2857, 0, -6125]$[0, 4444, 0, -4538]"/>
-      </edges>
-    </contents>
-    <contents xmi:type="notation:Diagram" xmi:id="_Mkq0UPy_Edm185zvv0WM_Q" type="Class" element="_SWX3UH5GEdm797szikHjoQ" name="Diagram2">
-      <children xmi:id="_HJWQ8P0IEdmIXMUQntzgXA" sourceEdges="_Hci5wP0IEdmIXMUQntzgXA _Hci5yP0IEdmIXMUQntzgXA" targetEdges="_coh54P0JEdmIXMUQntzgXA">
-        <children xmi:id="_HJok0P0IEdmIXMUQntzgXA" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_HJok0f0IEdmIXMUQntzgXA" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_HJok0v0IEdmIXMUQntzgXA" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HJok0_0IEdmIXMUQntzgXA" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HJok1P0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HJok1f0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HJok1v0IEdmIXMUQntzgXA" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HJok1_0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HJok2P0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HJok2f0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HJok2v0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HJok2_0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HJWQ8f0IEdmIXMUQntzgXA" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJWQ8v0IEdmIXMUQntzgXA" x="22260" y="6678"/>
-      </children>
-      <children xmi:id="_HK4iAP0IEdmIXMUQntzgXA" sourceEdges="_HcpAZf0IEdmIXMUQntzgXA _HcpAbf0IEdmIXMUQntzgXA" targetEdges="_Hci5wP0IEdmIXMUQntzgXA _HcpAZf0IEdmIXMUQntzgXA">
-        <children xmi:id="_HK4iA_0IEdmIXMUQntzgXA" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_HK4iBP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_HK4iBf0IEdmIXMUQntzgXA" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HK4iBv0IEdmIXMUQntzgXA" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HK4iB_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HK4iCP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HK4iCf0IEdmIXMUQntzgXA" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HK4iCv0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HK4iC_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HK4iDP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HK4iDf0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HK4iDv0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HK4iAf0IEdmIXMUQntzgXA" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HK4iAv0IEdmIXMUQntzgXA" x="14746" y="6650"/>
-      </children>
-      <children xmi:id="_HLjQYP0IEdmIXMUQntzgXA" sourceEdges="_HcpAdf0IEdmIXMUQntzgXA _HcpAff0IEdmIXMUQntzgXA _HcvHAf0IEdmIXMUQntzgXA _HcvHCf0IEdmIXMUQntzgXA _HcvHEf0IEdmIXMUQntzgXA" targetEdges="_HcpAbf0IEdmIXMUQntzgXA _Hc1Nu_0IEdmIXMUQntzgXA">
-        <children xmi:id="_HLjQY_0IEdmIXMUQntzgXA" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_HLjQZP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_HLjQZf0IEdmIXMUQntzgXA" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HLjQZv0IEdmIXMUQntzgXA" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HLjQZ_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HLjQaP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HLjQaf0IEdmIXMUQntzgXA" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HLjQav0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HLjQa_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HLjQbP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HLjQbf0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HLjQbv0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HLjQYf0IEdmIXMUQntzgXA" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HLjQYv0IEdmIXMUQntzgXA" x="14946" y="13674"/>
-      </children>
-      <children xmi:id="_HSJAkP0IEdmIXMUQntzgXA" sourceEdges="_HcvHGf0IEdmIXMUQntzgXA" targetEdges="_Hc1Ns_0IEdmIXMUQntzgXA _Bl_rMP0KEdmIXMUQntzgXA">
-        <children xmi:id="_HSJAk_0IEdmIXMUQntzgXA" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_HSJAlP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_HSPHMP0IEdmIXMUQntzgXA" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HSPHMf0IEdmIXMUQntzgXA" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HSPHMv0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HSPHM_0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HSPHNP0IEdmIXMUQntzgXA" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HSPHNf0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HSPHNv0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HSPHN_0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HSPHOP0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HSPHOf0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HSJAkf0IEdmIXMUQntzgXA" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HSJAkv0IEdmIXMUQntzgXA" x="7314" y="27348"/>
-      </children>
-      <children xmi:id="_HStoUP0IEdmIXMUQntzgXA" targetEdges="_HcvHGf0IEdmIXMUQntzgXA">
-        <children xmi:id="_HStoU_0IEdmIXMUQntzgXA" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_HStoVP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_HStoVf0IEdmIXMUQntzgXA" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HStoVv0IEdmIXMUQntzgXA" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HStoV_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HStoWP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HStoWf0IEdmIXMUQntzgXA" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HStoWv0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HStoW_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HStoXP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HSzu8P0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HSzu8f0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HStoUf0IEdmIXMUQntzgXA" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HStoUv0IEdmIXMUQntzgXA" x="6996" y="22578"/>
-      </children>
-      <children xmi:id="_HTMJcP0IEdmIXMUQntzgXA" sourceEdges="_Hc1NoP0IEdmIXMUQntzgXA _Hc1No_0IEdmIXMUQntzgXA" targetEdges="_HcvHAf0IEdmIXMUQntzgXA _sp32kP0JEdmIXMUQntzgXA">
-        <children xmi:id="_HTMJc_0IEdmIXMUQntzgXA" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_HTMJdP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_HTMJdf0IEdmIXMUQntzgXA" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HTMJdv0IEdmIXMUQntzgXA" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HTMJd_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HTMJeP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HTMJef0IEdmIXMUQntzgXA" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HTMJev0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HTMJe_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HTMJfP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HTMJff0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HTMJfv0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HTMJcf0IEdmIXMUQntzgXA" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HTMJcv0IEdmIXMUQntzgXA" x="13722" y="22584"/>
-      </children>
-      <children xmi:id="_HT8-cP0IEdmIXMUQntzgXA" targetEdges="_HcvHCf0IEdmIXMUQntzgXA _Hc1NoP0IEdmIXMUQntzgXA _Hc1No_0IEdmIXMUQntzgXA">
-        <children xmi:id="_HT8-c_0IEdmIXMUQntzgXA" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_HT8-dP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_HT8-df0IEdmIXMUQntzgXA" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_HT8-dv0IEdmIXMUQntzgXA" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_HT8-d_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HT8-eP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_HT8-ef0IEdmIXMUQntzgXA" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HT8-ev0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_HT8-e_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HT8-fP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <children xmi:id="_HT8-ff0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HT8-fv0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HT8-cf0IEdmIXMUQntzgXA" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HT8-cv0IEdmIXMUQntzgXA" x="13992" y="27030"/>
-      </children>
-      <children xmi:id="_HVAHUP0IEdmIXMUQntzgXA" sourceEdges="_Hc1Nq_0IEdmIXMUQntzgXA _Hc1Ns_0IEdmIXMUQntzgXA" targetEdges="_Hci5yP0IEdmIXMUQntzgXA _HcpAff0IEdmIXMUQntzgXA _Hc1Nq_0IEdmIXMUQntzgXA _Hc7UQP0IEdmIXMUQntzgXA">
-        <children xmi:id="_HVAHU_0IEdmIXMUQntzgXA" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_HVAHVP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_HVAHVf0IEdmIXMUQntzgXA" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HVAHVv0IEdmIXMUQntzgXA" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HVAHV_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HVAHWP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HVAHWf0IEdmIXMUQntzgXA" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HVAHWv0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HVAHW_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HVAHXP0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HVAHXf0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HVAHXv0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HVAHUf0IEdmIXMUQntzgXA" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HVAHUv0IEdmIXMUQntzgXA" x="6042" y="14628"/>
-      </children>
-      <children xmi:id="_HXk6MP0IEdmIXMUQntzgXA" targetEdges="_HcvHEf0IEdmIXMUQntzgXA">
-        <children xmi:id="_HXk6M_0IEdmIXMUQntzgXA" type="ImageCompartment">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_HXk6NP0IEdmIXMUQntzgXA" width="530" height="530"/>
-        </children>
-        <children xmi:id="_HXk6Nf0IEdmIXMUQntzgXA" type="Stereotype">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HXk6Nv0IEdmIXMUQntzgXA" type="Kind">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HXk6N_0IEdmIXMUQntzgXA" type="Name">
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HXk6OP0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HXk6Of0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HXk6Ov0IEdmIXMUQntzgXA" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HXk6O_0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HXk6PP0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HXk6Pf0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_HXk6Mf0IEdmIXMUQntzgXA" showStereotype="Label" useClassifierShape="true"/>
-        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HXk6Mv0IEdmIXMUQntzgXA" x="21690" y="22588"/>
-      </children>
-      <children xmi:id="_HYWWQP0IEdmIXMUQntzgXA" sourceEdges="_Hc1Nu_0IEdmIXMUQntzgXA _Hc7UQP0IEdmIXMUQntzgXA" targetEdges="_HcpAdf0IEdmIXMUQntzgXA _ifGrsP0JEdmIXMUQntzgXA">
-        <children xmi:id="_HYWWQ_0IEdmIXMUQntzgXA" type="ImageCompartment">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-          <layoutConstraint xmi:type="notation:Size" xmi:id="_HYWWRP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
-        </children>
-        <children xmi:id="_HYWWRf0IEdmIXMUQntzgXA" type="Stereotype">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HYcc4P0IEdmIXMUQntzgXA" type="Name">
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HYcc4f0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HYcc4v0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HYcc4_0IEdmIXMUQntzgXA" type="OperationCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HYcc5P0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HYcc5f0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
-          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HYcc5v0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <children xmi:id="_HYcc5_0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
-          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HYcc6P0IEdmIXMUQntzgXA"/>
-          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HYWWQf0IEdmIXMUQntzgXA" showStereotype="Label"/>
-        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HYWWQv0IEdmIXMUQntzgXA" x="6210" y="6661"/>
-      </children>
-      <children xmi:id="_W3B1UP0JEdmIXMUQntzgXA" sourceEdges="_coh54P0JEdmIXMUQntzgXA" element="_WrLxsP0JEdmIXMUQntzgXA">
-        <children xmi:id="_W3H78P0JEdmIXMUQntzgXA" type="CommentBody" element="_WrLxsP0JEdmIXMUQntzgXA"/>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_W3B1Uf0JEdmIXMUQntzgXA" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W3B1Uv0JEdmIXMUQntzgXA" x="22260" y="3498" width="4445" height="2222"/>
-      </children>
-      <children xmi:id="_eM52sP0JEdmIXMUQntzgXA" sourceEdges="_ifGrsP0JEdmIXMUQntzgXA" element="_eMhcMP0JEdmIXMUQntzgXA">
-        <children xmi:id="_eM52s_0JEdmIXMUQntzgXA" type="CommentBody" element="_eMhcMP0JEdmIXMUQntzgXA"/>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_eM52sf0JEdmIXMUQntzgXA" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eM52sv0JEdmIXMUQntzgXA" x="952" y="6667" width="4127" height="2539"/>
-      </children>
-      <children xmi:id="_lGtnIP0JEdmIXMUQntzgXA" sourceEdges="_sp32kP0JEdmIXMUQntzgXA" element="_lGVMoP0JEdmIXMUQntzgXA">
-        <children xmi:id="_lGtnI_0JEdmIXMUQntzgXA" type="CommentBody" element="_lGVMoP0JEdmIXMUQntzgXA"/>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_lGtnIf0JEdmIXMUQntzgXA" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lGtnIv0JEdmIXMUQntzgXA" x="21942" y="24804" width="5397" height="2248"/>
-      </children>
-      <children xmi:id="_-xrwgP0JEdmIXMUQntzgXA" sourceEdges="_Bl_rMP0KEdmIXMUQntzgXA" element="_-xTWAP0JEdmIXMUQntzgXA">
-        <children xmi:id="_-xrwg_0JEdmIXMUQntzgXA" type="CommentBody" element="_-xTWAP0JEdmIXMUQntzgXA"/>
-        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_-xrwgf0JEdmIXMUQntzgXA" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-xrwgv0JEdmIXMUQntzgXA" x="7314" y="30210" width="3492" height="1587"/>
-      </children>
-      <styles xmi:type="umlnotation:UMLDiagramStyle" xmi:id="_Mkq0Ufy_Edm185zvv0WM_Q"/>
-      <edges xmi:id="_Hci5wP0IEdmIXMUQntzgXA" source="_HJWQ8P0IEdmIXMUQntzgXA" target="_HK4iAP0IEdmIXMUQntzgXA">
-        <children xmi:id="_Hci5w_0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_Hci5xf0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_Hci5x_0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_Hci5xv0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hci5xP0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hci5wf0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hci5wv0IEdmIXMUQntzgXA" points="[0, 1799, 4008, -5279]$[-4022, 3387, -14, -3691]"/>
-      </edges>
-      <edges xmi:id="_Hci5yP0IEdmIXMUQntzgXA" source="_HJWQ8P0IEdmIXMUQntzgXA" target="_HVAHUP0IEdmIXMUQntzgXA">
-        <children xmi:id="_HcpAYP0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_HcpAYv0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcpAZP0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcpAY_0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcpAYf0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hci5yf0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hci5yv0IEdmIXMUQntzgXA" points="[0, 1799, 12078, -28509]$[0, 21009, 12078, -9299]$[-12092, 22595, -14, -7713]"/>
-      </edges>
-      <edges xmi:id="_HcpAZf0IEdmIXMUQntzgXA" source="_HK4iAP0IEdmIXMUQntzgXA" target="_HK4iAP0IEdmIXMUQntzgXA">
-        <children xmi:id="_HcpAaP0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_HcpAav0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcpAbP0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcpAa_0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcpAaf0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcpAZv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcpAZ_0IEdmIXMUQntzgXA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_HcpAbf0IEdmIXMUQntzgXA" source="_HK4iAP0IEdmIXMUQntzgXA" target="_HLjQYP0IEdmIXMUQntzgXA">
-        <children xmi:id="_HcpAcP0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_HcpAcv0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcpAdP0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcpAc_0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcpAcf0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcpAbv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcpAb_0IEdmIXMUQntzgXA" points="[-14, 3690, 1442, -5914]$[-1469, 5278, -13, -4326]"/>
-      </edges>
-      <edges xmi:id="_HcpAdf0IEdmIXMUQntzgXA" source="_HLjQYP0IEdmIXMUQntzgXA" target="_HYWWQP0IEdmIXMUQntzgXA">
-        <children xmi:id="_HcpAeP0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_HcpAev0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcpAfP0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcpAe_0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcpAef0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcpAdv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcpAd_0IEdmIXMUQntzgXA" points="[-13, -4326, 6614, 5278]$[-6628, -5914, -1, 3690]"/>
-      </edges>
-      <edges xmi:id="_HcpAff0IEdmIXMUQntzgXA" source="_HLjQYP0IEdmIXMUQntzgXA" target="_HVAHUP0IEdmIXMUQntzgXA">
-        <children xmi:id="_HcpAgP0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_HcpAgv0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcvHAP0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcpAg_0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcpAgf0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcpAfv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcpAf_0IEdmIXMUQntzgXA" points="[-13, 4326, 6601, -9300]$[-6628, 5913, -14, -7713]"/>
-      </edges>
-      <edges xmi:id="_HcvHAf0IEdmIXMUQntzgXA" source="_HLjQYP0IEdmIXMUQntzgXA" target="_HTMJcP0IEdmIXMUQntzgXA">
-        <children xmi:id="_HcvHBP0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_HcvHBv0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcvHCP0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcvHB_0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcvHBf0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcvHAv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcvHA_0IEdmIXMUQntzgXA" points="[-13, 4326, -529, -9300]$[516, 5913, 0, -7713]"/>
-      </edges>
-      <edges xmi:id="_HcvHCf0IEdmIXMUQntzgXA" source="_HLjQYP0IEdmIXMUQntzgXA" target="_HT8-cP0IEdmIXMUQntzgXA">
-        <children xmi:id="_HcvHDP0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_HcvHDv0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <children xmi:id="_HcvHEP0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <children xmi:id="_HcvHD_0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcvHDf0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcvHCv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcvHC_0IEdmIXMUQntzgXA" points="[-13, 4326, -2514, -20386]$[4485, 5913, 1984, -18799]$[4485, 21339, 1984, -3373]$[2500, 22926, -1, -1786]"/>
-      </edges>
-      <edges xmi:id="_HcvHEf0IEdmIXMUQntzgXA" source="_HLjQYP0IEdmIXMUQntzgXA" target="_HXk6MP0IEdmIXMUQntzgXA">
-        <children xmi:id="_HcvHFP0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_HcvHFv0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcvHGP0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcvHF_0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcvHFf0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcvHEv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcvHE_0IEdmIXMUQntzgXA" points="[-13, 4326, -7726, -9300]$[7713, 5913, 0, -7713]"/>
-      </edges>
-      <edges xmi:id="_HcvHGf0IEdmIXMUQntzgXA" source="_HSJAkP0IEdmIXMUQntzgXA" target="_HStoUP0IEdmIXMUQntzgXA">
-        <children xmi:id="_HcvHHP0IEdmIXMUQntzgXA" type="NameLabel">
-          <children xmi:id="_HcvHHv0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_HcvHH_0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcvHHf0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcvHGv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcvHG_0IEdmIXMUQntzgXA" points="[0, -1786, 3056, 9300]$[-3070, -3373, -14, 7713]"/>
-      </edges>
-      <edges xmi:id="_Hc1NoP0IEdmIXMUQntzgXA" type="OwnedElement" source="_HTMJcP0IEdmIXMUQntzgXA" target="_HT8-cP0IEdmIXMUQntzgXA">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc1Nof0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc1Nov0IEdmIXMUQntzgXA" points="[0, 7713, -1985, -3373]$[1984, 9300, -1, -1786]"/>
-      </edges>
-      <edges xmi:id="_Hc1No_0IEdmIXMUQntzgXA" source="_HTMJcP0IEdmIXMUQntzgXA" target="_HT8-cP0IEdmIXMUQntzgXA">
-        <children xmi:id="_Hc1Npv0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_Hc1NqP0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <children xmi:id="_Hc1Nqv0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <children xmi:id="_Hc1Nqf0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hc1Np_0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc1NpP0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc1Npf0IEdmIXMUQntzgXA" points="[0, 7713, -1985, -3373]$[1984, 9300, -1, -1786]"/>
-      </edges>
-      <edges xmi:id="_Hc1Nq_0IEdmIXMUQntzgXA" source="_HVAHUP0IEdmIXMUQntzgXA" target="_HVAHUP0IEdmIXMUQntzgXA">
-        <children xmi:id="_Hc1Nrv0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_Hc1NsP0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_Hc1Nsv0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_Hc1Nsf0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hc1Nr_0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc1NrP0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc1Nrf0IEdmIXMUQntzgXA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      </edges>
-      <edges xmi:id="_Hc1Ns_0IEdmIXMUQntzgXA" source="_HVAHUP0IEdmIXMUQntzgXA" target="_HSJAkP0IEdmIXMUQntzgXA">
-        <children xmi:id="_Hc1Ntv0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_Hc1NuP0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_Hc1Nuv0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_Hc1Nuf0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hc1Nt_0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc1NtP0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc1Ntf0IEdmIXMUQntzgXA" points="[-2566, 27, -3519, -10372]$[-3704, 27, -4657, -10372]$[-3704, 10425, -4657, 26]$[-1296, 10425, -2249, 26]"/>
-      </edges>
-      <edges xmi:id="_Hc1Nu_0IEdmIXMUQntzgXA" source="_HYWWQP0IEdmIXMUQntzgXA" target="_HLjQYP0IEdmIXMUQntzgXA">
-        <children xmi:id="_Hc1Nvv0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_Hc1NwP0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_Hc1Nwv0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_Hc1Nwf0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hc1Nv_0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc1NvP0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc1Nvf0IEdmIXMUQntzgXA" points="[-1, 3690, -6628, -5914]$[6614, 5278, -13, -4326]"/>
-      </edges>
-      <edges xmi:id="_Hc7UQP0IEdmIXMUQntzgXA" source="_HYWWQP0IEdmIXMUQntzgXA" target="_HVAHUP0IEdmIXMUQntzgXA">
-        <children xmi:id="_Hc7UQ_0IEdmIXMUQntzgXA" type="KindLabel">
-          <children xmi:id="_Hc7URf0IEdmIXMUQntzgXA" type="Stereotype">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_Hc7UR_0IEdmIXMUQntzgXA" type="Kind">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <children xmi:id="_Hc7URv0IEdmIXMUQntzgXA" type="Name">
-            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          </children>
-          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hc7URP0IEdmIXMUQntzgXA" y="-185"/>
-        </children>
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc7UQf0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc7UQv0IEdmIXMUQntzgXA" points="[-1, 3690, -14, -19540]$[-1, 15517, -14, -7713]"/>
-      </edges>
-      <edges xmi:id="_coh54P0JEdmIXMUQntzgXA" type="Reference" source="_W3B1UP0JEdmIXMUQntzgXA" target="_HJWQ8P0IEdmIXMUQntzgXA">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_coh54f0JEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_coh54v0JEdmIXMUQntzgXA" points="[-85, 8, 261, -24]$[-129, 8, 217, -24]"/>
-      </edges>
-      <edges xmi:id="_ifGrsP0JEdmIXMUQntzgXA" type="Reference" source="_eM52sP0JEdmIXMUQntzgXA" target="_HYWWQP0IEdmIXMUQntzgXA">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_ifGrsf0JEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ifGrsv0JEdmIXMUQntzgXA" points="[79, 10, -194, -80]$[222, -49, -51, -139]"/>
-      </edges>
-      <edges xmi:id="_sp32kP0JEdmIXMUQntzgXA" type="Reference" source="_lGtnIP0JEdmIXMUQntzgXA" target="_HTMJcP0IEdmIXMUQntzgXA">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_sp32kf0JEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sp32kv0JEdmIXMUQntzgXA" points="[-103, 1, 232, 62]$[-264, 38, 71, 99]"/>
-      </edges>
-      <edges xmi:id="_Bl_rMP0KEdmIXMUQntzgXA" type="Reference" source="_-xrwgP0JEdmIXMUQntzgXA" target="_HSJAkP0IEdmIXMUQntzgXA">
-        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Bl_rMf0KEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
-        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl_rMv0KEdmIXMUQntzgXA" points="[67, 28, -126, -35]$[108, 56, -85, -7]"/>
-      </edges>
-    </contents>
-  </eAnnotations>
-  <ownedComment xmi:id="_1rBVoIO1Edmyd--cXlrqyQ" body="The Logical Extension uses various classes to supply information to the Common Navigator. See the extension point: &#xD;&#xA;org.eclipse.ui.navigator.views&#xD;&#xA; for more details."/>
-  <ownedComment xmi:id="_mJViYPy0Edm185zvv0WM_Q" body="The CNM handles the logic for selection listeners and menus for the CommonNavigator view part.">
-    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-  </ownedComment>
-  <ownedComment xmi:id="_ADTKAPy1Edm185zvv0WM_Q" body="The NAS can notify interested parties when Content Extensions are initialized for a specific instance of the CommonNavigator. (Used to force the initialization of CommonActionProviders for the various extensions).">
-    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-  </ownedComment>
-  <ownedComment xmi:id="_MRe-IPy1Edm185zvv0WM_Q" body="The NAS handles the work of allowing CommonActionProviders to inject items into the context menu of the viewer and to update the action bars as the user changes their selection in the Common Navigator.">
-    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-  </ownedComment>
-  <ownedComment xmi:id="_XIwpsPy1Edm185zvv0WM_Q" body="The NCS is the heart of the framework for content. Any viewer can use a instance of the NCS. The instance does not have a dependency to an Eclipse view part, so any StructuredViewer could use the service. The NCS will create specific Content Providers and Label Providers for use in any viewer. Each of the provider instances are tied to the NCS that created them.">
-    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-  </ownedComment>
-  <ownedComment xmi:id="_vAWw8Py1Edm185zvv0WM_Q" body="Used to supply a viewer with content or labels">
-    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-  </ownedComment>
-  <ownedComment xmi:id="_WrLxsP0JEdmIXMUQntzgXA" body="Integrates the filters from extensions. There is one CommonViewerFilter per viewer, not per filter.">
-    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-  </ownedComment>
-  <ownedComment xmi:id="_eMhcMP0JEdmIXMUQntzgXA" body="Handles activating filters and managing the persistance and restoration of these activations.">
-    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-  </ownedComment>
-  <ownedComment xmi:id="_lGVMoP0JEdmIXMUQntzgXA" body="Provides integration point for Resource Navigator and Package Explorer filters. Likely to be removed.">
-    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-  </ownedComment>
-  <ownedComment xmi:id="_-xTWAP0JEdmIXMUQntzgXA" body="Used to wrap filters provided from ThirdPartyProviders">
-    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
-  </ownedComment>
-  <packageImport xmi:type="uml:ProfileApplication" xmi:id="_SWX3VH5GEdm797szikHjoQ">
-    <eAnnotations xmi:id="_SWX3VX5GEdm797szikHjoQ" source="attributes">
-      <details xmi:id="_SWX3Vn5GEdm797szikHjoQ" key="version" value="0"/>
-    </eAnnotations>
-    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
-    <importedProfile href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
-  </packageImport>
-  <packageImport xmi:type="uml:ProfileApplication" xmi:id="_SWX3V35GEdm797szikHjoQ">
-    <eAnnotations xmi:id="_SWX3WH5GEdm797szikHjoQ" source="attributes">
-      <details xmi:id="_SWX3WX5GEdm797szikHjoQ" key="version" value="0"/>
-    </eAnnotations>
-    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Intermediate.profile.uml2#_Cz7csK87Edih9-GG5afQ0g"/>
-    <importedProfile href="pathmap://UML2_PROFILES/Intermediate.profile.uml2#_Cz7csK87Edih9-GG5afQ0g"/>
-  </packageImport>
-  <packageImport xmi:type="uml:ProfileApplication" xmi:id="_SWX3Wn5GEdm797szikHjoQ">
-    <eAnnotations xmi:id="_SWX3W35GEdm797szikHjoQ" source="attributes">
-      <details xmi:id="_SWX3XH5GEdm797szikHjoQ" key="version" value="0"/>
-    </eAnnotations>
-    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
-    <importedProfile href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
-  </packageImport>
-  <packageImport xmi:type="uml:ProfileApplication" xmi:id="_SWX3XX5GEdm797szikHjoQ">
-    <eAnnotations xmi:id="_SWX3Xn5GEdm797szikHjoQ" source="attributes">
-      <details xmi:id="_SWX3X35GEdm797szikHjoQ" key="version" value="0"/>
-    </eAnnotations>
-    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_MSL_PROFILES/Default.epx#_a_S3wNWLEdiy4IqP8whjFA?Default"/>
-    <importedProfile href="pathmap://UML2_MSL_PROFILES/Default.epx#_a_S3wNWLEdiy4IqP8whjFA?Default"/>
-  </packageImport>
-  <packageImport xmi:type="uml:ProfileApplication" xmi:id="_SWX3YH5GEdm797szikHjoQ">
-    <eAnnotations xmi:id="_SWX3YX5GEdm797szikHjoQ" source="attributes">
-      <details xmi:id="_SWX3Yn5GEdm797szikHjoQ" key="version" value="0"/>
-    </eAnnotations>
-    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_MSL_PROFILES/Deployment.epx#_vjbuwOvHEdiDX5bji0iVSA?Deployment"/>
-    <importedProfile href="pathmap://UML2_MSL_PROFILES/Deployment.epx#_vjbuwOvHEdiDX5bji0iVSA?Deployment"/>
-  </packageImport>
-  <packageImport xmi:id="_SWX3Y35GEdm797szikHjoQ">
-    <importedPackage xmi:type="uml:Model" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_EfRZoK86EdieaYgxtVWN8Q"/>
-  </packageImport>
-  <ownedMember xmi:type="uml:Component" xmi:id="_9330kIOwEdmyd--cXlrqyQ" name="ITreeContentProvider"/>
-  <ownedMember xmi:type="uml:Component" xmi:id="_X4I4gIOxEdmyd--cXlrqyQ" name="ICommonLabelProvider" clientDependency="_gSmjYIOxEdmyd--cXlrqyQ">
-    <realization xmi:id="_gSmjYIOxEdmyd--cXlrqyQ" client="_X4I4gIOxEdmyd--cXlrqyQ" supplier="_b6MYsIOxEdmyd--cXlrqyQ" realizingClassifier="_b6MYsIOxEdmyd--cXlrqyQ">
-      <mapping xmi:id="_gSmjYYOxEdmyd--cXlrqyQ"/>
-    </realization>
-  </ownedMember>
-  <ownedMember xmi:type="uml:Component" xmi:id="_b6MYsIOxEdmyd--cXlrqyQ" name="ILabelProvider"/>
-  <ownedMember xmi:type="uml:Component" xmi:id="_jhjysIOxEdmyd--cXlrqyQ" name="IOpenListener"/>
-  <ownedMember xmi:type="uml:Component" xmi:id="_kc3kYIOxEdmyd--cXlrqyQ" name="ICommonOpenListener" clientDependency="_mI-g4IOxEdmyd--cXlrqyQ">
-    <realization xmi:id="_mI-g4IOxEdmyd--cXlrqyQ" client="_kc3kYIOxEdmyd--cXlrqyQ" supplier="_jhjysIOxEdmyd--cXlrqyQ" realizingClassifier="_jhjysIOxEdmyd--cXlrqyQ">
-      <mapping xmi:id="_mI-g4YOxEdmyd--cXlrqyQ"/>
-    </realization>
-  </ownedMember>
-  <ownedMember xmi:type="uml:Component" xmi:id="_mol1EIOxEdmyd--cXlrqyQ" name="ICommonActionProvider"/>
-  <ownedMember xmi:type="uml:Component" xmi:id="_4TXNsIOxEdmyd--cXlrqyQ" name="Logical Extension" clientDependency="_AbfLYIOyEdmyd--cXlrqyQ _DeUDMIOyEdmyd--cXlrqyQ _JsSBUIOyEdmyd--cXlrqyQ _Lc-i4IOyEdmyd--cXlrqyQ _ITURAIO3Edmyd--cXlrqyQ">
-    <ownedAttribute xmi:id="_Ssv8QIOyEdmyd--cXlrqyQ" name="id">
-      <type xmi:type="uml:PrimitiveType" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_IXlH8a86EdieaYgxtVWN8Q"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="_T8lzgIOyEdmyd--cXlrqyQ" name="priority">
-      <type xmi:type="uml:PrimitiveType" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_IXlH8a86EdieaYgxtVWN8Q"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="_sTa0cIOyEdmyd--cXlrqyQ" name="name">
-      <type xmi:type="uml:PrimitiveType" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_IXlH8a86EdieaYgxtVWN8Q"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="_BP7DkIOzEdmyd--cXlrqyQ" name="enabledByDefault">
-      <type xmi:type="uml:PrimitiveType" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_IXfBUK86EdieaYgxtVWN8Q"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="_LqEuQIOzEdmyd--cXlrqyQ" name="icon">
-      <type xmi:type="uml:PrimitiveType" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_IXlH8a86EdieaYgxtVWN8Q"/>
-    </ownedAttribute>
-    <ownedOperation xmi:id="_u47eIIOyEdmyd--cXlrqyQ" name="Operation1"/>
-  </ownedMember>
-  <ownedMember xmi:type="uml:Usage" xmi:id="_AbfLYIOyEdmyd--cXlrqyQ" client="_4TXNsIOxEdmyd--cXlrqyQ" supplier="_b6MYsIOxEdmyd--cXlrqyQ"/>
-  <ownedMember xmi:type="uml:Usage" xmi:id="_DeUDMIOyEdmyd--cXlrqyQ" client="_4TXNsIOxEdmyd--cXlrqyQ" supplier="_9330kIOwEdmyd--cXlrqyQ"/>
-  <ownedMember xmi:type="uml:Usage" xmi:id="_JsSBUIOyEdmyd--cXlrqyQ" client="_4TXNsIOxEdmyd--cXlrqyQ" supplier="_jhjysIOxEdmyd--cXlrqyQ"/>
-  <ownedMember xmi:type="uml:Usage" xmi:id="_Lc-i4IOyEdmyd--cXlrqyQ" client="_4TXNsIOxEdmyd--cXlrqyQ" supplier="_mol1EIOxEdmyd--cXlrqyQ"/>
-  <ownedMember xmi:type="uml:Component" xmi:id="_2NsvcIO2Edmyd--cXlrqyQ" name="Logical Enablement Clause"/>
-  <ownedMember xmi:type="uml:Usage" xmi:id="_ITURAIO3Edmyd--cXlrqyQ" client="_4TXNsIOxEdmyd--cXlrqyQ" supplier="_2NsvcIO2Edmyd--cXlrqyQ"/>
-</uml:Model>
diff --git a/bundles/org.eclipse.ui.navigator/plugin.properties b/bundles/org.eclipse.ui.navigator/plugin.properties
deleted file mode 100644
index cafe375..0000000
--- a/bundles/org.eclipse.ui.navigator/plugin.properties
+++ /dev/null
@@ -1,20 +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=Common Navigator View
-Plugin.providerName=Eclipse.org
-
-
-Link_Helper= Link Helper
-ExtPoint_navigatorViewer = Navigator Viewer Configuration Extension Port
-ExtPoint_navigatorContent = Navigator Content Extension Point
-ExtPoint_Saveables_Provider_Factory = Saveables Provider Factory Extension Point
-
-
diff --git a/bundles/org.eclipse.ui.navigator/plugin.xml b/bundles/org.eclipse.ui.navigator/plugin.xml
deleted file mode 100644
index af55b54..0000000
--- a/bundles/org.eclipse.ui.navigator/plugin.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension-point id="navigatorContent" name="%ExtPoint_navigatorContent" schema="schema/navigatorContent.exsd"/>
-   <extension-point id="viewer" name="%ExtPoint_navigatorViewer" schema="schema/viewer.exsd"/>
-   <extension-point id="linkHelper" name="%Link_Helper" schema="schema/linkHelper.exsd"/>
- 
-   <extension
-         point="org.eclipse.ui.dropActions">
-      <action
-            class="org.eclipse.ui.internal.navigator.dnd.NavigatorPluginDropAction"
-            id="org.eclipse.ui.navigator.PluginDropAction">
-      </action>
-   </extension> 
-   
-</plugin>
diff --git a/bundles/org.eclipse.ui.navigator/schema/linkHelper.exsd b/bundles/org.eclipse.ui.navigator/schema/linkHelper.exsd
deleted file mode 100644
index a179a56..0000000
--- a/bundles/org.eclipse.ui.navigator/schema/linkHelper.exsd
+++ /dev/null
@@ -1,182 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.navigator">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.navigator" id="linkHelper" name="Navigator Link Helper"/>
-      </appInfo>
-      <documentation>
-         Provides a hook for clients that wish to extend the &quot;Link with Editor&quot; capability of a Common Navigator.
-      </documentation>
-   </annotation>
-
-   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="linkHelper"/>
-         </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>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="linkHelper">
-      <complexType>
-         <sequence>
-            <element ref="editorInputEnablement"/>
-            <element ref="selectionEnablement" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Implements &lt;code&gt;org.eclipse.ui.navigator.ILinkHelper&lt;/code&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.navigator.ILinkHelper"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A unique id for this &lt;b&gt;linkHelper&lt;/b&gt; extension.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="editorInputEnablement">
-      <annotation>
-         <documentation>
-            An Eclipse Core Expression that describes when this helper can provide a selection from an editor input. 
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="not"/>
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="instanceof"/>
-            <element ref="test"/>
-            <element ref="systemTest"/>
-            <element ref="equals"/>
-            <element ref="count"/>
-            <element ref="with"/>
-            <element ref="resolve"/>
-            <element ref="adapt"/>
-            <element ref="iterate"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="selectionEnablement">
-      <annotation>
-         <documentation>
-            An Eclipse Core Expression that describes when this extension can provide an IEditorInput for a given selection.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="not"/>
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="instanceof"/>
-            <element ref="test"/>
-            <element ref="systemTest"/>
-            <element ref="equals"/>
-            <element ref="count"/>
-            <element ref="with"/>
-            <element ref="resolve"/>
-            <element ref="adapt"/>
-            <element ref="iterate"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.2
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-&lt;pre&gt;
-    &lt;extension
-          point=&quot;org.eclipse.ui.navigator.linkHelper&quot;&gt;
-       &lt;linkHelper
-             class=&quot;org.eclipse.ui.internal.navigator.resources.workbench.ResourceLinkHelper&quot;
-             id=&quot;org.eclipse.ui.navigator.resources.linkHelper&quot;&gt;
-          &lt;selectionEnablement&gt;
-             &lt;instanceof value=&quot;org.eclipse.core.resources.IFile&quot;/&gt;
-          &lt;/selectionEnablement&gt;
-          &lt;editorInputEnablement&gt;
-             &lt;instanceof value=&quot;org.eclipse.ui.IFileEditorInput&quot;/&gt;
-          &lt;/editorInputEnablement&gt;
-       &lt;/linkHelper&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) 2002, 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.navigator/schema/navigatorContent.exsd b/bundles/org.eclipse.ui.navigator/schema/navigatorContent.exsd
deleted file mode 100644
index 4a7ad99..0000000
--- a/bundles/org.eclipse.ui.navigator/schema/navigatorContent.exsd
+++ /dev/null
@@ -1,882 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.navigator">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.navigator" id="navigatorContent" name="navigatorContent"/>
-      </appInfo>
-      <documentation>
-         A content extension provides a content and label provider 
-that can be used by a navigator content service. The
-&lt;b&gt;navigatorContent&lt;/b&gt; extension defines the specific classes 
-for the content provider, label provider, and action provider
-in addition to the types of elements the extension knows about. 
-&lt;p&gt;
-The &lt;b&gt;triggerPoints&lt;/b&gt; expression describes the elements that will
-cause this extension to be invoked for either children or for
-labels. The &lt;b&gt;possibleChildren&lt;/b&gt; expression describes the elements 
-that the extension may be able to provide a parent for. Clients
-should describe all elements that could be set as the selection
-to ensure that the link with editor support can properly 
-expand to the right node.
-&lt;p&gt;
-      </documentation>
-   </annotation>
-
-   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <choice>
-               <element ref="navigatorContent" minOccurs="0" maxOccurs="1"/>
-               <element ref="actionProvider" minOccurs="0" maxOccurs="1"/>
-               <element ref="commonWizard" minOccurs="0" maxOccurs="1"/>
-               <element ref="commonFilter" minOccurs="0" maxOccurs="1"/>
-            </choice>
-         </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>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="navigatorContent">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-         <documentation>
-            A navigator content extension defines a content provider and label provider that can be used to provide children whenever an element matches the &lt;b&gt;triggerPoints&lt;/b&gt; expression and also to provide a parent whenever an element matches the &lt;b&gt;possibleChildren&lt;/b&gt; expression. 
-&lt;br&gt;&lt;br&gt;
-Optionally, clients may also provide an action provider which can provide menu contributions and action bar contributions when an element is selected that the extension contributed, or that matches the &lt;b&gt;triggerPoints&lt;/b&gt; expression. Clients may also choose to contribute a sorter to sort elements that are contributed by the extension.
-&lt;br&gt;&lt;br&gt;
-When an extension is deactivated by the user, the content and label providers are disposed. However, because many of the Image resources might be in use by other extensions in the Common Navigator Viewer, clients should not dispose of Image Resources until the viewer itself is disposed.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <choice>
-               <element ref="enablement"/>
-               <sequence>
-                  <element ref="triggerPoints"/>
-                  <element ref="possibleChildren"/>
-               </sequence>
-            </choice>
-            <element ref="actionProvider" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="commonSorter" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="override" minOccurs="0" maxOccurs="1"/>
-            <element ref="dropAssistant" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="commonWizard" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A unique ID to identify this extension. Used for extension activation and by other extensions that would like to extend the defined extension (e.g. add another &lt;code&gt;org.eclipse.ui.navigator.CommonActionProvider&lt;/code&gt;)
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Specify a display name for the Content Extension. The display name is used in the activation dialog to allow clients to turn an extension on or off.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="priority">
-            <annotation>
-               <documentation>
-                  Indicates the relative priority of this extension to other extensions. Used by the Common Navigator to handle sorting and organization of the contributed content from this extension in relation to content from other extensions. Defaults to &quot;normal&quot;
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="lowest">
-                  </enumeration>
-                  <enumeration value="lower">
-                  </enumeration>
-                  <enumeration value="low">
-                  </enumeration>
-                  <enumeration value="normal">
-                  </enumeration>
-                  <enumeration value="high">
-                  </enumeration>
-                  <enumeration value="higher">
-                  </enumeration>
-                  <enumeration value="highest">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="contentProvider" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Supplies the name of a class which implements &lt;code&gt;org.eclipse.jface.viewers.ITreeContentProvider&lt;/code&gt; or &lt;code&gt;org.eclipse.ui.navigator.ICommonContentProvider&lt;/code&gt;.
-&lt;br&gt;&lt;br&gt;
-The content provider will be consulted when addeding children to the tree. Use the &lt;b&gt;enablement&lt;/b&gt; or &lt;b&gt;triggerPoints&lt;/b&gt; clause to indicate what kinds of content should trigger a request to your content provider.
-&lt;br&gt;&lt;br&gt; 
-Elements contributed from the content provider are not guaranteed to appear in the tree in the same order. Clients should take advantage of the sorting extension (&lt;b&gt;commonSorter&lt;/b&gt;) to ensure proper ordering of their elements.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.ITreeContentProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="icon" type="string">
-            <annotation>
-               <documentation>
-                  A plugin-relative path to an icon for use when displaying the metadata about the content extension to the user.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="activeByDefault" type="boolean">
-            <annotation>
-               <documentation>
-                  Indicates whether the current extension will be &lt;i&gt;active&lt;/i&gt; by default. Each content extension may be turned on or off by the user. The &lt;i&gt;active&lt;/i&gt; state is differentiated from the &lt;i&gt;visible&lt;/i&gt; state. See &lt;b&gt;org.eclipse.ui.navigator.viewer/viewerContentBinding&lt;/b&gt; for more information on &lt;i&gt;visibility&lt;/i&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="providesSaveables" type="boolean">
-            <annotation>
-               <documentation>
-                  Indicates whether this extension provides saveables. The default is false. If set to true, the content provider must adapt to SaveablesProvider.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="labelProvider" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Supplies the name of a class which implements &lt;code&gt;org.eclipse.jface.viewers.ILabelProvider&lt;/code&gt; or for more advanced functionality, the &lt;code&gt;org.eclipse.ui.navigator.ICommonLabelProvider&lt;/code&gt;.
-&lt;br&gt;&lt;br&gt;
-Clients may also implement &lt;code&gt;org.eclipse.ui.navigator.IDescriptionProvider&lt;/code&gt; in order to add text to the status bar at the bottom of the Eclipse workbench based on the selection in the viewer.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.ILabelProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="enablement">
-      <annotation>
-         <documentation>
-            The enablement expression allows clients to specify the same expression for both &lt;b&gt;triggerPoints&lt;/b&gt; and &lt;b&gt;possibleChildren&lt;/b&gt;.
-&lt;br&gt;&lt;br&gt;
-In the case of &lt;b&gt;actionProvider&lt;/b&gt;, clients must define an expression that will indicate to the framework when their &lt;code&gt;org.eclipse.ui.navigator.CommonActionProvider&lt;/code&gt; should be invoked. Because of contributions to the IActionBars, clients must be invoked whenever an object they are interested in is selected. Therefore, clients should use discretion in deciding when their extension should be enabled.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="not"/>
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="instanceof"/>
-            <element ref="test"/>
-            <element ref="systemTest"/>
-            <element ref="equals"/>
-            <element ref="count"/>
-            <element ref="with"/>
-            <element ref="resolve"/>
-            <element ref="adapt"/>
-            <element ref="iterate"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="triggerPoints">
-      <annotation>
-         <documentation>
-            The &lt;b&gt;triggerPoints&lt;/b&gt; expression defines the nodes in a tree that should cause this extension to be invoked for children.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="not"/>
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="instanceof"/>
-            <element ref="test"/>
-            <element ref="systemTest"/>
-            <element ref="equals"/>
-            <element ref="count"/>
-            <element ref="with"/>
-            <element ref="resolve"/>
-            <element ref="adapt"/>
-            <element ref="iterate"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="possibleChildren">
-      <annotation>
-         <documentation>
-            The &lt;b&gt;possibleChildren&lt;/b&gt; expression defines the nodes in a tree that could be contributed by this extension. Clients should describes when this content extension could provide a parent for elements that match the expression.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="not"/>
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="instanceof"/>
-            <element ref="test"/>
-            <element ref="systemTest"/>
-            <element ref="equals"/>
-            <element ref="count"/>
-            <element ref="with"/>
-            <element ref="resolve"/>
-            <element ref="adapt"/>
-            <element ref="iterate"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="actionProvider">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="class"/>
-         </appInfo>
-         <documentation>
-            Supplies the name of a class that implements &lt;code&gt;org.eclipse.ui.navigator.CommonActionProvider&lt;/code&gt;. The action provider has an opportunity to contribute to the context menu and the retargetable actions defined in the IActionBars for the view that holds the navigator. Clients may also contribute directly to the view menu through the IActionBars view menu.
-&lt;br&gt;&lt;br&gt;
-A top level &lt;b&gt;actionProvider&lt;/b&gt; is &lt;i&gt;visible&lt;/i&gt; to an abstract viewer if there is a &lt;b&gt;viewerActionBinding&lt;/b&gt; for that &lt;b&gt;actionProvider&lt;/b&gt;. For actionProviders that are nested under a &lt;b&gt;navigatorContent&lt;/b&gt; element, the visibility will be controlled by the id of the navigatorContent extension id. Child action providers will automatically
-be picked up by matching &lt;b&gt;viewerContentBinding&lt;/b&gt;s. See &lt;b&gt;org.eclipse.ui.navigator.viewer&lt;/b&gt; for more information on visibility bindings.
-&lt;br&gt;&lt;br&gt;
-Clients may provide &lt;b&gt;actionProvider&lt;/b&gt;(s) under the root &lt;b&gt;extention&lt;/b&gt; element (peer to other &lt;b&gt;navigatorContent&lt;/b&gt;) in order to better control their enablement and viewer binding (see &lt;b&gt;veiwerActionBinding&lt;/b&gt;).
-&lt;br&gt;&lt;br&gt;
-For root &lt;b&gt;actionProviders&lt;/b&gt; with no id, the id defaults to &quot;org.eclipse.ui.navigator.actionProvider.X&quot;. For these &lt;b&gt;actionProvider&lt;/b&gt;s to be given the opportunity to contribute the menus or action bars of a viewer, a &lt;b&gt;viewerActionBinding&lt;/b&gt; must be defined (as part of the &lt;b&gt;org.eclipse.ui.navigator.viewer extension point&lt;/b&gt;) which declares a binding between the specific viewer and the default id (&quot;org.eclipse.ui.navigator.actionProvider.*&quot;). See the documentation for &lt;b&gt;viewerActionBinding&lt;/b&gt; under the schema documentation of &lt;b&gt;org.eclipse.ui.navigator.viewer&lt;/b&gt; for more information.
-&lt;br&gt;&lt;br&gt;
-Any items contributed to the toolbar or the view menu should be removed with the &lt;b&gt;actionProviders&lt;/b&gt; is disposed.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.navigator.CommonActionProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  Clients may optionally define an id to use for filtering purposes (either through activities or &lt;b&gt;viewerContentBinding&lt;/b&gt;s).
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="dependsOn" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the ID of an action provider that configures some menu or submenu that must be prepared before this action provider is applied. 
-&lt;br&gt;&lt;br&gt;
-Specifying a dependency on another action provider does not guarantee that this action provider will be invoked whereever the required action provider is invoked. The downstream action provider must be bound to the particular viewer to be invoked.  
-&lt;br&gt;&lt;br&gt;
-If the required action provider is disabled or unbound to the current viewer, then this action provider will not be applied. If a cycle exists, the framework will try to continue, but there are no guarantees as to what menu items or action bar contributions will be available.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="overrides" type="string">
-            <annotation>
-               <documentation>
-                  Specify the id of an &lt;b&gt;actionProvider&lt;/b&gt; which is defined by an upstream contributor that must be overridden. The upstream &lt;b&gt;actionProvider&lt;/b&gt; will not be given an opportunity to contribute menu options or retargetable actions when this &lt;b&gt;actionProvider&lt;/b&gt; is &lt;i&gt;visible&lt;/i&gt; and &lt;i&gt;enabled&lt;/i&gt;.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="commonWizard">
-      <annotation>
-         <documentation>
-            Defines a binding between an existing Eclipse New/Import/Export Wizard and a given set of items. Each valid binding determines which menu items will appear in the submenus for New/Import/Export in the context menu of a Common Navigator Viewer. Since Eclipse 3.2.1, the wizard menu items respect Eclipse Capabilities (see &lt;b&gt;org.eclipse.ui.activites&lt;/b&gt; for more information). 
-&lt;br&gt;&lt;br&gt;
-All of the following conditions must be met for a &lt;b&gt;commonWizard&lt;/b&gt; item to appear in the menu: (1) The &lt;b&gt;commonWizard&lt;/b&gt; is NOT filtered by an Eclipse Capability, (2) The identifier of the &lt;b&gt;commonWizard&lt;/b&gt; is NOT null, (3) The associated &lt;b&gt;navigatorContent&lt;/b&gt; extension is &lt;i&gt;visible&lt;/i&gt; for the current content service (the content service used to initialize the &lt;code&gt;NavigatorActionService&lt;/code&gt; or supplied to &lt;code&gt;WizardActionGroup&lt;/code&gt;), (4) The associated &lt;b&gt;navigatorContent&lt;/b&gt; extension is &lt;i&gt;active&lt;/i&gt; for the current content service, and (5) The &lt;b&gt;enablement&lt;/b&gt; of the &lt;b&gt;commonWizard&lt;/b&gt; returns true for the current selection that was supplied to the context menu.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="enablement"/>
-         </sequence>
-         <attribute name="type" use="required">
-            <annotation>
-               <documentation>
-                  The type atttribute should be the value of the root category of the expected wizard. The possible values include &quot;import&quot; for &lt;b&gt;org.eclipse.ui.importWizards&lt;/b&gt;, &quot;export&quot; &lt;b&gt;org.eclipse.ui.exportWizards&lt;/b&gt;, and &quot;new&quot; for &lt;b&gt;org.eclipse.ui.newWizards&lt;/b&gt;
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="import">
-                  </enumeration>
-                  <enumeration value="export">
-                  </enumeration>
-                  <enumeration value="new">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="wizardId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the desired wizard shortcut as defined by &lt;b&gt;org.eclipse.ui.importWizards&lt;/b&gt;, &lt;b&gt;org.eclipse.ui.exportWizards&lt;/b&gt;, or &lt;b&gt;org.eclipse.ui.newWizards&lt;/b&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="menuGroupId" type="string">
-            <annotation>
-               <documentation>
-                  Indicates a user-defined logical grouping id. &lt;b&gt;commonWizard&lt;/b&gt; extensions with matching &lt;i&gt;menuGroupId&lt;/i&gt;s will be indicated as related items when rendered as menu options to endusers. How the grouping will be done is not guaranteed. In particular, clients should never anticipate a menu separator or group marker of the given name to be present in the menu.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="associatedExtensionId" type="string">
-            <annotation>
-               <documentation>
-                  A &lt;b&gt;commonWizard&lt;/b&gt; may be defined as the nested child of a &lt;b&gt;navigatorContent&lt;/b&gt; extension point, in which case the &lt;i&gt;associatedExtensionId&lt;/i&gt; is automatically set to the id of its enclosing &lt;b&gt;naviagatorContent&lt;/b&gt; element. However, when specified as a top-level extension, a &lt;b&gt;commonWizard&lt;/b&gt; may indicate an content extension that it should be associated with explicitly. When a &lt;b&gt;commonWizard&lt;/b&gt; is associated with a content extension, it will inherit the &lt;i&gt;visibility&lt;/i&gt; and the &lt;i&gt;activation&lt;/i&gt; of that content extension. It will not inherit the &lt;i&gt;enablement&lt;/i&gt;; so you must specify an &lt;b&gt;enablement&lt;/b&gt; for the wizard menu item to appear.
-&lt;br&gt;&lt;br&gt;
-That is, if the content extension is bound to a Common Navigator (see &lt;b&gt;org.eclipse.ui.navigator.viewer/viewerContentBinding&lt;/b&gt;) and the user has the content extension &lt;i&gt;activated&lt;/i&gt; either by default or through the &quot;Available Extensions&quot; dialog, then the &lt;b&gt;commonWizard&lt;/b&gt; menu option would appear. However, when the user &lt;i&gt;deactivates&lt;/i&gt; that content extension, the &lt;b&gt;commonWizard&lt;/b&gt; menu option would no longer be shown in the menu.
-&lt;br&gt;&lt;br&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="commonFilter">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-         <documentation>
-            Defines a filter that can big associated with a particular Common Viewer. Common filters are bound to a viewer like content extensions by using &lt;b&gt;org.eclipse.ui.navigator.viewer/viewerContentBinding&lt;/b&gt;.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="filterExpression" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A unique identifier that will be used for management of this &lt;b&gt;filterExpression&lt;/b&gt;. The id will be used by the &lt;b&gt;org.eclipse.ui.navigator.viewer/viewerContentBinding&lt;/b&gt; to bind this filter to a matching viewer.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A translateable name that will be used to refer to this particular filter in dialogs presented to the user.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  A translatable description of what this filter is designed to hide from the view.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  Clients may choose to define an explicit ViewerFilter subclass via the &quot;class&quot; attribute. Alternatively, clients may choose to nest a &lt;b&gt;filterExpression&lt;/b&gt; element to describe what the filter should hide. Clients may use either &lt;b&gt;filterExpression&lt;/b&gt; or the &quot;class&quot; attribute, but not both.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.ViewerFilter"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="activeByDefault" type="boolean">
-            <annotation>
-               <documentation>
-                  A value of true indicates the filter should be &quot;on&quot; by default. The user may customize whether the filter is on or off regardless of the value of this attribute. This attribute defines whether the filter is &quot;on&quot; the first time the view is brought up.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="filterExpression">
-      <annotation>
-         <documentation>
-            An optional Eclipse Core Expression that defines what the filter should hide from a particular view. 
-&lt;br&gt;&lt;br&gt;
-For instance, clients may decide to hide all resources that have a particular pattern in their name (like &quot;*.acme&quot;). When the filter is active (turned on by default or by the user), then all resources that end in &quot;acme&quot; would be hidden from the view of the user. 
-&lt;br&gt;&lt;br&gt;
-Clients may use either &lt;b&gt;filterExpression&lt;/b&gt; or the &quot;class&quot; attribute, but not both.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="not"/>
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="instanceof"/>
-            <element ref="test"/>
-            <element ref="systemTest"/>
-            <element ref="equals"/>
-            <element ref="count"/>
-            <element ref="with"/>
-            <element ref="resolve"/>
-            <element ref="adapt"/>
-            <element ref="iterate"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="commonSorter">
-      <annotation>
-         <documentation>
-            A &lt;b&gt;commonSorter&lt;/b&gt; declares an subclass of &lt;code&gt;org.eclipse.jface.viewers.ViewerSorter&lt;/code&gt; which is used to sort children in the tree. The nested &lt;b&gt;parentExpression&lt;/b&gt; describes when the &lt;b&gt;commonSorter&lt;/b&gt; should be used. If an element matches the &lt;b&gt;parentExpression&lt;/b&gt;, then its children will be sorted by this &lt;b&gt;commonSorter&lt;/b&gt;.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="parentExpression"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id is used to identify the sorter when debugging a viewer.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A subclass of &lt;code&gt;org.eclipse.jface.viewers.ViewerSorter&lt;/code&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.ViewerSorter"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="parentExpression">
-      <annotation>
-         <documentation>
-            A &lt;b&gt;parentExpression&lt;/b&gt; is used by &lt;b&gt;commonSorter&lt;/b&gt; to identify when it is applicable. If the &lt;b&gt;parentExpression&lt;/b&gt; for a &lt;b&gt;commonSorter&lt;/b&gt; matches a given element, then that &lt;b&gt;commonSorter&lt;/b&gt; will be used to sort the children of that element (as returned by the content provider of the content service).
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="not"/>
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="instanceof"/>
-            <element ref="test"/>
-            <element ref="systemTest"/>
-            <element ref="equals"/>
-            <element ref="count"/>
-            <element ref="with"/>
-            <element ref="resolve"/>
-            <element ref="adapt"/>
-            <element ref="iterate"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="override">
-      <annotation>
-         <documentation>
-            When the &lt;b&gt;triggerPoints&lt;/b&gt; expression of the suppressed extension and the declared extension are both &lt;i&gt;enabled&lt;/i&gt; on a given element, this extension will be invoked, but its suppressed extension will not. Clients that specify an &lt;b&gt;override&lt;/b&gt; element must also provide a content provider which implements &lt;code&gt;org.eclipse.ui.navigator.IPipelinedTreeContentProvider&lt;/code&gt;, which provides methods to intercept requests for children, parents, and direct updates to the viewer.
-&lt;br&gt;&lt;br&gt;
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="suppressedExtensionId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of an extension should be suppressed when this extension is &lt;i&gt;visible&lt;/i&gt; and &lt;i&gt;active&lt;/i&gt;.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="policy" use="default" value="InvokeAlwaysRegardlessOfSuppressedExt">
-            <annotation>
-               <documentation>
-                  The policy declares how the extension should be invoked by the framework. If the policy is left unspecified, then it defaults to &lt;i&gt;InvokeAlwaysRegardlessOfSuppressedExt&lt;/i&gt;. The available policies are as follows:&lt;br&gt;
-&lt;ul&gt;
-  &lt;li&gt;&lt;i&gt;InvokeOnlyIfSuppressedExtAlsoVisibleAndActive&lt;/i&gt;: This extension is expressly an overriding extension; unless its suppressed extension is &lt;i&gt;visible&lt;/i&gt; and &lt;i&gt;active&lt;/i&gt; to the viewer, this extension should not be given opportunities to contribute. When using this policy, this extension will only be invoked when the &lt;b&gt;triggerPoints&lt;/b&gt; expression of its suppressed extension and the &lt;b&gt;triggerPoints&lt;/b&gt; expression of this extension are &lt;i&gt;enabled&lt;/i&gt; for a given element. Therefore, the &lt;b&gt;triggerPoints&lt;/b&gt; and &lt;b&gt;possibleChildren&lt;/b&gt; expressions of this extension should be a subset of the &lt;b&gt;triggerPoints&lt;/b&gt; and &lt;b&gt;possibleChildren&lt;/b&gt; expressions respectively of its suppressed extension.&lt;/li&gt;
-  &lt;li&gt;&lt;i&gt;InvokeAlwaysRegardlessOfSuppressedExt&lt;/i&gt; (default): Indicates that this extension is a first class extension; it should be given opportunities to contribute content regardless if its &lt;i&gt;suppressedExtensionId&lt;/i&gt; is &lt;i&gt;visible&lt;/i&gt; or &lt;i&gt;active&lt;/i&gt; to the viewer. Thus, the extension is a first-class extension and an overriding extension. It will be invoked whenever its &lt;b&gt;triggerPoints&lt;/b&gt; expression is matched. When the suppressed extension and its &lt;b&gt;triggerPoints&lt;/b&gt; extension is matched, it will be invoked with the contributed items from its suppressed extension; the suppressed extension will not be given an opportunity to directly contribute.&lt;/li&gt;
-&lt;/ul&gt;
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="InvokeOnlyIfSuppressedExtAlsoVisibleAndActive">
-                  </enumeration>
-                  <enumeration value="InvokeAlwaysRegardlessOfSuppressedExt">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="dropAssistant">
-      <annotation>
-         <documentation>
-            Provides a subclass of &lt;code&gt;org.eclipse.ui.navigator.CommonDropAdapterAssistant&lt;/code&gt; which can provide programatic validation for a drop operation, request additional transfer types, and handle the drop operation. 
-&lt;br&gt;&lt;br&gt;
-A &lt;b&gt;dropAssistant&lt;/b&gt; will be invoked whenever elements that are dragged match the &lt;b&gt;possibleChildren&lt;/b&gt; expression of the containing &lt;b&gt;navigatorContent&lt;/b&gt; extension &lt;i&gt;and&lt;/i&gt; the drop target of the operation is described by the &lt;b&gt;possibleDropTargets&lt;/b&gt; expression of the &lt;b&gt;dropAssistant&lt;/b&gt; element.
-&lt;br&gt;&lt;br&gt;
-An extension may have multiple drop adapters with mutually exclusive &lt;b&gt;possibleDropTargets&lt;/b&gt; expressions. The first drop adapter found that matches the given drop target and returns an OK status for &lt;code&gt;CommonDropAdapterAssistant.validateDrop(...)&lt;/code&gt; will be given an opportunity to handle the drop. 
-&lt;br&gt;&lt;br&gt;
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="possibleDropTargets"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id is used to refer to the drop assistant internally. The id should be unique.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  An implementation of &lt;code&gt;org.eclipse.ui.navigator.CommonDropAdapterAssistant&lt;/code&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.navigator.CommonDropAdapterAssistant"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="possibleDropTargets">
-      <annotation>
-         <documentation>
-            Describe the possible drop targets that a particular &lt;b&gt;dropAssistant&lt;/b&gt; can handle.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="not"/>
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="instanceof"/>
-            <element ref="test"/>
-            <element ref="systemTest"/>
-            <element ref="equals"/>
-            <element ref="count"/>
-            <element ref="with"/>
-            <element ref="resolve"/>
-            <element ref="adapt"/>
-            <element ref="iterate"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.2
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;br&gt;
-&lt;h2&gt;Adding content&lt;/h2&gt;
-&lt;p&gt;
-The following example describes a content extension that 
-provides resource content. The &lt;b&gt;triggerPoints&lt;/b&gt; expression
-determines when this extension is initially invoked. If 
-a &lt;b&gt;viewerContentBinding&lt;/b&gt; matches this extension with
-the &quot;isRoot&quot; attribute set to true, then the extension
-will be used, regardless of whether the root element
-matches the &lt;b&gt;triggerPoints&lt;/b&gt; expression.   
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension  
-  point=&quot;org.eclipse.ui.navigator.navigatorContent&quot;&gt;
- &lt;navigatorContent
-            name=&quot;%resource.extension.name&quot;
-            priority=&quot;low&quot;
-            icon=&quot;icons/full/eview16/resource_persp.gif&quot;
-            activeByDefault=&quot;true&quot;
-               contentProvider=&quot;org.eclipse.ui.navigator.resources.internal.workbench.ResourceExtensionContentProvider&quot;
-               labelProvider=&quot;org.eclipse.ui.navigator.resources.internal.workbench.ResourceExtensionLabelProvider&quot;   
-               sorter=&quot;org.eclipse.ui.navigator.resources.internal.workbench.ResourceSorter&quot;
-            id=&quot;org.eclipse.ui.navigator.resourceContent&quot;&gt;         
-  &lt;triggerPoints&gt;
-           &lt;or&gt;         
-              &lt;instanceof 
-                    value=&quot;org.eclipse.core.resources.IWorkspaceRoot&quot; /&gt; 
-              &lt;instanceof
-                    value=&quot;org.eclipse.core.resources.IProject&quot; /&gt;  
-              &lt;instanceof  
-                     value=&quot;org.eclipse.core.resources.IFolder&quot; /&gt; 
-           &lt;/or&gt;
-  &lt;/triggerPoints&gt;
-        &lt;possibleChildren&gt;
-           &lt;or&gt;         
-              &lt;instanceof 
-                    value=&quot;org.eclipse.core.resources.IWorkspaceRoot&quot; /&gt; 
-              &lt;instanceof
-                    value=&quot;org.eclipse.core.resources.IProject&quot; /&gt; 
-              &lt;instanceof 
-                     value=&quot;org.eclipse.core.resources.IResource&quot; /&gt; 
-              &lt;instanceof  
-                     value=&quot;org.eclipse.core.resources.IFolder&quot; /&gt;
-              &lt;instanceof 
-                     value=&quot;org.eclipse.core.resources.IFile&quot; /&gt; 
-         &lt;/or&gt;
-     &lt;/possibleChildren&gt;
- &lt;/navigatorContent&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-&lt;h2&gt;Adding Actions&lt;/h2&gt;
-&lt;p&gt;
-Clients may use object or viewer contributions (see &lt;b&gt;org.eclipse.ui.popupMenus&lt;/b&gt;) to provide
-actions for their view. Sometimes, clients require a greater degree of flexibility than either
-of these approaches allow, and therefore the Common Navigator framework supports adding 
-action providers. &quot;Action providers&quot; subclass &lt;code&gt;org.eclipse.ui.actions.ActionGroup&lt;/code&gt;
-and have opportunities to fill the action bars and the menus based on different events 
-(selection and right click respectively).
-&lt;/p&gt;
-&lt;p&gt;
-Clients may either associate one or more action providers with a particular
-content extension, or declare the action providers as top level contributions, unassociated
-with any particular content extension. Top level action provideers must be associated with
-a particular instance of vierwer using the &lt;b&gt;org.eclipse.ui.navigator.viewer/viewerActionBinding&lt;/b&gt;
-extension point. Nested action providers are automatically bound to a viewer based on whether
-their containing content extension is also bound to the viewer 
-(see &lt;b&gt;org.eclipse.ui.navigator/viewerContentBinding&lt;/b&gt;). 
-&lt;p&gt;
-&lt;p&gt;
-The following example demonstrates both approaches. The &quot;TestNestedActionProvider&quot; will be 
-given an opporunity to contribute to the menu and &lt;code&gt;org.eclipse.ui.IActionBars&lt;/code&gt; only
-when the &quot;org.eclipse.ui.tests.navigator.testContent&quot; extension is &lt;i&gt;visible&lt;/i&gt; and &lt;i&gt;active&lt;/i&gt;.
-If the user deactivates the test extension from the &quot;Available customizations&quot; dialog, then the
-nested action provider will no longer be given the opportunity to contribute. 
-&lt;pre&gt;
-&lt;extension  
-  point=&quot;org.eclipse.ui.navigator.navigatorContent&quot;&gt; 
-      &lt;navigatorContent 
-            id=&quot;org.eclipse.ui.tests.navigator.testContent&quot; 
-            name=&quot;%test.navigator.extension&quot;
-            contentProvider=&quot;org.eclipse.ui.tests.navigator.extension.TestContentProvider&quot;
-            labelProvider=&quot;org.eclipse.ui.tests.navigator.extension.TestLabelProvider&quot;
-            activeByDefault=&quot;true&quot;
-            priority=&quot;normal&quot;&gt;
-         &lt;triggerPoints&gt;
-            &lt;instanceof value=&quot;org.eclipse.core.resources.IProject&quot;/&gt;
-         &lt;/triggerPoints&gt; 
-        &lt;actionProvider
-            class=&quot;org.eclipse.ui.tests.navigator.extension.TestNestedActionProvider&quot;
-            id=&quot;org.eclipse.ui.tests.navigator.extension.TestNestedActionProvider&quot;&gt;
-          &lt;enablement&gt;
-             &lt;instanceof value=&quot;org.eclipse.core.resources.IResource&quot;/&gt;
-          &lt;/enablement&gt;
-        &lt;/actionProvider&gt;
-      &lt;/navigatorContent&gt;  
-        &lt;actionProvider
-             class=&quot;org.eclipse.ui.navigator.resources.internal.actions.NewActionProvider&quot;
-             id=&quot;org.eclipse.ui.navigator.resources.NewActions&quot;&gt; 
-         &lt;enablement&gt;
-    &lt;or&gt;
-     &lt;adapt type=&quot;org.eclipse.core.resources.IFile&quot; /&gt; 
-     &lt;adapt type=&quot;org.eclipse.core.resources.IFolder&quot; /&gt;
-            &lt;adapt type=&quot;org.eclipse.core.resources.IProject&quot; /&gt; 
-                 &lt;adapt type=&quot;org.eclipse.core.resources.IWorkspaceRoot&quot; /&gt; 
-    &lt;/or&gt;
-          &lt;/enablement&gt;
-  &lt;/actionProvider&gt;
-&lt;/extension&gt;  
-&lt;/pre&gt;
-&lt;/p&gt;
-
-
-&lt;p&gt;
-Clients may define filters using either subclasses of &lt;code&gt;org.eclipse.jface.viewers.ViewerFilter&lt;/code&gt; 
-or through Eclipse core expressions. The folowing example demonstrates both techniques. Clients may 
-only use of the two options. Extensions that specify both in error will result in only the core
-expression filter being respected. The name and description fields are translateable, and should externalized
-strings in real environments.
-
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension  
-  point=&quot;org.eclipse.ui.navigator.navigatorContent&quot;&gt;
- &lt;commonFilter
-      class=&quot;org.eclipse.ui.tests.navigator.extension.TestItemsThatEndIn3&quot;
-            description=&quot;Hide TestItem objects that end in the number &amp;quot;3&amp;quot;&quot;
-            id=&quot;org.eclipse.ui.tests.navigator.filters.TestItemsThatEndWith3&quot;
-            name=&quot;TestItems that end with &amp;quot;3&amp;quot;&quot;
-            activeByDefault=&quot;true&quot;
-            /&gt; 
- &lt;commonFilter
-            description=&quot;Hides all instances of Test Item&quot;
-            id=&quot;org.eclipse.ui.tests.navigator.filters.AllTestItems&quot;
-            name=&quot;A TestItem Exp Filter (should be sorted alphab..)&quot;&gt;
-         &lt;filterExpression&gt;
-            &lt;instanceof value=&quot;org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData&quot;/&gt;
-         &lt;/filterExpression&gt;
- &lt;/commonFilter&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-&lt;/p&gt;
-
-&lt;p&gt;
-A common sorter is determined for a set of children based on their parent. The sorter class
-must subclass the &lt;code&gt;org.eclipse.jface.viewers.ViewerSorter&lt;/code&gt;. 
-&lt;p&gt;
-&lt;pre&gt;
-
-&lt;extension  
-  point=&quot;org.eclipse.ui.navigator.navigatorContent&quot;&gt;
- &lt;commonSorter
-      class=&quot;org.eclipse.ui.navigator.resources.internal.workbench.ResourceExtensionSorter&quot;
-            id=&quot;org.eclipse.ui.navigator.resources.sorters.defaultSorter&quot;&gt;
-  &lt;parentExpression&gt;
-         &lt;or&gt;         
-       &lt;instanceof 
-           value=&quot;org.eclipse.core.resources.IWorkspaceRoot&quot; /&gt; 
-          &lt;instanceof
-           value=&quot;org.eclipse.core.resources.IProject&quot; /&gt; 
-          &lt;instanceof 
-           value=&quot;org.eclipse.core.resources.IResource&quot; /&gt; 
-          &lt;instanceof  
-           value=&quot;org.eclipse.core.resources.IFolder&quot; /&gt;
-          &lt;instanceof 
-           value=&quot;org.eclipse.core.resources.IFile&quot; /&gt; 
-   &lt;/or&gt;
-  &lt;/parentExpression&gt;
- &lt;/commonSorter&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-&lt;p&gt;
-The following example demonstrates how to add wizard shortcut actions for 
-&quot;New Folder&quot; and &quot;New File&quot;, which are enabled on the specific subclasses 
-of org.eclipse.core.resources.IResource. Clients may use whatever parts of 
-the &lt;b&gt;org.eclipse.core.expressions&lt;/b&gt; that are necessary to describe when the 
-menu options should be available. The wizardId specified below must correspond
-to one of the &lt;b&gt;org.eclipse.ui.xxxWizards&lt;/b&gt; extension points.
-&lt;/p&gt;
-&lt;p&gt;
-For clients building their own viewers or
-view parts, be sure to use &lt;code&gt;org.eclipse.ui.navigator.WizardActionGroup&lt;/code&gt;
-to correctly populate the menu. See that class for more documentation on
-using this feature.
-&lt;/p&gt;
-&lt;p&gt;
-&lt;pre&gt;
-
-&lt;extension  
-  point=&quot;org.eclipse.ui.navigator.navigatorContent&quot;&gt;
- &lt;commonWizard
-      type=&quot;new&quot;
-   wizardId=&quot;org.eclipse.ui.wizards.new.folder&quot;&gt;
-  &lt;enablement&gt;
-   &lt;or&gt;
-    &lt;adapt type=&quot;org.eclipse.core.resources.IFile&quot; /&gt; 
-    &lt;adapt type=&quot;org.eclipse.core.resources.IFolder&quot; /&gt;
-           &lt;adapt type=&quot;org.eclipse.core.resources.IProject&quot; /&gt; 
-             &lt;adapt type=&quot;org.eclipse.core.resources.IWorkspaceRoot&quot; /&gt; 
-   &lt;/or&gt;
-  &lt;/enablement&gt;
- &lt;/commonWizard&gt;   
- &lt;commonWizard
-            type=&quot;new&quot;
-            wizardId=&quot;org.eclipse.ui.wizards.new.file&quot;&gt;
-  &lt;enablement&gt;
-   &lt;or&gt;
-    &lt;adapt type=&quot;org.eclipse.core.resources.IFile&quot; /&gt; 
-    &lt;adapt type=&quot;org.eclipse.core.resources.IFolder&quot; /&gt;
-           &lt;adapt type=&quot;org.eclipse.core.resources.IProject&quot; /&gt; 
-             &lt;adapt type=&quot;org.eclipse.core.resources.IWorkspaceRoot&quot; /&gt; 
-   &lt;/or&gt;
-  &lt;/enablement&gt;
- &lt;/commonWizard&gt;
-&lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&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) 2002, 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.navigator/schema/viewer.exsd b/bundles/org.eclipse.ui.navigator/schema/viewer.exsd
deleted file mode 100644
index 67d3647..0000000
--- a/bundles/org.eclipse.ui.navigator/schema/viewer.exsd
+++ /dev/null
@@ -1,624 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.navigator">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.navigator" id="viewer" name="Common Viewer Configuration"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;
-The &lt;b&gt;viewer&lt;/b&gt; element defines the configuration for a common viewer. The extension
-may provide a custom popup menu id, override whether the viewer provides link with
-editor support, provides a filter dialog, and/or provides an &quot;Available customizations&quot; 
-dialog. In addition, nested configuration elements give full control over the structure
-and behavior of the popup context menu.
-&lt;p&gt;
-&lt;b&gt;viewerContentBinding&lt;/b&gt; binds defined content extensions (through the &lt;b&gt;navigatorContent&lt;/b&gt; 
-extension point) to viewers (defined through the 
-&lt;b&gt;org.eclipse.ui.views&lt;/b&gt; extension point). Any content 
-extension bound to a viewer is described as &lt;i&gt;visible&lt;/i&gt;. A
-content service (&lt;code&gt;org.eclipse.ui.navigator.INavigatorContentService&lt;/code&gt;)
-will not return any extensions which are not visible for
-its viewer id.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="viewer" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="viewerContentBinding" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="viewerActionBinding" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="dragAssistant"/>
-         </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="viewer">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="id"/>
-         </appInfo>
-         <documentation>
-            Provides basic configuration to establish the characteristics of a viewer. Clients must also define an &lt;b&gt;org.eclipse.ui.views&lt;/b&gt; extension to create the view part.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="popupMenu" minOccurs="0" maxOccurs="1"/>
-            <element ref="options" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="viewerId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id that matches the id provides in an &lt;b&gt;org.eclipse.ui.views&lt;/b&gt; extension.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="popupMenuId" type="string">
-            <annotation>
-               <documentation>
-                  The popupMenuId of the defined viewer. If not specified, the popupMenuId defaults to the id of the viewer. Clients may specify only the &quot;popupMenuId&quot; OR a &lt;b&gt;popupMenu&lt;/b&gt; element, but not both. The default list of insertion points is declared in the documentation for the &lt;b&gt;popupMenu&lt;/b&gt; element.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="viewerContentBinding">
-      <annotation>
-         <documentation>
-            Clients must define one or more &lt;b&gt;viwerContentBinding&lt;/b&gt; elements to describe which content extensions and common filters are &lt;i&gt;visible&lt;/i&gt; to the viewer. A content extension or common filter is &lt;i&gt;visible&lt;/i&gt; if the id of the content extension or common filter matches an &lt;b&gt;includes&lt;/b&gt; statement under a &lt;b&gt;viewerContentBinding&lt;/b&gt; and is not excluded by an &lt;b&gt;excludes&lt;/b&gt; statement. If a content extension or common filter is not &lt;i&gt;visible&lt;/i&gt; to a viewer, then the extension will never be asked for content by a content service for that viewer or be presented to the user in the available filters dialog. 
-&lt;br&gt;&lt;br&gt;
-Clients may define an &lt;b&gt;includes&lt;/b&gt; element to select which extensions are &lt;i&gt;visible&lt;/i&gt; to the viewer, and similarly an &lt;b&gt;excludes&lt;/b&gt; element for extensions that should not be made &lt;i&gt;visible&lt;/i&gt; to the viewer. Clients may further define the extensions that should be explicitly queried for root elements (through  ITreeContentProvider.getElements()) by the &quot;isRoot&quot; attribute. If one or more &lt;b&gt;contentExtension&lt;/b&gt; elements have &quot;isRoot&quot; set to true within the &lt;b&gt;includes&lt;/b&gt; statement, only those extensions will be queried for root elements. The &quot;isRoot&quot; attribute has no effect for exclusions.
-&lt;br&gt;&lt;br&gt;
-A viewer may have multiple viewerContentBindings defined, and their includes/excludes statements will be aggregated to produce the final behavior.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="includes" minOccurs="0" maxOccurs="1"/>
-            <element ref="excludes" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="viewerId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  There should be a corresponding &lt;b&gt;org.eclipse.ui.views&lt;/b&gt; extension that corresponds to this Id. That extension should specify an instance of &lt;code&gt;org.eclipse.ui.navigator.CommonNavigator&lt;/code&gt;.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="viewerActionBinding">
-      <annotation>
-         <documentation>
-            Clients must define which action providers are visible to their viewer. Clients may define an &lt;b&gt;includes&lt;/b&gt; element to select which extensions are visible to the viewer, and  similarly an &lt;b&gt;excludes&lt;/b&gt; element for extensions that should not be made visible to the viewer. 
-&lt;br&gt;&lt;br&gt;
-A viewer may have multiple &lt;b&gt;viewerActionBinding&lt;/b&gt;s defined, and their &lt;b&gt;includes&lt;/b&gt;/&lt;b&gt;excludes&lt;/b&gt; statements will be aggregated to produce the final behavior.
-&lt;br&gt;&lt;br&gt;
-For &lt;b&gt;actionProvider&lt;/b&gt; definitions which are not nested under a &lt;b&gt;navigatorContent&lt;/b&gt; definition, clients may specify a custom id. If clients do not specify an id, the id defaults to &quot;org.eclipse.ui.navigator.actionProvider.X&quot;. For clients that wish to pick up &lt;b&gt;actionProvider&lt;/b&gt;s with no specific id, clients must define a &lt;b&gt;viewerActionBinding&lt;/b&gt; for the default id. See the examples section for how this is done.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="includes" minOccurs="0" maxOccurs="1"/>
-            <element ref="excludes" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="viewerId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  There should be a corresponding &lt;b&gt;org.eclipse.ui.views&lt;/b&gt; extension that corresponds to this Id. That extension should specify an instance of &lt;code&gt;org.eclipse.ui.navigator.CommonNavigator&lt;/code&gt;.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="includes">
-      <annotation>
-         <documentation>
-            Define a set of patterns that should be included when looking for content extensions for the viewer that matches the &quot;viewerId&quot; attribute. When the includes and excludes statements intersect, the includes statement will be given precedence.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <sequence>
-               <element ref="contentExtension" minOccurs="1" maxOccurs="unbounded"/>
-            </sequence>
-            <sequence>
-               <element ref="actionExtension" minOccurs="1" maxOccurs="unbounded"/>
-            </sequence>
-         </choice>
-      </complexType>
-   </element>
-
-   <element name="excludes">
-      <annotation>
-         <documentation>
-            Define a set of patterns that should be excluded when looking for content extensions for the viewer that matches the &quot;viewerId&quot; attribute. When the includes and excludes statements intersect, the includes statement will be given precedence.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <sequence>
-               <element ref="contentExtension" minOccurs="1" maxOccurs="unbounded"/>
-            </sequence>
-            <sequence>
-               <element ref="actionExtension" minOccurs="1" maxOccurs="unbounded"/>
-            </sequence>
-         </choice>
-      </complexType>
-   </element>
-
-   <element name="contentExtension">
-      <annotation>
-         <documentation>
-            Indicates the id (or matching pattern) of a content extension that should be queried by &lt;code&gt;ITreeContentProvider.getElements()&lt;/code&gt; or &lt;code&gt;ITreeContentProvider.getChildren()&lt;/code&gt;
-for the root of the viewer or a common filter that should be available to the user in the &quot;Available Filters&quot; dialog.
-&lt;br&gt;&lt;br&gt;
-Clients may specify &quot;isRoot&quot; to select specific root extensions to override 
-the extensions which would otherwise be enabled for the viewer input element
-(based on the matching &lt;b&gt;triggerPoints&lt;/b&gt; expression for the viewer input element). 
-&lt;br&gt;&lt;br&gt;
-See the documentation for &lt;b&gt;viewerContentBinding&lt;/b&gt; for more information.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="pattern" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Content extensions may be selected exactly by using their content extension id. Clients may also use a regular expression pattern to select any content extensions that have ids that match the pattern. 
-&lt;p&gt;
-Patterns are regular expressions which match unique identifiers. Please see the Java(tm) Platform documentation for &lt;code&gt;java.util.regex.Pattern&lt;/code&gt; for further details.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="isRoot" type="boolean">
-            <annotation>
-               <documentation>
-                  A value of true indicates the content extension will provide root content, and override the default &lt;b&gt;triggerPoints&lt;/b&gt; expressions defined in the bound content extensions for a given viewer.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="actionExtension">
-      <annotation>
-         <documentation>
-            Indicates that the action extension that should be given opportunities
-to contribute to the context menu and action bars. 
-&lt;br&gt;&lt;br&gt;          
-See the documentation for &lt;b&gt;viewerActionBinding&lt;/b&gt; for more information.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="pattern" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Content extensions may be selected exactly by using their content extension id. Clients may also use a regular expression pattern to select any content extensions that have ids that match the pattern. 
-&lt;p&gt;
-Patterns are regular expressions which match unique identifiers. Please see the Java(tm) Platform documentation for &lt;code&gt;java.util.regex.Pattern&lt;/code&gt; for further details.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="popupMenu">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="id"/>
-         </appInfo>
-         <documentation>
-            A popupMenu element may only be defined if the &quot;popupMenuId&quot; attribute of the 
-&lt;b&gt;viewer&lt;/b&gt; element is not specified. 
-&lt;br&gt;&lt;br&gt;
-The &lt;b&gt;popupMenu&lt;/b&gt; element allows further customization of the context menu associated 
-with the viewer. For the options to be applied correctly, an instance of the viewer
-must delegate to a &lt;code&gt;org.eclipse.ui.navigator.NavigatorActionService&lt;/code&gt;, which behaves
-like a normal &lt;code&gt;org.eclipse.ui.ActionGroup&lt;/code&gt;. See the documentation for this API class
-for more information on exploiting this functionality. For clients that use an 
-instance of &lt;code&gt;org.eclipse.ui.navigator.CommonNavigator&lt;/code&gt; do not need to do any extra work. 
-&lt;br&gt;&lt;br&gt;
-A &lt;b&gt;popupMenu&lt;/b&gt; declares one or more &lt;b&gt;insertionPoints&lt;/b&gt; that will be used by contributors to 
-organize their contributions into a meaningful, more user-friendly, consistent list. 
-&lt;br&gt;
-If clients only specify the &quot;popupMenuId&quot; attribute of the &lt;b&gt;viewer&lt;/b&gt; element, then the
-set of &lt;b&gt;insertionPoints&lt;/b&gt; used by the context menu will default to the following list 
-in the given order:
-&lt;br&gt;
-&lt;pre&gt;
-&quot;group.new&quot;             separator=&quot;true&quot;
-&quot;group.goto&quot;            
-&quot;group.open&quot;            separator=&quot;true&quot;
-&quot;group.openWith&quot;
-&quot;group.show&quot;            separator=&quot;true&quot;
-&quot;group.edit&quot;            separator=&quot;true&quot;
-&quot;group.reorganize&quot;
-&quot;group.port&quot;
-&quot;group.generate&quot;        separator=&quot;true&quot;
-&quot;group.search&quot;          separator=&quot;true&quot;
-&quot;group.build&quot;           separator=&quot;true&quot;
-&quot;additions&quot;             separator=&quot;true&quot; 
-&quot;group.properties&quot;      separator=&quot;true&quot;
-&lt;/pre&gt;
-&lt;br&gt;&lt;br&gt;
-Clients that wish to refer to these values programmatically may use the corresponding constants in &lt;code&gt;org.eclipse.ui.navigator.ICommonMenuConstants&lt;/code&gt;. 
-&lt;br&gt;&lt;br&gt;
-Clients that wish to customize their menus are encouraged to start with this list and add or remove insertion points as necessary. Clients are also
-encouraged to follow the pattern of beginning each group name with &quot;group.&quot;. 
-&lt;br&gt;&lt;br&gt;
-If the &lt;b&gt;popupMenu&lt;/b&gt; element is specified and contains NO &lt;b&gt;insertionPoint&lt;/b&gt; children elements, then the context menu will have no published insertion points. Of course, programmatic clients are not restricted from adding their own insertion points as necessary. Clients defining viewers are encouraged to publish their insertion points for documentation purposes and clarity for downstream extensions to their viewers/navigators, or to explicitly document which insertion points are considered API and which are considered internal.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="insertionPoint" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  The id of the menu. Has the same function as the &quot;popupMenuId&quot; attribute of &lt;b&gt;viewer&lt;/b&gt;, but if a &lt;b&gt;popupMenu&lt;/b&gt; nested element is used, you must use this &quot;popupMenuId&quot; attribute and NOT specify the &quot;popupMenuId&quot; of &lt;b&gt;viewer&lt;/b&gt;.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="allowsPlatformContributions" type="boolean">
-            <annotation>
-               <documentation>
-                  A value of &lt;b&gt;true&lt;/b&gt; will register the declared &lt;b&gt;popupMenu&lt;/b&gt; (by id) for object or viewer contributions as declared by the &lt;b&gt;org.eclipse.ui.popupMenus&lt;/b&gt; extension point. A value of &lt;b&gt;false&lt;/b&gt; will restrict the popupMenu to programmatic contributions as declared by &lt;code&gt;org.eclipse.ui.navigator.CommonActionProviders&lt;/code&gt; (see &lt;b&gt;org.eclipse.ui.navigator.navigatorContent/actionProvider&lt;/b&gt; and &lt;b&gt;org.eclipse.ui.navigator.navigatorContent/navigatorContent/actionProvider&lt;/b&gt;).
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="insertionPoint">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-         <documentation>
-            Defines an insertion point for the context menu. Indcludes the name of the point for clients to refer to, and whether the insertion point should be rendered as a separator or a group marker.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Indicates the name of the insertion point. Clients will use the name to refer to the insertion point as part of a menu path when providing either programmatic contributions via &lt;code&gt;org.eclipse.ui.navigator.CommonActionProvider&lt;/code&gt; or declarative contributions via the &lt;b&gt;org.eclipse.ui.popupMenus&lt;/b&gt; extension point.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="separator" type="boolean">
-            <annotation>
-               <documentation>
-                  A value of true will cause the insertion point to be represented as a bar in the menu. This allows clients to visually group items in the context menu, based on their relevance to the user. By default, the value is &lt;b&gt;false&lt;/b&gt;.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="options">
-      <annotation>
-         <documentation>
-            Provide options to the viewer to custom how it is presented to the user. See &lt;code&gt;org.eclipse.ui.navigator.INavigatorViewerDescriptor&lt;/code&gt; for the available properties.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="property" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="property">
-      <annotation>
-         <documentation>
-            Provide a name=value pair. The value will be provided as-is to the viewer (so empty strings will be propagated as empty strings). See &lt;code&gt;org.eclipse.ui.navigator.INavigatorViewerDescriptor&lt;/code&gt; for the available properties and their descriptions.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="dragAssistant">
-      <annotation>
-         <documentation>
-            A Drag and Drop assistant provides lightweight hook to supply extra transfer types and logic to set the drag data. This element is not required as the basic &lt;b&gt;org.eclipse.ui.navigator.CommonViewer&lt;/b&gt; provides a &lt;b&gt;org.eclipse.jface.util.LocalSelectionTransfer&lt;/b&gt; type. 
-&lt;br&gt;&lt;br&gt;
-&lt;b&gt;
-Clients should only define this extension in lightweight plugins with shallow dependency trees. The drag assistants must be loaded up front when the viewer is created, which will force the load of affected plugins. 
-&lt;/b&gt;
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Provide an implementation of &lt;code&gt;org.eclipse.ui.navigator.CommonDragAdapterAssistant&lt;/code&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.navigator.CommonDragAdapterAssistant"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="viewerId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Associate this drag assistant with a particular viewer id.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.2
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;
-The following example configures the popup menu id for a viewer.      
-&lt;p&gt;
-&lt;pre&gt;
-
-   &lt;extension
-         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
-      &lt;viewer 
-         id=&quot;org.eclipse.testViewer&quot; 
-         popupMenuId=&quot;org.eclipse.testViewer#PopupMenu&quot;/&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-&lt;p&gt;
-Since the &lt;b&gt;popupMenu&lt;/b&gt; child element of viewer is not used in the above example, the default set of
-&lt;b&gt;insertionPoints&lt;/b&gt; will be used. This set is defined as follows. See the documentation for
-the &lt;b&gt;popupMenu&lt;/b&gt; element for more information.
-&lt;p&gt;
-&lt;pre&gt;
-&quot;group.new&quot;             separator=&quot;true&quot;
-&quot;group.goto&quot;            
-&quot;group.open&quot;            separator=&quot;true&quot;
-&quot;group.openWith&quot;
-&quot;group.show&quot;            separator=&quot;true&quot;
-&quot;group.edit&quot;            separator=&quot;true&quot;
-&quot;group.reorganize&quot;
-&quot;group.port&quot;
-&quot;group.generate&quot;        separator=&quot;true&quot;
-&quot;group.search&quot;          separator=&quot;true&quot;
-&quot;group.build&quot;           separator=&quot;true&quot;
-&quot;additions&quot;             separator=&quot;true&quot; 
-&quot;group.properties&quot;      separator=&quot;true&quot;
-&lt;/pre&gt;
-&lt;/p&gt;
-&lt;p&gt;
-The following example demonstrates a viewer configuration which declares custom
-&lt;b&gt;popupMenu/insertionPoints&lt;/b&gt;, but restricts object and viewer contributions
-with the &quot;allowsPlatformContributions&quot; attribute. Clients may only contribute
-to the defined menu via &lt;code&gt;org.eclipse.ui.navigator.CommonActionProvider&lt;/code&gt;s declared
-for the viewer (either top-level or associated with content extensions). 
-&lt;p&gt;
-Note that the &quot;popupMenuId&quot; attribute is not concurrently specified with the 
-&lt;b&gt;popupMenu&lt;/b&gt; element. Only one or the other, but not both, is a valid configuration.
-&lt;p&gt;
-&lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
-       &lt;viewer
-             viewerId=&quot;org.eclipse.ui.navigator.resourceContent&quot;&gt;
-          &lt;popupMenu
-                allowsPlatformContributions=&quot;false&quot;
-                id=&quot;org.eclipse.ui.navigator.resourceContent#PopupMenu&quot;&gt;  
-             &lt;insertionPoint name=&quot;group.new&quot;/&gt;
-             &lt;insertionPoint
-                   name=&quot;group.open&quot;
-                   separator=&quot;true&quot;/&gt;
-             &lt;insertionPoint name=&quot;group.openWith&quot;/&gt;             
-             &lt;insertionPoint
-                   name=&quot;group.port&quot;
-                   separator=&quot;true&quot;/&gt; 
-             &lt;insertionPoint
-                   name=&quot;additions&quot;
-                   separator=&quot;true&quot;/&gt;              
-             &lt;insertionPoint
-                   name=&quot;group.properties&quot;
-                   separator=&quot;true&quot;/&gt;
-          &lt;/popupMenu&gt;
-       &lt;/viewer&gt;
-       &lt;viewerContentBinding 
-             viewerId=&quot;org.eclipse.ui.navigator.resourceContent&quot;&gt;
-            &lt;includes&gt;
-                &lt;contentExtension pattern=&quot;org.eclipse.ui.navigator.resourceContent&quot; /&gt;
-            &lt;/includes&gt;
-       &lt;/viewerContentBinding&gt;
-   &lt;/extension&gt;
-
-&lt;/pre&gt;
-&lt;/p&gt;
-
-&lt;p&gt;
-The following example declares that one content extension (id: &quot;org.eclipse.ui.navigator.resourceContent&quot;) is bound to a viewer matching the id &quot;org.eclipse.ui.navigator.resourceContent&quot;. (In this example the content extension and viewer ids match, but this is not required.) Further, any content extension with an id that begins with &quot;org.eclipse.ui.navigator.tests.&quot;
-will be ignored. 
-&lt;p&gt;
-&lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
-       &lt;viewerContentBinding 
-             viewerId=&quot;org.eclipse.ui.navigator.resourceContent&quot;&gt;
-            &lt;includes&gt;
-                &lt;contentExtension pattern=&quot;org.eclipse.ui.navigator.resourceContent&quot; /&gt;
-            &lt;/includes&gt;
-            &lt;excludes&gt;
-                &lt;contentExtension pattern=&quot;org.eclipse.ui.navigator.tests.*&quot; /&gt;
-            &lt;/excludes&gt;
-       &lt;/viewerContentBinding&gt;
-   &lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-&lt;p&gt;
-The following example declares a &lt;b&gt;viewerActionBinding&lt;/b&gt; for all &lt;b&gt;actionProvider&lt;/b&gt;s (not 
-nested under a &lt;b&gt;navigatorContent&lt;/b&gt; extension) that match the regular expression
-&quot;org.acme.actions.*&quot; but not &quot;org.acme.actions.tests.*&quot;. This expression 
-will make any &lt;b&gt;actionProvider&lt;/b&gt; whose id begins with &quot;org.acme.actions.&quot; but not &quot;org.acme.actions.tests.&quot; &lt;i&gt;visible&lt;/i&gt; to the viewer with the id &quot;org.acme.viewer&quot;.
-Of course, the &lt;b&gt;viewerActionBindings&lt;/b&gt; only apply to &lt;b&gt;actionProvider&lt;/b&gt; elements that 
-are not nested under a &lt;b&gt;navigatorContent&lt;/b&gt; element. The &lt;i&gt;visibility&lt;/i&gt; of nested 
-&lt;b&gt;actionProvider&lt;/b&gt; elements is controlled by &lt;b&gt;viewerContentBindings&lt;/b&gt; for the enclosing
-&lt;b&gt;navigatorContent&lt;/b&gt; element.
-&lt;p&gt;
-&lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
-       &lt;viewerActionBinding 
-             viewerId=&quot;org.acme.viewer&quot;&gt;
-            &lt;includes&gt;
-                &lt;actionExtension pattern=&quot;org.acme.actions.*&quot; /&gt;
-            &lt;/includes&gt;
-            &lt;excludes&gt;
-                &lt;actionExtension pattern=&quot;org.acme.actions.tests.*&quot; /&gt;
-            &lt;/excludes&gt;
-       &lt;/viewerActionBinding&gt;
-   &lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-&lt;p&gt;
-The following example makes any actionProvider with no &quot;id&quot; attribute &lt;i&gt;visible&lt;/i&gt;
-to the viewer &quot;org.acme.viewer&quot;. The &lt;b&gt;actionProvider&lt;/b&gt;s with no &quot;id&quot; attribute
-have a default id of &quot;org.eclipse.ui.navigator.actionProvider.X&quot;. Of course,
-the &lt;b&gt;viewerActionBindings&lt;/b&gt; only apply to &lt;b&gt;actionProvider&lt;/b&gt; elements that 
-are not nested under a &lt;b&gt;navigatorContent&lt;/b&gt; element. The &lt;i&gt;visibility&lt;/i&gt; of nested 
-&lt;b&gt;actionProvider&lt;/b&gt; elements is controlled by &lt;b&gt;viewerContentBinding&lt;/b&gt;s for the enclosing
-&lt;b&gt;navigatorContent&lt;/b&gt; element.
-
-&lt;p&gt;
-&lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
-       &lt;viewerActionBinding 
-             viewerId=&quot;org.acme.viewer&quot;&gt;
-            &lt;includes&gt;
-                &lt;actionExtension pattern=&quot;org.eclipse.ui.navigator.actionProvider.*&quot; /&gt;
-            &lt;/includes&gt; 
-       &lt;/viewerActionBinding&gt;
-   &lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-
-&lt;p&gt;
-The following example demonstrates the standard properties available to the viewer.
-&lt;/p&gt;
-&lt;p&gt;
-&lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
-      &lt;viewer
-            popupMenuId=&quot;org.eclipse.ui.tests.navigator.TestView#PopupMenu&quot;
-            viewerId=&quot;org.eclipse.ui.tests.navigator.TestView&quot;&gt;
-         &lt;options&gt; 
-            &lt;!-- Hide the &quot;Available Extensions&quot; tab in the &quot;Available Customizations&quot; 
-                 dialog (available from the &quot;Filters&quot; action --&gt;
-            &lt;property
-                  name=&quot;org.eclipse.ui.navigator.hideAvailableExtensionsTab&quot;
-                  value=&quot;true&quot;/&gt;
-            &lt;!-- Hide the &quot;Available Customizations&quot; dialog completely. This includes hiding the 
-              filters and the available content extensions. --&gt;
-            &lt;property
-                  name=&quot;org.eclipse.ui.navigator.hideAvailableCustomizationsDialog&quot;
-                  value=&quot;true&quot;/&gt; 
-            &lt;!-- Hide the &quot;Link with Editor&quot; action from the toolbar of the viewer --&gt;
-            &lt;property
-                  name=&quot;org.eclipse.ui.navigator.hideLinkWithEditorAction&quot;
-                  value=&quot;true&quot;/&gt; 
-            &lt;!-- Hide the &quot;Collapse All&quot; action from the toolbar of the viewer --&gt;
-            &lt;property
-                  name=&quot;org.eclipse.ui.navigator.hideCollapseAllAction&quot;
-                  value=&quot;true&quot;/&gt;  
-         &lt;/options&gt;
-      &lt;/viewer&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&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) 2002, 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.navigator/scripts/src.jardesc b/bundles/org.eclipse.ui.navigator/scripts/src.jardesc
deleted file mode 100644
index 36c3da5..0000000
--- a/bundles/org.eclipse.ui.navigator/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.views.navigator/navigator.jar"/>
-	<options compress="true"
-		descriptionLocation="/org.eclipse.ui.views.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.views.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.views.navigator/src"/>
-	</selectedElements>
-</jardesc>
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/AdaptabilityUtility.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/AdaptabilityUtility.java
deleted file mode 100644
index 68d858a..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/AdaptabilityUtility.java
+++ /dev/null
@@ -1,66 +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;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.PlatformObject;
-
-/**
- * Provides utilities for working with adaptable and non-adaptable objects.
- * 
- * @since 3.2
- */
-public class AdaptabilityUtility {
-
-	/**
-	 * <p>
-	 * Returns an adapter of the requested type (anAdapterType)
-	 * 
-	 * @param anElement
-	 *            The element to adapt, which may or may not implement
-	 *            {@link IAdaptable}, or null
-	 * @param anAdapterType
-	 *            The class type to return
-	 * @return An adapter of the requested type or null
-	 */
-	public static Object getAdapter(Object anElement, Class anAdapterType) {
-		Assert.isNotNull(anAdapterType);
-        if (anElement == null) {
-            return null;
-        }
-        if (anAdapterType.isInstance(anElement)) {
-            return anElement;
-        }
-
-        if (anElement instanceof IAdaptable) {
-            IAdaptable adaptable = (IAdaptable) anElement;
-
-            Object result = adaptable.getAdapter(anAdapterType);
-            if (result != null) {
-                // Sanity-check
-                Assert.isTrue(anAdapterType.isInstance(result));
-                return result;
-            }
-        } 
-        
-        if (!(anElement instanceof PlatformObject)) {
-            Object result = Platform.getAdapterManager().getAdapter(anElement, anAdapterType);
-            if (result != null) {
-                return result;
-            }
-        }
-
-        return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorActionGroup.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorActionGroup.java
deleted file mode 100644
index e895ac6..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorActionGroup.java
+++ /dev/null
@@ -1,134 +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;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.internal.navigator.actions.CollapseAllAction;
-import org.eclipse.ui.internal.navigator.actions.LinkEditorAction;
-import org.eclipse.ui.internal.navigator.filters.FilterActionGroup;
-import org.eclipse.ui.navigator.CommonNavigator;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.INavigatorViewerDescriptor;
-
-/**
- * 
- * 
- * @since 3.2
- */
-public class CommonNavigatorActionGroup extends ActionGroup {
-
-	private LinkEditorAction toggleLinkingAction;
-
-	private CollapseAllAction collapseAllAction;
-
-	private FilterActionGroup filterGroup;
-
-	private final CommonViewer commonViewer;
-
-	private CommonNavigator commonNavigator;
-
-	/**
-	 * Create a action group for Collapse All, Link with editor, and Select
-	 * Filters.
-	 * 
-	 * @param aNavigator
-	 *            The IViewPart for this action group
-	 * @param aViewer
-	 *            The Viewer for this action group
-	 */
-	public CommonNavigatorActionGroup(CommonNavigator aNavigator,
-			CommonViewer aViewer) {
-		super();
-		commonNavigator = aNavigator;
-		commonViewer = aViewer;
-		makeActions();
-	}
-
-	/**
-	 * Returns the image descriptor with the given relative path.
-	 */
-	protected final ImageDescriptor getImageDescriptor(String relativePath) {
-		return NavigatorPlugin.getImageDescriptor("icons/full/" + relativePath); //$NON-NLS-1$
-
-	}
-
-	/**
-	 * 
-	 */
-	private void makeActions() {
-
-		INavigatorViewerDescriptor viewerDescriptor = commonViewer
-				.getNavigatorContentService().getViewerDescriptor();
-		boolean hideLinkWithEditorAction = viewerDescriptor
-				.getBooleanConfigProperty(INavigatorViewerDescriptor.PROP_HIDE_LINK_WITH_EDITOR_ACTION);
-		if (!hideLinkWithEditorAction) {
-			toggleLinkingAction = new LinkEditorAction(commonNavigator,
-					commonViewer);
-			ImageDescriptor syncIcon = getImageDescriptor("elcl16/synced.gif"); //$NON-NLS-1$
-			toggleLinkingAction.setImageDescriptor(syncIcon);
-			toggleLinkingAction.setHoverImageDescriptor(syncIcon);
-		}
-
-		boolean hideCollapseAllAction = viewerDescriptor
-				.getBooleanConfigProperty(INavigatorViewerDescriptor.PROP_HIDE_COLLAPSE_ALL_ACTION);
-		if (!hideCollapseAllAction) {
-			collapseAllAction = new CollapseAllAction(commonViewer);
-			ImageDescriptor collapseAllIcon = getImageDescriptor("elcl16/collapseall.gif"); //$NON-NLS-1$
-			collapseAllAction.setImageDescriptor(collapseAllIcon);
-			collapseAllAction.setHoverImageDescriptor(collapseAllIcon);
-		}
-
-		filterGroup = new FilterActionGroup(commonViewer);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars)
-	 */
-	public void fillActionBars(IActionBars theActionBars) {
-		IMenuManager menu = theActionBars.getMenuManager();
-
-		filterGroup.fillActionBars(theActionBars);
-
-		if (collapseAllAction != null) {
-			theActionBars.getToolBarManager().add(collapseAllAction);
-		}
-
-		if (toggleLinkingAction != null) {
-			menu
-					.insertAfter(IWorkbenchActionConstants.MB_ADDITIONS
-							+ "-end", toggleLinkingAction); //$NON-NLS-1$
-
-			theActionBars.getToolBarManager().add(toggleLinkingAction);
-		}
-
-		theActionBars.updateActionBars();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.ActionGroup#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		if (toggleLinkingAction != null) {
-			toggleLinkingAction.dispose();
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorManager.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorManager.java
deleted file mode 100644
index 8547aca..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorManager.java
+++ /dev/null
@@ -1,247 +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;
-
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.actions.RetargetAction;
-import org.eclipse.ui.navigator.CommonNavigator;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.CommonViewerSiteFactory;
-import org.eclipse.ui.navigator.ICommonActionConstants;
-import org.eclipse.ui.navigator.ICommonViewerSite;
-import org.eclipse.ui.navigator.IDescriptionProvider;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.NavigatorActionService;
-
-/**
- * <p>
- * Manages the non-viewer responsibilities of the Common Navigator View Part,
- * including the display and population of the context menu and the registration
- * of extensions for opening content.
- * </p>
- * <p>
- * This class is not intended to be instantiated or subclassed by clients
- * </p>
- * 
- * @since 3.2
- */
-public final class CommonNavigatorManager implements ISelectionChangedListener {
-
-	private final CommonNavigator commonNavigator;
-
-	private final INavigatorContentService contentService;
-
-	private NavigatorActionService actionService;
-
-	private final IDescriptionProvider commonDescriptionProvider;
-
-	private final IStatusLineManager statusLineManager;
-
-	private final ILabelProvider labelProvider;
-
-	/**
-	 * <p>
-	 * Adds listeners to aNavigator to listen for selection changes and respond
-	 * to mouse events.
-	 * </p>
-	 * 
-	 * @param aNavigator
-	 *            The CommonNavigator managed by this class. Requires a non-null
-	 *            value.
-	 */
-	public CommonNavigatorManager(CommonNavigator aNavigator) {
-		super();
-		commonNavigator = aNavigator;
-		contentService = commonNavigator.getNavigatorContentService();
-		statusLineManager = commonNavigator.getViewSite().getActionBars()
-				.getStatusLineManager();
-		commonDescriptionProvider = contentService
-				.createCommonDescriptionProvider();
-		labelProvider = (ILabelProvider) commonNavigator.getCommonViewer()
-				.getLabelProvider();
-		init();
-	}
-
-	private void init() {
-		CommonViewer commonViewer = commonNavigator.getCommonViewer();
-		commonViewer.addPostSelectionChangedListener(this);
-		updateStatusBar(commonViewer.getSelection());
-
-		ICommonViewerSite commonViewerSite = CommonViewerSiteFactory
-				.createCommonViewerSite(commonNavigator.getViewSite());
-		actionService = new NavigatorActionService(commonViewerSite,
-				commonViewer, commonViewer.getNavigatorContentService());
-
-		initContextMenu();
-		initViewMenu();
-
-		final RetargetAction openAction = new RetargetAction(
-				ICommonActionConstants.OPEN,
-				CommonNavigatorMessages.Open_action_label);
-		commonNavigator.getViewSite().getPage().addPartListener(openAction);
-		openAction.setActionDefinitionId(ICommonActionConstants.OPEN);
-
-		commonNavigator.getCommonViewer().addOpenListener(new IOpenListener() {
-			public void open(OpenEvent event) {
-				actionService.setContext(new ActionContext(commonNavigator.getCommonViewer().getSelection()));		
-				actionService.fillActionBars(commonNavigator.getViewSite().getActionBars());							
-				openAction.run();
-			}
-		}); 
-
-	}
-
-	/**
-	 * <p>
-	 * Called by {@link CommonNavigator} when the View Part is disposed.
-	 * 
-	 */
-	public void dispose() {
-		commonNavigator.getCommonViewer().removeSelectionChangedListener(this);
-		actionService.dispose();
-	}
-
-	/**
-	 * 
-	 * @param anEvent
-	 *            An event indicating the current selection of the
-	 *            {@link CommonViewer}
-	 * 
-	 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-	 */
-	public void selectionChanged(SelectionChangedEvent anEvent) {
-		updateStatusBar(anEvent.getSelection());
-		if (anEvent.getSelection() instanceof IStructuredSelection) {
-			IStructuredSelection structuredSelection = (IStructuredSelection) anEvent
-					.getSelection();
-			actionService.setContext(new ActionContext(structuredSelection));
-			actionService.fillActionBars(commonNavigator.getViewSite()
-					.getActionBars());
-		}
-	}
-
-	/**
-	 * @param aMemento
-	 *            Used to restore state of action extensions via the
-	 *            {@link NavigatorActionService}.
-	 */
-	public void restoreState(IMemento aMemento) {
-		actionService.restoreState(aMemento);
-		
-		if(commonNavigator.getCommonViewer().getInput() != null) {
-			actionService.setContext(new ActionContext(new StructuredSelection(commonNavigator.getCommonViewer().getInput())));		
-			actionService.fillActionBars(commonNavigator.getViewSite().getActionBars());
-		}
-	}
-
-	/**
-	 * @param aMemento
-	 *            Used to save state of action extensions via the
-	 *            {@link NavigatorActionService}.
-	 */
-	public void saveState(IMemento aMemento) {
-		actionService.saveState(aMemento);
-	}
-
-	/**
-	 * <p>
-	 * Fills aMenuManager with menu contributions from the
-	 * {@link NavigatorActionService}.
-	 * </p>
-	 * 
-	 * @param aMenuManager
-	 *            A popup menu
-	 * @see NavigatorActionService#fillContextMenu(IMenuManager)
-	 * 
-	 */
-	protected void fillContextMenu(IMenuManager aMenuManager) {
-		ISelection selection = commonNavigator.getCommonViewer().getSelection();
-		actionService.setContext(new ActionContext(selection));
-		actionService.fillContextMenu(aMenuManager);
-	}
-
-	/**
-	 * <p>
-	 * Initializes and registers the context menu.
-	 * </p>
-	 */
-	protected void initContextMenu() {
-		MenuManager menuMgr = new MenuManager(contentService
-				.getViewerDescriptor().getPopupMenuId());
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-
-			public void menuAboutToShow(IMenuManager manager) {
-				fillContextMenu(manager);
-			}
-		});
-		TreeViewer commonViewer = commonNavigator.getCommonViewer();
-		Menu menu = menuMgr.createContextMenu(commonViewer.getTree());
-
-		commonViewer.getTree().setMenu(menu);
-
-		actionService.prepareMenuForPlatformContributions(menuMgr,
-				commonViewer, false);
-
-	}
-
-	protected void initViewMenu() {
-		IMenuManager viewMenu = commonNavigator.getViewSite().getActionBars()
-				.getMenuManager();
-		viewMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-		viewMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS
-				+ "-end"));//$NON-NLS-1$	
-	}
-
-	/**
-	 * @param aSelection
-	 *            The current selection from the {@link CommonViewer}
-	 */
-	protected void updateStatusBar(ISelection aSelection) {
-
-		Image img = null;
-		if (aSelection != null && !aSelection.isEmpty()
-				&& aSelection instanceof IStructuredSelection) {
-			img = labelProvider.getImage(((IStructuredSelection) aSelection)
-					.getFirstElement());
-		}
-
-		statusLineManager.setMessage(img, commonDescriptionProvider
-				.getDescription(aSelection));
-	}
-
-	/**
-	 * 
-	 * @return The action service used by this manager
-	 */
-	public NavigatorActionService getNavigatorActionService() {
-		return actionService;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorMessages.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorMessages.java
deleted file mode 100644
index 25c1dd5..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonNavigatorMessages.java
+++ /dev/null
@@ -1,125 +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;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * 
- * <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 CommonNavigatorMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.navigator.messages"; //$NON-NLS-1$
-
-	/** */
-	public static String Link_With_Editor_Job_;
-
-	/** */
-	public static String Could_not_provide_children_for_element;
-
-	/** */
-	public static String NavigatorViewerDescriptor_Popup_Menu_Overridden;
-
-	/** */
-	public static String StructuredViewerManager_0;
-
-	/** */
-	public static String TextAction_selectAll;
-
-	/** */
-	public static String Cut;
-
-	/** */
-	public static String Copy;
-
-	/** */
-	public static String Paste;
-
-	/** */
-	public static String Delete;
-
-	/** */
-	public static String Navigator_statusLineMultiSelect;
-
-	/** */
-	public static String SelectFiltersActionDelegate_1;
-
-	/** */
-	public static String CommonFilterSelectionDialog_Available_Filters;
-
-	/** */
-	public static String CommonFilterSelectionDialog_Available_Content;
-
-	/** */
-	public static String CommonFilterSelectionDialog_Hides_all_content_associated;
-
-	/** */
-	public static String CommonFilterSelectionDialog_Select_the_available_extensions;
-
-	/** */
-	public static String CommonFilterSelectionDialog_Select_the_filters_to_apply;
-
-	/** */
-	public static String SelectFiltersActionDelegate_0;
-
-	/** */
-	public static String CollapseAllActionDelegate_0;
-
-	/** */
-	public static String LinkEditorActionDelegate_1;
-
-	/** */
-	public static String LinkEditorActionDelegate_0;
-
-	/** */
-	public static String Attribute_Missing_Warning;
-
-	/** */
-	public static String Too_many_elements_Warning;
-
-	/** */
-	public static String Open_action_label;
-
-	/** */
-	public static String NewProjectWizard_errorTitle;
-
-	/** */
-	public static String NewProjectAction_text;
-
-	/** */
-	public static String UpdateFiltersOperation_Update_CommonViewer_Filter_;
-
-	/** */
-	public static String CommonFilterSelectionDialog_enter_name_of_filte_;
-
-	/** */
-	public static String CommonFilterSelectionDialog_Available_customization_;
-
-	/** */
-	public static String CommonSorterDescriptorManager_A_navigatorContent_extesnion_in_0_;
-
-	/** */
-	public static String CommonSorterDescriptorManager_A_navigatorContent_extension_does_n_;
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, CommonNavigatorMessages.class);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteDelegate.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteDelegate.java
deleted file mode 100644
index 264d1b6..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteDelegate.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.navigator;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.navigator.ICommonViewerSite;
-
-/**
- * Provides a delegate implementation of {@link ICommonViewerSite}.
- * 
- * @since 3.2
- *
- */
-public class CommonViewerSiteDelegate implements ICommonViewerSite {
-	
-	
-	private String id; 
-	private ISelectionProvider selectionProvider; 
-	private Shell shell;
-
-	/**
-	 * 
-	 * @param anId
-	 * @param aSelectionProvider
-	 * @param aShell
-	 */
-	public CommonViewerSiteDelegate(String anId,  ISelectionProvider aSelectionProvider, Shell aShell) {
-		Assert.isNotNull(anId);
-		Assert.isNotNull(aSelectionProvider);
-		Assert.isNotNull(aShell);
-		id = anId;
-		selectionProvider = aSelectionProvider;		
-		shell = aShell;
-	} 
-
-	public String getId() {
-		return id;
-	} 
-
-	public Shell getShell() {
-		return shell;
-	}
-
-	public ISelectionProvider getSelectionProvider() {
-		return selectionProvider;
-	}  
-
-
-	public void setSelectionProvider(ISelectionProvider aSelectionProvider) {
-		selectionProvider = aSelectionProvider;
-	}
-
-	public Object getAdapter(Class adapter) { 
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIEditorPartSiteDelegate.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIEditorPartSiteDelegate.java
deleted file mode 100644
index dc2bbd4..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIEditorPartSiteDelegate.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.internal.navigator;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-
-/**
- * Provides a delegate implementation of {@link ICommonViewerWorkbenchSite}.
- * @since 3.2
- *
- */
-public class CommonViewerSiteIEditorPartSiteDelegate implements
-		ICommonViewerWorkbenchSite {
-
-	private IEditorSite editorSite;  
-
-	/**
-	 * 
-	 * @param anEditorSite
-	 */
-	public CommonViewerSiteIEditorPartSiteDelegate(IEditorSite anEditorSite) {
-		editorSite = anEditorSite; 
-	}
-
-	public String getId() {
-		return editorSite.getId();
-	}
-
-	public IActionBars getActionBars() {
-		return editorSite.getActionBars();
-	}
-
-	public Object getAdapter(Class adapter) {
-		return editorSite.getAdapter(adapter);
-	} 
-
-	public IWorkbenchPage getPage() {
-		return editorSite.getPage();
-	}
-
-	public ISelectionProvider getSelectionProvider() {
-		return editorSite.getSelectionProvider();
-	}
-
-	public void setSelectionProvider(ISelectionProvider aSelectionProvider) {
-		editorSite.setSelectionProvider(aSelectionProvider);
-	}
-
-	public Shell getShell() {
-		return editorSite.getShell();
-	}
-
-	public IWorkbenchWindow getWorkbenchWindow() {
-		return editorSite.getWorkbenchWindow();
-	}
-
-	public void registerContextMenu(String menuId, MenuManager menuManager,
-			ISelectionProvider selectionProvider) {
-		editorSite.registerContextMenu(menuId, menuManager, selectionProvider);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.ICommonViewerWorkbenchSite#getViewPart()
-	 */
-	public IWorkbenchPart getPart() { 
-		return editorSite.getPart();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.ICommonViewerWorkbenchSite#getSite()
-	 */
-	public IWorkbenchPartSite getSite() {
-		return editorSite;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIPageSiteDelegate.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIPageSiteDelegate.java
deleted file mode 100644
index f16f919..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIPageSiteDelegate.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.internal.navigator;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.navigator.ICommonViewerSite;
-import org.eclipse.ui.part.IPageSite;
-
-/**
- * Provides a delegate implementation of {@link ICommonViewerSite}.
- * 
- * @since 3.2
- * 
- */
-public class CommonViewerSiteIPageSiteDelegate implements ICommonViewerSite {
-
-	private IPageSite pageSite;
-
-	private String viewerId;
-
-	/**
-	 * 
-	 * @param aViewerId
-	 * @param aPageSite
-	 */
-	public CommonViewerSiteIPageSiteDelegate(String aViewerId,
-			IPageSite aPageSite) {
-		viewerId = aViewerId;
-		pageSite = aPageSite;
-	}
-
-	public String getId() {
-		return viewerId;
-	}
-
-	public Object getAdapter(Class adapter) {
-		return pageSite.getAdapter(adapter);
-	}
-
-	public ISelectionProvider getSelectionProvider() {
-		return pageSite.getSelectionProvider();
-	}
-
-	public void setSelectionProvider(ISelectionProvider aSelectionProvider) {
-		pageSite.setSelectionProvider(aSelectionProvider);
-	}
-
-	public Shell getShell() {
-		return pageSite.getShell();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIViewSiteDelegate.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIViewSiteDelegate.java
deleted file mode 100644
index 1c962f7..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CommonViewerSiteIViewSiteDelegate.java
+++ /dev/null
@@ -1,90 +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;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-
-/**
- * Provides a delegate implementation of {@link ICommonViewerWorkbenchSite}.
- * 
- * @since 3.2
- * 
- */
-public class CommonViewerSiteIViewSiteDelegate implements ICommonViewerWorkbenchSite {
-
-	private IViewSite viewSite; 
-
-	/**
-	 * 
-	 * @param aViewSite
-	 */
-	public CommonViewerSiteIViewSiteDelegate(IViewSite aViewSite) {
-		viewSite = aViewSite; 
-	}
-
-	public String getId() {
-		return viewSite.getId();
-	}
-
-	public IActionBars getActionBars() {
-		return viewSite.getActionBars();
-	}
-
-	public Object getAdapter(Class adapter) {
-		return viewSite.getAdapter(adapter);
-	}
-
-	public IWorkbenchPage getPage() {
-		return viewSite.getPage();
-	}
-
-	public ISelectionProvider getSelectionProvider() {
-		return viewSite.getSelectionProvider();
-	}
-
-	public void setSelectionProvider(ISelectionProvider aSelectionProvider) {
-		viewSite.setSelectionProvider(aSelectionProvider);
-	}
-
-	public Shell getShell() {
-		return viewSite.getShell();
-	}
-
-	public IWorkbenchWindow getWorkbenchWindow() {
-		return viewSite.getWorkbenchWindow();
-	}
-
-	public void registerContextMenu(String menuId, MenuManager menuManager,
-			ISelectionProvider selectionProvider) {
-		viewSite.registerContextMenu(menuId, menuManager, selectionProvider);
-	}
- 
-	public IWorkbenchPart getPart() { 
-		return viewSite.getPart();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.ICommonViewerWorkbenchSite#getSite()
-	 */
-	public IWorkbenchPartSite getSite() { 
-		return viewSite;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/ContributorTrackingSet.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/ContributorTrackingSet.java
deleted file mode 100644
index 7e999ac..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/ContributorTrackingSet.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.internal.navigator;
-
-import java.util.LinkedHashSet;
-
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptor;
-
-/**
- * @since 3.2
- *
- */
-public class ContributorTrackingSet extends LinkedHashSet {
-
-	
-	private static final long serialVersionUID = 2516241537206281972L;
-	
-	private NavigatorContentDescriptor contributor;
-	private NavigatorContentService contentService;
-	
-	/**
-	 * Construct a tracking set.
-	 * 
-	 * @param aContentService 
-	 */
-	public ContributorTrackingSet(NavigatorContentService aContentService) {
-		contentService = aContentService;
-	}
-	
-	/**
-	 * Construct a tracking set.
-	 * 
-	 * @param aContentService
-	 * @param elements
-	 */
-	public ContributorTrackingSet(NavigatorContentService aContentService, Object[] elements) {
-		
-		for (int i = 0; i < elements.length; i++) 
-			super.add(elements[i]); 
-		
-		contentService = aContentService;
-	}
-	
-	/* (non-Javadoc)
-	 * @see java.util.HashSet#add(java.lang.Object)
-	 */
-	public boolean add(Object o) { 
-		if(contributor != null)
-			contentService.rememberContribution(contributor, o);
-		return super.add(o);
-	}
-	
-	/* (non-Javadoc)
-	 * @see java.util.HashSet#remove(java.lang.Object)
-	 */
-	public boolean remove(Object o) { 
-		contentService.rememberContribution(null, o);
-		return super.remove(o);
-	}
-
-	/**
-	 * 
-	 * @return The current contributor.
-	 */
-	public NavigatorContentDescriptor getContributor() {
-		return contributor;
-	}
-
-	/**
-	 * 
-	 * @param newContributor The contributor to record for the next series of adds.
-	 */
-	public void setContributor(NavigatorContentDescriptor newContributor) {
-		contributor = newContributor;
-	}
-
-	/**
-	 * @param contents
-	 */
-	public void setContents(Object[] contents) {
-		super.clear();
-		if(contents != null) 
-			for (int i = 0; i < contents.length; i++) 
-				super.add(contents[i]); 
-		
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CustomAndExpression.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CustomAndExpression.java
deleted file mode 100644
index 07f1373..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/CustomAndExpression.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.ui.internal.navigator;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.expressions.ElementHandler;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Create an AND-type core expression from an IConfigurationElement of arbitrary
- * name.
- * 
- */
-public class CustomAndExpression extends Expression {
-
-	protected List fExpressions;
-
-	/**
-	 * Create an AND-type core expression from an IConfigurationElement of
-	 * arbitrary name. The children elements are combined using boolean AND
-	 * semantics to evaluate the expression.
-	 * 
-	 * @param element
-	 *            An IConfigurationElement of arbitrary name.
-	 */
-	public CustomAndExpression(IConfigurationElement element) {
-		Assert.isNotNull(element);
-
-		IConfigurationElement[] children = element.getChildren();
-
-		if (children.length > 0) {
-			fExpressions = new ArrayList();
-		}
-		for (int i = 0; i < children.length; i++) {
-			try {
-				fExpressions.add(ElementHandler.getDefault().create(
-						ExpressionConverter.getDefault(), children[i]));
-			} catch (CoreException ce) {
-				NavigatorPlugin.log(IStatus.ERROR, 0, ce.getMessage(), ce);
-			}
-		}
-	}
-
-	public EvaluationResult evaluate(IEvaluationContext scope)
-			throws CoreException {
-		if (fExpressions == null) {
-			return EvaluationResult.TRUE;
-		}
-		EvaluationResult result = EvaluationResult.TRUE;
-		for (Iterator iter = fExpressions.iterator(); iter.hasNext();) {
-			Expression expression = (Expression) iter.next();
-			result = result.and(expression.evaluate(scope));
-			// keep iterating even if we have a not loaded found. It can be
-			// that we find a false which will result in a better result.
-			if (result == EvaluationResult.FALSE) {
-				return result;
-			}
-		}
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/INavigatorHelpContextIds.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/INavigatorHelpContextIds.java
deleted file mode 100644
index 9ed0cd3..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/INavigatorHelpContextIds.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.ui.internal.navigator;
-
-/**
- * The help context ids for the Common Navigator.
- * 
- * @since 3.2
- * 
- */
-public interface INavigatorHelpContextIds {
-
-	/** */
-	public static final String PREFIX = NavigatorPlugin.PLUGIN_ID + "."; //$NON-NLS-1$
-
-	/** */
-	public static final String TEXT_CUT_ACTION = PREFIX
-			+ "text_cut_action_context"; //$NON-NLS-1$
-
-	/** */
-	public static final String TEXT_COPY_ACTION = PREFIX
-			+ "text_copy_action_context"; //$NON-NLS-1$
-
-	/** */
-	public static final String TEXT_PASTE_ACTION = PREFIX
-			+ "text_paste_action_context"; //$NON-NLS-1$
-
-	/** */
-	public static final String TEXT_DELETE_ACTION = PREFIX
-			+ "text_delete_action_context"; //$NON-NLS-1$
-
-	/** */
-	public static final String TEXT_SELECT_ALL_ACTION = PREFIX
-			+ "text_select_all_action_context"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorActivationService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorActivationService.java
deleted file mode 100644
index 53556fb..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorActivationService.java
+++ /dev/null
@@ -1,391 +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;
-
-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.core.runtime.Preferences;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptor;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptorManager;
-import org.eclipse.ui.navigator.IExtensionActivationListener;
-import org.eclipse.ui.navigator.INavigatorActivationService;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * 
- * The activation service determines if an extension is <i>active</i> within the
- * context of a given viewer. If an extension is <i>active</i> then the extension
- * will contribute functionality to the viewer. If an extension is not <i>active</i>,
- * then the extension will not be given opportunities to contribute
- * functionality to the given viewer. See {@link INavigatorContentService} for
- * more detail on what states are associated with a content extension.
- *  
- * 
- * @since 3.2
- */
-public final class NavigatorActivationService implements
-		INavigatorActivationService {
-
-	private static final String ACTIVATED_EXTENSIONS = ".activatedExtensions"; //$NON-NLS-1$
-
-	private static final NavigatorContentDescriptorManager CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorManager
-			.getInstance();	
-
-	private static final INavigatorContentDescriptor[] NO_DESCRIPTORS = new INavigatorContentDescriptor[0];
-
-	private static final String DELIM = ";"; //$NON-NLS-1$
-
-	private static final char EQUALS = '=';  
-
-	/*
-	 * Set of ids of activated extensions.
-	 */
-	//private final Set activatedExtensions = new HashSet();
-
-	/*
-	 * Set of ids of activated extensions.
-	 */
-	private final Map/*<String, Boolean>*/ activatedExtensionsMap = new HashMap();
-
-	/*
-	 * IExtensionActivationListeners
-	 */
-	private final ListenerList listeners = new ListenerList();
-
-	private INavigatorContentService contentService;
-
-	/**
-	 * Create an instance of the service.
-	 * 
-	 * @param aContentService
-	 *            The associated content service.
-	 */
-	public NavigatorActivationService(INavigatorContentService aContentService) {
-		contentService = aContentService;
-		revertExtensionActivations();
-	}
-
-	/**
-	 * 
-	 * Checks the known activation state for the given viewer id to determine if
-	 * the given navigator extension is 'active'.
-	 *  
-	 * @param aNavigatorExtensionId
-	 *            The unique identifier associated with a given extension.
-	 * 
-	 * @return True if the extension is active in the context of the viewer id.
-	 */
-	public boolean isNavigatorExtensionActive(String aNavigatorExtensionId) {
-		Boolean b = (Boolean) activatedExtensionsMap.get(aNavigatorExtensionId);
-		if(b != null)
-			return b.booleanValue();
-		synchronized (activatedExtensionsMap) {
-			NavigatorContentDescriptor descriptor = CONTENT_DESCRIPTOR_REGISTRY.getContentDescriptor(aNavigatorExtensionId);
-			if(descriptor.isActiveByDefault())
-				activatedExtensionsMap.put(aNavigatorExtensionId, Boolean.TRUE);
-			else
-				activatedExtensionsMap.put(aNavigatorExtensionId, Boolean.FALSE);
-			return descriptor.isActiveByDefault();
-		}
-		//return activatedExtensions.contains(aNavigatorExtensionId);
-	}
-
-	/**
-	 * Set the activation state for the given extension in the context of the
-	 * given viewer id. Each instance of an INavigatorContentService listens for
-	 * the activation service to update; and if those instances were created
-	 * with viewers, they will issue a refresh. Otherwise, clients are
-	 * responsible for refreshing the viewers.
-	 * 
-	 * <p>
-	 * Clients must call {@link #persistExtensionActivations()} to save
-	 * the the activation state.
-	 * </p>
-	 * 
-	 * <p>
-	 * When clients are updating a batch of extensions, consider using
-	 * {@link #setActive(String[], boolean)} when
-	 * possible to avoid unnecessary notifications.
-	 * </p>
-	 * 
-	 * @param aNavigatorExtensionId
-	 *            The unique identifier associated with a given extension.
-	 * @param toEnable
-	 *            True indicates the extension should be enabled; False
-	 *            indicates otherwise.
-	 * 
-	 */
-	public void setActive(
-			String aNavigatorExtensionId, boolean toEnable) {
-
-		boolean currentlyActive = isNavigatorExtensionActive(aNavigatorExtensionId);
-		if (currentlyActive == toEnable) {
-			return;
-		}
-
-		if (toEnable) {
-			//activatedExtensions.add(aNavigatorExtensionId);
-			activatedExtensionsMap.put(aNavigatorExtensionId, Boolean.TRUE);
-		} else {
-			//activatedExtensions.remove(aNavigatorExtensionId);
-			activatedExtensionsMap.put(aNavigatorExtensionId, Boolean.FALSE);
-		}
-		notifyListeners(new String[] { aNavigatorExtensionId }, toEnable);
-
-	}
-
-	/**
-	 * Set the activation state for the given extension in the context of the
-	 * given viewer id. Each instance of an INavigatorContentService listens for
-	 * the activation service to update; and if those instances were created
-	 * with viewers, they will issue a refresh. Otherwise, clients are
-	 * responsible for refreshing the viewers.
-	 * 
-	 * <p>
-	 * Clients must call {@link #persistExtensionActivations()} to save
-	 * the the activation state.
-	 * </p>
-	 * 
-	 * @param aNavigatorExtensionIds
-	 *            An array of unique identifiers associated with existing
-	 *            extension.
-	 * @param toEnable
-	 *            True indicates the extension should be enabled; False
-	 *            indicates otherwise.
-	 * 
-	 */
-	public void setActive(String[] aNavigatorExtensionIds,
-			boolean toEnable) {
-
-		if (toEnable) {
-			for (int i = 0; i < aNavigatorExtensionIds.length; i++) {
-				//activatedExtensions.add(aNavigatorExtensionIds[i]);
-				activatedExtensionsMap.put(aNavigatorExtensionIds[i], Boolean.TRUE);
-			}
-		} else {
-			for (int i = 0; i < aNavigatorExtensionIds.length; i++) {
-				//activatedExtensions.remove(aNavigatorExtensionIds[i]);
-				activatedExtensionsMap.put(aNavigatorExtensionIds[i], Boolean.FALSE);
-			}
-		}
-		notifyListeners(aNavigatorExtensionIds, toEnable);
-
-	}
-
-	/**
-	 * Save the activation state for the given viewer.
-	 * 
-	 */
-	public void persistExtensionActivations() {
-
-		Preferences preferences = NavigatorPlugin.getDefault()
-				.getPluginPreferences();
-
-		//synchronized (activatedExtensions) {
-		synchronized (activatedExtensionsMap) {
-			//Iterator activatedExtensionsIterator = activatedExtensions.iterator();
-			Iterator activatedExtensionsIterator = activatedExtensionsMap.keySet().iterator();
-			
-			/* ensure that the preference will be non-empty */
-			StringBuffer preferenceValue = new StringBuffer();
-			String navigatorExtensionId = null;
-			boolean isActive = false;
-			while (activatedExtensionsIterator.hasNext()) {
-				navigatorExtensionId = (String) activatedExtensionsIterator.next();
-				isActive = isNavigatorExtensionActive(navigatorExtensionId);
-				preferenceValue.append(navigatorExtensionId)
-									.append(EQUALS)
-										.append( isActive ? Boolean.TRUE : Boolean.FALSE )				
-											.append(DELIM);
-			}
-			preferences.setValue(getPreferenceKey(), preferenceValue.toString());
-		}
-		NavigatorPlugin.getDefault().savePluginPreferences();
-	}
-
-	/**
-	 * Request notification when the activation state changes for the given
-	 * viewer id.
-	 * 
-	 * @param aListener
-	 *            An implementation of {@link IExtensionActivationListener}
-	 */
-	public void addExtensionActivationListener(
-			IExtensionActivationListener aListener) {
-		listeners.add(aListener);
-	}
-
-	/**
-	 * No longer receive notification when activation state changes.
-	 * 
-	 * @param aListener
-	 *            An implementation of {@link IExtensionActivationListener}
-	 */
-	public void removeExtensionActivationListener(
-			IExtensionActivationListener aListener) {
-		listeners.remove(aListener);
-	}
-
-	private void notifyListeners(String[] navigatorExtensionIds,
-			boolean toEnable) {
-		Object[] listenerArray = listeners.getListeners();
-		for (int i = 0; i < listenerArray.length; i++) {
-			((IExtensionActivationListener) listenerArray[i])
-					.onExtensionActivation(contentService.getViewerId(),
-							navigatorExtensionIds, toEnable);
-		}
-
-	}
-
-	private void revertExtensionActivations() {
-
-		Preferences preferences = NavigatorPlugin.getDefault()
-				.getPluginPreferences();
-
-		String activatedExtensionsString = preferences
-				.getString(getPreferenceKey());
-
-		if (activatedExtensionsString != null
-				&& activatedExtensionsString.length() > 0) {
-			String[] contentExtensionIds = activatedExtensionsString
-					.split(DELIM);
-			
-			String id = null;
-			String booleanString = null;
-			int indx=0;
-			for (int i = 0; i < contentExtensionIds.length; i++) {
-				//activatedExtensions.add(contentExtensionIds[i]);
-				if( (indx = contentExtensionIds[i].indexOf(EQUALS)) > -1) {
-					// up to but not including the equals
-					id = contentExtensionIds[i].substring(0, indx);
-					booleanString = contentExtensionIds[i].substring(indx+1, contentExtensionIds[i].length());
-					activatedExtensionsMap.put(id, Boolean.valueOf(booleanString));
-				} else {
-					// IS THIS THE RIGHT WAY TO HANDLE THIS CASE?
-					NavigatorContentDescriptor descriptor = CONTENT_DESCRIPTOR_REGISTRY.getContentDescriptor(contentExtensionIds[i]);
-					if(descriptor != null)
-						activatedExtensionsMap.put(id, Boolean.valueOf(descriptor.isActiveByDefault()));
-				}
-			}
-
-		} else {
-			/*
-			 * We add the default activation of every known extension, even
-			 * though some may not be bound to the associated content service;
-			 * this is because they could be bound at a later time through the
-			 * programmatic binding mechanism in INavigatorContentService.
-			 */
-			INavigatorContentDescriptor[] contentDescriptors = CONTENT_DESCRIPTOR_REGISTRY
-					.getAllContentDescriptors();
-			for (int i = 0; i < contentDescriptors.length; i++) {
-				if (contentDescriptors[i].isActiveByDefault()) {					
-					//activatedExtensions.add(contentDescriptors[i].getId());
-					activatedExtensionsMap.put(contentDescriptors[i].getId(), Boolean.TRUE);
-				}
-			}
-		} 
-	}
-
-	private String getPreferenceKey() {
-		return contentService.getViewerId() + ACTIVATED_EXTENSIONS;
-	}
-
-
-	public INavigatorContentDescriptor[] activateExtensions(
-			String[] extensionIds, boolean toDeactivateAllOthers) {
-
-		Set activatedDescriptors = new HashSet(); 
-		setActive(extensionIds, true);
-		for (int extId = 0; extId < extensionIds.length; extId++) {
-			activatedDescriptors.add(CONTENT_DESCRIPTOR_REGISTRY
-					.getContentDescriptor(extensionIds[extId]));
-		}
-
-		if (toDeactivateAllOthers) {
-			NavigatorContentDescriptor[] descriptors = CONTENT_DESCRIPTOR_REGISTRY
-					.getAllContentDescriptors();
-			List descriptorList = new ArrayList(Arrays.asList(descriptors));
-
-			for (int descriptorIndx = 0; descriptorIndx < descriptors.length; descriptorIndx++) {
-				for (int extId = 0; extId < extensionIds.length; extId++) {
-					if (descriptors[descriptorIndx].getId().equals(
-							extensionIds[extId])) {
-						descriptorList.remove(descriptors[descriptorIndx]);
-					}
-				}
-			}
-
-			String[] deactivatedExtensions = new String[descriptorList.size()];
-			for (int i = 0; i < descriptorList.size(); i++) {
-				INavigatorContentDescriptor descriptor = (INavigatorContentDescriptor) descriptorList
-						.get(i);
-				deactivatedExtensions[i] = descriptor.getId();
-			}
-			setActive(deactivatedExtensions, false);
-		}
-
-		if (activatedDescriptors.size() == 0) {
-			return NO_DESCRIPTORS;
-		}
-		return (INavigatorContentDescriptor[]) activatedDescriptors
-				.toArray(new NavigatorContentDescriptor[activatedDescriptors
-						.size()]);
-	}
-
-	public INavigatorContentDescriptor[] deactivateExtensions(
-			String[] extensionIds, boolean toEnableAllOthers) {
-
-		Set activatedDescriptors = new HashSet(); 
-		setActive(extensionIds, false);
-
-		if (toEnableAllOthers) {
-			NavigatorContentDescriptor[] descriptors = CONTENT_DESCRIPTOR_REGISTRY
-					.getAllContentDescriptors();
-			List descriptorList = new ArrayList(Arrays.asList(descriptors));
-
-			for (int descriptorIndx = 0; descriptorIndx < descriptors.length; descriptorIndx++) {
-				for (int extId = 0; extId < extensionIds.length; extId++) {
-					if (descriptors[descriptorIndx].getId().equals(
-							extensionIds[extId])) {
-						descriptorList.remove(descriptors[descriptorIndx]);
-					}
-				}
-			}
-
-			String[] activatedExtensions = new String[descriptorList.size()];
-			for (int i = 0; i < descriptorList.size(); i++) {
-				NavigatorContentDescriptor descriptor = (NavigatorContentDescriptor) descriptorList
-						.get(i);
-				activatedExtensions[i] = descriptor.getId();
-				activatedDescriptors.add(descriptor);
-			}
-			setActive(activatedExtensions,	true);
-		}
-		if (activatedDescriptors.size() == 0) {
-			return NO_DESCRIPTORS;
-		}
-
-		return (INavigatorContentDescriptor[]) activatedDescriptors
-				.toArray(new NavigatorContentDescriptor[activatedDescriptors
-						.size()]);
-	}
-
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentService.java
deleted file mode 100644
index b8b8c9e..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentService.java
+++ /dev/null
@@ -1,1108 +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;
-
-import java.util.ArrayList;
-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.Map;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import java.util.WeakHashMap;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.internal.navigator.dnd.NavigatorDnDService;
-import org.eclipse.ui.internal.navigator.extensions.ExtensionPriorityComparator;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptor;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptorManager;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentExtension;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorViewerDescriptor;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorViewerDescriptorManager;
-import org.eclipse.ui.internal.navigator.extensions.StructuredViewerManager;
-import org.eclipse.ui.internal.navigator.sorters.NavigatorSorterService;
-import org.eclipse.ui.navigator.IDescriptionProvider;
-import org.eclipse.ui.navigator.IExtensionActivationListener;
-import org.eclipse.ui.navigator.IExtensionStateModel;
-import org.eclipse.ui.navigator.IMementoAware;
-import org.eclipse.ui.navigator.INavigatorActivationService;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentExtension;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.INavigatorContentServiceListener;
-import org.eclipse.ui.navigator.INavigatorDnDService;
-import org.eclipse.ui.navigator.INavigatorFilterService;
-import org.eclipse.ui.navigator.INavigatorPipelineService;
-import org.eclipse.ui.navigator.INavigatorSaveablesService;
-import org.eclipse.ui.navigator.INavigatorSorterService;
-import org.eclipse.ui.navigator.INavigatorViewerDescriptor;
-
-/**
- * <p>
- * Provides centralized access to the information provided by
- * NavigatorContentExtensions. Can be instantiated as needed, but should be
- * cached for active viewers. Information specific to a given viewer will be
- * cached by the NavigatorContentService, not including ContentProviders and
- * Label Providers created by {@link #createCommonContentProvider()}and
- * {@link #createCommonLabelProvider()}respectively.
- * </p>
- * 
- * <p>
- * The following class is experimental until fully documented.
- * </p>
- */
-public class NavigatorContentService implements IExtensionActivationListener,
-		IMementoAware, INavigatorContentService {
-
-	private static final NavigatorContentDescriptorManager CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorManager
-			.getInstance();
-
-	private static final NavigatorViewerDescriptorManager VIEWER_DESCRIPTOR_REGISTRY = NavigatorViewerDescriptorManager
-			.getInstance();
-
-	private static final ITreeContentProvider[] NO_CONTENT_PROVIDERS = new ITreeContentProvider[0];
-
-	private static final ILabelProvider[] NO_LABEL_PROVIDERS = new ILabelProvider[0];
-
-	private static final INavigatorContentDescriptor[] NO_DESCRIPTORS = new INavigatorContentDescriptor[0];
-
-	private static final String[] NO_EXTENSION_IDS = new String[0];
-
-	private final NavigatorViewerDescriptor viewerDescriptor;
-
-	private final List listeners = new ArrayList();
-
-	/*
-	 * A map of (String-based-Navigator-Content-Extension-IDs,
-	 * NavigatorContentExtension-objects)-pairs
-	 */
-	private final Map contentExtensions = new HashMap();
-
-	private StructuredViewerManager structuredViewerManager;
-
-	private ITreeContentProvider[] rootContentProviders;
-
-	private WeakHashMap contributionMemory;
-
-	private ITreeContentProvider contentProvider;
-
-	private ILabelProvider labelProvider;
-
-	private final VisibilityAssistant assistant;
-
-	private NavigatorFilterService navigatorFilterService;
-
-	private INavigatorSorterService navigatorSorterService;
-
-	private INavigatorPipelineService navigatorPipelineService;
-
-	private INavigatorDnDService navigatorDnDService;
-
-	private INavigatorActivationService navigatorActivationService;
-
-	private IDescriptionProvider descriptionProvider;
-
-	private boolean contentProviderInitialized;
-
-	private boolean labelProviderInitialized;
-
-	private NavigatorSaveablesService navigatorSaveablesService;
-
-	/**
-	 * @param aViewerId
-	 *            The viewer id for this content service; normally from the
-	 *            <b>org.eclipse.ui.views</b> extension.
-	 */
-	public NavigatorContentService(String aViewerId) {
-		super();
-		aViewerId = aViewerId != null ? aViewerId : ""; //$NON-NLS-1$
-		viewerDescriptor = VIEWER_DESCRIPTOR_REGISTRY
-				.getNavigatorViewerDescriptor(aViewerId);
-		assistant = new VisibilityAssistant(viewerDescriptor, getActivationService());
-		getActivationService().addExtensionActivationListener(this);
-	}
-
-	/**
-	 * @param aViewerId
-	 *            The viewer id for this content service; normally from the
-	 *            <b>org.eclipse.ui.views</b> extension.
-	 * @param aViewer
-	 *            The viewer that this content service will be associated with.
-	 */
-	public NavigatorContentService(String aViewerId, StructuredViewer aViewer) {
-		this(aViewerId);
-		structuredViewerManager = new StructuredViewerManager(aViewer);
-	}
-
-	public String[] getVisibleExtensionIds() {
-
-		List visibleExtensionIds = new ArrayList();
-
-		NavigatorContentDescriptor[] descriptors = CONTENT_DESCRIPTOR_REGISTRY
-				.getAllContentDescriptors();
-		for (int i = 0; i < descriptors.length; i++) {
-			if (assistant.isVisible(descriptors[i].getId())) {
-				visibleExtensionIds.add(descriptors[i].getId());
-			}
-		}
-		if (visibleExtensionIds.isEmpty()) {
-			return NO_EXTENSION_IDS;
-		}
-		return (String[]) visibleExtensionIds
-				.toArray(new String[visibleExtensionIds.size()]);
-
-	}
-
-	public INavigatorContentDescriptor[] getVisibleExtensions() {
-		List visibleDescriptors = new ArrayList();
-
-		NavigatorContentDescriptor[] descriptors = CONTENT_DESCRIPTOR_REGISTRY
-				.getAllContentDescriptors();
-		for (int i = 0; i < descriptors.length; i++) {
-			if (assistant.isVisible(descriptors[i].getId())) {
-				visibleDescriptors.add(descriptors[i]);
-			}
-		}
-		if (visibleDescriptors.isEmpty()) {
-			return NO_DESCRIPTORS;
-		}
-		return (INavigatorContentDescriptor[]) visibleDescriptors
-				.toArray(new INavigatorContentDescriptor[visibleDescriptors
-						.size()]);
-
-	}
-
-	/* package */INavigatorContentDescriptor[] getActiveDescriptorsWithSaveables() {
-		List result = new ArrayList();
-
-		NavigatorContentDescriptor[] descriptors = CONTENT_DESCRIPTOR_REGISTRY
-				.getContentDescriptorsWithSaveables();
-		for (int i = 0; i < descriptors.length; i++) {
-			if (assistant.isVisible(descriptors[i].getId())
-					&& assistant.isActive(descriptors[i])) {
-				result.add(descriptors[i]);
-			}
-		}
-		if (result.isEmpty()) {
-			return NO_DESCRIPTORS;
-		}
-		return (INavigatorContentDescriptor[]) result
-				.toArray(new INavigatorContentDescriptor[result.size()]);
-
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorContentService#bindExtensions(java.lang.String[],
-	 *      boolean)
-	 */
-	public INavigatorContentDescriptor[] bindExtensions(String[] extensionIds,
-			boolean isRoot) {
-		if (extensionIds == null || extensionIds.length == 0) {
-			return NO_DESCRIPTORS;
-		}
-
-		for (int i = 0; i < extensionIds.length; i++) {
-			assistant.bindExtensions(extensionIds, isRoot);
-		}
-		Set boundDescriptors = new HashSet();
-		INavigatorContentDescriptor descriptor;
-		for (int i = 0; i < extensionIds.length; i++) {
-			descriptor = CONTENT_DESCRIPTOR_REGISTRY
-					.getContentDescriptor(extensionIds[i]);
-			if (descriptor != null) {
-				boundDescriptors.add(descriptor);
-			}
-		}
-
-		if (boundDescriptors.size() == 0) {
-			return NO_DESCRIPTORS;
-		}
-		return (INavigatorContentDescriptor[]) boundDescriptors
-				.toArray(new INavigatorContentDescriptor[boundDescriptors
-						.size()]);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.INavigatorContentService#createCommonContentProvider()
-	 */
-	public ITreeContentProvider createCommonContentProvider() {
-		if (contentProviderInitialized) {
-			return contentProvider;
-		}
-		synchronized (this) {
-			if (contentProvider == null) {
-				contentProvider = new NavigatorContentServiceContentProvider(
-						this);
-			}
-			contentProviderInitialized = true;
-		}
-		return contentProvider;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.INavigatorContentService#createCommonLabelProvider()
-	 */
-	public ILabelProvider createCommonLabelProvider() {
-		if (labelProviderInitialized) {
-			return labelProvider;
-		}
-		synchronized (this) {
-			if (labelProvider == null) {
-				labelProvider = new NavigatorContentServiceLabelProvider(this);
-			}
-			labelProviderInitialized = true;
-		}
-		return labelProvider;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorContentService#createCommonDescriptionProvider()
-	 */
-	public IDescriptionProvider createCommonDescriptionProvider() {
-		if (descriptionProvider != null) {
-			return descriptionProvider;
-		}
-		synchronized (this) {
-			if (descriptionProvider == null) {
-				descriptionProvider = new NavigatorContentServiceDescriptionProvider(
-						this);
-			}
-		}
-		return descriptionProvider;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.INavigatorContentService#dispose()
-	 */
-	public void dispose() {
-		if (navigatorSaveablesService != null) {
-			assistant.removeListener(navigatorSaveablesService);
-		}
-		for (Iterator contentItr = contentExtensions.values().iterator(); contentItr
-				.hasNext();) {
-			((NavigatorContentExtension) contentItr.next()).dispose();
-		}
-		getActivationService().removeExtensionActivationListener(this);
-		assistant.dispose();
-	}
-
-	protected void updateService(Viewer aViewer, Object anOldInput,
-			Object aNewInput) {
-
-		synchronized (this) {
-
-			if (structuredViewerManager == null) {
-				structuredViewerManager = new StructuredViewerManager(aViewer);
-				structuredViewerManager.inputChanged(anOldInput, aNewInput);
-			} else {
-				structuredViewerManager.inputChanged(aViewer, anOldInput,
-						aNewInput);
-			}
-
-			for (Iterator contentItr = contentExtensions.values().iterator(); contentItr
-					.hasNext();) {
-				structuredViewerManager
-						.initialize(((NavigatorContentExtension) contentItr
-								.next()).getContentProvider());
-			}
-
-			rootContentProviders = extractContentProviders(findRootContentExtensions(aNewInput));
-		}
-	}
-
-	public IExtensionStateModel findStateModel(String anExtensionId) {
-		if (anExtensionId == null) {
-			return null;
-		}
-		INavigatorContentDescriptor desc = CONTENT_DESCRIPTOR_REGISTRY
-				.getContentDescriptor(anExtensionId);
-		if (desc == null) {
-			return null;
-		}
-		INavigatorContentExtension ext = getExtension(desc);
-		if (ext == null) {
-			return null;
-		}
-		return ext.getStateModel();
-	}
-
-	/**
-	 * Return a set of content providers that could provide a parent for the
-	 * given element. These content extensions are determined by consulting the
-	 * <b>possibleChildren</b> expression in the <b>navigatorContent</b>
-	 * extension.
-	 * 
-	 * <p>
-	 * Clients that wish to tap into the link with editor support must describe
-	 * all of their possible children in their <b>possibleChildren</b>
-	 * expressions.
-	 * </p>
-	 * 
-	 * @param anElement
-	 *            An element from the tree (generally from a setSelection()
-	 *            method).
-	 * @return The set of content providers that may be able to provide a
-	 *         parent.
-	 */
-	public ITreeContentProvider[] findParentContentProviders(Object anElement) {
-		return extractContentProviders(findContentExtensionsWithPossibleChild(anElement));
-	}
-
-	/**
-	 * <p>
-	 * Return all of the content providers that are relevant for the viewer. The
-	 * viewer is determined by the ID used to create the
-	 * INavigatorContentService ({@link #getViewerId() }). See
-	 * {@link #createCommonContentProvider() } for more information about how
-	 * content providers are located for the root of the viewer. The root
-	 * content providers are calculated once. If a new element is supplied, a
-	 * client must call {@link #update() } prior in order to reset the
-	 * calculated root providers.
-	 * </p>
-	 * 
-	 * @param anElement
-	 *            An element from the tree (generally the input of the viewer)
-	 * @return The set of content providers that can provide root elements for a
-	 *         viewer.
-	 */
-	public ITreeContentProvider[] findRootContentProviders(Object anElement) {
-		if (rootContentProviders != null) {
-			return rootContentProviders;
-		}
-		synchronized (this) {
-			if (rootContentProviders == null) {
-				rootContentProviders = extractContentProviders(findRootContentExtensions(anElement));
-
-			}
-		}
-		return rootContentProviders;
-	}
-
-	/**
-	 * 
-	 * Return all of the label providers that are enabled for the given element.
-	 * A label provider is 'enabled' if its corresponding content provider
-	 * returned the element, or the element is described in the content
-	 * extension's <b>triggerPoints</b> expression.
-	 * 
-	 * @param anElement
-	 *            An element from the tree (any element contributed to the
-	 *            tree).
-	 * @return The set of label providers that may be able to provide a valid
-	 *         (non-null) label.
-	 */
-	public ILabelProvider[] findRelevantLabelProviders(Object anElement) {
-		return extractLabelProviders(findContentExtensionsWithPossibleChild(
-				anElement, false));
-	}
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>triggerPoints</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @return The set of {@link INavigatorContentExtension}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         either declared through a
-	 *         <b>org.eclipse.ui.navigator.viewer/viewerContentBinding</b> to
-	 *         be a root element or have a <b>triggerPoints</b> expression that
-	 *         is <i>enabled</i> for the given element.
-	 */
-	public Set findRootContentExtensions(Object anElement) {
-		return findRootContentExtensions(anElement, true);
-	}
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>triggerPoints</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @param toRespectViewerRoots
-	 *            True respect the <b>viewerContentBinding</b>s, False will
-	 *            look only for matching <b>triggerPoints</b> expressions.
-	 * @return The set of {@link INavigatorContentExtension}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         either declared through a
-	 *         <b>org.eclipse.ui.navigator.viewer/viewerContentBinding</b> to
-	 *         be a root element or have a <b>triggerPoints</b> expression that
-	 *         is <i>enabled</i> for the given element.
-	 */
-	public Set findRootContentExtensions(Object anElement,
-			boolean toRespectViewerRoots) {
-
-		SortedSet rootExtensions = new TreeSet(
-				ExtensionPriorityComparator.INSTANCE);
-		if (toRespectViewerRoots
-				&& viewerDescriptor.hasOverriddenRootExtensions()) {
-
-			NavigatorContentDescriptor[] descriptors = CONTENT_DESCRIPTOR_REGISTRY
-					.getAllContentDescriptors();
-
-			NavigatorContentExtension extension = null;
-			for (int i = 0; i < descriptors.length; i++) {
-				if (isActive(descriptors[i].getId())
-						&& isRootExtension(descriptors[i].getId())) {
-					extension = getExtension(descriptors[i]);
-					if (!extension.hasLoadingFailed()) {
-						rootExtensions.add(extension);
-					}
-				}
-			}
-		}
-		if (rootExtensions.isEmpty()) {
-			return findContentExtensionsByTriggerPoint(anElement);
-		}
-		return rootExtensions;
-	}
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>possibleChildren</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @return The set of {@link INavigatorContentExtension}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         have a <b>possibleChildren</b> expression that is <i>enabled</i>
-	 *         for the given element.
-	 */
-	public Set findOverrideableContentExtensionsByTriggerPoint(
-			Object anElement) {
-		Set overrideableExtensions = new TreeSet(
-				ExtensionPriorityComparator.INSTANCE);
-		Set descriptors = findDescriptorsByTriggerPoint(anElement);
-		for (Iterator iter = descriptors.iterator(); iter.hasNext();) {
-			INavigatorContentDescriptor descriptor = (INavigatorContentDescriptor) iter
-					.next();
-			if (descriptor.hasOverridingExtensions()) {
-				overrideableExtensions.add(getExtension(descriptor));
-			}
-		}
-		return overrideableExtensions;
-	}
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>possibleChildren</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @return The set of {@link INavigatorContentExtension}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         have a <b>possibleChildren</b> expression that is <i>enabled</i>
-	 *         for the given element.
-	 */
-	public Set findOverrideableContentExtensionsForPossibleChild(
-			Object anElement) {
-		Set overrideableExtensions = new TreeSet(
-				ExtensionPriorityComparator.INSTANCE);
-		Set descriptors = findDescriptorsWithPossibleChild(anElement, false);
-		for (Iterator iter = descriptors.iterator(); iter.hasNext();) {
-			INavigatorContentDescriptor descriptor = (INavigatorContentDescriptor) iter
-					.next();
-			if (descriptor.hasOverridingExtensions()) {
-				overrideableExtensions.add(getExtension(descriptor));
-			}
-		}
-		return overrideableExtensions;
-	}
-	
-	/** 
-	 * 
-	 * @param anExtensionId The id used to define the <b>org.eclipse.ui.navigator.navigatorContent/navigatorContent</b> extension.
-	 * @return An instance of the content extension for the given extension id. May return <b>null</b> if the id is invalid.
-	 */
-	public INavigatorContentExtension getContentExtensionById(String anExtensionId) {
-		NavigatorContentDescriptor descriptor = CONTENT_DESCRIPTOR_REGISTRY.getContentDescriptor(anExtensionId);
-		if(descriptor != null)
-			return getExtension(descriptor);
-		return null;
-	}
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>triggerPoints</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @return The set of {@link INavigatorContentExtension}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         have a <b>triggerPoints</b> expression that is <i>enabled</i>
-	 *         for the given element.
-	 */
-	public Set findContentExtensionsByTriggerPoint(Object anElement) {
-		return findContentExtensionsByTriggerPoint(anElement, true);
-	}
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>triggerPoints</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @param toLoadIfNecessary
-	 *            True will force the load of the extension, False will not
-	 * @return The set of {@link INavigatorContentExtension}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         have a <b>triggerPoints</b> expression that is <i>enabled</i>
-	 *         for the given element.
-	 */
-	public Set findContentExtensionsByTriggerPoint(Object anElement,
-			boolean toLoadIfNecessary) {
-		Set enabledDescriptors = findDescriptorsByTriggerPoint(anElement);
-		return extractDescriptorInstances(enabledDescriptors, toLoadIfNecessary);
-	}
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>possibleChildren</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @return The set of {@link INavigatorContentExtension}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         have a <b>possibleChildren</b> expression that is <i>enabled</i>
-	 *         for the given element.
-	 */
-	public Set findContentExtensionsWithPossibleChild(Object anElement) {
-		return findContentExtensionsWithPossibleChild(anElement, true);
-	}
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>possibleChildren</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @param toLoadIfNecessary
-	 *            True will force the load of the extension, False will not
-	 * @return The set of {@link INavigatorContentExtension}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         have a <b>possibleChildren</b> expression that is <i>enabled</i>
-	 *         for the given element.
-	 */
-	public Set findContentExtensionsWithPossibleChild(Object anElement,
-			boolean toLoadIfNecessary) {
-		Set enabledDescriptors = findDescriptorsWithPossibleChild(anElement);
-		return extractDescriptorInstances(enabledDescriptors, toLoadIfNecessary);
-	}
-
-	/**
-	 * Remember that the elements in the given array came from the given source
-	 * 
-	 * @param source
-	 *            The descriptor of the extension that contributed the set of
-	 *            elements.
-	 * @param elements
-	 *            An array of elements from the given source.
-	 */
-	public synchronized void rememberContribution(
-			NavigatorContentDescriptor source, Object[] elements) {
-
-		if (source != null && elements != null) {
-			for (int i = 0; i < elements.length; i++) {
-				getContributionMemory().put(elements[i], source);
-			}
-		}
-	}
-
-	/**
-	 * Remember that the elements in the given array came from the given source
-	 * 
-	 * @param source
-	 *            The descriptor of the extension that contributed the set of
-	 *            elements.
-	 * @param element
-	 *            An element from the given source.
-	 */
-	public synchronized void rememberContribution(
-			NavigatorContentDescriptor source, Object element) {
-		if (source != null && element != null) {
-			getContributionMemory().put(element, source);
-		}
-	}
-
-	/**
-	 * 
-	 * @param element
-	 *            The element contributed by the descriptor to be returned
-	 * @return The descriptor that contributed the element or null.
-	 * @see #findContentExtensionsWithPossibleChild(Object)
-	 */
-	public NavigatorContentDescriptor getSourceOfContribution(Object element) {
-		return (NavigatorContentDescriptor) getContributionMemory()
-				.get(element);
-	}
-
-	/**
-	 * @return Returns the contributionMemory.
-	 */
-	public Map getContributionMemory() {
-		if (contributionMemory != null) {
-			return contributionMemory;
-		}
-		synchronized (this) {
-			if (contributionMemory == null) {
-				contributionMemory = new WeakHashMap();
-			}
-		}
-
-		return contributionMemory;
-	}
-	
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>triggerPoints</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query 
-	 * 			
-	 * @return The set of {@link INavigatorContentDescriptor}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         have a <b>triggerPoints</b> expression that is <i>enabled</i>
-	 *         for the given element.
-	 */
-	public Set findDescriptorsByTriggerPoint(Object anElement) {
-
-		NavigatorContentDescriptor descriptor = getSourceOfContribution(anElement);
-		Set result = new TreeSet(ExtensionPriorityComparator.INSTANCE);
-		if (descriptor != null) {
-			result.add(descriptor);
-		}
-		result.addAll(CONTENT_DESCRIPTOR_REGISTRY
-				.findDescriptorsForTriggerPoint(anElement, assistant));
-		return result;
-	}
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>possibleChildren</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @return The set of {@link INavigatorContentDescriptor}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         have a <b>possibleChildren</b> expression that is <i>enabled</i>
-	 *         for the given element.
-	 */
-	public Set findDescriptorsWithPossibleChild(Object anElement) {
-		return findDescriptorsWithPossibleChild(anElement, true);
-	}
-	
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>possibleChildren</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @param toComputeOverrides
-	 * 			 True indicates the overridden tree should be traversed.
-	 * @return The set of {@link INavigatorContentDescriptor}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         have a <b>possibleChildren</b> expression that is <i>enabled</i>
-	 *         for the given element.
-	 */
-	public Set findDescriptorsWithPossibleChild(Object anElement, boolean toComputeOverrides) {
-
-		NavigatorContentDescriptor descriptor = getSourceOfContribution(anElement);
-		Set result = new TreeSet(ExtensionPriorityComparator.INSTANCE);
-		if (descriptor != null) {
-			result.add(descriptor);
-		}
-		result.addAll(CONTENT_DESCRIPTOR_REGISTRY
-				.findDescriptorsForPossibleChild(anElement, assistant, toComputeOverrides));
-		return result;
-	}	
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.INavigatorContentService#onExtensionActivation(java.lang.String,
-	 *      java.lang.String, boolean)
-	 */
-	public void onExtensionActivation(String aViewerId,
-			String[] aNavigatorExtensionId, boolean toEnable) {
-		synchronized (this) {
-			try {
-				NavigatorContentDescriptor key;
-				NavigatorContentExtension extension;
-				for (Iterator iter = contentExtensions.keySet().iterator(); iter.hasNext();) {
-					key = (NavigatorContentDescriptor) iter.next();
-					INavigatorActivationService activation = getActivationService();
-					if(!activation.isNavigatorExtensionActive(key.getId())) {
-						extension = (NavigatorContentExtension) contentExtensions.get(key);
-						iter.remove();
-						/* There really shouldn't be any way that this 
-							can be null, but just to be safe */					
-						if(extension != null) {
-							extension.dispose();
-						}
-					}
-				}
-			} catch (RuntimeException e) { 
-				String msg = e.getMessage() != null ? e.getMessage() : e.toString();
-				NavigatorPlugin.logError(0, msg, e);
-			}
-		} 
-		update();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.INavigatorContentService#update()
-	 */
-	public void update() {
-		rootContentProviders = null;
-		if (structuredViewerManager != null) {
-			structuredViewerManager.safeRefresh();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.INavigatorContentService#getViewerId()
-	 */
-	public final String getViewerId() {
-		return viewerDescriptor.getViewerId();
-	}
-
-	/**
-	 * 
-	 * @param aDescriptorKey
-	 *            A descriptor
-	 * @return The cached NavigatorContentExtension from the descriptor
-	 */
-	public final NavigatorContentExtension getExtension(
-			INavigatorContentDescriptor aDescriptorKey) {
-		return getExtension(aDescriptorKey, true);
-	}
-
-	/**
-	 * 
-	 * @param aDescriptorKey
-	 * @param toLoadIfNecessary
-	 *            True if the extension should be loaded if it is not already.
-	 * @return The instance of the extension for the given descriptor key.
-	 */
-	public final NavigatorContentExtension getExtension(
-			INavigatorContentDescriptor aDescriptorKey,
-			boolean toLoadIfNecessary) {
-		/* Query and return the relevant descriptor instance */
-		NavigatorContentExtension extension = (NavigatorContentExtension) contentExtensions
-				.get(aDescriptorKey);
-		if (extension != null || !toLoadIfNecessary) {
-			return extension;
-		}
-
-		/*
-		 * If the descriptor instance hasn't been created yet, then we need to
-		 * (1) verify that it wasn't added by another thread, (2) create and add
-		 * the result into the map
-		 */
-		synchronized (this) {
-			extension = (NavigatorContentExtension) contentExtensions
-					.get(aDescriptorKey);
-			if (extension == null) {
-				contentExtensions.put(aDescriptorKey,
-						(extension = new NavigatorContentExtension(
-								(NavigatorContentDescriptor) aDescriptorKey,
-								this, structuredViewerManager)));
-				notifyListeners(extension);
-			}
-		}
-		return extension;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.INavigatorContentService#getViewerDescriptor()
-	 */
-	public INavigatorViewerDescriptor getViewerDescriptor() {
-		return viewerDescriptor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.INavigatorContentService#restoreState(org.eclipse.ui.IMemento)
-	 */
-	public void restoreState(final IMemento aMemento) {
-		synchronized (this) {
-			for (Iterator extensionItr = getExtensions().iterator(); extensionItr
-					.hasNext();) {
-				final NavigatorContentExtension element = (NavigatorContentExtension) extensionItr
-						.next();
-				ISafeRunnable runnable = new ISafeRunnable() {
-					public void run() throws Exception {
-						element.restoreState(aMemento);
-
-					}
-
-					public void handleException(Throwable exception) {
-						NavigatorPlugin.logError(0,
-								"Could not restore state for Common Navigator content extension" //$NON-NLS-1$
-										+ element.getId(), exception);
-
-					}
-				};
-				SafeRunner.run(runnable);
-
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.INavigatorContentService#saveState(org.eclipse.ui.IMemento)
-	 */
-	public void saveState(IMemento aMemento) {
-		synchronized (this) {
-			for (Iterator extensionItr = getExtensions().iterator(); extensionItr
-					.hasNext();) {
-				NavigatorContentExtension element = (NavigatorContentExtension) extensionItr
-						.next();
-				element.saveState(aMemento);
-			}
-		}
-	}
-
-	public boolean isActive(String anExtensionId) {
-		return assistant.isActive(anExtensionId);
-	}
-
-	public boolean isVisible(String anExtensionId) {
-		return assistant.isVisible(anExtensionId);
-	}
-
-	protected final Collection getExtensions() {
-		return (contentExtensions.size() > 0) ? Collections
-				.unmodifiableCollection(contentExtensions.values())
-				: Collections.EMPTY_LIST;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.INavigatorContentService#addListener(org.eclipse.ui.internal.navigator.extensions.INavigatorContentServiceListener)
-	 */
-	public void addListener(INavigatorContentServiceListener aListener) {
-		listeners.add(aListener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorContentService#getFilterService()
-	 */
-	public INavigatorFilterService getFilterService() {
-		if (navigatorFilterService == null) {
-			navigatorFilterService = new NavigatorFilterService(this);
-		}
-		return navigatorFilterService;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorContentService#getFilterService()
-	 */
-	public INavigatorSorterService getSorterService() {
-		if (navigatorSorterService == null) {
-			navigatorSorterService = new NavigatorSorterService(this);
-		}
-		return navigatorSorterService;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorContentService#getFilterService()
-	 */
-	public INavigatorPipelineService getPipelineService() {
-		if (navigatorPipelineService == null) {
-			navigatorPipelineService = new NavigatorPipelineService(this);
-		}
-		return navigatorPipelineService;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorContentService#getDnDService()
-	 */
-	public INavigatorDnDService getDnDService() {
-		if (navigatorDnDService == null) {
-			navigatorDnDService = new NavigatorDnDService(this);
-		}
-		return navigatorDnDService;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorContentService#getActivationService()
-	 */
-	public INavigatorActivationService getActivationService() {
-
-		if (navigatorActivationService == null) {
-			navigatorActivationService = new NavigatorActivationService(this);
-		}
-		return navigatorActivationService;
-	}
-	
-	/**
-	 * Non-API method to return a shell.
-	 * @return A shell associated with the current viewer (if any) or <b>null</b>.
-	 */
-	public Shell getShell() {
-		if(structuredViewerManager != null && structuredViewerManager.getViewer() != null) {
-			return structuredViewerManager.getViewer().getControl().getShell();
-		}
-		return null;
-	}
-
-	protected boolean isRootExtension(String anExtensionId) {
-		return assistant.isRootExtension(anExtensionId);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.INavigatorContentService#removeListener(org.eclipse.ui.internal.navigator.extensions.INavigatorContentServiceListener)
-	 */
-	public void removeListener(INavigatorContentServiceListener aListener) {
-		listeners.remove(aListener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return "ContentService[" + viewerDescriptor.getViewerId() + "]"; //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	private void notifyListeners(NavigatorContentExtension aDescriptorInstance) {
-
-		if (listeners.size() == 0) {
-			return;
-		}
-		INavigatorContentServiceListener listener = null;
-		List failedListeners = null;
-		for (Iterator listenersItr = listeners.iterator(); listenersItr
-				.hasNext();) {
-			try {
-				listener = (INavigatorContentServiceListener) listenersItr
-						.next();
-				listener.onLoad(aDescriptorInstance);
-			} catch (RuntimeException re) {
-				if (failedListeners == null) {
-					failedListeners = new ArrayList();
-				}
-				failedListeners.add(listener);
-			}
-		}
-		if (failedListeners != null) {
-			listeners.removeAll(failedListeners);
-		}
-	}
-
-	private ITreeContentProvider[] extractContentProviders(
-			Set theDescriptorInstances) {
-		if (theDescriptorInstances.size() == 0) {
-			return NO_CONTENT_PROVIDERS;
-		}
-		List resultProvidersList = new ArrayList();
-		for (Iterator itr = theDescriptorInstances.iterator(); itr.hasNext();) {
-			resultProvidersList.add(((NavigatorContentExtension) itr.next())
-					.internalGetContentProvider());
-		}
-		return (ITreeContentProvider[]) resultProvidersList
-				.toArray(new ITreeContentProvider[resultProvidersList.size()]);
-	}
-
-	private Set extractDescriptorInstances(Set theDescriptors,
-			boolean toLoadAllIfNecessary) {
-		if (theDescriptors.size() == 0) {
-			return Collections.EMPTY_SET;
-		}
-		Set resultInstances = new TreeSet(ExtensionPriorityComparator.INSTANCE);
-		for (Iterator descriptorIter = theDescriptors.iterator(); descriptorIter
-				.hasNext();) {
-			NavigatorContentExtension extension = getExtension(
-					(NavigatorContentDescriptor) descriptorIter.next(),
-					toLoadAllIfNecessary);
-			if (extension != null) {
-				resultInstances.add(extension);
-
-			}
-		}
-		return resultInstances;
-	}
-
-	private ILabelProvider[] extractLabelProviders(Set theDescriptorInstances) {
-		if (theDescriptorInstances.size() == 0) {
-			return NO_LABEL_PROVIDERS;
-		}
-		List resultProvidersList = new ArrayList();
-		for (Iterator itr = theDescriptorInstances.iterator(); itr.hasNext();) {
-			resultProvidersList.add(((NavigatorContentExtension) itr.next())
-					.getLabelProvider());
-		}
-		return (ILabelProvider[]) resultProvidersList
-				.toArray(new ILabelProvider[resultProvidersList.size()]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.INavigatorContentService#getSaveableService()
-	 */
-	public INavigatorSaveablesService getSaveablesService() {
-		synchronized (this) {
-			if (navigatorSaveablesService == null) {
-				navigatorSaveablesService = new NavigatorSaveablesService(this);
-				assistant.addListener(navigatorSaveablesService);
-			}
-			return navigatorSaveablesService;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceContentProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceContentProvider.java
deleted file mode 100644
index 5fd37b7..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceContentProvider.java
+++ /dev/null
@@ -1,910 +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;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ITreePathContentProvider;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptor;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentExtension;
-import org.eclipse.ui.internal.navigator.extensions.OverridePolicy;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.IPipelinedTreeContentProvider;
-
-/**
- * <p>
- * Provides relevant content based on the associated
- * {@link org.eclipse.ui.internal.navigator.NavigatorContentService}&nbsp; for
- * a TreeViewer .
- * </p>
- * <p>
- * Except for the dependency on
- * {@link org.eclipse.ui.internal.navigator.NavigatorContentService}, this
- * class has no dependencies on the rest of the Common Navigator framework. Tree
- * viewers that would like to use the extensions defined by the Common
- * Navigator, without using the actual view part or other pieces of
- * functionality (filters, sorting, etc) may choose to use this class, in effect
- * using an extensible, aggregating, delegate content provider.
- * </p>
- * 
- * @see org.eclipse.ui.internal.navigator.NavigatorContentService
- * @see org.eclipse.ui.internal.navigator.NavigatorContentServiceLabelProvider
- * 
- * <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 NavigatorContentServiceContentProvider implements
-		ITreeContentProvider, ITreePathContentProvider {
-
-	private static final Object[] NO_CHILDREN = new Object[0];
-
-	private final NavigatorContentService contentService;
-
-	private final boolean isContentServiceSelfManaged;
-
-	private Viewer viewer;
-
-	/**
-	 * <p>
-	 * Creates a cached {@link NavigatorContentService}&nbsp;from the given
-	 * viewer Id.
-	 * </p>
-	 * 
-	 * @param aViewerId
-	 *            The associated viewer id that this
-	 *            NavigatorContentServiceContentProvider will provide content
-	 *            for
-	 */
-	public NavigatorContentServiceContentProvider(String aViewerId) {
-		super();
-		contentService = new NavigatorContentService(aViewerId);
-		isContentServiceSelfManaged = true;
-	}
-
-	/**
-	 * <p>
-	 * Uses the supplied content service to acquire the available extensions.
-	 * </p>
-	 * 
-	 * @param aContentService
-	 *            The associated NavigatorContentService that should be used to
-	 *            acquire information.
-	 */
-	public NavigatorContentServiceContentProvider(
-			NavigatorContentService aContentService) {
-		super();
-		contentService = aContentService;
-		isContentServiceSelfManaged = false;
-	}
-
-	/**
-	 * 
-	 * <p>
-	 * Return the root objects for the supplied anInputElement. anInputElement
-	 * is the root thing that the viewer visualizes.
-	 * </p>
-	 * <p>
-	 * This method will call out to its {@link NavigatorContentService}&nbsp;for
-	 * extensions that are enabled on the supplied anInputElement or enabled on
-	 * the viewerId supplied when the {@link NavigatorContentService}&nbsp; was
-	 * created (either by this class or its client). The extensions will then be
-	 * queried for relevant content. The children returned from each extension
-	 * will be aggregated and returned as is -- there is no additional sorting
-	 * or filtering at this level.
-	 * </p>
-	 * <p>
-	 * The results of this method will be displayed in the root of the
-	 * TreeViewer.
-	 * </p>
-	 * {@inheritDoc}
-	 * 
-	 * @param anInputElement
-	 *            The relevant element that a client would like children for -
-	 *            the input element of the TreeViewer
-	 * @return A non-null array of objects that are logical children of
-	 *         anInputElement
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public synchronized Object[] getElements(Object anInputElement) {
-		Set rootContentExtensions = contentService
-				.findRootContentExtensions(anInputElement);
-		if (rootContentExtensions.size() == 0) {
-			return NO_CHILDREN;
-		}
-		ContributorTrackingSet finalElementsSet = new ContributorTrackingSet(contentService);
-		ContributorTrackingSet localSet = new ContributorTrackingSet(contentService);		
-
-		Object[] contributedChildren = null;
-		NavigatorContentExtension foundExtension;
-		NavigatorContentExtension[] overridingExtensions;
-		for (Iterator itr = rootContentExtensions.iterator(); itr.hasNext();) {
-			foundExtension = (NavigatorContentExtension) itr.next();
-			try {
-
-				if (!isOverridingExtensionInSet(foundExtension.getDescriptor(),
-						rootContentExtensions)) {
-
-					contributedChildren = foundExtension.internalGetContentProvider()
-							.getElements(anInputElement);
-					
-					localSet.setContents(contributedChildren);
-
-					overridingExtensions = foundExtension
-							.getOverridingExtensionsForTriggerPoint(anInputElement);
-
-					if (overridingExtensions.length > 0) { 
-						localSet = pipelineElements(anInputElement,
-								overridingExtensions, localSet);						
-					}
-					finalElementsSet.addAll(localSet);
-				}
-			} catch (RuntimeException re) {
-				NavigatorPlugin
-						.logError(
-								0,
-								NLS
-										.bind(
-												CommonNavigatorMessages.Could_not_provide_children_for_element,
-												new Object[] { foundExtension
-														.getDescriptor()
-														.getId() }), re);
-			} catch (Error e) {
-				NavigatorPlugin
-						.logError(
-								0,
-								NLS
-										.bind(
-												CommonNavigatorMessages.Could_not_provide_children_for_element,
-												new Object[] { foundExtension
-														.getDescriptor()
-														.getId() }), e);
-
-			}
-		}
-		return finalElementsSet.toArray();
-	}
-
-	/**
-	 * <p>
-	 * Return the children of the supplied aParentElement
-	 * </p>
-	 * 
-	 * <p>
-	 * This method will call out to its {@link NavigatorContentService}&nbsp;for
-	 * extensions that are enabled on the supplied aParentElement. The
-	 * extensions will then be queried for children for aParentElement. The
-	 * children returned from each extension will be aggregated and returned as
-	 * is -- there is no additional sorting or filtering at this level.
-	 * </p>
-	 * <p>
-	 * The results of this method will be displayed as children of the supplied
-	 * element in the TreeViewer.
-	 * </p>
-	 * {@inheritDoc}
-	 * 
-	 * @param aParentElement
-	 *            An element that requires children content in the viewer (e.g.
-	 *            an end-user expanded a node)
-	 * @return A non-null array of objects that are logical children of
-	 *         aParentElement
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-	 */
-	public synchronized Object[] getChildren(Object aParentElement) {	
-		return internalGetChildren(aParentElement);
-	}
-
-	private Object[] internalGetChildren(Object aParentElementOrPath) {
-		Object aParentElement = internalAsElement(aParentElementOrPath);
-		Set enabledExtensions = contentService
-				.findContentExtensionsByTriggerPoint(aParentElement);
-		if (enabledExtensions.size() == 0) {
-			return NO_CHILDREN;
-		}
-		ContributorTrackingSet finalChildrenSet = new ContributorTrackingSet(contentService);
-		ContributorTrackingSet localSet = new ContributorTrackingSet(contentService);
-
-		Object[] contributedChildren = null;
-		NavigatorContentExtension foundExtension;
-		NavigatorContentExtension[] overridingExtensions;
-		for (Iterator itr = enabledExtensions.iterator(); itr.hasNext();) {
-			foundExtension = (NavigatorContentExtension) itr.next();
-			try {
-
-				if (!isOverridingExtensionInSet(foundExtension.getDescriptor(),
-						enabledExtensions)) {
-
-					contributedChildren = foundExtension.internalGetContentProvider()
-							.getChildren(aParentElementOrPath);
-
-					overridingExtensions = foundExtension
-							.getOverridingExtensionsForTriggerPoint(aParentElement);
-					
-					localSet.setContents(contributedChildren);
-
-					if (overridingExtensions.length > 0) {
-						// TODO: could pass tree path through pipeline						
-						localSet = pipelineChildren(aParentElement,
-								overridingExtensions, localSet);
-					}
-					finalChildrenSet.addAll(localSet);
-				}
-			} catch (RuntimeException re) {
-				NavigatorPlugin
-						.logError(
-								0,
-								NLS
-										.bind(
-												CommonNavigatorMessages.Could_not_provide_children_for_element,
-												new Object[] { foundExtension
-														.getDescriptor()
-														.getId() }), re);
-			} catch (Error e) {
-				NavigatorPlugin
-						.logError(
-								0,
-								NLS
-										.bind(
-												CommonNavigatorMessages.Could_not_provide_children_for_element,
-												new Object[] { foundExtension
-														.getDescriptor()
-														.getId() }), e);
-
-			}
-		}
-		return finalChildrenSet.toArray();
-	}
-
-	/**
-	 * Query each of <code>theOverridingExtensions</code> for children, and
-	 * then pipe them through the Pipeline content provider.
-	 * 
-	 * @param aParentOrPath
-	 *            The parent element in the tree
-	 * @param theOverridingExtensions
-	 *            The set of overriding extensions that should participate in
-	 *            the pipeline chain
-	 * @param theCurrentChildren
-	 *            The current children to return to the viewer (should be
-	 *            modifiable)
-	 * @return The set of children to return to the viewer
-	 */
-	private ContributorTrackingSet pipelineChildren(Object aParentOrPath,
-			NavigatorContentExtension[] theOverridingExtensions,
-			ContributorTrackingSet theCurrentChildren) {
-		IPipelinedTreeContentProvider pipelinedContentProvider;
-		NavigatorContentExtension[] overridingExtensions;
-		ContributorTrackingSet pipelinedChildren = theCurrentChildren;
-		for (int i = 0; i < theOverridingExtensions.length; i++) {
-
-			if (theOverridingExtensions[i].getContentProvider() instanceof IPipelinedTreeContentProvider) {
-				pipelinedContentProvider = (IPipelinedTreeContentProvider) theOverridingExtensions[i]
-						.getContentProvider();
-				
-				pipelinedChildren.setContributor((NavigatorContentDescriptor) theOverridingExtensions[i].getDescriptor());				
-				pipelinedContentProvider.getPipelinedChildren(aParentOrPath,
-						pipelinedChildren);
-				
-				pipelinedChildren.setContributor(null);
-				
-				overridingExtensions = theOverridingExtensions[i]
-						.getOverridingExtensionsForTriggerPoint(aParentOrPath);
-				if (overridingExtensions.length > 0) {
-					pipelinedChildren = pipelineChildren(aParentOrPath,
-							overridingExtensions, pipelinedChildren);
-				}
-			}
-		}
-
-		return pipelinedChildren;
-
-	}
-
-	/**
-	 * Query each of <code>theOverridingExtensions</code> for elements, and
-	 * then pipe them through the Pipeline content provider.
-	 * 
-	 * @param anInputElement
-	 *            The input element in the tree
-	 * @param theOverridingExtensions
-	 *            The set of overriding extensions that should participate in
-	 *            the pipeline chain
-	 * @param theCurrentElements
-	 *            The current elements to return to the viewer (should be
-	 *            modifiable)
-	 * @return The set of elements to return to the viewer
-	 */
-	private ContributorTrackingSet pipelineElements(Object anInputElement,
-			NavigatorContentExtension[] theOverridingExtensions,
-			ContributorTrackingSet theCurrentElements) {
-		IPipelinedTreeContentProvider pipelinedContentProvider;
-		NavigatorContentExtension[] overridingExtensions;
-		ContributorTrackingSet pipelinedElements = theCurrentElements;
-		for (int i = 0; i < theOverridingExtensions.length; i++) {
-
-			if (theOverridingExtensions[i].getContentProvider() instanceof IPipelinedTreeContentProvider) {
-				pipelinedContentProvider = (IPipelinedTreeContentProvider) theOverridingExtensions[i]
-						.getContentProvider();
-
-				pipelinedElements.setContributor((NavigatorContentDescriptor) theOverridingExtensions[i].getDescriptor());
-				pipelinedContentProvider.getPipelinedElements(anInputElement,
-						pipelinedElements);
-				pipelinedElements.setContributor(null);
-
-				overridingExtensions = theOverridingExtensions[i]
-						.getOverridingExtensionsForTriggerPoint(anInputElement);
-				if (overridingExtensions.length > 0) {
-					pipelinedElements = pipelineElements(anInputElement,
-							overridingExtensions, pipelinedElements);
-				}
-			}
-		}
-		return pipelinedElements;
-	}
-
-	/**
-	 * Currently this method only checks one level deep. If the suppressed
-	 * extension of the given descriptor is contained lower in the tree, then
-	 * the extension could still be invoked twice.
-	 * 
-	 * @param aDescriptor
-	 *            The descriptor which may be overriding other extensions.
-	 * @param theEnabledExtensions
-	 *            The other available extensions.
-	 * @return True if the results should be pipelined through the downstream
-	 *         extensions.
-	 */
-	private boolean isOverridingExtensionInSet(
-			INavigatorContentDescriptor aDescriptor, Set theEnabledExtensions) {
-
-		if (aDescriptor.getSuppressedExtensionId() != null /*
-															 * The descriptor is
-															 * an override
-															 * descriptor
-															 */
-				&& aDescriptor.getOverridePolicy() == OverridePolicy.InvokeAlwaysRegardlessOfSuppressedExt) {
-			/*
-			 * if the policy is set as such, it can lead to this extension being
-			 * invoked twice; once as a first class extension, and once an
-			 * overriding extension.
-			 */
-			if (theEnabledExtensions.contains(contentService
-					.getExtension(aDescriptor.getOverriddenDescriptor()))) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	/**
-	 * Currently this method only checks one level deep. If the suppressed
-	 * extension of the given descriptor is contained lower in the tree, then
-	 * the extension could still be invoked twice.
-	 * 
-	 * @param aDescriptor
-	 *            The descriptor which may be overriding other extensions.
-	 * @param theEnabledDescriptors
-	 *            The other available descriptors.
-	 * @return True if the results should be pipelined through the downstream
-	 *         extensions.
-	 */
-	private boolean isOverridingDescriptorInSet(
-			INavigatorContentDescriptor aDescriptor, Set theEnabledDescriptors) {
-
-		if (aDescriptor.getSuppressedExtensionId() != null /*
-															 * The descriptor is
-															 * an override
-															 * descriptor
-															 */
-				&& aDescriptor.getOverridePolicy() == OverridePolicy.InvokeAlwaysRegardlessOfSuppressedExt) {
-			/*
-			 * if the policy is set as such, it can lead to this extension being
-			 * invoked twice; once as a first class extension, and once an
-			 * overriding extension.
-			 */
-			if (theEnabledDescriptors.contains(aDescriptor.getOverriddenDescriptor())) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	
-
-	/**
-	 * <p>
-	 * Returns the logical parent of anElement.
-	 * </p>
-	 * <p>
-	 * This method requires that any extension that would like an opportunity to
-	 * supply a parent for anElement expressly indicate that in the action
-	 * expression &lt;enables&gt; statement of the
-	 * <b>org.eclipse.ui.navigator.navigatorContent </b> extension point.
-	 * </p>
-	 * {@inheritDoc}
-	 * 
-	 * @param anElement
-	 *            An element that requires its logical parent - generally as a
-	 *            result of setSelection(expand=true) on the viewer
-	 * @return The logical parent if available or null if the parent cannot be
-	 *         determined
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-	 */
-	public synchronized Object getParent(Object anElement) {
-		Set extensions = contentService
-				.findContentExtensionsWithPossibleChild(anElement);
-
-		Object parent;
-		NavigatorContentExtension foundExtension;
-		NavigatorContentExtension[] overridingExtensions;
-		for (Iterator itr = extensions.iterator(); itr.hasNext();) {
-			foundExtension = (NavigatorContentExtension) itr.next();
-			try {
-
-				if (!isOverridingExtensionInSet(foundExtension.getDescriptor(),
-						extensions)) {
-
-					parent = foundExtension.internalGetContentProvider().getParent(
-							anElement);
-
-					overridingExtensions = foundExtension
-							.getOverridingExtensionsForPossibleChild(anElement);
-
-					if (overridingExtensions.length > 0) {
-						parent = pipelineParent(anElement,
-								overridingExtensions, parent);
-					}
-
-					if (parent != null) {
-						return parent;
-					}
-				}
-			} catch (RuntimeException re) {
-				NavigatorPlugin
-						.logError(
-								0,
-								NLS
-										.bind(
-												CommonNavigatorMessages.Could_not_provide_children_for_element,
-												new Object[] { foundExtension
-														.getDescriptor()
-														.getId() }), re);
-			} catch (Error e) {
-				NavigatorPlugin
-						.logError(
-								0,
-								NLS
-										.bind(
-												CommonNavigatorMessages.Could_not_provide_children_for_element,
-												new Object[] { foundExtension
-														.getDescriptor()
-														.getId() }), e);
-
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Query each of <code>theOverridingExtensions</code> for elements, and
-	 * then pipe them through the Pipeline content provider.
-	 * 
-	 * @param anInputElement
-	 *            The input element in the tree
-	 * @param theOverridingExtensions
-	 *            The set of overriding extensions that should participate in
-	 *            the pipeline chain
-	 * @param theCurrentParent
-	 *            The current elements to return to the viewer (should be
-	 *            modifiable)
-	 * @return The set of elements to return to the viewer
-	 */
-	private Object pipelineParent(Object anInputElement,
-			NavigatorContentExtension[] theOverridingExtensions,
-			Object theCurrentParent) {
-		IPipelinedTreeContentProvider pipelinedContentProvider;
-		NavigatorContentExtension[] overridingExtensions;
-		Object aSuggestedParent = null;
-		for (int i = 0; i < theOverridingExtensions.length; i++) {
-
-			if (theOverridingExtensions[i].getContentProvider() instanceof IPipelinedTreeContentProvider) {
-				pipelinedContentProvider = (IPipelinedTreeContentProvider) theOverridingExtensions[i]
-						.getContentProvider();
-
-				aSuggestedParent = pipelinedContentProvider.getPipelinedParent(
-						anInputElement, aSuggestedParent);
-
-				overridingExtensions = theOverridingExtensions[i]
-						.getOverridingExtensionsForTriggerPoint(anInputElement);
-				if (overridingExtensions.length > 0) {
-					aSuggestedParent = pipelineParent(anInputElement,
-							overridingExtensions, aSuggestedParent);
-				}
-			}
-		}
-		return aSuggestedParent != null ? aSuggestedParent : theCurrentParent;
-	}
-
-	/**
-	 * <p>
-	 * Used to determine of anElement should be displayed with a '+' or not.
-	 * </p>
-	 * {@inheritDoc}
-	 * 
-	 * @param anElement
-	 *            The element in question
-	 * @return True if anElement has logical children as returned by this
-	 *         content provider.
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-	 */
-	public synchronized boolean hasChildren(Object anElement) {
-		Set resultInstances = contentService
-				.findContentExtensionsByTriggerPoint(anElement);
-
-		NavigatorContentExtension ext;
-		for (Iterator itr = resultInstances.iterator(); itr.hasNext();) {
-			ext = (NavigatorContentExtension) itr.next();
-			if (!ext.isLoaded()) {
-				return true;
-			} else if (ext.internalGetContentProvider().hasChildren(anElement)) {
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * <p>
-	 * Handles any necessary clean up of the {@link NavigatorContentService}
-	 * </p>
-	 * 
-	 * <p>
-	 * <b>If a client uses this class outside of the framework of
-	 * {@link CommonViewer}, the client must ensure that this method is called
-	 * when finished. </b>
-	 * </p>
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public synchronized void dispose() {
-		if (isContentServiceSelfManaged) {
-			contentService.dispose();
-		}
-	}
-
-	/**
-	 * <p>
-	 * Indicates that the current content provider is now representing a
-	 * different input element. The input element is the root thing that the
-	 * viewer displays.
-	 * </p>
-	 * <p>
-	 * This method should handle any cleanup associated with the old input
-	 * element and any initiailization associated with the new input element.
-	 * </p>
-	 * {@inheritDoc}
-	 * 
-	 * @param aViewer
-	 *            The viewer that the current content provider is associated
-	 *            with
-	 * @param anOldInput
-	 *            The original input element that the viewer was visualizing
-	 * @param aNewInput
-	 *            The new input element that the viewer will visualize.
-	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-	 *      java.lang.Object, java.lang.Object)
-	 * 
-	 */
-	public synchronized void inputChanged(Viewer aViewer, Object anOldInput,
-			Object aNewInput) {
-		viewer = aViewer;
-		contentService.updateService(aViewer, anOldInput, aNewInput);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreePathContentProvider#getChildren(org.eclipse.jface.viewers.TreePath)
-	 */
-	public Object[] getChildren(TreePath parentPath) {
-		return internalGetChildren(parentPath);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreePathContentProvider#hasChildren(org.eclipse.jface.viewers.TreePath)
-	 */
-	public boolean hasChildren(TreePath path) {
-		Object anElement = internalAsElement(path);
-		Set resultInstances = contentService
-				.findContentExtensionsByTriggerPoint(anElement);
-
-		NavigatorContentExtension ext;
-		for (Iterator itr = resultInstances.iterator(); itr.hasNext();) {
-			ext = (NavigatorContentExtension) itr.next();
-			if (!ext.isLoaded())
-				return true;
-			ITreeContentProvider cp = ext.internalGetContentProvider();
-			if (cp instanceof ITreePathContentProvider) {
-				ITreePathContentProvider tpcp = (ITreePathContentProvider) cp;
-				if (tpcp.hasChildren(path)) {
-					return true;
-				}
-			} else if (cp.hasChildren(anElement))
-				return true;
-		}
-
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreePathContentProvider#getParents(java.lang.Object)
-	 */
-	public TreePath[] getParents(Object anElement) {
-		
-		List paths = new ArrayList();
-		TreePathCompiler compiler = new TreePathCompiler(anElement); 
-		Set compilers = findPaths(compiler);
-		for (Iterator iter = compilers.iterator(); iter.hasNext();) {
-			TreePathCompiler c = (TreePathCompiler) iter.next();
-			paths.add(c.createParentPath());
-			
-		}
-		return (TreePath[]) paths.toArray(new TreePath[paths.size()]);
-		 
-	}
-  
-
-	/**
-	 * Get the element from an element or tree path argument.
-	 * @param parentElementOrPath the element or tree path
-	 * @return the element
-	 */
-	private Object internalAsElement(Object parentElementOrPath) {
-		if (parentElementOrPath instanceof TreePath) {
-			TreePath tp = (TreePath) parentElementOrPath;
-			if (tp.getSegmentCount() > 0) {
-				return tp.getLastSegment();
-			}
-			// If the path is empty, the parent element is the root
-			return viewer.getInput();
-		}
-		return parentElementOrPath;
-	}
-	
-
-	class CyclicPathException extends Exception {
-
-		private static final long serialVersionUID = 2111962579612444989L;
-
-		protected CyclicPathException(TreePathCompiler compiler, Object invalidSegment, boolean asChild) {
-			super("Cannot add " + invalidSegment + //$NON-NLS-1$ 
-					" to the list of segments in " + compiler +  //$NON-NLS-1$ 
-					(asChild ? " as a child." : " as a parent.") ); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	class TreePathCompiler {
-
-
-		private final LinkedList segments = new LinkedList();
-
-		protected TreePathCompiler(Object segment) {
-			segments.add(segment);
-		}
-
-		protected TreePathCompiler(TreePathCompiler aCompiler) {
-			segments.addAll(aCompiler.segments);
-		}
-
-		protected TreePathCompiler(TreePath aPath) {
-			for (int i = 0; i < aPath.getSegmentCount(); i++) {
-				segments.addLast(aPath.getSegment(i));
-			}
-		}
-
-		protected void addParent(Object segment) throws CyclicPathException {
-			if(segments.contains(segment)) {
-				throw new CyclicPathException(this, segment, false);
-			}
-			segments.addFirst(segment);
-		}
-
-		protected void addChild(Object segment) throws CyclicPathException {
-			if(segments.contains(segment)) {
-				throw new CyclicPathException(this, segment, false);
-			}
-			segments.addLast(segment);
-		}
-
-		/**
-		 * Create the full tree path.
-		 * 
-		 * @return A TreePath with all segments from the compiler.
-		 */
-		public TreePath createPath() {
-			return new TreePath(segments.toArray());
-		}
-
-		/**
-		 * Create parent tree path.
-		 * 
-		 * @return A TreePath with all segments but the last from the compiler
-		 */
-		public TreePath createParentPath() {
-			LinkedList parentSegments = new LinkedList(segments);
-			parentSegments.removeLast();
-			return new TreePath(parentSegments.toArray());
-		}
-		
-		public Object getLastSegment() {
-			return segments.getLast();
-		}
-		
-		public Object getFirstSegment() {
-			return segments.getFirst();
-		}
-		
-		/* (non-Javadoc)
-		 * @see java.lang.Object#toString()
-		 */
-		public String toString() {
-		
-			StringBuffer buffer = new StringBuffer();
-			for (Iterator iter = segments.iterator(); iter.hasNext();) {
-				Object segment = iter.next();
-				buffer.append(segment).append("::"); //$NON-NLS-1$  
-			}
-			return buffer.toString();
-		}
-
-	}
-
-	private Set findPaths(TreePathCompiler aPathCompiler) {
-
-		Set/* <Object> */ parents = findParents(aPathCompiler.getFirstSegment());
-		Set/* <TreePathCompiler> */ parentPaths = new LinkedHashSet();
-		Set/* <TreePathCompiler> */ foundPaths = Collections.EMPTY_SET;
-		if (parents.size() > 0) {
-			for (Iterator parentIter = parents.iterator(); parentIter.hasNext();) {
-				Object parent = (Object) parentIter.next();
-				TreePathCompiler c = new TreePathCompiler(aPathCompiler);
-				try {
-					c.addParent(parent); 
-					foundPaths = findPaths(c);
-				} catch(CyclicPathException cpe) {
-					String msg = cpe.getMessage() != null ? cpe.getMessage() : cpe.toString();
-					NavigatorPlugin.logError(0, msg, cpe);
-				}
-				if (foundPaths.isEmpty())
-					parentPaths.add(c);
-				else
-					parentPaths.addAll(foundPaths);
-			}
-		}
-		return parentPaths;
-
-	}
-
-	private Set findParents(Object anElement) {
-
-		Set descriptors = contentService.findDescriptorsWithPossibleChild(
-				anElement, false);
-		Set parents = new LinkedHashSet();
-		NavigatorContentDescriptor foundDescriptor;
-		NavigatorContentExtension foundExtension;
-		Object parent = null;
-		for (Iterator itr = descriptors.iterator(); itr.hasNext();) {
-			foundDescriptor = (NavigatorContentDescriptor) itr.next();
-			foundExtension = contentService.getExtension(foundDescriptor);
-			try {
-
-				if (!isOverridingDescriptorInSet(
-						foundExtension.getDescriptor(), descriptors)) {
-
-					/* internalGetContentProvider returns the real delegate */
-					if (foundExtension.getContentProvider() instanceof ITreePathContentProvider) {
-						/*
-						 * but we use the safe version to automatically handle
-						 * errors
-						 */
-						TreePath[] parentTreePaths = ((ITreePathContentProvider) foundExtension
-								.internalGetContentProvider())
-								.getParents(anElement);
-
-						for (int i = 0; i < parentTreePaths.length; i++) {
-
-							parent = parentTreePaths[i].getLastSegment();
-							if ((parent = findParent(foundExtension, anElement,
-									parent)) != null)
-								parents.add(parent);
-						}
-
-					} else {
-
-						parent = foundExtension.internalGetContentProvider()
-								.getParent(anElement);
-						if ((parent = findParent(foundExtension, anElement,
-								parent)) != null)
-							parents.add(parent);
-					}
-				}
-
-			} catch (RuntimeException re) {
-				NavigatorPlugin
-						.logError(
-								0,
-								NLS
-										.bind(
-												CommonNavigatorMessages.Could_not_provide_children_for_element,
-												new Object[] { foundExtension
-														.getDescriptor()
-														.getId() }), re);
-			} catch (Error e) {
-				NavigatorPlugin
-						.logError(
-								0,
-								NLS
-										.bind(
-												CommonNavigatorMessages.Could_not_provide_children_for_element,
-												new Object[] { foundExtension
-														.getDescriptor()
-														.getId() }), e);
-		
-			} 
-		}
-		
-		return parents;
-		
-	}
-	 
-	
-	private Object findParent(NavigatorContentExtension anExtension, Object anElement, Object aSuggestedParent) {
-		
-		/* the last valid (non-null) parent for the anElement */
-		Object lastValidParent = aSuggestedParent;
-		/* used to keep track of new suggestions */
-		Object suggestedOverriddenParent = null;
-		IPipelinedTreeContentProvider piplineContentProvider; 
-		NavigatorContentExtension[] overridingExtensions = anExtension.getOverridingExtensionsForPossibleChild(anElement); 
-		for (int i = 0; i < overridingExtensions.length; i++) {
-			if(overridingExtensions[i].getContentProvider() instanceof IPipelinedTreeContentProvider) {
-				piplineContentProvider = (IPipelinedTreeContentProvider) overridingExtensions[i].getContentProvider(); 
-				suggestedOverriddenParent = piplineContentProvider.getPipelinedParent(anElement, lastValidParent);
-				
-				if(suggestedOverriddenParent != null)
-					lastValidParent = suggestedOverriddenParent; 
-				
-				// should never return null 
-				lastValidParent = findParent(overridingExtensions[i], anElement, lastValidParent);
-			}
-				
-		} 
-		return lastValidParent;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceDescriptionProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceDescriptionProvider.java
deleted file mode 100644
index 6186df0..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceDescriptionProvider.java
+++ /dev/null
@@ -1,92 +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;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.navigator.ICommonLabelProvider;
-import org.eclipse.ui.navigator.IDescriptionProvider;
-
-/**
- * 
- * <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 final class NavigatorContentServiceDescriptionProvider implements
-		IDescriptionProvider {
-
-	private final NavigatorContentService contentService;
-
-	/**
-	 * Creates a description provider that targets the given service.
-	 * 
-	 * @param aContentService
-	 *            The content service associated with this provider.
-	 */
-	public NavigatorContentServiceDescriptionProvider(
-			NavigatorContentService aContentService) {
-		Assert.isNotNull(aContentService);
-		contentService = aContentService;
-	}
-
-	public String getDescription(Object anElement) {
-
-		Object target;
-
-		if (anElement instanceof IStructuredSelection) {
-
-			IStructuredSelection structuredSelection = (IStructuredSelection) anElement;
-			if (structuredSelection.size() > 1) {
-				return getDefaultStatusBarMessage(structuredSelection.size());
-			}
-			target = structuredSelection.getFirstElement();
-		} else {
-			target = anElement;
-		}
-		String message = null;
-		ILabelProvider[] providers = contentService
-				.findRelevantLabelProviders(target);
-		if (providers.length == 0) {
-			return getDefaultStatusBarMessage(0);
-		}
-		for (int i = 0; i < providers.length && (message == null || message.length() == 0); i++) {
-			if (providers[i] instanceof ICommonLabelProvider) {
-				message = ((ICommonLabelProvider) providers[i])
-						.getDescription(target); 
-			}
-		}
-		message = (message != null) ? message : getDefaultStatusBarMessage(1);
-		return message;
-
-	}
-
-	/**
-	 * @param aSize
-	 *            The number of items selected.
-	 * @return A string of the form "# items selected"
-	 */
-	protected final String getDefaultStatusBarMessage(int aSize) {
-		return NLS.bind(
-				CommonNavigatorMessages.Navigator_statusLineMultiSelect,
-				new Object[] { new Integer(aSize) });
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceLabelProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceLabelProvider.java
deleted file mode 100644
index e0817d9..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceLabelProvider.java
+++ /dev/null
@@ -1,349 +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;
-
-
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-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.jface.viewers.ITreePathLabelProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.ViewerLabel;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentExtension;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * <p>
- * Provides relevant labels based on the associated
- * {@link INavigatorContentService}for the contents of a
- * TreeViewer .
- * <p>
- * 
- * <p>
- * Except for the dependency on
- * {@link INavigatorContentService}, this class has no
- * dependencies on the rest of the Common Navigator framework. Tree viewers that would like to use
- * the extensions defined by the Common Navigator, without using the actual view part or other
- * pieces of functionality (filters, sorting, etc) may choose to use this class, in effect using an
- * extensible label provider.
- * </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
- * 
- * @see org.eclipse.ui.internal.navigator.NavigatorContentService
- * @see org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider
- */
-public class NavigatorContentServiceLabelProvider extends EventManager
-		implements ILabelProvider, IColorProvider, IFontProvider, ITreePathLabelProvider, ILabelProviderListener {
- 
-	private final NavigatorContentService contentService;
-	private final boolean isContentServiceSelfManaged;
-	private final ReusableViewerLabel reusableLabel = new ReusableViewerLabel();
-
-  
-	/**
-	 * <p>
-	 * Uses the supplied content service to acquire the available extensions.
-	 * </p>
-	 * 
-	 * @param aContentService
-	 *            The associated NavigatorContentService that should be used to acquire information.
-	 */
-	public NavigatorContentServiceLabelProvider(NavigatorContentService aContentService) {
-		contentService = aContentService; 
-		isContentServiceSelfManaged = false;
-	}
-
-	/**
-	 * <p>
-	 * Return the appropriate image for anElement. The image will be used as the icon for anElement
-	 * when displayed in the tree viewer. This method uses information from its contentService to
-	 * know what extensions to use to supply the correct label.
-	 * </p>
-	 * {@inheritDoc}
-	 * 
-	 * @param anElement 
-	 *            An element from the Tree Viewer 
-	 * @return The Image that will be used as the icon when anElement is displayed in the viewer.
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object anElement) {
-
-		Set contentExtensions = contentService.findContentExtensionsWithPossibleChild(anElement);
-		Image image = null; 
-		for (Iterator itr = contentExtensions.iterator(); itr.hasNext() && image == null; ) { 
-			image = findImage((NavigatorContentExtension) itr.next(), anElement);
-		}
-		return image;  
-	}
-
-	/**
-	 * <p>
-	 * Return a String representation of anElement to be used as the display name in the tree
-	 * viewer.
-	 * </p>
-	 * {@inheritDoc}
-	 * 
-	 * @param anElement
-	 *            An element from the Tree Viewer 
-	 * @return The String label to display for the object when represented in the viewer.
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object anElement) {
-		Set contentExtensions = contentService.findContentExtensionsWithPossibleChild(anElement);
-		String text = null; 
-		for (Iterator itr = contentExtensions.iterator(); itr.hasNext() && text == null; ) { 
-			text = findText((NavigatorContentExtension) itr.next(), anElement);
-		}
-		// decorate the element
-		return text == null ? "Null Label" : text; //$NON-NLS-1$
-	}
-	
-	/**
-	 * Search for text label and take overrides into account. 
-	 * Uses only simple ITreeContentProvider.getParent() style semantics. 
-	 */
-	private String findText(NavigatorContentExtension foundExtension, Object anElement) { 
-		String text = null; 
-		INavigatorContentDescriptor foundDescriptor;  
-		text = foundExtension.getLabelProvider().getText(anElement); 
-		if(text == null && (foundDescriptor = foundExtension.getDescriptor()).getOverriddenDescriptor() != null) {
-			return findText(contentService.getExtension(foundDescriptor.getOverriddenDescriptor()), anElement);
-		}  
-		return text;
-	}
-	
-	/**
-	 * Search for image and take overrides into account. 
-	 * Uses only simple ITreeContentProvider.getParent() style semantics. 
-	 */
-	private Image findImage(NavigatorContentExtension foundExtension, Object anElement) { 
-		Image image = null;
-		INavigatorContentDescriptor foundDescriptor;  
-		image = foundExtension.getLabelProvider().getImage(anElement); 
-		if(image == null && (foundDescriptor = foundExtension.getDescriptor()).getOverriddenDescriptor() != null) {
-			return findImage(contentService.getExtension(foundDescriptor.getOverriddenDescriptor()), anElement);
-		}  
-		return image;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-	 */
-	public Font getFont(Object anElement) {
-		ILabelProvider[] labelProviders = contentService.findRelevantLabelProviders(anElement);
-		for (int i = 0; i < labelProviders.length; i++) {
-			ILabelProvider provider = labelProviders[i];
-			if (provider instanceof IFontProvider) {
-				IFontProvider fontProvider = (IFontProvider) provider;
-				Font font = fontProvider.getFont(anElement);
-				if (font != null) {
-					return font;
-				}
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-	 */
-	public Color getForeground(Object anElement) {
-		ILabelProvider[] labelProviders = contentService.findRelevantLabelProviders(anElement);
-		for (int i = 0; i < labelProviders.length; i++) {
-			ILabelProvider provider = labelProviders[i];
-			if (provider instanceof IColorProvider) {
-				IColorProvider colorProvider = (IColorProvider) provider;
-				Color color = colorProvider.getForeground(anElement);
-				if (color != null) {
-					return color;
-				}
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-	 */
-	public Color getBackground(Object anElement) {
-		ILabelProvider[] labelProviders = contentService.findRelevantLabelProviders(anElement);
-		for (int i = 0; i < labelProviders.length; i++) {
-			ILabelProvider provider = labelProviders[i];
-			if (provider instanceof IColorProvider) {
-				IColorProvider colorProvider = (IColorProvider) provider;
-				Color color = colorProvider.getBackground(anElement);
-				if (color != null) {
-					return color;
-				}
-			}
-		}
-		return null;
-	}	
-
-	/**
-	 * <p>
-	 * Indicates whether anElelement has aProperty that affects the display of the label.
-	 * </p>
-	 * {@inheritDoc}
-	 * 
-	 * @param anElement
-	 *            An element from the Tree Viewer
-	 * @param aProperty
-	 *            A property of the given element that could be a label provider
-	 * @return True if any of the extensions enabled on anElement consider aProperty a
-	 *         label-changing property.
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object,
-	 *      java.lang.String)
-	 */
-	public boolean isLabelProperty(Object anElement, String aProperty) {
-		boolean result = false;
-		ILabelProvider[] labelProviders = contentService.findRelevantLabelProviders(anElement);
-		for (int i = 0; i < labelProviders.length && !result; i++) {
-			result = labelProviders[i].isLabelProperty(anElement, aProperty);
-		}
-		return result;
-	}
-
-
-	/**
-	 * <p>
-	 * Label provider listeners are currently supported.
-	 * </p>
-	 * 
-	 * {@inheritDoc}
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void addListener(ILabelProviderListener aListener) {
-		addListenerObject(aListener);
-	}
-
-	/**
-	 * <p>
-	 * Label provider listeners are currently supported.
-	 * </p>
-	 * 
-	 * {@inheritDoc}
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void removeListener(ILabelProviderListener aListener) {
-		removeListenerObject(aListener);
-	}
-
-	/**
-	 * <p>
-	 * Dispose of the content service, if it was created and not supplied.
-	 * </p>
-	 * <p>
-	 * <b>If a client uses this class outside of the framework of {@link CommonViewer}, this method
-	 * must be called when finished. </b>
-	 * </p>
-	 * 
-	 * {@inheritDoc}
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-	 */
-	public void dispose() {
-		if (isContentServiceSelfManaged) {
-			contentService.dispose();
-		}
-
-	}
-	
-	/**
-     * 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[] theListeners = getListeners();
-        for (int i = 0; i < theListeners.length; ++i) {
-            final ILabelProviderListener l = (ILabelProviderListener) theListeners[i];
-            SafeRunner.run(new SafeRunnable() {
-                public void run() {
-                    l.labelProviderChanged(event);
-                }
-            });
-
-        }
-    }
-
-	/* (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) { 
-		 
-		Set contentExtensions = contentService.findContentExtensionsWithPossibleChild(elementPath.getLastSegment());
-		reusableLabel.reset(label);
-		for (Iterator itr = contentExtensions.iterator(); itr.hasNext() && !(reusableLabel.isValid() && reusableLabel.hasChanged()); ) {			 
-			findUpdateLabel((NavigatorContentExtension)itr.next(), reusableLabel, elementPath);			 
-		}
-		reusableLabel.fill(label);
-	}
-
-
-	/**
-	 * Search for text label and take overrides into account. 
-	 * Uses only simple ITreeContentProvider.getParent() style semantics. 
-	 */
-	private void findUpdateLabel(NavigatorContentExtension foundExtension, ReusableViewerLabel label, TreePath elementPath) {
-		
-		ILabelProvider labelProvider = foundExtension.getLabelProvider();
-		if (labelProvider instanceof ITreePathLabelProvider) {
-			ITreePathLabelProvider tplp = (ITreePathLabelProvider) labelProvider;
-			tplp.updateLabel(label, elementPath);
-		} else {
-			label.setImage(labelProvider.getImage(elementPath.getLastSegment()));
-			label.setText(labelProvider.getText(elementPath.getLastSegment()));
-		}		
-		 
-		if(shouldContinue(label, foundExtension)) {
-			findUpdateLabel(contentService.getExtension(foundExtension.getDescriptor().getOverriddenDescriptor()), label, elementPath);
-		}   
-	}
- 
-	private boolean shouldContinue(ReusableViewerLabel label, NavigatorContentExtension foundExtension) {
-
-		if(foundExtension.getDescriptor().getOverriddenDescriptor() != null) {			
-			return !(label.isValid() && label.hasChanged()); 
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILabelProviderListener#labelProviderChanged(org.eclipse.jface.viewers.LabelProviderChangedEvent)
-	 */
-	public void labelProviderChanged(LabelProviderChangedEvent event) { 
-		fireLabelProviderChanged(event);		
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorFilterService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorFilterService.java
deleted file mode 100644
index ddd50a5..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorFilterService.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.internal.navigator;
-
-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.Assert;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.ui.internal.navigator.filters.CommonFilterDescriptor;
-import org.eclipse.ui.internal.navigator.filters.CommonFilterDescriptorManager;
-import org.eclipse.ui.internal.navigator.filters.SkeletonViewerFilter;
-import org.eclipse.ui.navigator.ICommonFilterDescriptor;
-import org.eclipse.ui.navigator.INavigatorFilterService;
-
-/**
- * @since 3.2
- * 
- */
-public class NavigatorFilterService implements INavigatorFilterService {
-
-	private static final ViewerFilter[] NO_FILTERS = new ViewerFilter[0];
-
-	private static final String ACTIVATION_KEY = ".filterActivation"; //$NON-NLS-1$
-
-	private static final String DELIM = ":"; //$NON-NLS-1$
-
-	private final NavigatorContentService contentService;
-
-	/* Map of (ICommonFilterDescriptor, ViewerFilter)-pairs */
-	private final Map declaredViewerFilters = new HashMap();
-
-	/* Set of ViewerFilters enforced from visible/active content extensions */
-	private final Set enforcedViewerFilters = new HashSet();
-
-	/* A set of active filter String ids */
-	private final Set activeFilters = new HashSet();
-
-	/**
-	 * @param aContentService
-	 *            The corresponding content service
-	 */
-	public NavigatorFilterService(NavigatorContentService aContentService) {
-		contentService = aContentService;
-		restoreFilterActivation();
-	}
-
-	private synchronized void restoreFilterActivation() {
-
-		try {
-			Preferences preferences = NavigatorPlugin.getDefault()
-					.getPluginPreferences();
-
-			if (preferences.contains(getFilterActivationPreferenceKey())) {
-				String activatedFiltersPreferenceValue = preferences
-						.getString(getFilterActivationPreferenceKey());
-				String[] activeFilterIds = activatedFiltersPreferenceValue
-						.split(DELIM);
-				for (int i = 0; i < activeFilterIds.length; i++) {
-					activeFilters.add(activeFilterIds[i]);
-				}
-
-			} else {
-				ICommonFilterDescriptor[] visibleFilterDescriptors = getVisibleFilterDescriptors();
-				for (int i = 0; i < visibleFilterDescriptors.length; i++) {
-					if (visibleFilterDescriptors[i].isActiveByDefault()) {
-						activeFilters.add(visibleFilterDescriptors[i].getId());
-					}
-				}
-			}
-
-		} catch (RuntimeException e) {
-			NavigatorPlugin.logError(0, e.getMessage(), e);
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorFilterService#persistFilterActivationState()
-	 */
-	public void persistFilterActivationState() {
-
-		try {
-			synchronized (activeFilters) {
-
-				/* by creating a StringBuffer with DELIM, we ensure the string is not empty when persisted.*/
-				StringBuffer activatedFiltersPreferenceValue = new StringBuffer(DELIM);
-
-				for (Iterator activeItr = activeFilters.iterator(); activeItr
-						.hasNext();) {
-					activatedFiltersPreferenceValue.append(
-							activeItr.next().toString()).append(DELIM);
-				}
-
-				Preferences preferences = NavigatorPlugin.getDefault()
-						.getPluginPreferences();
-
-				preferences.setValue(getFilterActivationPreferenceKey(),
-						activatedFiltersPreferenceValue.toString());
-			}
-
-		} catch (RuntimeException e) {
-			NavigatorPlugin.logError(0, e.getMessage(), e);
-		}
-
-	}
-
-	/**
-	 * @return The correct filter activation preference key for the
-	 *         corresponding content service.
-	 */
-	private String getFilterActivationPreferenceKey() {
-		return contentService.getViewerId() + ACTIVATION_KEY;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorFilterService#getVisibleFilters(boolean)
-	 */
-	public ViewerFilter[] getVisibleFilters(boolean toReturnOnlyActiveFilters) {
-		CommonFilterDescriptor[] descriptors = CommonFilterDescriptorManager
-				.getInstance().findVisibleFilters(contentService);
-
-		List filters = new ArrayList();
-
-		ViewerFilter instance;
-		for (int i = 0; i < descriptors.length; i++) {
-			if (!toReturnOnlyActiveFilters || isActive(descriptors[i].getId())) {
-				instance = getViewerFilter(descriptors[i]);
-				if (instance != null) {
-					filters.add(instance);
-				}
-			}
-		}
-
-		/* return the enforced viewer filters always */
-		filters.addAll(enforcedViewerFilters);
-
-		if (filters.size() == 0) {
-			return NO_FILTERS;
-		}
-		return (ViewerFilter[]) filters
-				.toArray(new ViewerFilter[filters.size()]);
-	}
-
-	/**
-	 * @param descriptor
-	 *            A key into the viewerFilters map.
-	 * @return A non-null ViewerFilter from the extension (or
-	 *         {@link SkeletonViewerFilter#INSTANCE}).
-	 */
-	public ViewerFilter getViewerFilter(ICommonFilterDescriptor descriptor) {
-		ViewerFilter filter = (ViewerFilter) declaredViewerFilters
-				.get(descriptor);
-		if (filter != null) {
-			return filter;
-		}
-		synchronized (declaredViewerFilters) {
-			filter = (ViewerFilter) declaredViewerFilters.get(descriptor);
-			if (filter == null) {
-				declaredViewerFilters.put(descriptor,
-						(filter = ((CommonFilterDescriptor) descriptor)
-								.createFilter()));
-			}
-		}
-		return filter;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorFilterService#getVisibleFilterIds()
-	 */
-	public ICommonFilterDescriptor[] getVisibleFilterDescriptors() {
-		return CommonFilterDescriptorManager.getInstance().findVisibleFilters(
-				contentService);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorFilterService#isActive(java.lang.String)
-	 */
-	public boolean isActive(String aFilterId) {
-		synchronized (activeFilters) {
-			return activeFilters.contains(aFilterId);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorFilterService#activateFilters(java.lang.String[])
-	 */
-	public void setActiveFilterIds(String[] theFilterIds) {
-		Assert.isNotNull(theFilterIds);
-		synchronized (activeFilters) {
-			activeFilters.clear();
-			activeFilters.addAll(Arrays.asList(theFilterIds));
-		}
-	}
-
-	/**
-	 * Activate the given array without disabling all other filters.
-	 * 
-	 * @param theFilterIds
-	 *            The filter ids to activate.
-	 */
-	public void addActiveFilterIds(String[] theFilterIds) {
-		Assert.isNotNull(theFilterIds);
-		synchronized (activeFilters) {
-			activeFilters.addAll(Arrays.asList(theFilterIds));
-		}
-	}
-	
-	/**
-	 * 
-	 * @param aFilterId The id of the filter to activate or deactivate
-	 * @param toMakeActive True to make the filter active, false to make the filter inactive
-	 */
-	public void setActive(String aFilterId, boolean toMakeActive) {
-
-		synchronized (activeFilters) {
-			boolean isActive = activeFilters.contains(aFilterId);
-			if(isActive ^ toMakeActive) {
-				if(toMakeActive)
-					activeFilters.remove(aFilterId);
-				else
-					activeFilters.add(aFilterId);
-					
-			}
-				
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorImages.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorImages.java
deleted file mode 100644
index 01fe175..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorImages.java
+++ /dev/null
@@ -1,86 +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;
-
-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.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-
-/**
- *  
- * 
- * @since 3.2
- */
-public class NavigatorImages {
-
-	// Create image registry
-	private final static ImageRegistry NAVIGATOR_PLUGIN_REGISTRY = NavigatorPlugin
-			.getDefault().getImageRegistry();
-
-	private static URL ICONS_LOCATION;
-	static {
-		ICONS_LOCATION = FileLocator.find(NavigatorPlugin.getDefault()
-				.getBundle(), new Path("icons/full/"), Collections.EMPTY_MAP); //$NON-NLS-1$  
-	}
-
-	/**
-	 * Gets the current image.
-	 * 
-	 * @param key
-	 *            Name of the icon.
-	 * @return Image
-	 */
-	public static Image get(String key) {
-		return NAVIGATOR_PLUGIN_REGISTRY.get(key);
-	}
-
-	/**
-	 * Create and returns a image descriptor and adds the image to the
-	 * registery.
-	 * 
-	 * @param prefix
-	 *            Icon dir structure.
-	 * @param name
-	 *            The name of the icon.
-	 * @return ImageDescriptor
-	 */
-	public static ImageDescriptor createManaged(String prefix, String name) {
-		ImageDescriptor result = ImageDescriptor.createFromURL(makeIconFileURL(
-				prefix, name));
-		NAVIGATOR_PLUGIN_REGISTRY.put(name, result);
-		return result;
-	}
-
-	/**
-	 * 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(ICONS_LOCATION, buffer.toString());
-		} catch (MalformedURLException ex) {
-			return null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPipelineService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPipelineService.java
deleted file mode 100644
index 238e1f2..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPipelineService.java
+++ /dev/null
@@ -1,312 +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;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptor;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentExtension;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorPipelineService;
-import org.eclipse.ui.navigator.IPipelinedTreeContentProvider;
-import org.eclipse.ui.navigator.PipelinedShapeModification;
-import org.eclipse.ui.navigator.PipelinedViewerUpdate;
-
-/**
- * @since 3.2
- * 
- */
-public class NavigatorPipelineService implements INavigatorPipelineService {
-
-	private NavigatorContentService contentService;
-
-	/**
-	 * Create a pipeline assistnat for the given content service.
-	 * 
-	 * @param aContentService
-	 *            The content service that will drive this pipeline assistant.
-	 */
-	public NavigatorPipelineService(NavigatorContentService aContentService) {
-		contentService = aContentService;
-	}
-
-	/**
-	 * Intercept attempts to add elements directly to the viewer.
-	 * 
-	 * <p>
-	 * For content extensions that reshape the structure of children in a
-	 * viewer, their overridden extensions may sometimes use optimized refreshes
-	 * to add elements to the tree. These attempts must be intercepted and
-	 * mapped to the correct set of model elements in the overridding extension.
-	 * Clients may add, remove, or modify elements in the given set of added
-	 * children. Clients should return a set for downstream extensions to
-	 * massage further.
-	 * </p>
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param anAddModification
-	 *            The shape modification which contains the current suggested
-	 *            parent and children. Clients may modify this parameter
-	 *            directly and return it as the new shape modification.
-	 * @return The new shape modification to use. Clients should <b>never</b>
-	 *         return <b>null</b> from this method.
-	 */
-	public PipelinedShapeModification interceptAdd(
-			PipelinedShapeModification anAddModification) {
-		
-		ContributorTrackingSet trackedSet =(ContributorTrackingSet) anAddModification.getChildren();
-		
-		Set contentDescriptors = contentService.findDescriptorsByTriggerPoint(anAddModification.getParent());
-		for (Iterator descriptorsItr = contentDescriptors.iterator(); descriptorsItr.hasNext();) {
-			INavigatorContentDescriptor descriptor = (INavigatorContentDescriptor) descriptorsItr.next();
-			pipelineInterceptAdd(anAddModification, trackedSet, descriptor); 
-		}
-		 
-		return anAddModification;
-
-	}
- 
-	private void pipelineInterceptAdd(PipelinedShapeModification anAddModification, ContributorTrackingSet trackedSet, INavigatorContentDescriptor descriptor) {
-		if(descriptor.hasOverridingExtensions()) {
-			Set overridingDescriptors = descriptor.getOverriddingExtensions();
-			for (Iterator overridingDescriptorsItr = overridingDescriptors.iterator(); overridingDescriptorsItr
-					.hasNext();) {
-				INavigatorContentDescriptor overridingDescriptor = (INavigatorContentDescriptor) overridingDescriptorsItr.next();
-				if(contentService.isVisible(overridingDescriptor.getId()) && contentService.isActive(overridingDescriptor.getId())) {
-					trackedSet.setContributor((NavigatorContentDescriptor) overridingDescriptor);
-					NavigatorContentExtension extension = contentService.getExtension(overridingDescriptor);
-					((IPipelinedTreeContentProvider) extension.internalGetContentProvider()).interceptAdd(anAddModification);					
-					trackedSet.setContributor(null);
-					pipelineInterceptAdd(anAddModification, trackedSet, overridingDescriptor);
-				}
-			}		
-		}
-	} 
-	 
-
-	/**
-	 * Intercept attempts to remove elements directly from the viewer.
-	 * 
-	 * <p>
-	 * For content extensions that reshape the structure of children in a
-	 * viewer, their overridden extensions may sometimes use optimized refreshes
-	 * to remove elements to the tree. These attempts must be intercepted and
-	 * mapped to the correct set of model elements in the overridding extension.
-	 * Clients may add, remove, or modify elements in the given set of removed
-	 * children. Clients should return a set for downstream extensions to
-	 * massage further.
-	 * </p>
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param aRemoveModification
-	 *            The shape modification which contains the current suggested
-	 *            parent and children. Clients may modify this parameter
-	 *            directly and return it as the new shape modification.
-	 * @return The new shape modification to use. Clients should <b>never</b>
-	 *         return <b>null</b> from this method.
-	 */
-	public PipelinedShapeModification interceptRemove(
-			PipelinedShapeModification aRemoveModification) {
-		
-		ContributorTrackingSet trackedSet =(ContributorTrackingSet) aRemoveModification.getChildren(); 
-
-		Set interestedExtensions = new LinkedHashSet(); 	
-		for (Iterator iter = trackedSet.iterator(); iter.hasNext();) {
-			Object element = (Object) iter.next();
-			if(element instanceof TreePath) {
-				interestedExtensions.addAll(contentService.findOverrideableContentExtensionsForPossibleChild(((TreePath)element).getLastSegment()));
-			} else { 
-				interestedExtensions = contentService.findOverrideableContentExtensionsForPossibleChild(element);
-				
-			} 
-		}
-		for (Iterator overridingExtensionsIter = interestedExtensions.iterator(); overridingExtensionsIter.hasNext();)  
-			pipelineInterceptRemove(aRemoveModification, trackedSet, (NavigatorContentExtension) overridingExtensionsIter.next());
-		return aRemoveModification;
-	}
-	
-
-	private void pipelineInterceptRemove(PipelinedShapeModification aRemoveModification, ContributorTrackingSet trackedSet, NavigatorContentExtension overrideableExtension) {
-		
-		
-		try {
-			NavigatorContentExtension overridingExtension = null;
-			Set overridingExtensions = new LinkedHashSet();
-			for (Iterator iter = trackedSet.iterator(); iter.hasNext();) {
-				Object element = (Object) iter.next();
-				if(element instanceof TreePath) {
-					overridingExtensions.addAll(Arrays.asList(overrideableExtension.getOverridingExtensionsForPossibleChild(((TreePath)element).getLastSegment())));
-				} else { 
-					overridingExtensions.addAll(Arrays.asList(overrideableExtension.getOverridingExtensionsForPossibleChild(element)));				
-				} 
-			}
-			 
-			for (Iterator extensionsItr = overridingExtensions.iterator(); extensionsItr.hasNext();) {
-				overridingExtension = (NavigatorContentExtension) extensionsItr.next();
-				trackedSet.setContributor((NavigatorContentDescriptor) overridingExtension.getDescriptor());
-				if (overridingExtension.getContentProvider() instanceof IPipelinedTreeContentProvider) {
-					((IPipelinedTreeContentProvider) overridingExtension.getContentProvider()).interceptRemove(aRemoveModification);
-				}
-				trackedSet.setContributor(null);
-				if(overridingExtension.getDescriptor().hasOverridingExtensions())
-					pipelineInterceptRemove(aRemoveModification, trackedSet, overridingExtension);
-												
-			} 	
-			
-		} catch (Throwable e) {
-			String msg = e.getMessage() != null ? e.getMessage()  : e.toString();
-			NavigatorPlugin.logError(0, msg, e);
-		}  
-	}
-
-	/**
-	 * Intercept calls to viewer <code>refresh()</code> methods.
-	 * 
-	 * <p>
-	 * Clients may modify the given update to add or remove the elements to be
-	 * refreshed. Clients may return the same instance that was passed in for
-	 * the next downstream extension.
-	 * </p>
-	 * 
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param aRefreshSynchronization
-	 *            The (current) refresh update to execute against the viewer.
-	 * @return The (potentially reshaped) refresh to execute against the viewer.
-	 */
-	public boolean interceptRefresh(
-			PipelinedViewerUpdate aRefreshSynchronization) {
- 
-		boolean pipelined = false;
-		Object refreshable = null;
-		Set overrideableExtensions = new LinkedHashSet();
-		for (Iterator iter = aRefreshSynchronization.getRefreshTargets().iterator(); iter.hasNext();) {
-			refreshable = iter.next();
-			overrideableExtensions.addAll(contentService.findOverrideableContentExtensionsForPossibleChild(refreshable));
-		}
-		for (Iterator overrideableExtensionItr = overrideableExtensions.iterator(); overrideableExtensionItr.hasNext();) { 
-			pipelined |= pipelineInterceptRefresh((NavigatorContentExtension) overrideableExtensionItr.next(), aRefreshSynchronization, refreshable);
-		}
-
-		return pipelined;
-		
-	}
-
-	private boolean pipelineInterceptRefresh(NavigatorContentExtension overrideableExtension,
-			PipelinedViewerUpdate aRefreshSynchronization, Object refreshable) {
-
-		boolean intercepted = false;
-		
-		NavigatorContentExtension[] overridingExtensionsForPossibleChild = overrideableExtension.getOverridingExtensionsForPossibleChild(refreshable);
-		for (int i=0; i<overridingExtensionsForPossibleChild.length; i++) { 
-			try {
-				if (overridingExtensionsForPossibleChild[i].getContentProvider() instanceof IPipelinedTreeContentProvider) {
-
-					intercepted |= ((IPipelinedTreeContentProvider) overridingExtensionsForPossibleChild[i]
-							.getContentProvider())
-							.interceptRefresh(aRefreshSynchronization);
-					
-					if (overridingExtensionsForPossibleChild[i].getDescriptor().hasOverridingExtensions())  
-						intercepted |= pipelineInterceptRefresh(overridingExtensionsForPossibleChild[i], aRefreshSynchronization, refreshable);					
-				}
-			} catch (Throwable e) {
-				String msg = e.getMessage() != null ? e.getMessage()  : e.toString();
-				NavigatorPlugin.logError(0, msg, e);
-			}  
-		}
-
-		return intercepted;
-	}
-	
-
-
-	/**
-	 * Intercept calls to viewer <code>update()</code> methods.
-	 * 
-	 * <p>
-	 * Clients may modify the given update to add or remove the elements to be
-	 * updated. Clients may also add or remove properties for the given targets
-	 * to optimize the refresh. Clients may return the same instance that was
-	 * passed in for the next downstream extension.
-	 * </p>
-	 * 
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param anUpdateSynchronization
-	 *            The (current) update to execute against the viewer.
-	 * @return The (potentially reshaped) update to execute against the viewer.
-	 */
-	public boolean interceptUpdate(
-			PipelinedViewerUpdate anUpdateSynchronization) { 
-		 
-		boolean pipelined = false;
-		Object refreshable = null;
-
-		Set overrideableExtensions = new LinkedHashSet();
-		for (Iterator iter = anUpdateSynchronization.getRefreshTargets().iterator(); iter.hasNext();) {
-			refreshable = iter.next();
-			overrideableExtensions.addAll(contentService.findOverrideableContentExtensionsForPossibleChild(refreshable));
-		}
-		for (Iterator overrideableExtensionItr = overrideableExtensions.iterator(); overrideableExtensionItr.hasNext();) { 
-			pipelined |= pipelineInterceptUpdate((NavigatorContentExtension) overrideableExtensionItr.next(), anUpdateSynchronization, refreshable);
-		}
-
-		return pipelined;
-		
-	}
-
-	private boolean pipelineInterceptUpdate(NavigatorContentExtension overrideableExtension,
-					PipelinedViewerUpdate anUpdateSynchronization, Object refreshable) {
-
-		boolean intercepted = false; 
-		NavigatorContentExtension[] overridingExtensionsForPossibleChild = overrideableExtension.getOverridingExtensionsForPossibleChild(refreshable);
-		for (int i=0; i<overridingExtensionsForPossibleChild.length; i++) { 
-			try {
-				if (overridingExtensionsForPossibleChild[i].getContentProvider() instanceof IPipelinedTreeContentProvider) {
-
-					intercepted |= ((IPipelinedTreeContentProvider) overridingExtensionsForPossibleChild[i]
-							.getContentProvider())
-							.interceptUpdate(anUpdateSynchronization);
-					
-					if (overridingExtensionsForPossibleChild[i].getDescriptor().hasOverridingExtensions())  
-						intercepted |= pipelineInterceptUpdate(overridingExtensionsForPossibleChild[i], anUpdateSynchronization, refreshable);					
-				}
-			} catch (Throwable e) {
-				String msg = e.getMessage() != null ? e.getMessage()  : e.toString();
-				NavigatorPlugin.logError(0, msg, e);
-			}  
-		}
-
-		return intercepted;
-	} 
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPlugin.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPlugin.java
deleted file mode 100644
index 6dfd4f3..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPlugin.java
+++ /dev/null
@@ -1,198 +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;
-
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleEvent;
-import org.osgi.framework.BundleListener;
-
-/**
- * The main plugin class for the Navigator. 
- *  
- * @since 3.2
- */
-public class NavigatorPlugin extends AbstractUIPlugin {
-	// The shared instance.
-	private static NavigatorPlugin plugin;
-	
-	private static final int LOG_DELAY = 100;
-	
-	private static class LogJob extends Job { 		
-		
-		
-		private ListenerList messages = new ListenerList() {
-			
-			public synchronized Object[] getListeners() {
-				Object[] mesgs = super.getListeners();
-				clear();
-				return mesgs;
-			}
-		};
-
-		
-		/**
-		 * Creates a Job which offloads the logging work into a non-UI thread.
-		 *
-		 */
-		public LogJob() {
-			super("");  //$NON-NLS-1$
-			setSystem(true); 
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-		 */
-		protected IStatus run(IProgressMonitor monitor) {
-			
-			Object[] mesgs = messages.getListeners();
-			ILog pluginLog = getDefault().getLog();
-			for (int i = 0; i < mesgs.length; i++) {
-				pluginLog.log((IStatus)mesgs[i]);
-			}
-			return Status.OK_STATUS;
-						
-		}
-		
-		/**
-		 * @param mesg The message to add to the Plugin's log.
-		 */
-		public void log(IStatus mesg) {
-			messages.add(mesg);
-
-		}
-		
-	}
-	
-	private static final LogJob logJob = new LogJob(); 
-
-	/** The id of the orge.eclipse.ui.navigator plugin. */
-	public static String PLUGIN_ID = "org.eclipse.ui.navigator"; //$NON-NLS-1$
-
-	private BundleListener bundleListener = new BundleListener() {
-		public void bundleChanged(BundleEvent event) {
-			NavigatorSaveablesService.bundleChanged(event);
-		}
-	};
-
-	/**
-	 * Creates a new instance of the receiver
-	 */
-	public NavigatorPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * @return the shared instance.
-	 */
-	public static NavigatorPlugin 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(PLUGIN_ID, path);
-	} 
-
-	/**
-	 * 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);
-		logJob.log(aStatus);
-		logJob.schedule(LOG_DELAY);
-	}
-
-	/**
-	 * 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);
-	}
-
-	public void start(BundleContext context) throws Exception {
-		// System.out.println("Navigator plugin starting"); //$NON-NLS-1$
-		super.start(context);
-		context.addBundleListener(bundleListener);
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		context.removeBundleListener(bundleListener);
-		super.stop(context);
-		// System.out.println("Navigator plugin stopped"); //$NON-NLS-1$
-	}
-	
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSaveablesService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSaveablesService.java
deleted file mode 100644
index fb24770..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSaveablesService.java
+++ /dev/null
@@ -1,589 +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;
-
-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 java.util.TreeMap;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ITreePathContentProvider;
-import org.eclipse.jface.viewers.ITreeSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.ISaveablesLifecycleListener;
-import org.eclipse.ui.ISaveablesSource;
-import org.eclipse.ui.Saveable;
-import org.eclipse.ui.SaveablesLifecycleEvent;
-import org.eclipse.ui.internal.navigator.VisibilityAssistant.VisibilityListener;
-import org.eclipse.ui.internal.navigator.extensions.ExtensionPriorityComparator;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptor;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentExtension;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorSaveablesService;
-import org.eclipse.ui.navigator.SaveablesProvider;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleEvent;
-
-/**
- * Implementation of INavigatorSaveablesService.
- * <p>
- * Implementation note: all externally callable methods are synchronized. The
- * private helper methods are not synchronized since they can only be called
- * from methods that already hold the lock.
- * </p>
- * @since 3.2
- * 
- */
-public class NavigatorSaveablesService implements INavigatorSaveablesService, VisibilityListener {
-
-	private NavigatorContentService contentService;
-
-	private static List instances = new ArrayList();
-
-	/**
-	 * @param contentService
-	 */
-	public NavigatorSaveablesService(NavigatorContentService contentService) {
-		this.contentService = contentService;
-	}
-
-	private static void addInstance(NavigatorSaveablesService saveablesService) {
-		synchronized (instances) {
-			instances.add(saveablesService);
-		}
-	}
-
-	private static void removeInstance(
-			NavigatorSaveablesService saveablesService) {
-		synchronized (instances) {
-			instances.remove(saveablesService);
-		}
-	}
-
-	/**
-	 * @param event
-	 */
-	/* package */ static void bundleChanged(BundleEvent event) {
-		synchronized(instances) {
-			if (event.getType() == BundleEvent.STARTED) {
-				// System.out.println("bundle started: " + event.getBundle().getSymbolicName()); //$NON-NLS-1$
-				for (Iterator it = instances.iterator(); it.hasNext();) {
-					NavigatorSaveablesService instance = (NavigatorSaveablesService) it
-							.next();
-					instance.handleBundleStarted(event.getBundle()
-							.getSymbolicName());
-				}
-			} else if (event.getType() == BundleEvent.STOPPED) {
-				// System.out.println("bundle stopped: " + event.getBundle().getSymbolicName()); //$NON-NLS-1$
-				for (Iterator it = instances.iterator(); it.hasNext();) {
-					NavigatorSaveablesService instance = (NavigatorSaveablesService) it
-							.next();
-					instance.handleBundleStopped(event.getBundle()
-							.getSymbolicName());
-				}
-			}
-		}
-	}
-
-	private class LifecycleListener implements ISaveablesLifecycleListener {
-		public void handleLifecycleEvent(SaveablesLifecycleEvent event) {
-			Saveable[] saveables = event.getSaveables();
-			switch (event.getEventType()) {
-			case SaveablesLifecycleEvent.POST_OPEN:
-				recomputeSaveablesAndNotify(false, null);
-				break;
-			case SaveablesLifecycleEvent.POST_CLOSE:
-				recomputeSaveablesAndNotify(false, null);
-				break;
-			case SaveablesLifecycleEvent.DIRTY_CHANGED:
-				Saveable[] shownSaveables = getShownSaveables(saveables);
-				if (shownSaveables.length > 0) {
-					outsideListener
-							.handleLifecycleEvent(new SaveablesLifecycleEvent(
-									saveablesSource,
-									SaveablesLifecycleEvent.DIRTY_CHANGED,
-									shownSaveables, false));
-				}
-				break;
-			}
-		}
-	}
-
-	private Saveable[] currentSaveables;
-
-	private ISaveablesLifecycleListener outsideListener;
-
-	private ISaveablesLifecycleListener saveablesLifecycleListener = new LifecycleListener();
-
-	private ISaveablesSource saveablesSource;
-
-	private StructuredViewer viewer;
-
-	private SaveablesProvider[] saveablesProviders;
-
-	private DisposeListener disposeListener = new DisposeListener() {
-
-		public void widgetDisposed(DisposeEvent e) {
-			synchronized (this) {
-				if (saveablesProviders != null) {
-					for (int i = 0; i < saveablesProviders.length; i++) {
-						saveablesProviders[i].dispose();
-					}
-				}
-				removeInstance(NavigatorSaveablesService.this);
-				contentService = null;
-				currentSaveables = null;
-				outsideListener = null;
-				saveablesLifecycleListener = null;
-				saveablesSource = null;
-				viewer = null;
-				saveablesProviders = null;
-				disposeListener = null;
-			}
-		}
-	};
-
-	private Map inactivePluginsWithSaveablesProviders;
-
-    /**
-	 * a TreeMap (NavigatorContentDescriptor->SaveablesProvider) which uses
-	 * ExtensionPriorityComparator.INSTANCE as its Comparator
-	 */
-	private Map saveablesProviderMap;
-
-	/**
-	 * Implementation note: This is not synchronized at the method level because it needs to
-	 * synchronize on "instances" first, then on "this", to avoid potential deadlock.
-	 * 
-	 * @param saveablesSource
-	 * @param viewer
-	 * @param outsideListener
-	 * 
-	 */
-	public void init(final ISaveablesSource saveablesSource,
-			final StructuredViewer viewer,
-			ISaveablesLifecycleListener outsideListener) {
-		// Synchronize on instances to make sure that we don't miss bundle started events. 
-		synchronized (instances) {
-			// Synchronize on this because we are calling computeSaveables.
-			// Synchronization must remain in this order to avoid deadlock.
-			// This might not be necessary because at this time, no other
-			// concurrent calls should be possible, but it doesn't hurt either.
-			// For example, the initialization sequence might change in the
-			// future.
-			synchronized (this) {
-				this.saveablesSource = saveablesSource;
-				this.viewer = viewer;
-				this.outsideListener = outsideListener;
-				currentSaveables = computeSaveables();
-				// add this instance after we are fully inialized.
-				addInstance(this);
-			}
-		}
-		viewer.getControl().addDisposeListener(disposeListener);
-	}
-
-	/** helper to compute the saveables for which elements are part of the tree.
-	 * Must be called from a synchronized method.
-	 * 
-	 * @return the saveables
-	 */ 
-	private Saveable[] computeSaveables() {
-		ITreeContentProvider contentProvider = (ITreeContentProvider) viewer
-				.getContentProvider();
-		boolean isTreepathContentProvider = contentProvider instanceof ITreePathContentProvider;
-		Object viewerInput = viewer.getInput();
-		List result = new ArrayList();
-		Set roots = new HashSet(Arrays.asList(contentProvider
-				.getElements(viewerInput)));
-		SaveablesProvider[] saveablesProviders = getSaveablesProviders();
-		for (int i = 0; i < saveablesProviders.length; i++) {
-			SaveablesProvider saveablesProvider = saveablesProviders[i];
-			Saveable[] saveables = saveablesProvider.getSaveables();
-			for (int j = 0; j < saveables.length; j++) {
-				Saveable saveable = saveables[j];
-				Object[] elements = saveablesProvider.getElements(saveable);
-				// the saveable is added to the result if at least one of the
-				// elements representing the saveable appears in the tree, i.e.
-				// if its parent chain leads to a root node.
-				boolean foundRoot = false;
-				for (int k = 0; !foundRoot && k < elements.length; k++) {
-					Object element = elements[k];
-					if (roots.contains(element)) {
-					    result.add(saveable);
-					    foundRoot = true;
-					} else if (isTreepathContentProvider) {
-						ITreePathContentProvider treePathContentProvider = (ITreePathContentProvider) contentProvider;
-						TreePath[] parentPaths = treePathContentProvider.getParents(element);
-						for (int l = 0; !foundRoot && l < parentPaths.length; l++) {
-							TreePath parentPath = parentPaths[l];
-                            for (int m = 0; !foundRoot && m < parentPath.getSegmentCount(); m++) {
-                                if (roots.contains(parentPath.getSegment(m))) {
-                                    result.add(saveable);
-                                    foundRoot = true;
-                                }
-                            }
-						}
-					} else {
-						while (!foundRoot && element != null) {
-							if (roots.contains(element)) {
-								// found a parent chain leading to a root. The
-								// saveable is part of the tree.
-								result.add(saveable);
-								foundRoot = true;
-							} else {
-								element = contentProvider.getParent(element);
-							}
-						}
-					}
-				}
-			}
-		}
-		return (Saveable[]) result.toArray(new Saveable[result.size()]);
-	}
-
-	public synchronized Saveable[] getActiveSaveables() {
-		ITreeContentProvider contentProvider = (ITreeContentProvider) viewer
-				.getContentProvider();
-		IStructuredSelection selection = (IStructuredSelection) viewer
-				.getSelection();
-		if (selection instanceof ITreeSelection) {
-			return getActiveSaveablesFromTreeSelection((ITreeSelection) selection);
-		} else if (contentProvider instanceof ITreePathContentProvider) {
-			return getActiveSaveablesFromTreePathProvider(selection, (ITreePathContentProvider) contentProvider);
-		} else {
-			return getActiveSaveablesFromTreeProvider(selection, contentProvider);
-		}
-	}
-	
-	/**
-	 * @param selection
-	 * @return the active saveables
-	 */
-	private Saveable[] getActiveSaveablesFromTreeSelection(
-			ITreeSelection selection) {
-		Set result = new HashSet();
-		TreePath[] paths = selection.getPaths();
-		for (int i = 0; i < paths.length; i++) {
-			TreePath path = paths[i];
-			Saveable saveable = findSaveable(path);
-			if (saveable != null) {
-				result.add(saveable);
-			}
-		}
-		return (Saveable[]) result.toArray(new Saveable[result.size()]);
-	}
-
-	/**
-	 * @param selection
-	 * @param provider
-	 * @return the active saveables
-	 */
-	private Saveable[] getActiveSaveablesFromTreePathProvider(
-			IStructuredSelection selection, ITreePathContentProvider provider) {
-		Set result = new HashSet();
-		for (Iterator it = selection.iterator(); it.hasNext();) {
-			Object element = it.next();
-			Saveable saveable = getSaveable(element);
-			if (saveable != null) {
-				result.add(saveable);
-			} else {
-				TreePath[] paths = provider.getParents(element);
-				saveable = findSaveable(paths);
-				if (saveable != null) {
-					result.add(saveable);
-				}
-			}
-		}
-		return (Saveable[]) result.toArray(new Saveable[result.size()]);
-	}
-
-	/**
-	 * @param selection
-	 * @param contentProvider
-	 * @return the active saveables
-	 */
-	private Saveable[] getActiveSaveablesFromTreeProvider(
-			IStructuredSelection selection, ITreeContentProvider contentProvider) {
-		Set result = new HashSet();
-		for (Iterator it = selection.iterator(); it.hasNext();) {
-			Object element = it.next();
-			Saveable saveable = findSaveable(element, contentProvider);
-			if (saveable != null) {
-				result.add(saveable);
-			}
-		}
-		return (Saveable[]) result.toArray(new Saveable[result.size()]);
-	}
-
-	/**
-	 * @param element
-	 * @param contentProvider
-	 * @return the saveable, or null
-	 */
-	private Saveable findSaveable(Object element,
-			ITreeContentProvider contentProvider) {
-		while (element != null) {
-			Saveable saveable = getSaveable(element);
-			if (saveable != null) {
-				return saveable;
-			}
-			element = contentProvider.getParent(element);
-		}
-		return null;
-	}
-
-	/**
-	 * @param paths
-	 * @return the saveable, or null
-	 */
-	private Saveable findSaveable(TreePath[] paths) {
-		for (int i = 0; i < paths.length; i++) {
-			Saveable saveable = findSaveable(paths[i]);
-			if (saveable != null) {
-				return saveable;
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * @param path
-	 * @return a saveable, or null
-	 */
-	private Saveable findSaveable(TreePath path) {
-		int count = path.getSegmentCount();
-		for (int j = count - 1; j >= 0; j--) {
-			Object parent = path.getSegment(j);
-			Saveable saveable = getSaveable(parent);
-			if (saveable != null) {
-				return saveable;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * @param element
-	 * @return the saveable associated with the given element
-	 */
-	private Saveable getSaveable(Object element) {
-		if (saveablesProviderMap==null) {
-			// has the side effect of recomputing saveablesProviderMap:
-			getSaveablesProviders();
-		}
-        for(Iterator sItr = saveablesProviderMap.keySet().iterator(); sItr.hasNext();) {
-        	NavigatorContentDescriptor descriptor = (NavigatorContentDescriptor) sItr.next();
-                if(descriptor.isTriggerPoint(element) || descriptor.isPossibleChild(element)) {
-                	SaveablesProvider provider = (SaveablesProvider) saveablesProviderMap.get(descriptor);
-                	Saveable  saveable = provider.getSaveable(element);
-                        if(saveable != null) {
-                                return saveable;
-                        }
-                }
-        }
-        return null;
-	}
-
-	/**
-	 * @return the saveables
-	 */
-	public synchronized Saveable[] getSaveables() {
-		return currentSaveables;
-	}
-
-	/**
-	 * @return all SaveablesProvider objects
-	 */
-	private SaveablesProvider[] getSaveablesProviders() {
-		// TODO optimize this
-		if (saveablesProviders == null) {
-			inactivePluginsWithSaveablesProviders = new HashMap();
-			saveablesProviderMap = new TreeMap(ExtensionPriorityComparator.INSTANCE);
-			INavigatorContentDescriptor[] descriptors = contentService
-					.getActiveDescriptorsWithSaveables();
-			List result = new ArrayList();
-			for (int i = 0; i < descriptors.length; i++) {
-				NavigatorContentDescriptor descriptor = (NavigatorContentDescriptor) descriptors[i];
-				String pluginId = ((NavigatorContentDescriptor) descriptor)
-						.getContribution().getPluginId();
-				if (Platform.getBundle(pluginId).getState() != Bundle.ACTIVE) {
-					List inactiveDescriptors = (List) inactivePluginsWithSaveablesProviders
-							.get(pluginId);
-					if (inactiveDescriptors == null) {
-						inactiveDescriptors = new ArrayList();
-						inactivePluginsWithSaveablesProviders.put(pluginId,
-								inactiveDescriptors);
-					}
-					inactiveDescriptors.add(descriptor);
-				} else {
-					SaveablesProvider saveablesProvider = createSaveablesProvider(descriptor);
-					if (saveablesProvider != null) {
-						saveablesProvider.init(saveablesLifecycleListener);
-						result.add(saveablesProvider);
-						saveablesProviderMap.put(descriptor, saveablesProvider);
-					}
-				}
-			}
-			saveablesProviders = (SaveablesProvider[]) result
-					.toArray(new SaveablesProvider[result.size()]);
-		}
-		return saveablesProviders;
-	}
-
-	/**
-	 * @param descriptor
-	 * @return the SaveablesProvider, or null
-	 */
-	private SaveablesProvider createSaveablesProvider(NavigatorContentDescriptor descriptor) {
-		NavigatorContentExtension extension = contentService
-				.getExtension(descriptor, true);
-		ITreeContentProvider contentProvider = extension
-				.getContentProvider();
-        
-        return (SaveablesProvider)AdaptabilityUtility.getAdapter(contentProvider, SaveablesProvider.class);
-	}
-
-	private Saveable[] getShownSaveables(Saveable[] saveables) {
-		Set result = new HashSet(Arrays.asList(currentSaveables));
-		result.retainAll(Arrays.asList(saveables));
-		return (Saveable[]) result.toArray(new Saveable[result.size()]);
-	}
-
-	private void recomputeSaveablesAndNotify(boolean recomputeProviders,
-			String startedBundleIdOrNull) {
-		if (recomputeProviders && startedBundleIdOrNull == null
-				&& saveablesProviders != null) {
-			// a bundle was stopped, dispose of all saveablesProviders and
-			// recompute
-			// TODO optimize this
-			for (int i = 0; i < saveablesProviders.length; i++) {
-				saveablesProviders[i].dispose();
-			}
-			saveablesProviders = null;
-		} else if (startedBundleIdOrNull != null){
-			if(inactivePluginsWithSaveablesProviders.containsKey(startedBundleIdOrNull)) {
-				updateSaveablesProviders(startedBundleIdOrNull);
-			}
-		}
-		Set oldSaveables = new HashSet(Arrays.asList(currentSaveables));
-		currentSaveables = computeSaveables();
-		Set newSaveables = new HashSet(Arrays.asList(currentSaveables));
-		final Set removedSaveables = new HashSet(oldSaveables);
-		removedSaveables.removeAll(newSaveables);
-		final Set addedSaveables = new HashSet(newSaveables);
-		addedSaveables.removeAll(oldSaveables);
-		if (addedSaveables.size() > 0) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					outsideListener.handleLifecycleEvent(new SaveablesLifecycleEvent(
-							saveablesSource, SaveablesLifecycleEvent.POST_OPEN,
-							(Saveable[]) addedSaveables
-							.toArray(new Saveable[addedSaveables.size()]),
-							false));
-				}
-			});
-		}
-		// TODO this will make the closing of saveables non-cancelable.
-		// Ideally, we should react to PRE_CLOSE events and fire
-		// an appropriate PRE_CLOSE
-		if (removedSaveables.size() > 0) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					outsideListener
-							.handleLifecycleEvent(new SaveablesLifecycleEvent(
-									saveablesSource,
-									SaveablesLifecycleEvent.PRE_CLOSE,
-									(Saveable[]) removedSaveables
-											.toArray(new Saveable[removedSaveables
-													.size()]), true));
-					outsideListener
-							.handleLifecycleEvent(new SaveablesLifecycleEvent(
-									saveablesSource,
-									SaveablesLifecycleEvent.POST_CLOSE,
-									(Saveable[]) removedSaveables
-											.toArray(new Saveable[removedSaveables
-													.size()]), false));
-				}
-			});
-		}
-	}
-
-	/**
-	 * @param startedBundleId
-	 */
-	private void updateSaveablesProviders(String startedBundleId) {
-		List result = new ArrayList(Arrays.asList(saveablesProviders));
-		List descriptors = (List) inactivePluginsWithSaveablesProviders
-				.get(startedBundleId);
-		for (Iterator it = descriptors.iterator(); it.hasNext();) {
-			NavigatorContentDescriptor descriptor = (NavigatorContentDescriptor) it
-					.next();
-			SaveablesProvider saveablesProvider = createSaveablesProvider(descriptor);
-			if (saveablesProvider != null) {
-				saveablesProvider.init(saveablesLifecycleListener);
-				result.add(saveablesProvider);
-				saveablesProviderMap.put(descriptor, saveablesProvider);
-			}
-		}
-		saveablesProviders = (SaveablesProvider[]) result
-				.toArray(new SaveablesProvider[result.size()]);
-	}
-
-	/**
-	 * @param symbolicName
-	 */
-	private synchronized void handleBundleStarted(String symbolicName) {
-		// Guard against the case that this instance is not yet initialized,
-		// or already disposed.
-		if (saveablesSource != null) {
-			if (inactivePluginsWithSaveablesProviders.containsKey(symbolicName)) {
-				recomputeSaveablesAndNotify(true, symbolicName);
-			}
-		}
-	}
-
-	/**
-	 * @param symbolicName
-	 */
-	private synchronized void handleBundleStopped(String symbolicName) {
-		// Guard against the case that this instance is not yet initialized,
-		// or already disposed.
-		if (saveablesSource != null) {
-			recomputeSaveablesAndNotify(true, null);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.navigator.VisibilityAssistant.VisibilityListener#onVisibilityOrActivationChange()
-	 */
-	public synchronized void onVisibilityOrActivationChange() {
-		// Guard against the case that this instance is not yet initialized,
-		// or already disposed.
-		if (saveablesSource != null) {
-			recomputeSaveablesAndNotify(true, null);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSiteEditor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSiteEditor.java
deleted file mode 100644
index d7be8a4..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSiteEditor.java
+++ /dev/null
@@ -1,231 +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;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TreeEditor;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.internal.navigator.extensions.INavigatorSiteEditor;
-import org.eclipse.ui.navigator.CommonViewer;
-
-
-/**
- * A NavigatorSiteEditor is used to edit (i.e., rename) elements in a Navigator view. It displays a
- * text editor box overlay on the Navigator tree widget.
- *  
- * @since 3.2
- */
-public class NavigatorSiteEditor implements INavigatorSiteEditor {
-
-	private Tree navigatorTree;
-	private TreeEditor treeEditor;
-	private Text textEditor;
-	private Composite textEditorParent;
-	private TextActionHandler textActionHandler;
-	private String text; // the text being edited
-	private CommonViewer commonViewer;
-
-
-	/**
-	 * Creates an instance of a NavigatorSiteEditor.
-	 * 
-	 * @param aCommonViewer
-	 *            the viewer this editor applies to
-	 * @param navigatorTree
-	 *            the tree that is being edited
-	 */
-	public NavigatorSiteEditor(CommonViewer aCommonViewer, Tree navigatorTree) {
-		commonViewer = aCommonViewer;
-		this.navigatorTree = navigatorTree;
-		treeEditor = new TreeEditor(navigatorTree);
-	}
-
-	/**
-	 * Creates the parent composite for the editor overlay.
-	 * 
-	 * @return the parent composite for the editor overlay
-	 */
-	Composite createParent() {
-		Composite result = new Composite(navigatorTree, SWT.NONE);
-		TreeItem[] selectedItems = navigatorTree.getSelection();
-		treeEditor.horizontalAlignment = SWT.LEFT;
-		treeEditor.grabHorizontal = true;
-		treeEditor.setEditor(result, selectedItems[0]);
-		return result;
-	}
-
-	/**
-	 * Creates the text editor widget.
-	 * 
-	 * @param runnable
-	 *            the Runnable to execute when editing ends by the user pressing enter or clicking
-	 *            outside the text editor box.
-	 */
-	void createTextEditor(final Runnable runnable) {
-		// Create text editor parent. This draws a nice bounding rect.
-		textEditorParent = createParent();
-		textEditorParent.setVisible(false);
-		textEditorParent.addListener(SWT.Paint, new Listener() {
-			public void handleEvent(Event e) {
-				Point textSize = textEditor.getSize();
-				Point parentSize = textEditorParent.getSize();
-				e.gc.drawRectangle(0, 0, Math.min(textSize.x + 4, parentSize.x - 1), parentSize.y - 1);
-			}
-		});
-
-		// Create inner text editor.
-		textEditor = new Text(textEditorParent, SWT.NONE);
-		textEditorParent.setBackground(textEditor.getBackground());
-		textEditor.addListener(SWT.Modify, new Listener() {
-			public void handleEvent(Event e) {
-				Point textSize = textEditor.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				textSize.x += textSize.y; // Add extra space for new characters.
-				Point parentSize = textEditorParent.getSize();
-				textEditor.setBounds(2, 1, Math.min(textSize.x, parentSize.x - 4), parentSize.y - 2);
-				textEditorParent.redraw();
-			}
-		});
-		textEditor.addListener(SWT.Traverse, new Listener() {
-			public void handleEvent(Event event) {
-				//Workaround for Bug 20214 due to extra
-				//traverse events
-				switch (event.detail) {
-					case SWT.TRAVERSE_ESCAPE :
-						//Do nothing in this case
-						disposeTextWidget();
-						event.doit = true;
-						event.detail = SWT.TRAVERSE_NONE;
-						break;
-					case SWT.TRAVERSE_RETURN :
-						saveChangesAndDispose(runnable);
-						event.doit = true;
-						event.detail = SWT.TRAVERSE_NONE;
-						break;
-				}
-			}
-		});
-		textEditor.addFocusListener(new FocusAdapter() {
-			public void focusLost(FocusEvent fe) {
-				saveChangesAndDispose(runnable);
-			}
-		});
-
-		if (textActionHandler != null) {
-			textActionHandler.addText(textEditor);
-		}
-	}
-
-	/**
-	 * Closes the text editor widget.
-	 */
-	void disposeTextWidget() {
-		if (textActionHandler != null) {
-			textActionHandler.removeText(textEditor);
-		}
-		if (textEditorParent != null) {
-			textEditorParent.dispose();
-			textEditorParent = null;
-			textEditor = null;
-			treeEditor.setEditor(null, null);
-		}
-	}
-
-	/**
-	 * Displays a text editor overlay on the tree widget.
-	 * 
-	 * @param runnable
-	 *            Runnable to execute when editing ends either by the user pressing enter or
-	 *            clicking outside the editor box.
-	 */
-	public void edit(Runnable runnable) {
-		IStructuredSelection selection = (IStructuredSelection) commonViewer.getSelection();
-
-		if (selection.size() != 1) {
-			return;
-		}
-		text = getLabel(selection.getFirstElement());
-		if (text == null) {
-			return;
-		}
-		// Make sure text editor is created only once. Simply reset text
-		// editor when action is executed more than once. Fixes bug 22269.
-		if (textEditorParent == null) {
-			createTextEditor(runnable);
-		}
-		textEditor.setText(text);
-		// Open text editor with initial size.
-		textEditorParent.setVisible(true);
-		Point textSize = textEditor.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		textSize.x += textSize.y; // Add extra space for new characters.
-		Point parentSize = textEditorParent.getSize();
-		textEditor.setBounds(2, 1, Math.min(textSize.x, parentSize.x - 4), parentSize.y - 2);
-		textEditorParent.redraw();
-		textEditor.selectAll();
-		textEditor.setFocus();
-	}
-
-	/**
-	 * Returns the displayed label of the given element.
-	 * 
-	 * @param element
-	 *            the element that is displayed in the navigator
-	 * @return the displayed label of the given element.
-	 */
-	String getLabel(Object element) {
-		return ((ILabelProvider) commonViewer.getLabelProvider()).getText(element);
-	}
-
- 
-	public String getText() {
-		return text;
-	}
-
-	/**
-	 * Saves the changes and disposes of the text widget.
-	 * 
-	 * @param runnable
-	 *            Runnable to execute
-	 */
-	void saveChangesAndDispose(final Runnable runnable) {
-		final String newText = textEditor.getText();
-		// Run this in an async to make sure that the operation that triggered
-		// this action is completed. Otherwise this leads to problems when the
-		// icon of the item being renamed is clicked (i.e., which causes the rename
-		// text widget to lose focus and trigger this method).
-		Runnable editRunnable = new Runnable() {
-			public void run() {
-				disposeTextWidget();
-				if (newText.length() > 0 && newText.equals(text) == false) {
-					text = newText;
-					runnable.run();
-				}
-				text = null;
-			}
-		};
-		navigatorTree.getShell().getDisplay().asyncExec(editRunnable);
-	}
-
- 
-	public void setTextActionHandler(TextActionHandler actionHandler) {
-		textActionHandler = actionHandler;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/ReusableViewerLabel.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/ReusableViewerLabel.java
deleted file mode 100644
index 4fb27b9..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/ReusableViewerLabel.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2006 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-
-package org.eclipse.ui.internal.navigator;
-
-import org.eclipse.jface.viewers.ViewerLabel;
-
-/**
- * Provides a subclass of ViewerLabel that can be re-used for multiple viewer updates.
- * 
- * @since 3.2
- * 
- */
-public class ReusableViewerLabel extends ViewerLabel {
-
-	private ViewerLabel original = null;
-	/**
-	 * Creates a ViewerLabel with null text and image.
-	 *
-	 */
-	public ReusableViewerLabel() {
-		super(null, null);
-	}
-
-
-	/**
-	 * Updates the Background, Foreground, and Font to the given ViewerLabel. The 
-	 * Text and Image are reset to <b>null</b>.
-	 * 
-	 * @param theOriginal The ViewerLabel to represent.
-	 */
-	public void reset(ViewerLabel theOriginal) {
-		original = theOriginal;
-		setBackground(original.getBackground());
-		setFont(original.getFont());
-		setForeground(original.getForeground());
-		setImage(null);
-		setText(null);
-	}
-	
-	/**
-	 * 
-	 * @param theOriginal The ViewerLabel to fill with my values. 
-	 */
-	public void fill(ViewerLabel theOriginal) {
-
-		theOriginal.setBackground(getBackground());
-		theOriginal.setFont(getFont());
-		theOriginal.setForeground(getForeground());
-		theOriginal.setImage(getImage());
-		theOriginal.setText(getText() != null ? getText() : ""); //$NON-NLS-1$
-	}
-
-	/** 
-	 * 
-	 * @return True if the ReusableViewerLabel has different text or image than the original
-	 *         ViewerLabel.
-	 */
-	public boolean hasChanged() {
-		
-		boolean changed = false;
-		if(original != null) {
-			if(original.getText() == null ^ getText() != null)
-				changed |= getText() != null;
-			if(original.getText() != null && getImage() != null)
-				changed |= !getImage().equals(original.getImage());
-		}
-		return changed;
-	}
-
-	/**
-	 * @return True if the text is non-null and non-zero in length.
-	 */
-	public boolean isValid() {
-		return getText() != null && getText().length() > 0 && getImage() != null;
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/StringMatcher.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/StringMatcher.java
deleted file mode 100644
index 238cea4..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/StringMatcher.java
+++ /dev/null
@@ -1,492 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-
-import java.util.Vector;
-
-/**
- * A string pattern matcher, suppporting "*" and "?" wildcards.
- */
-public class StringMatcher {
-	protected String fPattern;
-
-	protected int fLength; // pattern length
-
-	protected boolean fIgnoreWildCards;
-
-	protected boolean fIgnoreCase;
-
-	protected boolean fHasLeadingStar;
-
-	protected boolean fHasTrailingStar;
-
-	protected String fSegments[]; // the given pattern is split into *
-
-	// separated segments
-
-	/* boundary value beyond which we don't need to search in the text */
-	protected int fBound = 0;
-
-	protected static final char fSingleWildCard = '\u0000';
-
-	/**
-	 * 
-	 */
-	static class Position {
-		int start; // inclusive
-
-		int end; // exclusive
-
-		Position(int start, int end) {
-			this.start = start;
-			this.end = end;
-		}
-
-		int getStart() {
-			return start;
-		}
-
-		int getEnd() {
-			return end;
-		}
-	}
-
-	/**
-	 * StringMatcher constructor takes in a String object that is a simple
-	 * pattern which may contain '*' for 0 and many characters and '?' for
-	 * exactly one character.
-	 * 
-	 * Literal '*' and '?' characters must be escaped in the pattern e.g., "\*"
-	 * means literal "*", etc.
-	 * 
-	 * Escaping any other character (including the escape character itself),
-	 * just results in that character in the pattern. e.g., "\a" means "a" and
-	 * "\\" means "\"
-	 * 
-	 * If invoking the StringMatcher with string literals in Java, don't forget
-	 * escape characters are represented by "\\".
-	 * 
-	 * @param pattern
-	 *            the pattern to match text against
-	 * @param ignoreCase
-	 *            if true, case is ignored
-	 * @param ignoreWildCards
-	 *            if true, wild cards and their escape sequences are ignored
-	 *            (everything is taken literally).
-	 */
-	public StringMatcher(String pattern, boolean ignoreCase,
-			boolean ignoreWildCards) {
-		if (pattern == null) {
-			throw new IllegalArgumentException();
-		}
-		fIgnoreCase = ignoreCase;
-		fIgnoreWildCards = ignoreWildCards;
-		fPattern = pattern;
-		fLength = pattern.length();
-
-		if (fIgnoreWildCards) {
-			parseNoWildCards();
-		} else {
-			parseWildCards();
-		}
-	}
-
-	/**
-	 * Find the first occurrence of the pattern between
-	 * <code>start</code)(inclusive) 
-	 * and <code>end</code>(exclusive).  
-	 * @param  text  the String object to search in 
-	 * @param  start  the starting index of the search range, inclusive
-	 * @param  end  the ending index of the search range, exclusive
-	 * @return an <code>StringMatcher.Position</code> object that keeps the starting 
-	 * (inclusive) and ending positions (exclusive) of the first occurrence of the 
-	 * pattern in the specified range of the text; return null if not found or subtext
-	 * is empty (start==end). A pair of zeros is returned if pattern is empty string
-	 * Note that for pattern like "*abc*" with leading and trailing stars, position of "abc"
-	 * is returned. For a pattern like"*??*" in text "abcdf", (1,3) is returned
-	 */
-	public StringMatcher.Position find(String text, int start, int end) {
-		if (text == null) {
-			throw new IllegalArgumentException();
-		}
-
-		int tlen = text.length();
-		if (start < 0) {
-			start = 0;
-		}
-		if (end > tlen) {
-			end = tlen;
-		}
-		if (end < 0 || start >= end) {
-			return null;
-		}
-		if (fLength == 0) {
-			return new Position(start, start);
-		}
-		if (fIgnoreWildCards) {
-			int x = posIn(text, start, end);
-			if (x < 0) {
-				return null;
-			}
-			return new Position(x, x + fLength);
-		}
-
-		int segCount = fSegments.length;
-		if (segCount == 0) {
-			return new Position(start, end);
-		}
-
-		int curPos = start;
-		int matchStart = -1;
-		int i;
-		for (i = 0; i < segCount && curPos < end; ++i) {
-			String current = fSegments[i];
-			int nextMatch = regExpPosIn(text, curPos, end, current);
-			if (nextMatch < 0) {
-				return null;
-			}
-			if (i == 0) {
-				matchStart = nextMatch;
-			}
-			curPos = nextMatch + current.length();
-		}
-		if (i < segCount) {
-			return null;
-		}
-		return new Position(matchStart, curPos);
-	}
-
-	/**
-	 * match the given <code>text</code> with the pattern
-	 * 
-	 * @return true if matched eitherwise false
-	 * @param text
-	 *            a String object
-	 */
-	public boolean match(String text) {
-		if (text == null) {
-			return false;
-		}
-		return match(text, 0, text.length());
-	}
-
-	/**
-	 * Given the starting (inclusive) and the ending (exclusive) positions in
-	 * the <code>text</code>, determine if the given substring matches with
-	 * aPattern
-	 * 
-	 * @return true if the specified portion of the text matches the pattern
-	 * @param text
-	 *            a String object that contains the substring to match
-	 * @param start
-	 *            marks the starting position (inclusive) of the substring
-	 * @param end
-	 *            marks the ending index (exclusive) of the substring
-	 */
-	public boolean match(String text, int start, int end) {
-		if (null == text) {
-			throw new IllegalArgumentException();
-		}
-
-		if (start > end) {
-			return false;
-		}
-
-		if (fIgnoreWildCards) {
-			return (end - start == fLength)
-					&& fPattern.regionMatches(fIgnoreCase, 0, text, start,
-							fLength);
-		}
-		int segCount = fSegments.length;
-		if (segCount == 0 && (fHasLeadingStar || fHasTrailingStar)) {
-			// contains
-			// only
-			// '*'(s)
-			return true;
-		}
-		if (start == end) {
-			return fLength == 0;
-		}
-		if (fLength == 0) {
-			return start == end;
-		}
-
-		int tlen = text.length();
-		if (start < 0) {
-			start = 0;
-		}
-		if (end > tlen) {
-			end = tlen;
-		}
-
-		int tCurPos = start;
-		int bound = end - fBound;
-		if (bound < 0) {
-			return false;
-		}
-		int i = 0;
-		String current = fSegments[i];
-		int segLength = current.length();
-
-		/* process first segment */
-		if (!fHasLeadingStar) {
-			if (!regExpRegionMatches(text, start, current, 0, segLength)) {
-				return false;
-			}
-			++i;
-			tCurPos = tCurPos + segLength;
-
-		}
-		if ((fSegments.length == 1) && (!fHasLeadingStar)
-				&& (!fHasTrailingStar)) {
-			// only one segment to match, no wildcards specified
-			return tCurPos == end;
-		}
-		/* process middle segments */
-		while (i < segCount) {
-			current = fSegments[i];
-			int currentMatch;
-			int k = current.indexOf(fSingleWildCard);
-			if (k < 0) {
-				currentMatch = textPosIn(text, tCurPos, end, current);
-				if (currentMatch < 0) {
-					return false;
-				}
-			} else {
-				currentMatch = regExpPosIn(text, tCurPos, end, current);
-				if (currentMatch < 0) {
-					return false;
-				}
-			}
-			tCurPos = currentMatch + current.length();
-			i++;
-		}
-
-		/* process final segment */
-		if (!fHasTrailingStar && tCurPos != end) {
-			int clen = current.length();
-			return regExpRegionMatches(text, end - clen, current, 0, clen);
-		}
-		return i == segCount;
-	}
-
-	/**
-	 * This method parses the given pattern into segments seperated by wildcard
-	 * '*' characters. Since wildcards are not being used in this case, the
-	 * pattern consists of a single segment.
-	 */
-	private void parseNoWildCards() {
-		fSegments = new String[1];
-		fSegments[0] = fPattern;
-		fBound = fLength;
-	}
-
-	/**
-	 * Parses the given pattern into segments seperated by wildcard '*'
-	 * characters.
-	 * 
-	 */
-	private void parseWildCards() {
-		if (fPattern.startsWith("*")) { //$NON-NLS-1$
-			fHasLeadingStar = true;
-		}
-		if (fPattern.endsWith("*")) {//$NON-NLS-1$
-			/* make sure it's not an escaped wildcard */
-			if (fLength > 1 && fPattern.charAt(fLength - 2) != '\\') {
-				fHasTrailingStar = true;
-			}
-		}
-
-		Vector temp = new Vector();
-
-		int pos = 0;
-		StringBuffer buf = new StringBuffer();
-		while (pos < fLength) {
-			char c = fPattern.charAt(pos++);
-			switch (c) {
-			case '\\':
-				if (pos >= fLength) {
-					buf.append(c);
-				} else {
-					char next = fPattern.charAt(pos++);
-					/* if it's an escape sequence */
-					if (next == '*' || next == '?' || next == '\\') {
-						buf.append(next);
-					} else {
-						/* not an escape sequence, just insert literally */
-						buf.append(c);
-						buf.append(next);
-					}
-				}
-				break;
-			case '*':
-				if (buf.length() > 0) {
-					/* new segment */
-					temp.addElement(buf.toString());
-					fBound += buf.length();
-					buf.setLength(0);
-				}
-				break;
-			case '?':
-				/* append special character representing single match wildcard */
-				buf.append(fSingleWildCard);
-				break;
-			default:
-				buf.append(c);
-			}
-		}
-
-		/* add last buffer to segment list */
-		if (buf.length() > 0) {
-			temp.addElement(buf.toString());
-			fBound += buf.length();
-		}
-
-		fSegments = new String[temp.size()];
-		temp.copyInto(fSegments);
-	}
-
-	/**
-	 * @param text
-	 *            a string which contains no wildcard
-	 * @param start
-	 *            the starting index in the text for search, inclusive
-	 * @param end
-	 *            the stopping point of search, exclusive
-	 * @return the starting index in the text of the pattern , or -1 if not
-	 *         found
-	 */
-	protected int posIn(String text, int start, int end) {// no wild card in
-		// pattern
-		int max = end - fLength;
-
-		if (!fIgnoreCase) {
-			int i = text.indexOf(fPattern, start);
-			if (i == -1 || i > max) {
-				return -1;
-			}
-			return i;
-		}
-
-		for (int i = start; i <= max; ++i) {
-			if (text.regionMatches(true, i, fPattern, 0, fLength)) {
-				return i;
-			}
-		}
-
-		return -1;
-	}
-
-	/**
-	 * @param text
-	 *            a simple regular expression that may only contain '?'(s)
-	 * @param start
-	 *            the starting index in the text for search, inclusive
-	 * @param end
-	 *            the stopping point of search, exclusive
-	 * @param p
-	 *            a simple regular expression that may contains '?'
-	 * @return the starting index in the text of the pattern , or -1 if not
-	 *         found
-	 */
-	protected int regExpPosIn(String text, int start, int end, String p) {
-		int plen = p.length();
-
-		int max = end - plen;
-		for (int i = start; i <= max; ++i) {
-			if (regExpRegionMatches(text, i, p, 0, plen)) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * 
-	 * @return boolean
-	 * @param text
-	 *            a String to match
-	 * @param tStart
-	 *            indicates the starting index of match, inclusive
-	 * @param p
-	 *            a simple regular expression that may contain '?'
-	 * @param pStart
-	 * @param plen
-	 */
-	protected boolean regExpRegionMatches(String text, int tStart, String p,
-			int pStart, int plen) {
-		while (plen-- > 0) {
-			char tchar = text.charAt(tStart++);
-			char pchar = p.charAt(pStart++);
-
-			/* process wild cards */
-			if (!fIgnoreWildCards) {
-				/* skip single wild cards */
-				if (pchar == fSingleWildCard) {
-					continue;
-				}
-			}
-			if (pchar == tchar) {
-				continue;
-			}
-			if (fIgnoreCase) {
-				if (Character.toUpperCase(tchar) == Character
-						.toUpperCase(pchar)) {
-					continue;
-				}
-				// comparing after converting to upper case doesn't handle all
-				// cases;
-				// also compare after converting to lower case
-				if (Character.toLowerCase(tchar) == Character
-						.toLowerCase(pchar)) {
-					continue;
-				}
-			}
-			return false;
-		}
-		return true;
-	}
-
-	/**
-	 * @param text
-	 *            the string to match
-	 * @param start
-	 *            the starting index in the text for search, inclusive
-	 * @param end
-	 *            the stopping point of search, exclusive
-	 * @param p
-	 *            a string that has no wildcard
-	 * @return the starting index in the text of the pattern , or -1 if not
-	 *         found
-	 */
-	protected int textPosIn(String text, int start, int end, String p) {
-
-		int plen = p.length();
-		int max = end - plen;
-
-		if (!fIgnoreCase) {
-			int i = text.indexOf(p, start);
-			if (i == -1 || i > max) {
-				return -1;
-			}
-			return i;
-		}
-
-		for (int i = start; i <= max; ++i) {
-			if (text.regionMatches(true, i, p, 0, plen)) {
-				return i;
-			}
-		}
-
-		return -1;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/TextActionHandler.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/TextActionHandler.java
deleted file mode 100644
index 88d2a61..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/TextActionHandler.java
+++ /dev/null
@@ -1,538 +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;
-
-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.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 {
-    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 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(CommonNavigatorMessages.Delete);
-            setId("TextDeleteActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-            		INavigatorHelpContextIds.TEXT_DELETE_ACTION);
-        }
-
-        public void runWithEvent(Event event) {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                activeTextControl.clearSelection();
-                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(CommonNavigatorMessages.Cut);
-            setId("TextCutActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-            		INavigatorHelpContextIds.TEXT_CUT_ACTION);
-        }
-
-        public void runWithEvent(Event event) {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                activeTextControl.cut();
-                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(CommonNavigatorMessages.Copy);
-            setId("TextCopyActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-            		INavigatorHelpContextIds.TEXT_COPY_ACTION);
-        }
-
-        public void runWithEvent(Event event) {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                activeTextControl.copy();
-                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(CommonNavigatorMessages.Paste);
-            setId("TextPasteActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-            		INavigatorHelpContextIds.TEXT_PASTE_ACTION);
-        }
-
-        public void runWithEvent(Event event) {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                activeTextControl.paste();
-                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(CommonNavigatorMessages.TextAction_selectAll);
-            setId("TextSelectAllActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-					INavigatorHelpContextIds.TEXT_SELECT_ALL_ACTION);
-        }
-
-        public void runWithEvent(Event event) {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                activeTextControl.selectAll();
-                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 actionBar the action bar to register global
-     *    action handlers for Cut, Copy, Paste, Delete, 
-     * 	  and Select All
-     */
-    public TextActionHandler(IActionBars actionBar) {
-        super();
-        actionBar.setGlobalActionHandler(ActionFactory.CUT.getId(),
-                textCutAction);
-        actionBar.setGlobalActionHandler(ActionFactory.COPY.getId(),
-                textCopyAction);
-        actionBar.setGlobalActionHandler(ActionFactory.PASTE.getId(),
-                textPasteAction);
-        actionBar.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(),
-                textSelectAllAction);
-        actionBar.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/src/org/eclipse/ui/internal/navigator/VisibilityAssistant.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/VisibilityAssistant.java
deleted file mode 100644
index dc0446f..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/VisibilityAssistant.java
+++ /dev/null
@@ -1,230 +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;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.ui.navigator.IExtensionActivationListener;
-import org.eclipse.ui.navigator.INavigatorActivationService;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.INavigatorViewerDescriptor;
-
-/**
- * Stores information about programmatic bindings and activation settings.
- * 
- */
-public class VisibilityAssistant implements IExtensionActivationListener {
-
-	private final INavigatorViewerDescriptor viewerDescriptor;
-
-	private final Set programmaticVisibilityBindings = new HashSet();
-
-	private final Set programmaticRootBindings = new HashSet();
-
-	private final ListenerList listeners = new ListenerList();
-
-	private final INavigatorActivationService activationService;
-
-	/**
-	 * Notifies clients of changes in extension visibility or activation.
-	 * 
-	 */
-	public interface VisibilityListener {
-
-		/**
-		 * Respond to the change in visibility or activation.
-		 * 
-		 */
-		void onVisibilityOrActivationChange();
-	}
-
-	/**
-	 * Create a visibility assistant for the given viewer descriptor.
-	 * 
-	 * @param aViewerDescriptor
-	 *            A non-nullviewer descriptor.
-	 * @param anActivationService
-	 *            The activation service associated with the content service.
-	 */
-	public VisibilityAssistant(INavigatorViewerDescriptor aViewerDescriptor,
-			INavigatorActivationService anActivationService) {
-		Assert.isNotNull(aViewerDescriptor);
-		viewerDescriptor = aViewerDescriptor;
-
-		activationService = anActivationService;
-		activationService.addExtensionActivationListener(this);
-	}
-
-	/**
-	 * Dispose of any resources held onto by this assistant.
-	 * 
-	 */
-	public void dispose() {
-		activationService.removeExtensionActivationListener(this);
-	}
-
-	/**
-	 * 
-	 * @param theExtensions
-	 *            The extensions that should be made visible to the viewer.
-	 * @param isRoot
-	 */
-	public void bindExtensions(String[] theExtensions, boolean isRoot) {
-		if (theExtensions == null) {
-			return;
-		}
-		for (int i = 0; i < theExtensions.length; i++) {
-			programmaticVisibilityBindings.add(theExtensions[i]);
-			if (isRoot) {
-				programmaticRootBindings.add(theExtensions[i]);
-			}
-		}
-		notifyClients();
-	}
-
-	/**
-	 * Add a listener to be notified when the visibility or activation state
-	 * associated with this assistant changes.
-	 * 
-	 * @param aListener
-	 *            a listener to be notified when the visibility or activation
-	 *            state associated with this assistant changes.
-	 */
-	public void addListener(VisibilityListener aListener) {
-		listeners.add(aListener);
-	}
-
-	/**
-	 * Remove a listener to be notified when the visibility or activation state
-	 * associated with this assistant changes.
-	 * 
-	 * @param aListener
-	 *            a listener to be notified when the visibility or activation
-	 *            state associated with this assistant changes.
-	 */
-	public void removeListener(VisibilityListener aListener) {
-		listeners.remove(aListener);
-	}
-
-	private void notifyClients() {
-		Object[] clients = listeners.getListeners();
-		for (int i = 0; i < clients.length; i++) {
-			((VisibilityListener) clients[i]).onVisibilityOrActivationChange();
-		}
-	}
-
-	/**
-	 * 
-	 * @param aContentDescriptor
-	 *            The content descriptor of inquiry
-	 * @return True if and only if the content descriptor is <i>active</i> and
-	 *         <i>visible</i> for the viewer descriptor and enabled for the
-	 *         given element.
-	 */
-	public boolean isVisibleAndActive(
-			INavigatorContentDescriptor aContentDescriptor) {
-		return isActive(aContentDescriptor) && isVisible(aContentDescriptor);
-	}
-
-	/**
-	 * 
-	 * @param aContentDescriptor
-	 *            The content descriptor of inquiry
-	 * @return True if and only if the given extension is <i>active</i>
-	 * 
-	 * @see INavigatorContentService For more information on what <i>active</i>
-	 *      means.
-	 * @see INavigatorActivationService#activateExtensions(String[], boolean)
-	 * @see INavigatorActivationService#deactivateExtensions(String[], boolean)
-	 */
-	public boolean isActive(INavigatorContentDescriptor aContentDescriptor) {
-		return activationService.isNavigatorExtensionActive(aContentDescriptor
-				.getId());
-	}
-
-	/**
-	 * 
-	 * @param aContentExtensionId
-	 *            The unique id of the content extension
-	 * @return True if and only if the given extension is <i>active</i>
-	 * @see INavigatorContentService For more information on what <i>active</i>
-	 *      means.
-	 * @see INavigatorActivationService#activateExtensions(String[], boolean)
-	 * @see INavigatorActivationService#deactivateExtensions(String[], boolean)
-	 */
-	public boolean isActive(String aContentExtensionId) {
-		return activationService
-				.isNavigatorExtensionActive(aContentExtensionId);
-	}
-
-	/**
-	 * 
-	 * @param aContentDescriptor
-	 *            The content descriptor of inquiry
-	 * @return True if and only if the given content extension is declaratively
-	 *         or programmatically made visible to the viewer.
-	 * @see INavigatorContentService#bindExtensions(String[], boolean) For more
-	 *      information on what <i>visible</i> means.
-	 */
-	public boolean isVisible(INavigatorContentDescriptor aContentDescriptor) {
-		return programmaticVisibilityBindings.contains(aContentDescriptor
-				.getId())
-				|| viewerDescriptor
-						.isVisibleContentExtension(aContentDescriptor.getId());
-	}
-
-	/**
-	 * 
-	 * @param aContentExtensionId
-	 *            The unique id of the content extension
-	 * @return True if and only if the given content extension is declaratively
-	 *         or programmatically made visible to the viewer.
-	 * @see INavigatorContentService#bindExtensions(String[], boolean) For more
-	 *      information on what <i>visible</i> means.
-	 */
-	public boolean isVisible(String aContentExtensionId) {
-		return programmaticVisibilityBindings.contains(aContentExtensionId)
-				|| viewerDescriptor
-						.isVisibleContentExtension(aContentExtensionId);
-	}
-
-	/**
-	 * Return whether the given content extension is a root extension.
-	 * 
-	 * @param aContentExtensionId
-	 *            the id of the content extension.
-	 * @return whether the given content extension is a root extension
-	 */
-	public boolean isRootExtension(String aContentExtensionId) {
-		return programmaticRootBindings.contains(aContentExtensionId)
-				|| viewerDescriptor.isRootExtension(aContentExtensionId);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.IExtensionActivationListener#onExtensionActivation(java.lang.String,
-	 *      java.lang.String[], boolean)
-	 */
-	public void onExtensionActivation(String aViewerId,
-			String[] theNavigatorExtensionIds, boolean isActive) {
-		if (aViewerId.equals(viewerDescriptor.getViewerId())) {
-			notifyClients();
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CollapseAllAction.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CollapseAllAction.java
deleted file mode 100644
index 9c32bd3..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CollapseAllAction.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.internal.navigator.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.navigator.CommonViewer;
-
-/**
- * This action delegate collapses all expanded elements in a Navigator view.
- * 
- */
-public class CollapseAllAction extends Action implements IAction {
-
-	private final CommonViewer commonViewer;
-
-	/**
-	 * Create the CollapseAll action.
-	 * 
-	 * @param aViewer
-	 *            The viewer to be collapsed.
-	 */
-	public CollapseAllAction(CommonViewer aViewer) {
-		super(CommonNavigatorMessages.CollapseAllActionDelegate_0);
-		setToolTipText(CommonNavigatorMessages.CollapseAllActionDelegate_0);
-		commonViewer = aViewer;
-	}
-
-	public void run() {
-		if (commonViewer != null) {
-			commonViewer.collapseAll();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CommonActionDescriptorManager.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CommonActionDescriptorManager.java
deleted file mode 100644
index 67eb25c..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CommonActionDescriptorManager.java
+++ /dev/null
@@ -1,336 +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.actions;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentRegistryReader;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.Priority;
-
-/**
- * Manages descriptors consumed from the 'actionProvider' elements of the
- * <b>org.eclipse.ui.navigator.navigatorContent</b> extension point.
- * 
- * @since 3.2
- * 
- */
-public class CommonActionDescriptorManager {
-
-	private static final CommonActionProviderDescriptor[] NO_DESCRIPTORS = new CommonActionProviderDescriptor[0];
-
-	private static final CommonActionDescriptorManager INSTANCE = new CommonActionDescriptorManager();
-
-	private CommonActionDescriptorManager() {
-
-		new ActionProviderRegistry().readRegistry();
-	}
-
-	/**
-	 * @return the singleton instance of the registry
-	 */
-	public static CommonActionDescriptorManager getInstance() {
-		return INSTANCE;
-	}
-
-	/* Provides a map of (ids, CommonActionProviderDescriptor)-pairs. */
-	private final Map dependentDescriptors = new LinkedHashMap();
-
-	/* Provides a map of (ids, CommonActionProviderDescriptor)-pairs. */
-	private final Set overridingDescriptors = new LinkedHashSet();
-
-	/* Provides a map of (ids, CommonActionProviderDescriptor)-pairs. */
-	private final Map rootDescriptors = new LinkedHashMap();
-
-	/**
-	 * 
-	 * @param aDescriptor
-	 *            A valid descriptor to begin managing.
-	 */
-	protected void addActionDescriptor(
-			CommonActionProviderDescriptor aDescriptor) {
-
-		if (aDescriptor.getDependsOnId() == null) {
-			rootDescriptors.put(aDescriptor.getDefinedId(), aDescriptor);
-		} else {
-			dependentDescriptors.put(aDescriptor.getDefinedId(), aDescriptor);
-		}
-
-		if (aDescriptor.getOverridesId() != null) {
-			overridingDescriptors.add(aDescriptor);
-		}
-	}
-
-	/**
-	 * Orders the set of availabe descriptors based on the order defined by the
-	 * <i>dependsOn</i> attribute from the <actionProvider /> element in
-	 * <b>org.eclipse.ui.navigator.navigatorContent</b>
-	 * 
-	 */
-	protected void computeOrdering() {
-		CommonActionProviderDescriptor dependentDescriptor;
-		CommonActionProviderDescriptor requiredDescriptor;
-
-		CommonActionProviderDescriptor descriptor;
-		CommonActionProviderDescriptor overriddenDescriptor;
-		for (Iterator iter = overridingDescriptors.iterator(); iter.hasNext();) {
-			descriptor = (CommonActionProviderDescriptor) iter.next();
-			if (rootDescriptors.containsKey(descriptor.getOverridesId())) {
-				overriddenDescriptor = (CommonActionProviderDescriptor) rootDescriptors
-						.get(descriptor.getOverridesId());
-				overriddenDescriptor.addOverridingDescriptor(descriptor);
-			} else if (dependentDescriptors.containsKey(descriptor
-					.getOverridesId())) {
-				overriddenDescriptor = (CommonActionProviderDescriptor) dependentDescriptors
-						.get(descriptor.getOverridesId());
-				overriddenDescriptor.addOverridingDescriptor(descriptor);
-			}
-
-		}
-
-		Collection unresolvedDependentDescriptors = new ArrayList(
-				dependentDescriptors.values());
-
-		for (Iterator iter = dependentDescriptors.values().iterator(); iter
-				.hasNext();) {
-			dependentDescriptor = (CommonActionProviderDescriptor) iter.next();
-			requiredDescriptor = (CommonActionProviderDescriptor) rootDescriptors
-					.get(dependentDescriptor.getDependsOnId());
-			if (requiredDescriptor == null) {
-				requiredDescriptor = (CommonActionProviderDescriptor) dependentDescriptors
-						.get(dependentDescriptor.getDependsOnId());
-			}
-			if (requiredDescriptor != null) {
-				requiredDescriptor.addDependentDescriptor(dependentDescriptor);
-				unresolvedDependentDescriptors.remove(dependentDescriptor);
-			}
-
-		}
-
-		dependentDescriptors.clear();
-
-		if (!unresolvedDependentDescriptors.isEmpty()) {
-			StringBuffer errorMessage = new StringBuffer(
-					"There were unresolved dependencies for action provider extensions to a Common Navigator.\n" + //$NON-NLS-1$
-							"Verify that the \"dependsOn\" attribute for each <actionProvider /> element is valid."); //$NON-NLS-1$
-
-			CommonActionProviderDescriptor[] unresolvedDescriptors = (CommonActionProviderDescriptor[]) unresolvedDependentDescriptors
-					.toArray(new CommonActionProviderDescriptor[unresolvedDependentDescriptors
-							.size()]);
-			for (int i = 0; i < unresolvedDescriptors.length; i++) {
-				errorMessage
-						.append(
-								"\nUnresolved dependency specified for actionProvider: ").append(unresolvedDescriptors[i].getDefinedId()); //$NON-NLS-1$
-			}
-
-			NavigatorPlugin.log(IStatus.WARNING, 0, errorMessage.toString(),
-					null);
-
-		}
-		unresolvedDependentDescriptors.clear();
-
-	}
-
-	/**
-	 * 
-	 * @param aContentService
-	 *            The content service to use when filtering action providers;
-	 *            only action providers bound directly or indirectly will be
-	 *            returned.
-	 * @param aContext
-	 *            The action context that contains a valid selection.
-	 * @return An array of visible, active, and enabled CommonActionProviders.
-	 *         See <b>org.eclipse.ui.navigator.navigatorContent</b> for the
-	 *         details of what each of these adjectives implies.
-	 */
-	public CommonActionProviderDescriptor[] findRelevantActionDescriptors(
-			INavigatorContentService aContentService, ActionContext aContext) {
-		Assert.isNotNull(aContext);
-		IStructuredSelection structuredSelection = null;
-		if (aContext.getSelection() instanceof IStructuredSelection) {
-			structuredSelection = (IStructuredSelection) aContext
-					.getSelection();
-		} else {
-			structuredSelection = StructuredSelection.EMPTY;
-		}
-
-		Set blockedProviders = new HashSet();
-		CommonActionProviderDescriptor actionDescriptor = null;
-		Set providers = new LinkedHashSet();
-		for (Iterator providerItr = rootDescriptors.values().iterator(); providerItr
-				.hasNext();) {
-			actionDescriptor = (CommonActionProviderDescriptor) providerItr
-					.next();
-			addProviderIfRelevant(aContentService, structuredSelection,
-					actionDescriptor, providers, blockedProviders);
-		}
-		if (providers.size() > 0) {
-			providers.removeAll(blockedProviders);
-			return (CommonActionProviderDescriptor[]) providers
-					.toArray(new CommonActionProviderDescriptor[providers
-							.size()]);
-		}
-		return NO_DESCRIPTORS;
-	}
-
-	/**
-	 * @param aContentService
-	 * @param structuredSelection
-	 * @param actionDescriptor
-	 * @param providers
-	 */
-	private boolean addProviderIfRelevant(
-			INavigatorContentService aContentService,
-			IStructuredSelection structuredSelection,
-			CommonActionProviderDescriptor actionDescriptor, Set providers, Set blockedProviders) {
-		if (isVisible(aContentService, actionDescriptor)
-				&& actionDescriptor.isEnabledFor(structuredSelection)) {
-			
-			if(actionDescriptor.hasOverridingDescriptors()) {
-				for (Iterator iter = actionDescriptor.overridingDescriptors(); iter.hasNext();) {
-					CommonActionProviderDescriptor descriptor = (CommonActionProviderDescriptor) iter.next();
-					if(addProviderIfRelevant(aContentService, structuredSelection, descriptor, providers, blockedProviders)) {
-						while(iter.hasNext())
-							blockedProviders.add(iter.next());
-						return true;
-					}
-					
-				}
-			}			
-			providers.add(actionDescriptor);
-			if (actionDescriptor.hasDependentDescriptors()) {
-				for (Iterator iter = actionDescriptor.dependentDescriptors(); iter
-						.hasNext();) {
-					addProviderIfRelevant(aContentService, structuredSelection,
-							(CommonActionProviderDescriptor) iter.next(),
-							providers, blockedProviders);
-				}
-			}
-			return true;
-		}
-		return false;
-	}
-
-	private boolean isVisible(INavigatorContentService aContentService,
-			CommonActionProviderDescriptor descriptor) {
-		if (descriptor.isNested()) {
-			return aContentService.isActive(descriptor.getId())
-					&& aContentService.isVisible(descriptor.getId());
-		}
-		return aContentService.getViewerDescriptor().isVisibleActionExtension(
-				descriptor.getId());
-	}
-
-	private class ActionProviderRegistry extends NavigatorContentRegistryReader {
-
-		public void readRegistry() {
-			super.readRegistry();
-			computeOrdering();
-		}
-
-		protected boolean readElement(IConfigurationElement anElement) {
-			if (TAG_ACTION_PROVIDER.equals(anElement.getName())) {
-				addActionDescriptor(new CommonActionProviderDescriptor(
-						anElement));
-				return true;
-			} else if (TAG_NAVIGATOR_CONTENT.equals(anElement.getName())) {
-				
-				IConfigurationElement[] actionProviders = anElement.getChildren(TAG_ACTION_PROVIDER);
-				
-				if (actionProviders.length > 0) {
-					
-					IConfigurationElement defaultEnablement = null;
-					IConfigurationElement[] inheritedEnablement = anElement.getChildren(TAG_ENABLEMENT);
-					if (inheritedEnablement.length == 0) {
-						inheritedEnablement = anElement.getChildren(TAG_POSSIBLE_CHILDREN);
-					}
-					
-					defaultEnablement = inheritedEnablement.length == 1 ? inheritedEnablement[0] : null;
-  
-					Priority defaultPriority = Priority.get(anElement.getAttribute(ATT_PRIORITY));
-					
-					
-					if(defaultEnablement == null) {
-						NavigatorPlugin.logError(0, 
-							"An actionProvider has been defined as the child " + //$NON-NLS-1$
-							"of a navigatorContent extension that does not specify " + //$NON-NLS-1$
-							"an <enablement/> or <possibleChildren /> expression. Please " + //$NON-NLS-1$
-							"review the documenation and correct this error.", null); //$NON-NLS-1$
-					}
-					for (int i = 0; i < actionProviders.length; i++) { 
-						if(defaultEnablement == null) { 
-							NavigatorPlugin.logError(0, 
-											"Disabling actionProvider: " + actionProviders[i].getAttribute(ATT_ID), null); //$NON-NLS-1$
-						} else {
-							SafeRunner.run(new AddProviderSafeRunner(actionProviders[i], defaultEnablement, defaultPriority, anElement));
-						}
-					}
-				}
-				return true;
-			}
-			return super.readElement(anElement);
-		}
-	
-		private class AddProviderSafeRunner implements ISafeRunnable {
-			
-			private IConfigurationElement parentElement;
-			private IConfigurationElement defaultEnablement;
-			private IConfigurationElement actionProvider;
-			private Priority defaultPriority;
-
-			protected AddProviderSafeRunner(IConfigurationElement actionProvider, 
-											 IConfigurationElement defaultEnablement, 
-											 Priority defaultPriority,
-											 IConfigurationElement parentElement) {
-				this.actionProvider = actionProvider;
-				this.defaultEnablement = defaultEnablement;
-				this.defaultPriority = defaultPriority;
-				this.parentElement = parentElement;
-			}
-			
-			/* (non-Javadoc)
-			 * @see org.eclipse.core.runtime.ISafeRunnable#run()
-			 */
-			public void run() throws Exception { 
-				addActionDescriptor(new CommonActionProviderDescriptor(
-							actionProvider, defaultEnablement, defaultPriority, parentElement
-									.getAttribute(ATT_ID), true));
-			}
-			
-			/* (non-Javadoc)
-			 * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
-			 */
-			public void handleException(Throwable t) {
-				NavigatorPlugin.logError(0, "Recovering from error while parsing actionProviders.", t); //$NON-NLS-1$ 
-			}
-			
-			
-		}
-	}
-
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CommonActionProviderDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CommonActionProviderDescriptor.java
deleted file mode 100644
index 696114e..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/CommonActionProviderDescriptor.java
+++ /dev/null
@@ -1,440 +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.actions;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.eclipse.core.expressions.ElementHandler;
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.Assert;
-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.IStructuredSelection;
-import org.eclipse.ui.internal.navigator.CustomAndExpression;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtPtConstants;
-import org.eclipse.ui.internal.navigator.extensions.SkeletonActionProvider;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.Priority;
-
-/**
- *  
- * 
- * @since 3.2
- */
-public class CommonActionProviderDescriptor implements
-		INavigatorContentExtPtConstants {
-
-	private static final String DEFAULT_ID = "org.eclipse.ui.navigator.actionProvider"; //$NON-NLS-1$
-	
-	private static int count = 0;
-
-	private final IConfigurationElement configurationElement;
-
-	private final boolean isNested;
-
-	private Set dependentDescriptors;
-
-	private Set overridingDescriptors;
-
-	private IConfigurationElement enablementElement;
-
-	private Expression enablement;
-
-	private boolean hasLoadingFailed;
-
-	private String definedId;
-
-	private String visibilityId;
-
-	private String dependsOnId;
-
-	private String overridesId;
-
-	private String toString;
-
-	private Priority priority;
-
-	/**
-	 * @param aConfigElement
-	 *            A configuration element with the name "actionProvider" and a
-	 *            "class" attribute which subclasses
-	 *            {@link CommonActionProvider}.
-	 */
-	public CommonActionProviderDescriptor(IConfigurationElement aConfigElement) {
-		super();
-		Assert.isTrue(TAG_ACTION_PROVIDER.equals(aConfigElement.getName()));
-		configurationElement = aConfigElement;
-		isNested = false;
-		init();
-	}
-
-	/**
-	 * @param aConfigElement
-	 *            A configuration element with the name "actionProvider" and a
-	 *            "class" attribute which subclasses
-	 *            {@link CommonActionProvider}.
-	 * @param anEnablementExpression
-	 *            A configuration element with the name 'enablement' or
-	 *            'triggerPoints' and containing an Eclipse Core Expression
-	 * @param defaultPriority 
-	 * @param anOverrideId
-	 *            A unique identifier for this descriptor. Ids can be used as a
-	 *            filtering device for activities or viewer***Bindings.
-	 * @param nestedUnderNavigatorContent
-	 *            A value of <b>true</b> indicates that this
-	 *            CommonActionProvider was declared as a nested
-	 *            &lt;actionProvider /&gt; element under a &lt;navigatorContent
-	 *            /&gt; element.
-	 */
-	public CommonActionProviderDescriptor(IConfigurationElement aConfigElement,
-			IConfigurationElement anEnablementExpression, Priority defaultPriority, String anOverrideId,
-			boolean nestedUnderNavigatorContent) {
-		super();
-		Assert.isTrue(TAG_ACTION_PROVIDER.equals(aConfigElement.getName()));
-		Assert.isTrue(TAG_POSSIBLE_CHILDREN.equals(anEnablementExpression
-				.getName())
-				|| TAG_ENABLEMENT.equals(anEnablementExpression.getName()));
-		configurationElement = aConfigElement;
-		enablementElement = anEnablementExpression;
-		visibilityId = anOverrideId;
-		isNested = nestedUnderNavigatorContent;
-		priority = defaultPriority;
-		init();
-	}
-
-	private void init() {
-
-		try {
-
-			definedId = configurationElement.getAttribute(ATT_ID);
-
-			// if there was no id attribute, use the default id.
-			if (definedId == null) {
-				definedId = DEFAULT_ID + "." + count++; //$NON-NLS-1$
-			}
-
-			// we try the id attribute if no override id was supplied.
-			if (visibilityId == null) {
-				visibilityId = definedId;
-			}
-
-			dependsOnId = configurationElement.getAttribute(ATT_DEPENDS_ON);
-
-			overridesId = configurationElement.getAttribute(ATT_OVERRIDES);
-
-			IConfigurationElement[] children = configurationElement
-					.getChildren(TAG_ENABLEMENT);
-			// if no child enablement is specified, and we have an override, use
-			// it
-			if (children.length == 0 && enablementElement != null) {
-				enablement = new CustomAndExpression(enablementElement);
-				// otherwise the child enablement takes priority
-			} else if (children.length == 1) {
-				enablement = ElementHandler.getDefault().create(
-						ExpressionConverter.getDefault(), children[0]);
-
-			} else {
-				System.err.println("Incorrect number of expressions: " + //$NON-NLS-1$
-						TAG_ENABLEMENT
-						+ " in navigator extension: " + //$NON-NLS-1$
-						configurationElement.getDeclaringExtension()
-								.getUniqueIdentifier() + " in plugin " + //$NON-NLS-1$ 
-								configurationElement.getDeclaringExtension().getNamespaceIdentifier());
-			}
-		} catch (CoreException e) {
-			NavigatorPlugin.log(IStatus.ERROR, 0, e.getMessage(), e);
-		}
-	}
-
-	/**
-	 * 
-	 * @return The instantiated CommonActionProvider for this descriptor as
-	 *         declared in the ATT_CLASS attribute or
-	 *         {@link SkeletonActionProvider} if a problem occurs while loading
-	 *         the instance.
-	 */
-	public CommonActionProvider createActionProvider() {
-		if (hasLoadingFailed) {
-			return SkeletonActionProvider.INSTANCE;
-		}
-		CommonActionProvider provider = null;
-		try {
-			provider = (CommonActionProvider) configurationElement
-					.createExecutableExtension(ATT_CLASS);
-		} catch (CoreException exception) {
-			NavigatorPlugin.log(exception.getStatus());
-			hasLoadingFailed = true;
-			provider = SkeletonActionProvider.INSTANCE;
-		} catch (Exception e) {
-			NavigatorPlugin.log(new Status(IStatus.ERROR,
-					NavigatorPlugin.PLUGIN_ID, 0, e.getMessage(), e));
-			hasLoadingFailed = true;
-			provider = SkeletonActionProvider.INSTANCE;
-		}
-
-		return provider;
-	}
-
-	/**
-	 * Determine if this content extension is enabled for the given selection.
-	 * The content extension is enabled for the selection if and only if it is
-	 * enabled for each element in the selection.
-	 * 
-	 * @param aStructuredSelection
-	 *            The selection from the viewer
-	 * @return True if and only if the extension is enabled for each element in
-	 *         the selection.
-	 */
-	public boolean isEnabledFor(IStructuredSelection aStructuredSelection) {
-		if (enablement == null) {
-			return false;
-		}
-		
-		if(aStructuredSelection.isEmpty()) {
-			IEvaluationContext context = null; 
-			context = new EvaluationContext(null, Collections.EMPTY_LIST);
-			context.setAllowPluginActivation(true);
-			try { 
-				if (enablement.evaluate(context) != EvaluationResult.TRUE) {
-					return false;
-				}
-			} catch (CoreException e) {
-				NavigatorPlugin.log(IStatus.ERROR, 0, e.getMessage(), e);
-				return false;
-			} 
-		} else {
-
-			IEvaluationContext context = null;
-			Iterator elements = aStructuredSelection.iterator();
-			while (elements.hasNext()) {
-				context = new EvaluationContext(null, elements.next());
-				context.setAllowPluginActivation(true);
-				try { 
-					if (enablement.evaluate(context) != EvaluationResult.TRUE) {
-						return false;
-					}
-				} catch (CoreException e) {
-					NavigatorPlugin.log(IStatus.ERROR, 0, e.getMessage(), e);
-					return false;
-				}
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Determine if this content extension is enabled for the given element.
-	 * 
-	 * @param anElement
-	 *            The element that should be used for the evaluation.
-	 * @return True if and only if the extension is enabled for the element.
-	 */
-	public boolean isEnabledFor(Object anElement) {
-		if (enablement == null || anElement == null) {
-			return false;
-		}
-
-		try {
-			EvaluationContext context = new EvaluationContext(null, anElement);
-			context.setAllowPluginActivation(true);
-			return (enablement.evaluate(context) == EvaluationResult.TRUE);
-		} catch (CoreException e) {
-			NavigatorPlugin.log(IStatus.ERROR, 0, e.getMessage(), e);
-		}
-		return false;
-	}
-
-	/**
-	 * 
-	 * @return An identifier for this ICommonActionProvider. Defaults to
-	 *         "org.eclipse.ui.navigator.actionProvider". May not be unique.
-	 *         Used to filter the actionProvider using the visibility state
-	 *         information.
-	 */
-	public String getId() {
-		return visibilityId;
-	}
-
-	/**
-	 * 
-	 * @return An identifier for this ICommonActionProvider. Defaults to
-	 *         'org.eclipse.ui.navigator.actionProvider'. May not be unique.
-	 *         Used to determine override or depends on cases.
-	 */
-	public String getDefinedId() {
-		return definedId;
-	}
-
-	/**
-	 * 
-	 * @return True if this is a nested &lt;actionProvider /&gt; element.
-	 */
-	public boolean isNested() {
-		return isNested;
-	}
-
-	/**
-	 * 
-	 * @return The value specified by the <i>dependsOn</i> attribute of the
-	 *         &lt;actionProvider /&gt; element.
-	 */
-	public String getDependsOnId() {
-		return dependsOnId;
-	}
-
-	/**
-	 * 
-	 * @return The value specified by the <i>overridesId</i> attribute of the
-	 *         &lt;actionProvider /&gt; element.
-	 */
-	public String getOverridesId() {
-		return overridesId;
-	}
-	
-	/**
-	 * Only nested Action Providers have priority (as of 3.2.1). 
-	 * 
-	 * @return The priority associated with this Action Provider Descriptor. 
-	 */
-	public Priority getPriority() {
-		return priority;
-	}
-
-
-	public int hashCode() {
-		final int PRIME = 31;
-		int result = 1;
-		result = PRIME * result + ((definedId == null) ? 0 : definedId.hashCode());
-		result = PRIME * result + ((visibilityId == null) ? 0 : visibilityId.hashCode());
-		return result;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (!super.equals(obj))
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		final CommonActionProviderDescriptor other = (CommonActionProviderDescriptor) obj;
-		if (definedId == null) {
-			if (other.definedId != null)
-				return false;
-		} else if (!definedId.equals(other.definedId))
-			return false;
-		if (visibilityId == null) {
-			if (other.visibilityId != null)
-				return false;
-		} else if (!visibilityId.equals(other.visibilityId))
-			return false;
-		return true;
-	} 
-	
-	 
-
-	protected void addDependentDescriptor(
-			CommonActionProviderDescriptor dependentDescriptor) {
-		Assert.isTrue(this != dependentDescriptor);
-		if (dependentDescriptors == null) {
-			dependentDescriptors = new LinkedHashSet();
-		}
-		dependentDescriptors.add(dependentDescriptor);
-	}
-
-	protected void addOverridingDescriptor(
-			CommonActionProviderDescriptor overridingDescriptor) {
-		Assert.isTrue(this != overridingDescriptor);
-		if (overridingDescriptors == null) {
-			overridingDescriptors = new TreeSet(CommonActionProviderDescriptorCompator.INSTANCE);
-		}
-		overridingDescriptors.add(overridingDescriptor);
-	}
-
-	protected boolean hasDependentDescriptors() {
-		return dependentDescriptors != null && !dependentDescriptors.isEmpty();
-	}
-
-	protected boolean hasOverridingDescriptors() {
-		return overridingDescriptors != null
-				&& !overridingDescriptors.isEmpty();
-	}
-
-	protected Iterator dependentDescriptors() {
-		return dependentDescriptors.iterator();
-	}
-
-	protected Iterator overridingDescriptors() {
-		return overridingDescriptors.iterator();
-	}
-
-	public String toString() {
-		if (toString == null) {
-			toString = "CommonActionProviderDescriptor[definedId=" + getDefinedId() + ", visibilityId=" + getId() + ", dependsOn=" + getDependsOnId() + ", overrides=" + getOverridesId() + "]"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-		}
-		return toString;
-	} 
-
-	
-	/**
-	 * Sorts CommonActionProviderDescriptors by priority, and then by defined id. 
-	 * @since 3.2
-	 *
-	 */
-	public static class CommonActionProviderDescriptorCompator implements Comparator { 
-
-		/**
-		 * The singleton instance.
-		 */
-		public static final CommonActionProviderDescriptorCompator INSTANCE = new CommonActionProviderDescriptorCompator();
-		
-		private static final int LESS_THAN = -1;
-		private static final int EQUALS = 0; 
-		
-		/* (non-Javadoc)
-		 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-		 */
-		public int compare(Object o1, Object o2) {
-			CommonActionProviderDescriptor lvalue= null, rvalue= null;
-			
-			if(o1 instanceof CommonActionProviderDescriptor)
-				lvalue = (CommonActionProviderDescriptor) o1;
-			
-			if(o2 instanceof CommonActionProviderDescriptor)
-				rvalue = (CommonActionProviderDescriptor) o2;
-			
-			if(lvalue == null || rvalue == null)
-				return LESS_THAN;
-			if(lvalue.equals(rvalue))
-				return EQUALS;
-			int comparison = lvalue.getPriority().getValue() - rvalue.getPriority().getValue();
-			if(comparison == 0) 
-				return lvalue.getDefinedId().compareTo(rvalue.getDefinedId());
-			return comparison;
-			
-		}
-		
-		 
-	}
-
-}
- 
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/LinkEditorAction.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/LinkEditorAction.java
deleted file mode 100644
index 8504ab6..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/actions/LinkEditorAction.java
+++ /dev/null
@@ -1,274 +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.actions;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-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.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.extensions.LinkHelperService;
-import org.eclipse.ui.navigator.CommonNavigator;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.ILinkHelper;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.part.ISetSelectionTarget;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * This action links the activate editor with the Navigator selection.
- * 
- * @since 3.2
- */
-public class LinkEditorAction extends Action implements
-		ISelectionChangedListener, IAction, IPropertyListener {
-
-	private static final long BRIEF_DELAY = 100;
-
-	private IPartListener partListener;
-
-	private final CommonNavigator commonNavigator;
-
-	private final CommonViewer commonViewer;
-
-	private final NavigatorContentService contentService;
-
-	private final LinkHelperService linkService;
-
-	private UIJob activateEditorJob = new UIJob(
-			CommonNavigatorMessages.Link_With_Editor_Job_) {
-		public IStatus runInUIThread(IProgressMonitor monitor) {
-
-			ISelection selection = commonViewer.getSelection();
-			if (selection != null && !selection.isEmpty()
-					&& selection instanceof IStructuredSelection) {
-
-				IStructuredSelection sSelection = (IStructuredSelection) selection;
-				if (sSelection.size() == 1) {
-					ILinkHelper[] helpers = linkService
-							.getLinkHelpersFor(sSelection.getFirstElement());
-					if (helpers.length > 0) {
-						helpers[0].activateEditor(commonNavigator.getSite()
-								.getPage(), sSelection);
-					}
-				}
-			}
-			return Status.OK_STATUS;
-		}
-	};
-	
-
-	private UIJob updateSelectionJob = new UIJob(
-			CommonNavigatorMessages.Link_With_Editor_Job_) {
-		public IStatus runInUIThread(IProgressMonitor monitor) {
-
-			try { 
-				IWorkbenchPage page = commonNavigator.getSite().getPage();
-				if(page != null) {
-					IEditorPart editor = page.getActiveEditor();
-					if(editor != null) {
-						IEditorInput input = editor.getEditorInput();
-						ILinkHelper[] helpers = linkService.getLinkHelpersFor(input);
-		
-						IStructuredSelection selection = StructuredSelection.EMPTY;
-						IStructuredSelection newSelection = StructuredSelection.EMPTY;
-		
-						for (int i = 0; i < helpers.length; i++) {
-							selection = helpers[i].findSelection(input);
-							if (selection != null && !selection.isEmpty()) {
-								newSelection = mergeSelection(newSelection, selection);
-							}
-						}
-						if(!newSelection.isEmpty()) {
-							commonNavigator.selectReveal(newSelection);
-						}
-					}
-				}
-			} catch (Throwable e) { 
-				String msg = e.getMessage() != null ? e.getMessage() : e.toString();
-				NavigatorPlugin.logError(0, msg, e);
-			}
-			return Status.OK_STATUS;
-		}
-	};
-
-
-	/**
-	 * Create a LinkEditorAction for the given navigator and viewer.
-	 * 
-	 * @param aNavigator
-	 *            The navigator which defines whether linking is enabled and
-	 *            implements {@link ISetSelectionTarget}.
-	 * @param aViewer
-	 *            The common viewer instance with a
-	 *            {@link INavigatorContentService}.
-	 */
-	public LinkEditorAction(CommonNavigator aNavigator, CommonViewer aViewer) {
-		super(CommonNavigatorMessages.LinkEditorActionDelegate_0);
-		setToolTipText(CommonNavigatorMessages.LinkEditorActionDelegate_1);
-		commonNavigator = aNavigator;
-		commonViewer = aViewer;
-		contentService = (NavigatorContentService) aViewer
-				.getNavigatorContentService();
-
-		linkService = new LinkHelperService(contentService);
-
-		init();
-	}
-
-	/**
-	 * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
-	 */
-	protected void init() {
-		partListener = new IPartListener() {
-
-			public void partActivated(IWorkbenchPart part) {
-				if (part instanceof IEditorPart) {
-					updateSelectionJob.schedule(BRIEF_DELAY);
-				}
-			}
-
-			public void partBroughtToTop(IWorkbenchPart part) {
-				if (part instanceof IEditorPart) {
-					updateSelectionJob.schedule(BRIEF_DELAY);
-				}
-			}
-
-			public void partClosed(IWorkbenchPart part) {
-
-			}
-
-			public void partDeactivated(IWorkbenchPart part) {
-			}
-
-			public void partOpened(IWorkbenchPart part) {
-			}
-		};
-
-		updateLinkingEnabled(commonNavigator.isLinkingEnabled());
-
-		commonNavigator.addPropertyListener(this);
-
-		// linkHelperRegistry = new
-		// LinkHelperManager(commonViewer.getNavigatorContentService());
-	}
-
-	/**
-	 * 
-	 */
-	public void dispose() {
-		commonNavigator.removePropertyListener(this);
-		if (isChecked()) {
-			commonViewer.removePostSelectionChangedListener(this);
-			commonNavigator.getSite().getPage()
-					.removePartListener(partListener);
-		}
-
-	}
-
-	/**
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run() {
-		commonNavigator.setLinkingEnabled(!commonNavigator.isLinkingEnabled());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ISelectionChangedList 
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-		if (commonNavigator.isLinkingEnabled()) {
-			activateEditor();
-		}
-
-	}
-
-	/**
-	 * Update the active editor based on the current selection in the Navigator.
-	 */
-	protected void activateEditor() {
-		ISelection selection = commonViewer.getSelection();
-		if (selection != null && !selection.isEmpty()
-				&& selection instanceof IStructuredSelection) { 
-			/*
-			 * Create and schedule a UI Job to activate the editor in a valid
-			 * Display thread
-			 */
-			activateEditorJob.schedule(BRIEF_DELAY);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object,
-	 *      int)
-	 */
-	public void propertyChanged(Object aSource, int aPropertyId) {
-		switch (aPropertyId) {
-		case CommonNavigator.IS_LINKING_ENABLED_PROPERTY:
-			updateLinkingEnabled(((CommonNavigator) aSource).isLinkingEnabled());
-		}
-	}
-
-	/**
-	 * @param toEnableLinking
-	 */
-	private void updateLinkingEnabled(boolean toEnableLinking) {
-		setChecked(toEnableLinking);
-
-		if (toEnableLinking) {
-			
-			updateSelectionJob.schedule(BRIEF_DELAY);
-
-			commonViewer.addPostSelectionChangedListener(this);
-			commonNavigator.getSite().getPage().addPartListener(partListener);
-		} else {
-			commonViewer.removePostSelectionChangedListener(this);
-			commonNavigator.getSite().getPage()
-					.removePartListener(partListener);
-		}
-	}
-
-	private IStructuredSelection mergeSelection(IStructuredSelection aBase,
-			IStructuredSelection aSelectionToAppend) {
-		if (aBase == null || aBase.isEmpty()) {
-			return (aSelectionToAppend != null) ? aSelectionToAppend
-					: StructuredSelection.EMPTY;
-		} else if (aSelectionToAppend == null || aSelectionToAppend.isEmpty()) {
-			return aBase;
-		} else {
-			List newItems = new ArrayList(aBase.toList());
-			newItems.addAll(aSelectionToAppend.toList());
-			return new StructuredSelection(newItems);
-		}
-	} 
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/CommonDropAdapterDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/CommonDropAdapterDescriptor.java
deleted file mode 100644
index 8853d3c..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/CommonDropAdapterDescriptor.java
+++ /dev/null
@@ -1,126 +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.dnd;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.internal.navigator.CustomAndExpression;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtPtConstants;
-import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-
-/**
- * @since 3.2
- * 
- */
-public final class CommonDropAdapterDescriptor implements
-		INavigatorContentExtPtConstants {
-
-	private final IConfigurationElement element;
-
-	private final INavigatorContentDescriptor contentDescriptor;
-
-	private Expression dropExpr;
-
-	/* package */CommonDropAdapterDescriptor(
-			IConfigurationElement aConfigElement,
-			INavigatorContentDescriptor aContentDescriptor) {
-		element = aConfigElement;
-		contentDescriptor = aContentDescriptor;
-		init();
-	}
-
-	private void init() {
-		IConfigurationElement[] children = element.getChildren(TAG_POSSIBLE_DROP_TARGETS);
-		if (children.length == 1) {
-			dropExpr = new CustomAndExpression(children[0]);
-		}
-	}
-
-	/**
-	 * 
-	 * @param anElement
-	 *            The element from the set of elements being dragged.
-	 * @return True if the element matches the drag expression from the
-	 *         extension.
-	 */
-	public boolean isDragElementSupported(Object anElement) { 
-		return contentDescriptor.isPossibleChild(anElement); 
-	}
-
-	/**
-	 * 
-	 * @param aSelection
-	 *            The set of elements being dragged.
-	 * @return True if the element matches the drag expression from the
-	 *         extension.
-	 */
-	public boolean areDragElementsSupported(IStructuredSelection aSelection) {
-		if (aSelection.isEmpty()) {
-			return false;
-		}
-		return contentDescriptor.arePossibleChildren(aSelection);
-	}
-
-	/**
-	 * 
-	 * @param anElement
-	 *            The element from the set of elements benig dropped.
-	 * @return True if the element matches the drop expression from the
-	 *         extension.
-	 */
-	public boolean isDropElementSupported(Object anElement) {
-		if (dropExpr != null && anElement != null) {
-			try {
-				EvaluationContext context = new EvaluationContext(null, anElement);
-				context.setAllowPluginActivation(true);
-				return dropExpr
-						.evaluate(context) == EvaluationResult.TRUE;
-			} catch (CoreException e) {
-				NavigatorPlugin.logError(0, e.getMessage(), e);
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * 
-	 * @return An instance of {@link CommonDropAdapterAssistant} from the
-	 *         descriptor or {@link SkeletonCommonDropAssistant}.
-	 */
-	public CommonDropAdapterAssistant createDropAssistant() {
-
-		try {
-			return (CommonDropAdapterAssistant) element
-					.createExecutableExtension(ATT_CLASS);
-		} catch (CoreException e) {
-			NavigatorPlugin.logError(0, e.getMessage(), e);
-		} catch (RuntimeException re) {
-			NavigatorPlugin.logError(0, re.getMessage(), re);
-		}
-		return SkeletonCommonDropAssistant.INSTANCE;
-	}
-
-	/**
-	 * 
-	 * @return The content descriptor that contains this drop descriptor.
-	 */
-	public INavigatorContentDescriptor getContentDescriptor() {
-		return contentDescriptor;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/CommonDropDescriptorManager.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/CommonDropDescriptorManager.java
deleted file mode 100644
index 162abc4..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/CommonDropDescriptorManager.java
+++ /dev/null
@@ -1,164 +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.dnd;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.internal.navigator.extensions.ExtensionPriorityComparator;
-import org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtPtConstants;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentRegistryReader;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * @since 3.2
- * 
- */
-public class CommonDropDescriptorManager {
-
-	private static final CommonDropDescriptorManager INSTANCE = new CommonDropDescriptorManager();
-
-	private static final CommonDropAdapterDescriptor[] NO_DESCRIPTORS = new CommonDropAdapterDescriptor[0];
-
-	/**
-	 * A map of (INavigatorContentDescriptor,
-	 * CommonDropAdapterDescriptor)-pairs.
-	 */
-	private final Map dropDescriptors = new TreeMap(ExtensionPriorityComparator.INSTANCE);
-
-	/**
-	 * 
-	 * @return An initialized singleton instance of the
-	 *         CommonDropDescriptorManager.
-	 */
-	public static CommonDropDescriptorManager getInstance() {
-		return INSTANCE;
-	}
-
-	private CommonDropDescriptorManager() {
-		new CommonDropAdapterRegistry().readRegistry();
-	}
-
-	/**
-	 * 
-	 * @param aDropTarget
-	 *            The drop target of the operation
-	 * @param aContentService
-	 *            The associated content service to filter results by.
-	 * @return An array of drop descriptors that can handle the given drop
-	 *         target and are <i>visible</i> and <i>active</i> for the given
-	 *         service and <i>enabled</i> for the given drop target..
-	 */
-	public CommonDropAdapterDescriptor[] findCommonDropAdapterAssistants(Object aDropTarget, INavigatorContentService aContentService) {
-
-		Set foundDescriptors = new LinkedHashSet();
-		for (Iterator iter = dropDescriptors.keySet().iterator(); iter
-				.hasNext();) {
-			INavigatorContentDescriptor contentDescriptor = (INavigatorContentDescriptor) iter
-					.next();
-			if (aContentService.isVisible(contentDescriptor.getId())
-					&& aContentService.isActive(contentDescriptor.getId())) {
-				List dropDescriptors = getDropDescriptors(contentDescriptor);
-				for (Iterator iterator = dropDescriptors.iterator(); iterator
-						.hasNext();) {
-					CommonDropAdapterDescriptor dropDescriptor = (CommonDropAdapterDescriptor) iterator
-							.next();
-					if (dropDescriptor.isDropElementSupported(aDropTarget)) {
-						foundDescriptors.add(dropDescriptor);
-					}
-				}
-			}
-		}
-
-		if (foundDescriptors.isEmpty()) {
-			return NO_DESCRIPTORS;
-		}
-		return (CommonDropAdapterDescriptor[]) foundDescriptors
-				.toArray(new CommonDropAdapterDescriptor[foundDescriptors
-						.size()]);
-	}
-
-	private List getDropDescriptors(
-			INavigatorContentDescriptor aContentDescriptor) {
-		List descriptors = (List) dropDescriptors.get(aContentDescriptor);
-		if (descriptors != null) {
-			return descriptors;
-		}
-		synchronized (dropDescriptors) {
-			descriptors = (List) dropDescriptors.get(aContentDescriptor);
-			if (descriptors == null) {
-				dropDescriptors.put(aContentDescriptor,
-						(descriptors = new ArrayList()));
-			}
-
-		}
-		return descriptors;
-	}
-
-	/**
-	 * @param aContentDescriptor
-	 *            A non-null content descriptor.
-	 * @param aDropDescriptor
-	 *            A non-null drop descriptor.
-	 */
-	private void addCommonDropAdapter(
-			INavigatorContentDescriptor aContentDescriptor,
-			CommonDropAdapterDescriptor aDropDescriptor) { 
-		getDropDescriptors(aContentDescriptor).add(aDropDescriptor);
-	}
-
-	private class CommonDropAdapterRegistry extends
-			NavigatorContentRegistryReader implements
-			INavigatorContentExtPtConstants {
-
-		private CommonDropAdapterRegistry() {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.internal.navigator.extensions.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
-		 */
-		protected boolean readElement(IConfigurationElement element) {
-
-			if (TAG_NAVIGATOR_CONTENT.equals(element.getName())) {
-
-				String id = element.getAttribute(ATT_ID);
-				if (id != null) {
-					INavigatorContentDescriptor contentDescriptor = CONTENT_DESCRIPTOR_MANAGER
-							.getContentDescriptor(id);
-					if (contentDescriptor != null) {
-
-						IConfigurationElement[] commonDropAdapters = element
-								.getChildren(TAG_COMMON_DROP_ADAPTER);
-
-						for (int i = 0; i < commonDropAdapters.length; i++) {
-							addCommonDropAdapter(contentDescriptor,
-									new CommonDropAdapterDescriptor(commonDropAdapters[i], contentDescriptor));
-						} 
-					}
-				}
-
-			}
-			return super.readElement(element);
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorContentServiceTransfer.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorContentServiceTransfer.java
deleted file mode 100644
index 6b59985..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorContentServiceTransfer.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.internal.navigator.dnd;
-
-import java.lang.ref.WeakReference;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * Caches instances of {@link INavigatorContentService} to facilitate the
- * handling of drop operations in other viewers.
- * 
- * @since 3.2
- * 
- */
-public class NavigatorContentServiceTransfer {
-	
-	private static final NavigatorContentServiceTransfer instance = new NavigatorContentServiceTransfer(); 
-	
-	/**
-	 * 
-	 * @return The singleton instance of the transfer service.
-	 */
-	public static NavigatorContentServiceTransfer getInstance() {
-		return instance;
-	}
-
-	private final Set registeredContentServices = new HashSet();
-	
-	/**
-	 *  
-	 * @param aContentService The Content Service to register.
-	 */
-	public synchronized void registerContentService(INavigatorContentService aContentService) { 
-		if(findService(aContentService.getViewerId()) == null) {
-			registeredContentServices.add(new WeakReference(aContentService));
-		}
-	}
-	
-	/**
-	 *  
-	 * @param aContentService The Content Service to unregister.
-	 */
-	public synchronized void unregisterContentService(INavigatorContentService aContentService) { 
-  
-		for (Iterator iter = registeredContentServices.iterator(); iter.hasNext();) {
-			WeakReference ref = (WeakReference) iter.next();
-			if(ref.get() == null) {
-				iter.remove();
-			} else { 
-				if(ref.get() == aContentService) {
-					iter.remove(); 
-					return;
-				}
-			}
-		} 
-	}
-	
-	/**
-	 * 
-	 * @param aViewerId A viewer id that should have previously been registered with the service.
-	 * @return The registered content service for the given viewer id.
-	 */
-	public synchronized INavigatorContentService findService(String aViewerId) {
-		if(aViewerId == null || aViewerId.length() == 0) {
-			return null;
-		}
-		INavigatorContentService contentService;
-		for (Iterator iter = registeredContentServices.iterator(); iter.hasNext();) {
-			WeakReference ref = (WeakReference) iter.next();
-			if(ref.get() == null) {
-				iter.remove();
-			} else {
-				contentService = (INavigatorContentService)ref.get();
-				if(aViewerId.equals(contentService.getViewerId())) {
-					return contentService;
-				} 
-			}
-		}
-		return null;
-	} 
-	
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorDnDService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorDnDService.java
deleted file mode 100644
index 540b5a6..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorDnDService.java
+++ /dev/null
@@ -1,177 +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.dnd;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.internal.navigator.extensions.CommonDragAssistantDescriptor;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorViewerDescriptor;
-import org.eclipse.ui.navigator.CommonDragAdapterAssistant;
-import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.INavigatorDnDService;
-
-/**
- * 
- * Provides instances of {@link CommonDragAdapterAssistant} and
- * {@link CommonDropAdapterAssistant} for the associated
- * {@link INavigatorContentService}.
- * 
- * <p>
- * Clients may not extend, instantiate or directly reference this class.
- * </p>
- * 
- * @since 3.2
- * 
- */
-public class NavigatorDnDService implements INavigatorDnDService {
-
-	private static final CommonDropAdapterAssistant[] NO_ASSISTANTS = new CommonDropAdapterAssistant[0];
-
-	private NavigatorContentService contentService;
-
-	private CommonDragAdapterAssistant[] dragAssistants;
-
-	private final Map dropAssistants = new HashMap();
-
-	/**
-	 * 
-	 * @param aContentService
-	 *            The associated content service
-	 */
-	public NavigatorDnDService(NavigatorContentService aContentService) {
-		contentService = aContentService;
-	}
-
-	public synchronized CommonDragAdapterAssistant[] getCommonDragAssistants() {
-
-		if (dragAssistants == null) 
-			initializeDragAssistants(); 
-		return dragAssistants;
-	}
- 
-	private void initializeDragAssistants() {
-		int i = 0;
-		Set dragDescriptors = ((NavigatorViewerDescriptor) contentService
-				.getViewerDescriptor()).getDragAssistants();
-		dragAssistants = new CommonDragAdapterAssistant[dragDescriptors
-				.size()];
-		for (Iterator iter = dragDescriptors.iterator(); iter.hasNext();) {
-			CommonDragAssistantDescriptor descriptor = (CommonDragAssistantDescriptor) iter
-					.next();
-			dragAssistants[i++] = descriptor.createDragAssistant();
-		}
-	}
-	
-
-	public synchronized void bindDragAssistant(CommonDragAdapterAssistant anAssistant) {
-		if(dragAssistants == null) 
-			initializeDragAssistants(); 
-		CommonDragAdapterAssistant[] newDragAssistants = new CommonDragAdapterAssistant[dragAssistants.length + 1];
-		System.arraycopy(dragAssistants, 0, newDragAssistants, 0, dragAssistants.length);
-		newDragAssistants[dragAssistants.length] = anAssistant;
-		dragAssistants = newDragAssistants;		
-	}
-
-	public CommonDropAdapterAssistant[] findCommonDropAdapterAssistants(
-			Object aDropTarget, TransferData aTransferType) {
- 
-		// TODO Make sure descriptors are sorted by priority 
-		CommonDropAdapterDescriptor[] descriptors = CommonDropDescriptorManager
-				.getInstance().findCommonDropAdapterAssistants(aDropTarget,
-						contentService);
-
-		if (descriptors.length == 0) {
-			return NO_ASSISTANTS;
-		}
-
-		if (LocalSelectionTransfer.getTransfer().isSupportedType(aTransferType)  
-						&& LocalSelectionTransfer.getTransfer().getSelection() instanceof IStructuredSelection) {
-			return getAssistantsBySelection(descriptors, (IStructuredSelection) LocalSelectionTransfer.getTransfer().getSelection());
-		} 
-		return getAssistantsByTransferData(descriptors, aTransferType);
-	}
-	
-
-	public CommonDropAdapterAssistant[] findCommonDropAdapterAssistants(
-			Object aDropTarget, IStructuredSelection theDragSelection) {
- 
-		// TODO Make sure descriptors are sorted by priority 
-		CommonDropAdapterDescriptor[] descriptors = CommonDropDescriptorManager
-				.getInstance().findCommonDropAdapterAssistants(aDropTarget,
-						contentService);
-
-		if (descriptors.length == 0) {
-			return NO_ASSISTANTS;
-		}
-
-		return getAssistantsBySelection(descriptors, theDragSelection);  
-	}
-
-	private CommonDropAdapterAssistant[] getAssistantsByTransferData(
-			CommonDropAdapterDescriptor[] descriptors,
-			TransferData aTransferType) {
-
-		Set assistants = new LinkedHashSet();
-		for (int i = 0; i < descriptors.length; i++) {
-			CommonDropAdapterAssistant asst = getAssistant(descriptors[i]);
-			if (asst.isSupportedType(aTransferType)) {
-				assistants.add(asst);
-			}
-		}
-		return (CommonDropAdapterAssistant[]) assistants
-				.toArray(new CommonDropAdapterAssistant[assistants.size()]);
-
-	}
-
-	private CommonDropAdapterAssistant[] getAssistantsBySelection(
-			CommonDropAdapterDescriptor[] descriptors, IStructuredSelection aSelection) {
-
-		Set assistants = new LinkedHashSet(); 
-			
-		for (int i = 0; i < descriptors.length; i++) {
-			if(descriptors[i].areDragElementsSupported(aSelection)) {
-				assistants.add(getAssistant(descriptors[i]));
-			}
-		}  
-
-		return (CommonDropAdapterAssistant[]) assistants
-				.toArray(new CommonDropAdapterAssistant[assistants.size()]);
-	}
-
-	private CommonDropAdapterAssistant getAssistant(
-			CommonDropAdapterDescriptor descriptor) {
-		CommonDropAdapterAssistant asst = (CommonDropAdapterAssistant) dropAssistants
-				.get(descriptor);
-		if (asst != null) {
-			return asst;
-		}
-		synchronized (dropAssistants) {
-			asst = (CommonDropAdapterAssistant) dropAssistants.get(descriptor);
-			if (asst == null) {
-				dropAssistants.put(descriptor, (asst = descriptor
-						.createDropAssistant()));
-				asst.init(contentService);
-			}
-		}
-		return asst;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorPluginDropAction.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorPluginDropAction.java
deleted file mode 100644
index 900d40a..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/NavigatorPluginDropAction.java
+++ /dev/null
@@ -1,104 +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.dnd;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.part.IDropActionDelegate;
-import org.eclipse.ui.part.PluginTransferData;
-
-/**
- * 
- * 
- * @since 3.2
- * 
- */
-public class NavigatorPluginDropAction implements IDropActionDelegate {
-
-	private static final boolean DEBUG = false;
-
-	private static final String CN_PLUGIN_ACTION_ID = "org.eclipse.ui.navigator.PluginDropAction"; //$NON-NLS-1$
-
-	/**
-	 * A default no-args constructor is required by the
-	 * <b>org.eclipse.ui.dropAdapters</b> extension point
-	 */
-	public NavigatorPluginDropAction() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.IDropActionDelegate#run(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-	public boolean run(Object sourceData, Object target) {
-
-		if (DEBUG) {
-			System.out.println("NavigatorPluginDropAction.run (begin)"); //$NON-NLS-1$
-		}
-
-		String sourceViewerId = new String((byte[]) sourceData);
-
-		IStructuredSelection selection = (IStructuredSelection) LocalSelectionTransfer
-				.getTransfer().getSelection();
-
-		INavigatorContentService contentService = NavigatorContentServiceTransfer
-				.getInstance().findService(sourceViewerId);
-
-		if (contentService == null) {
-			return false;
-		}
-		try {
-			CommonDropAdapterAssistant[] assistants = contentService
-					.getDnDService().findCommonDropAdapterAssistants(target,
-							selection); 
-
-			IStatus valid = null;
-			for (int i = 0; i < assistants.length; i++) {
-				valid = assistants[i].validatePluginTransferDrop(selection, target);
-				if (valid != null && valid.isOK()) {
-					valid = assistants[i].handlePluginTransferDrop(selection, target);
-					return valid != null && valid.isOK();
-				}
-			}
-		} finally {
-			NavigatorContentServiceTransfer.getInstance()
-					.unregisterContentService(contentService);
-		}
-
-		if (DEBUG) {
-			System.out.println("NavigatorPluginDropAction.run (exit)"); //$NON-NLS-1$
-		}
-
-		return false;
-	}
-
-	/**
-	 * 
-	 * @param aContentService
-	 *            The associated content service that is the source of the drag
-	 * @return A PluginTransferData properly configured to call the Common
-	 *         Navigator's PluginDropAction.
-	 */
-	public static PluginTransferData createTransferData(
-			INavigatorContentService aContentService) {
-		NavigatorContentServiceTransfer.getInstance().registerContentService(
-				aContentService);
-		return new PluginTransferData(CN_PLUGIN_ACTION_ID, aContentService
-				.getViewerId().getBytes());
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/SkeletonCommonDropAssistant.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/SkeletonCommonDropAssistant.java
deleted file mode 100644
index 5bf92d1..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/dnd/SkeletonCommonDropAssistant.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.internal.navigator.dnd;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.ui.navigator.CommonDropAdapter;
-import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
-
-/**
- * A Skeleton implementation of {@link CommonDropAdapterAssistant}.
- * 
- * @since 3.2
- * 
- */
-public class SkeletonCommonDropAssistant extends CommonDropAdapterAssistant {
-
-	/**
-	 * The singleton instance.
-	 */
-	public static final SkeletonCommonDropAssistant INSTANCE = new SkeletonCommonDropAssistant();
-
-	private SkeletonCommonDropAssistant() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#handleDrop(org.eclipse.ui.navigator.CommonDropAdapter,
-	 *      org.eclipse.swt.dnd.DropTargetEvent, java.lang.Object)
-	 */
-	public IStatus handleDrop(CommonDropAdapter aDropAdapter,
-			DropTargetEvent aDropTargetEvent, Object aTarget) {
-		return Status.CANCEL_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#validateDrop(java.lang.Object,
-	 *      int, org.eclipse.swt.dnd.TransferData)
-	 */
-	public IStatus validateDrop(Object target, int operation,
-			TransferData transferType) {
-		return Status.CANCEL_STATUS;
-	}
-
-	// /*
-	// * (non-Javadoc)
-	// *
-	// * @see
-	// org.eclipse.ui.navigator.CommonDropAdapterAssistant#findSupportedTransferData(org.eclipse.swt.dnd.TransferData[])
-	// */
-	// public TransferData findSupportedTransferData(
-	// TransferData[] theAvailableTransferData) {
-	//
-	// return null;
-	// }
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/Binding.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/Binding.java
deleted file mode 100644
index bdaf702..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/Binding.java
+++ /dev/null
@@ -1,171 +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.extensions;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-
-class Binding {
-
-	private final Set rootPatterns = new HashSet();
-
-	private final Set includePatterns = new HashSet();
-
-	private final Set excludePatterns = new HashSet();
-
-	private final String TAG_EXTENSION;
-
-	protected Binding(String tagExtension) {
-		TAG_EXTENSION = tagExtension;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorViewerDescriptor#isVisibleExtension(java.lang.String)
-	 */
-	boolean isVisibleExtension(String anExtensionId) {
-		Pattern pattern = null;
-		for (Iterator itr = includePatterns.iterator(); itr.hasNext();) {
-			pattern = (Pattern) itr.next();
-			if (pattern.matcher(anExtensionId).matches()) {
-				return true;
-			}
-		}
-
-		for (Iterator itr = excludePatterns.iterator(); itr.hasNext();) {
-			pattern = (Pattern) itr.next();
-			if (pattern.matcher(anExtensionId).matches()) {
-				return false;
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorViewerDescriptor#isRootExtension(java.lang.String)
-	 */
-	boolean isRootExtension(String anExtensionId) {
-		if (rootPatterns.size() == 0) {
-			return false;
-		}
-		Pattern pattern = null;
-		for (Iterator itr = rootPatterns.iterator(); itr.hasNext();) {
-			pattern = (Pattern) itr.next();
-			if (pattern.matcher(anExtensionId).matches()) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorViewerDescriptor#hasOverriddenRootExtensions()
-	 */
-	boolean hasOverriddenRootExtensions() {
-		return rootPatterns.size() > 0;
-	}
-
-	void consumeIncludes(IConfigurationElement element, boolean toRespectRoots) {
-
-		Assert.isTrue(NavigatorViewerDescriptor.TAG_INCLUDES.equals(element
-				.getName()));
-		IConfigurationElement[] contentExtensionPatterns = element
-				.getChildren(TAG_EXTENSION);
-		String isRootString = null;
-		boolean isRoot = false;
-		String patternString = null;
-		Pattern compiledPattern = null;
-		for (int i = 0; i < contentExtensionPatterns.length; i++) {
-			if (toRespectRoots) {
-				isRootString = contentExtensionPatterns[i]
-						.getAttribute(NavigatorViewerDescriptor.ATT_IS_ROOT);
-				isRoot = (isRootString != null) ? Boolean.valueOf(
-						isRootString.trim()).booleanValue() : false;
-			}
-
-			patternString = contentExtensionPatterns[i]
-					.getAttribute(NavigatorViewerDescriptor.ATT_PATTERN);
-			if (patternString == null) {
-				NavigatorPlugin
-						.logError(
-								0,
-								NLS
-										.bind(
-												CommonNavigatorMessages.Attribute_Missing_Warning,
-												new Object[] {
-														NavigatorViewerDescriptor.ATT_PATTERN,
-														element
-																.getDeclaringExtension()
-																.getUniqueIdentifier(),
-														element
-																.getDeclaringExtension()
-																.getNamespace() }),
-								null);
-			} else {
-				compiledPattern = Pattern.compile(patternString);
-				includePatterns.add(compiledPattern);
-				if (toRespectRoots && isRoot) {
-					rootPatterns.add(compiledPattern);
-				}
-			}
-		}
-
-	}
-
-	void consumeExcludes(IConfigurationElement element) {
-		Assert.isTrue(NavigatorViewerDescriptor.TAG_EXCLUDES.equals(element
-				.getName()));
-		IConfigurationElement[] contentExtensionPatterns = element
-				.getChildren(TAG_EXTENSION);
-		String patternString = null;
-		Pattern compiledPattern = null;
-		for (int i = 0; i < contentExtensionPatterns.length; i++) {
-
-			patternString = contentExtensionPatterns[i]
-					.getAttribute(NavigatorViewerDescriptor.ATT_PATTERN);
-			if (patternString == null) {
-				NavigatorPlugin
-						.logError(
-								0,
-								NLS
-										.bind(
-												CommonNavigatorMessages.Attribute_Missing_Warning,
-												new Object[] {
-														NavigatorViewerDescriptor.ATT_PATTERN,
-														element
-																.getDeclaringExtension()
-																.getUniqueIdentifier(),
-														element
-																.getDeclaringExtension()
-																.getNamespace() }),
-								null);
-			} else {
-				compiledPattern = Pattern.compile(patternString);
-				excludePatterns.add(compiledPattern);
-			}
-		}
-
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonActionExtensionSite.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonActionExtensionSite.java
deleted file mode 100644
index f75ebbd..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonActionExtensionSite.java
+++ /dev/null
@@ -1,103 +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.extensions;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonViewerSite;
-
-/**
- * 
- * Provides access to information required for the initialization of
- * CommonActionProviders.
- * 
- * <p>
- * See the documentation of the <b>org.eclipse.ui.navigator.navigatorContent</b>
- * extension point and {@link CommonActionProvider} for more information on
- * declaring {@link CommonActionProvider}s.
- * </p>
- * 
- * 
- * @since 3.2
- */
-public final class CommonActionExtensionSite extends CommonExtensionSite
-		implements ICommonActionExtensionSite {
-
-	private String extensionId;
-
-	private ICommonViewerSite commonViewerSite;
-
-	private StructuredViewer structuredViewer;
-
-	/**
-	 * Create a config element for the initialization of Common Action
-	 * Providers.
-	 * 
-	 * @param anExtensionId
-	 *            The unique identifier of the associated content extension or
-	 *            the top-level action provider. <b>May NOT be null.</b>
-	 * @param aCommonViewerSite
-	 *            The common viewer site may be used to access information about
-	 *            the part for which the instantiated CommonActionProvider will
-	 *            be used. <b>May NOT be null.</b>
-	 * @param aContentService
-	 *            The associated content service to allow coordination with
-	 *            content extensions via the IExtensionStateModel. Clients may
-	 *            access the content providers and label providers as necessary
-	 *            also to render labels or images in their UI. <b>May NOT be
-	 *            null.</b>
-	 * @param aStructuredViewer
-	 *            The viewer control that will use the instantiated Common
-	 *            Action Provider. <b>May NOT be null.</b>
-	 */
-	public CommonActionExtensionSite(String anExtensionId,
-			ICommonViewerSite aCommonViewerSite,
-			NavigatorContentService aContentService,
-			StructuredViewer aStructuredViewer) {
-		super(aContentService, anExtensionId); 
-
-		Assert.isNotNull(aCommonViewerSite);
-		Assert.isNotNull(aStructuredViewer);
-		extensionId = anExtensionId;
-		commonViewerSite = aCommonViewerSite;
-		structuredViewer = aStructuredViewer;
-
-	}
-
-	/**
-	 * 
-	 * @return The unique identifier of the associated content extension or the
-	 *         top-level Common Action Provider.
-	 */
-	public String getExtensionId() {
-		return extensionId;
-	}
-
-	/**
-	 * 
-	 * @return The associated structured viewer for the instantiated Common
-	 *         Action Provider.
-	 */
-	public StructuredViewer getStructuredViewer() {
-		return structuredViewer;
-	}
-
-	/**
-	 * 
-	 * @return The ICommonViewerSite from the CommonViewer.
-	 */
-	public ICommonViewerSite getViewSite() {
-		return commonViewerSite;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonContentExtensionSite.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonContentExtensionSite.java
deleted file mode 100644
index 09292ac..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonContentExtensionSite.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.internal.navigator.extensions;
-
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.INavigatorContentExtension;
-
-/**
- * @since 3.2
- * 
- */
-public class CommonContentExtensionSite extends CommonExtensionSite implements
-		ICommonContentExtensionSite {
-
-	private NavigatorContentExtension extension;
-
-	private IMemento memento;
-
-	/**
-	 * Create a config element for the initialization of Content Extensions.
-	 * 
-	 * @param anExtensionId
-	 *            The unique identifier of the associated content extension or
-	 *            the top-level action provider. <b>May NOT be null.</b>
-	 * @param aContentService
-	 *            The associated content service to allow coordination with
-	 *            content extensions via the IExtensionStateModel. Clients may
-	 *            access the content providers and label providers as necessary
-	 *            also to render labels or images in their UI. <b>May NOT be
-	 *            null.</b>
-	 * @param aMemento
-	 *            The memento associated with the parent viewer.
-	 */
-	public CommonContentExtensionSite(String anExtensionId,
-			NavigatorContentService aContentService, IMemento aMemento) {
-		super(aContentService, anExtensionId);
-
-		NavigatorContentDescriptor contentDescriptor = NavigatorContentDescriptorManager
-				.getInstance().getContentDescriptor(anExtensionId);
-
-		extension = aContentService.getExtension(contentDescriptor);
-		memento = aMemento;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.ICommonContentExtensionSite#getMemento()
-	 */
-	public IMemento getMemento() {
-		return memento;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.ICommonContentExtensionSite#getExtension()
-	 */
-	public INavigatorContentExtension getExtension() {
-		return extension;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonDragAssistantDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonDragAssistantDescriptor.java
deleted file mode 100644
index c13d51c..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonDragAssistantDescriptor.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.internal.navigator.extensions;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.navigator.CommonDragAdapterAssistant;
-
-/**
- * 
- * Drag assistants allow clients to provide new TransferTypes to a particular
- * viewer.
- * 
- * @since 3.2
- * 
- */
-public final class CommonDragAssistantDescriptor implements IViewerExtPtConstants {
-
-	private IConfigurationElement element;
-
-	
-	/* package */ CommonDragAssistantDescriptor(IConfigurationElement aConfigElement) {
-		element = aConfigElement;
-	}
-
-	/**
-	 * Create an instance of the {@link CommonDragAdapterAssistant} defined by
-	 * this descriptor.
-	 * 
-	 * @return an instance of the {@link CommonDragAdapterAssistant} or
-	 *         {@link SkeletonCommonDragAssistant} if a problem occurs with the
-	 *         instantiation.
-	 */
-	public CommonDragAdapterAssistant createDragAssistant() {
-
-		try {
-			return (CommonDragAdapterAssistant) element
-					.createExecutableExtension(ATT_CLASS);
-		} catch (CoreException e) {
-			NavigatorPlugin.logError(0, e.getMessage(), e);
-		} catch (RuntimeException re) {
-			NavigatorPlugin.logError(0, re.getMessage(), re);
-		}
-		return SkeletonCommonDragAssistant.INSTANCE;
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonExtensionSite.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonExtensionSite.java
deleted file mode 100644
index 215f851..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/CommonExtensionSite.java
+++ /dev/null
@@ -1,67 +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.extensions;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.IExtensionStateModel;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * 
- * Provides a common base class for {@link ICommonContentExtensionSite} and
- * {@link ICommonActionExtensionSite}.
- * 
- * @since 3.2
- * 
- */
-public class CommonExtensionSite {
-
-	private final INavigatorContentService contentService;
-
-	private IExtensionStateModel extensionStateModel;
-
-	protected CommonExtensionSite(INavigatorContentService aContentService,
-			String anExtensionId) {
-
-		Assert.isNotNull(aContentService);
-
-		contentService = aContentService;
-		if (anExtensionId != null) {
-			extensionStateModel = aContentService.findStateModel(anExtensionId);
-		}
-	}
-
-	/**
-	 * 
-	 * @return The content service used to create this extension site
-	 */
-	public final INavigatorContentService getContentService() {
-		return contentService;
-	}
-
-	/**
-	 * By default, the extension state model returned is for the associated
-	 * content extension (if this is NOT a top-level action provider).
-	 * Otherwise, clients may use
-	 * {@link INavigatorContentService#findStateModel(String)} to locate the
-	 * state model of another content extension.
-	 * 
-	 * @return The extension state model of the associated extension.
-	 * @see IExtensionStateModel
-	 */
-	public final IExtensionStateModel getExtensionStateModel() {
-		return extensionStateModel;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ExtensionPriorityComparator.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ExtensionPriorityComparator.java
deleted file mode 100644
index e1d1327..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ExtensionPriorityComparator.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.internal.navigator.extensions;
-
-import java.util.Comparator;
-
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentExtension;
-
-/**
- * @since 3.2
- * 
- */
-public class ExtensionPriorityComparator implements Comparator {
-
-	/**
-	 * The initialized singleton instance.
-	 */
-	public static final ExtensionPriorityComparator INSTANCE = new ExtensionPriorityComparator(true);
-
-	/**
-	 * The initialized singleton instance.
-	 */
-	public static final ExtensionPriorityComparator DESCENDING = new ExtensionPriorityComparator(false);
-	
-	private final int sortAscending;
-	
-	public ExtensionPriorityComparator(boolean toSortAscending) {
-		sortAscending = toSortAscending ? 1 : -1; 
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-	 */
-	public int compare(Object o1, Object o2) {
-
-		INavigatorContentDescriptor lvalue = null;
-		INavigatorContentDescriptor rvalue = null;
-
-		if (o1 instanceof INavigatorContentDescriptor) {
-			lvalue = (INavigatorContentDescriptor) o1;
-		} else if (o1 instanceof INavigatorContentExtension) {
-			lvalue = ((INavigatorContentExtension) o1).getDescriptor();
-		}
-
-		if (o2 instanceof INavigatorContentDescriptor) {
-			rvalue = (INavigatorContentDescriptor) o2;
-		} else if (o2 instanceof INavigatorContentExtension) {
-			rvalue = ((INavigatorContentExtension) o2).getDescriptor();
-		}
-
-		if (lvalue == null || rvalue == null) {
-			return  -1 * sortAscending;
-		}
-
-		int c = lvalue.getPriority() - rvalue.getPriority();
-		if (c != 0) {
-			return c * sortAscending;
-		}
-		return lvalue.getId().compareTo(rvalue.getId()) * sortAscending;
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ExtensionStateModel.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ExtensionStateModel.java
deleted file mode 100644
index cc475f5..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ExtensionStateModel.java
+++ /dev/null
@@ -1,139 +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.extensions;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.navigator.IExtensionStateModel;
-
-/**
- * 
- * 
- * @since 3.2
- * @see IExtensionStateModel
- */
-public class ExtensionStateModel extends EventManager implements
-		IExtensionStateModel {
-
-	private final String id;
-
-	private final String viewerId;
-
-	private final Map values = new HashMap();
-
-	/**
-	 * Create an extension state model for the given extension (anId) associated
-	 * with the given viewer (aViewerId).
-	 * 
-	 * @param anId
-	 *            The id of the extension this state model is used for.
-	 * @param aViewerId
-	 *            The id of the viewer this state model is associated with.
-	 */
-	public ExtensionStateModel(String anId, String aViewerId) {
-		id = anId;
-		viewerId = aViewerId;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public String getViewerId() {
-		return viewerId;
-	}
-
-	public String getStringProperty(String aPropertyName) {
-		return (String) values.get(aPropertyName);
-	}
-
-	public boolean getBooleanProperty(String aPropertyName) {
-
-		Boolean b = (Boolean) values.get(aPropertyName);
-		return b != null ? b.booleanValue() : false;
-	}
-
-	public int getIntProperty(String aPropertyName) {
-		Integer i = (Integer) values.get(aPropertyName);
-		return i != null ? i.intValue() : -1;
-	}
-
-	public void setStringProperty(String aPropertyName, String aPropertyValue) {
-		String oldValue = (String) values.get(aPropertyName);
-		String newValue = aPropertyValue;
-		if (hasPropertyChanged(oldValue, newValue)) {
-			values.put(aPropertyName, newValue);
-			firePropertyChangeEvent(new PropertyChangeEvent(this,
-					aPropertyName, oldValue, newValue));
-		}
-	}
-
-	public void setBooleanProperty(String aPropertyName, boolean aPropertyValue) {
-		Boolean oldValue = (Boolean) values.get(aPropertyName);
-		Boolean newValue = aPropertyValue ? Boolean.TRUE : Boolean.FALSE;
-		if (hasPropertyChanged(oldValue, newValue)) {
-
-			values.put(aPropertyName, aPropertyValue ? Boolean.TRUE
-					: Boolean.FALSE);
-			firePropertyChangeEvent(new PropertyChangeEvent(this,
-					aPropertyName, oldValue, newValue));
-		}
-	}
-
-	public void setIntProperty(String aPropertyName, int aPropertyValue) {
-		Integer oldValue = (Integer) values.get(aPropertyName);
-		Integer newValue = new Integer(aPropertyValue);
-		if (hasPropertyChanged(oldValue, newValue)) {
-			values.put(aPropertyName, newValue);
-			firePropertyChangeEvent(new PropertyChangeEvent(this,
-					aPropertyName, oldValue, newValue));
-		}
-	}
-
-	public void addPropertyChangeListener(IPropertyChangeListener aListener) {
-		addListenerObject(aListener);
-	}
-
-	public void removePropertyChangeListener(IPropertyChangeListener aListener) {
-		removeListenerObject(aListener);
-	}
-
-	public Object getProperty(String aPropertyName) {
-		return values.get(aPropertyName);
-	}
-
-	public void setProperty(String aPropertyName, Object aPropertyValue) {
-
-		Object oldValue = values.get(aPropertyName);
-		Object newValue = aPropertyValue;
-		if (hasPropertyChanged(oldValue, newValue)) {
-			values.put(aPropertyName, newValue);
-			firePropertyChangeEvent(new PropertyChangeEvent(this,
-					aPropertyName, oldValue, newValue));
-		}
-	}
- 
-	private boolean hasPropertyChanged(Object oldValue, Object newValue) {
-		return oldValue == null || !oldValue.equals(newValue);
-	}
-
-	protected void firePropertyChangeEvent(PropertyChangeEvent anEvent) {
-		Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			((IPropertyChangeListener) listeners[i]).propertyChange(anEvent);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ILinkHelperExtPtConstants.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ILinkHelperExtPtConstants.java
deleted file mode 100644
index b852f30..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/ILinkHelperExtPtConstants.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.internal.navigator.extensions;
-
-/**
- * @since 3.2
- *
- */
-public interface ILinkHelperExtPtConstants {
-
-
-	/** */
-	String LINK_HELPER = "linkHelper"; //$NON-NLS-1$
-
-	/** */
-	String ATT_ID = "id"; //$NON-NLS-1$
-
-	/** */
-	String ATT_CLASS = "class"; //$NON-NLS-1$
-
-	/** */
-	String ATT_NAVIGATOR_CONTENT_EXTENSION_ID = "navigatorContentExtensionId"; //$NON-NLS-1$
-
-	/** */
-	String EDITOR_INPUT_ENABLEMENT = "editorInputEnablement"; //$NON-NLS-1$
-
-	/** */
-	String SELECTION_ENABLEMENT = "selectionEnablement"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/INavigatorContentExtPtConstants.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/INavigatorContentExtPtConstants.java
deleted file mode 100644
index e131531..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/INavigatorContentExtPtConstants.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.extensions;
-
-/**
- * 
- * Constants for Extension Point managers and descriptors.
- */
-public interface INavigatorContentExtPtConstants {
-
-	/** */
-	String TAG_ACTION_PROVIDER = "actionProvider"; //$NON-NLS-1$
-
-	/** */
-	String TAG_NAVIGATOR_CONTENT = "navigatorContent"; //$NON-NLS-1$
-
-	/** */
-	String TAG_COMMON_WIZARD = "commonWizard"; //$NON-NLS-1$
-
-	/** */
-	String TAG_ENABLEMENT = "enablement"; //$NON-NLS-1$
-
-	/** */
-	String TAG_TRIGGER_POINTS = "triggerPoints"; //$NON-NLS-1$
-
-	/** */
-	String TAG_POSSIBLE_CHILDREN = "possibleChildren"; //$NON-NLS-1$
-
-	/** */
-	String TAG_DUPLICATE_CONTENT_FILTER = "duplicateContentFilter"; //$NON-NLS-1$	
-
-	/** */
-	String TAG_COMMON_FILTER = "commonFilter"; //$NON-NLS-1$
-
-	/** */
-	String TAG_COMMON_SORTER = "commonSorter"; //$NON-NLS-1$
-	
-	/** */
-	String TAG_COMMON_DROP_ADAPTER = "dropAssistant"; //$NON-NLS-1$	 
-	
-	/** */
-	String TAG_POSSIBLE_DROP_TARGETS = "possibleDropTargets"; //$NON-NLS-1$	 
-	
-	/** */
-	String TAG_OVERRIDE = "override"; //$NON-NLS-1$	
-
-	/** */
-	String TAG_FILTER_EXPRESSION = "filterExpression"; //$NON-NLS-1$
-
-	/** */
-	String TAG_PARENT_EXPRESSION = "parentExpression"; //$NON-NLS-1$ 
-
-	/** */
-	String ATT_ID = "id"; //$NON-NLS-1$
-
-	/** */
-	String ATT_NAME = "name"; //$NON-NLS-1$	 
-
-	/** */
-	String ATT_DESCRIPTION = "description"; //$NON-NLS-1$	  
-
-	/** */
-	String ATT_CLASS = "class"; //$NON-NLS-1$ 
-
-	/** */
-	String ATT_PRIORITY = "priority"; //$NON-NLS-1$
-
-	/** */
-	String ATT_ICON = "icon"; //$NON-NLS-1$
-
-	/** */
-	String ATT_WIZARD_ID = "wizardId"; //$NON-NLS-1$
-
-	/** */
-	String ATT_TYPE = "type"; //$NON-NLS-1$		
-
-	/** */
-	String ATT_ACTIVE_BY_DEFAULT = "activeByDefault"; //$NON-NLS-1$
-
-	/** */
-	String ATT_PROVIDES_SAVEABLES = "providesSaveables"; //$NON-NLS-1$
-	
-	/** */
-	String ATT_CONTENT_PROVIDER = "contentProvider"; //$NON-NLS-1$
-
-	/** */
-	String ATT_LABEL_PROVIDER = "labelProvider"; //$NON-NLS-1$
-
-	/** */
-	String ATT_VIEWER_FILTER = "viewerFilter"; //$NON-NLS-1$
-
-	/** */
-	String ATT_ACTION_PROVIDER = "actionProvider"; //$NON-NLS-1$  
-
-	/** */
-	String ATT_DEPENDS_ON = "dependsOn"; //$NON-NLS-1$	
-	
-	/** */
-	String ATT_OVERRIDES = "overrides"; //$NON-NLS-1$	
-	
-	/** */
-	String ATT_POLICY = "policy"; //$NON-NLS-1$
-	
-	/** */
-	String ATT_SUPPRESSED_EXT_ID = "suppressedExtensionId"; //$NON-NLS-1$  
-	
-	/** */
-	String ATT_MENU_GROUP_ID = "menuGroupId"; //$NON-NLS-1$
-	
-	/** */
-	String ATT_ASSOCIATED_EXTENSION_ID = "associatedExtensionId"; //$NON-NLS-1$
-
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/INavigatorSiteEditor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/INavigatorSiteEditor.java
deleted file mode 100644
index 89a7658..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/INavigatorSiteEditor.java
+++ /dev/null
@@ -1,58 +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.extensions;
-
-import org.eclipse.ui.internal.navigator.TextActionHandler;
-
-
-/**
- * An INavigatorSiteEditor is used to edit (i.e., rename) elements in a NavigatorViewer.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * <p>
- * This interface is experimental and is subject to change.
- * </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 interface INavigatorSiteEditor {
-	/**
-	 * Starts the editing. An editor box will be overlaid on the selected element in the Navigator
-	 * tree.
-	 * 
-	 * @param runnable
-	 *            Runnable to execute when editing ends successfully
-	 */
-	public void edit(Runnable runnable);
-
-	/**
-	 * Returns the new text. Returns <code>null</code> if editing was cancelled. Editing is
-	 * cancelled when the user pressed the Escape key.
-	 * 
-	 * @return the new text or <code>null</code> if editing was cancelled
-	 */
-	public String getText();
-
-	/**
-	 * Set the text handler that handles cut, copy, paste, delete and select all operations within
-	 * the editor box.
-	 * 
-	 * @param actionHandler
-	 *            the text action handler
-	 */
-	public void setTextActionHandler(TextActionHandler actionHandler);
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/IViewerExtPtConstants.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/IViewerExtPtConstants.java
deleted file mode 100644
index f6d9eb1..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/IViewerExtPtConstants.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.internal.navigator.extensions;
-
-/**
- * @since 3.2
- *
- */
-public interface IViewerExtPtConstants {
-
-	/** */
-	String TAG_SAVEABLES_PROVIDER_FACTORY = "saveablesProviderFactory"; //$NON-NLS-1$
-
-	/** */
-	String TAG_VIEWER = "viewer"; //$NON-NLS-1$
-	
-	/** */
-	String TAG_VIEWER_CONTENT_BINDING = "viewerContentBinding"; //$NON-NLS-1$
-
-	/** */
-	String TAG_VIEWER_ACTION_BINDING = "viewerActionBinding"; //$NON-NLS-1$
-
-	/** */
-	String TAG_POPUP_MENU = "popupMenu"; //$NON-NLS-1$ 
-
-	/** */
-	String TAG_OPTIONS = "options"; //$NON-NLS-1$ 
-
-	/** */
-	String TAG_PROPERTY = "property"; //$NON-NLS-1$
-	
-	/** */
-	String TAG_DRAG_ASSISTANT = "dragAssistant"; //$NON-NLS-1$
-
-	/** */
-	String ATT_ID = "id"; //$NON-NLS-1$
-
-	/** */
-	String ATT_ALLOWS_PLATFORM_CONTRIBUTIONS = "allowsPlatformContributions"; //$NON-NLS-1$
-
-	/** */
-	String TAG_INSERTION_POINT = "insertionPoint"; //$NON-NLS-1$
-
-	/** */
-	String ATT_NAME = "name"; //$NON-NLS-1$
-
-	/** */
-	String ATT_SEPARATOR = "separator"; //$NON-NLS-1$
-
-	/** */
-	String ATT_VIEWER_ID = "viewerId"; //$NON-NLS-1$
-
-	/** */
-	String ATT_POPUP_MENU_ID = "popupMenuId"; //$NON-NLS-1$
-
-	/** */
-	String ATT_VALUE = "value"; //$NON-NLS-1$
-	
-	/** */
-	String ATT_CLASS = "class"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperDescriptor.java
deleted file mode 100644
index 060d359..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperDescriptor.java
+++ /dev/null
@@ -1,154 +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.extensions;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.internal.navigator.CustomAndExpression;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.navigator.ILinkHelper;
-
-/**
- * Provides a wrapper around
- * <b>org.eclipse.ui.navigator.navigatorContent/linkHelper</b> extensions.
- * 
- * @since 3.2
- * 
- */
-public class LinkHelperDescriptor implements ILinkHelperExtPtConstants {
-
-	private final IConfigurationElement configElement;
-
-	private String id;
-
-	private Expression editorInputEnablement;
-
-	/* The following field may be null */
-	private Expression selectionEnablement;
-
-	private boolean hasLinkHelperFailedCreation;
-
-	/* package */LinkHelperDescriptor(IConfigurationElement aConfigElement) {
-		Assert.isNotNull(aConfigElement,
-				"LinkHelperRegistry.Descriptor objects cannot be null."); //$NON-NLS-1$
-		Assert
-				.isLegal(LINK_HELPER.equals(aConfigElement.getName()),
-						"LinkHelperRegistry.Descriptor objects must have the name \"linkHelper\"."); //$NON-NLS-1$
-		configElement = aConfigElement;
-		init();
-	}
-
-	void init() {
-		id = configElement.getAttribute(ATT_ID);
-		IConfigurationElement[] expressions = this.configElement
-				.getChildren(EDITOR_INPUT_ENABLEMENT);
-		Assert
-				.isLegal(
-						expressions.length == 1,
-						"The linkHelper extension point requires exactly one editorInputEnablement child."); //$NON-NLS-1$
-
-		editorInputEnablement = new CustomAndExpression(expressions[0]);
-
-		expressions = configElement.getChildren(SELECTION_ENABLEMENT);
-		if (expressions.length > 0) {
-			/* The following attribute is optional */
-			// navigatorContentExtensionId = expressions[0]
-			// .getAttribute(ATT_NAVIGATOR_CONTENT_EXTENSION_ID);
-			if (expressions[0].getChildren() != null
-					&& expressions[0].getChildren().length > 0) {
-
-				selectionEnablement = new CustomAndExpression(expressions[0]);
-
-			}
-		}
-	}
-
-	/**
-	 * @return Returns the id.
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Create a link helper instance from this descriptors class attribute.
-	 * 
-	 * @return An instance of the helper that is defined by the extension, or a
-	 *         Skeleton Link Helper.
-	 */
-	public ILinkHelper createLinkHelper() {
-		if (hasLinkHelperFailedCreation)
-			return SkeletonLinkHelper.INSTANCE;
-		try {
-			return (ILinkHelper) configElement
-					.createExecutableExtension(ATT_CLASS);
-		} catch (Throwable t) {
-			hasLinkHelperFailedCreation = true;
-			NavigatorPlugin.logError(0, t.getMessage(), t);
-		}
-		return SkeletonLinkHelper.INSTANCE;
-	}
-
-	/**
-	 * 
-	 * @param anInput
-	 *            The editor input from the editor that was activated.
-	 * @return True if this linkHelper descriptor can produce a selection from
-	 *         the editor input.
-	 */
-	public boolean isEnabledFor(IEditorInput anInput) {
-
-		if (editorInputEnablement == null || anInput == null) {
-			return false;
-		}
-
-		try {
-			EvaluationContext context = new EvaluationContext(null, anInput);
-			context.setAllowPluginActivation(true);
-			return (editorInputEnablement.evaluate(context) == EvaluationResult.TRUE);
-		} catch (CoreException e) {
-			NavigatorPlugin.log(IStatus.ERROR, 0, e.getMessage(), e);
-		}
-		return false;
-	}
-
-	/**
-	 * @param anObject
-	 *            The selection from the CommonViewer
-	 * @return True if this dscriptor can determine a valid editor to activate
-	 *         from the selection.
-	 */
-	public boolean isEnabledFor(Object anObject) {
-		if (selectionEnablement == null) {
-			return false;
-		}
-
-		IEvaluationContext context = new EvaluationContext(null, anObject);
-		context.setAllowPluginActivation(true);
-		try {
-			if (selectionEnablement.evaluate(context) != EvaluationResult.TRUE) {
-				return false;
-			}
-		} catch (CoreException e) {
-			NavigatorPlugin.log(IStatus.ERROR, 0, e.getMessage(), e);
-			return false;
-		}
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperManager.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperManager.java
deleted file mode 100644
index e27b838..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperManager.java
+++ /dev/null
@@ -1,147 +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.extensions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * <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 LinkHelperManager {
-
-	private static final LinkHelperManager instance = new LinkHelperManager();
-
-	private static final LinkHelperDescriptor[] NO_DESCRIPTORS = new LinkHelperDescriptor[0];
-
-	private List descriptors;
-
-	/**
-	 * @return the singleton instance.
-	 */
-	public static LinkHelperManager getInstance() {
-		return instance;
-	}
-
-	private LinkHelperManager() {
-		new LinkHelperRegistry().readRegistry();
-	}
-
-	/**
-	 * Return the link helper descriptors for a given selection and content
-	 * service.
-	 * 
-	 * @param anObject
-	 *            An object from the viewer.
-	 * @param aContentService
-	 *            The content service to use for visibility filtering. Link
-	 *            Helpers are filtered by contentExtension elements in
-	 *            viewerContentBindings.
-	 * @return An array of <i>visible</i> and <i>enabled</i> Link Helpers or
-	 *         an empty array.
-	 */
-	public LinkHelperDescriptor[] getLinkHelpersFor(
-			Object anObject,
-			INavigatorContentService aContentService) {
-
-		List helpersList = new ArrayList();
-		LinkHelperDescriptor descriptor = null;
-		for (Iterator itr = getDescriptors().iterator(); itr.hasNext();) {
-			descriptor = (LinkHelperDescriptor) itr.next();
-			if (aContentService.isVisible(descriptor.getId())
-					&& descriptor.isEnabledFor(anObject)) {
-				helpersList.add(descriptor);
-			}
-		}
-		if (helpersList.size() == 0) {
-			return NO_DESCRIPTORS;
-		}
-		return (LinkHelperDescriptor[]) helpersList
-				.toArray(new LinkHelperDescriptor[helpersList.size()]);
-
-	}
-
-	/**
-	 * Return the link helper descriptors for a given selection and content
-	 * service.
-	 * 
-	 * @param anInput
-	 *            The input of the active viewer.
-	 * @param aContentService
-	 *            The content service to use for visibility filtering. Link
-	 *            Helpers are filtered by contentExtension elements in
-	 *            viewerContentBindings.
-	 * @return An array of <i>visible</i> and <i>enabled</i> Link Helpers or
-	 *         an empty array.
-	 */
-	public LinkHelperDescriptor[] getLinkHelpersFor(IEditorInput anInput,
-			INavigatorContentService aContentService) {
-
-		List helpersList = new ArrayList();
-		LinkHelperDescriptor descriptor = null;
-		for (Iterator itr = getDescriptors().iterator(); itr.hasNext();) {
-			descriptor = (LinkHelperDescriptor) itr.next();
-			if (aContentService.isVisible(descriptor.getId())
-					&& descriptor.isEnabledFor(anInput)) {
-				helpersList.add(descriptor);
-			}
-		}
-		if (helpersList.size() == 0) {
-			return NO_DESCRIPTORS;
-		}
-		return (LinkHelperDescriptor[]) helpersList
-				.toArray(new LinkHelperDescriptor[helpersList.size()]);
-
-	}
-
-	protected List getDescriptors() {
-		if (descriptors == null) {
-			descriptors = new ArrayList();
-		}
-		return descriptors;
-	}
-
-	private class LinkHelperRegistry extends RegistryReader implements
-			ILinkHelperExtPtConstants {
-
-		private LinkHelperRegistry() {
-			super(NavigatorPlugin.PLUGIN_ID, LINK_HELPER);
-		}
-
-		public boolean readElement(IConfigurationElement element) {
-			if (LINK_HELPER.equals(element.getName())) {
-				try {
-					getDescriptors().add(new LinkHelperDescriptor(element));
-				} catch (Throwable e) {
-					String msg = e.getMessage() != null ? e.getMessage() : e.toString();
-					NavigatorPlugin.logError(0, msg, e);
-				}
-				return true;
-			}
-			return false;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperService.java
deleted file mode 100644
index 4c123e3..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/LinkHelperService.java
+++ /dev/null
@@ -1,103 +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.extensions;
-
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.navigator.ILinkHelper;
-
-/**
- * @since 3.2
- * 
- */
-public class LinkHelperService {
-
-	private static final ILinkHelper[] CANT_GET_NO_HELP = new ILinkHelper[0];
-
-	private NavigatorContentService contentService;
-
-	private final Map linkHelpers = new HashMap();
-
-	/**
-	 * @param aContentService
-	 *            The associated content service for this link helper service.
-	 */
-	public LinkHelperService(NavigatorContentService aContentService) {
-		contentService = aContentService;
-	}
-
-	/**
-	 * 
-	 * @param anObject
-	 *            An object from the viewer
-	 * @return An array of link helpers that know about elements in the
-	 *         selection or null
-	 */
-	public ILinkHelper[] getLinkHelpersFor(Object anObject) {
-
-		LinkHelperDescriptor[] descriptors = LinkHelperManager.getInstance()
-				.getLinkHelpersFor(anObject, contentService);
-		if (descriptors.length == 0) {
-			return CANT_GET_NO_HELP;
-		}
-
-		Set helpers = new LinkedHashSet();
-		for (int i = 0; i < descriptors.length; i++) {
-			helpers.add(getLinkHelper(descriptors[i]));
-		}
-		if (helpers.size() == 0)
-			return CANT_GET_NO_HELP;
-		return (ILinkHelper[]) helpers.toArray(new ILinkHelper[helpers.size()]);
-
-	}
-
-	/**
-	 * 
-	 * @param input
-	 *            The Editor input from the active viewer.
-	 * @return An array of link helpers that know about elements in the
-	 *         selection or null
-	 */
-	public ILinkHelper[] getLinkHelpersFor(IEditorInput input) {
-		LinkHelperDescriptor[] descriptors = LinkHelperManager.getInstance()
-				.getLinkHelpersFor(input, contentService);
-		if (descriptors.length == 0) {
-			return CANT_GET_NO_HELP;
-		}
-
-		Set helpers = new LinkedHashSet();
-		for (int i = 0; i < descriptors.length; i++) {
-			helpers.add(getLinkHelper(descriptors[i]));
-		}
-		if (helpers.size() == 0)
-			return CANT_GET_NO_HELP;
-		return (ILinkHelper[]) helpers.toArray(new ILinkHelper[helpers.size()]);
-	}
-
-	private ILinkHelper getLinkHelper(LinkHelperDescriptor descriptor) {
-		ILinkHelper helper = (ILinkHelper) linkHelpers.get(descriptor);
-		if (helper == null) {
-			synchronized (this) {
-				if (helper == null) {
-					linkHelpers.put(descriptor, helper = descriptor
-							.createLinkHelper());
-				}
-			}
-		}
-		return helper;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentDescriptor.java
deleted file mode 100644
index 5a7ba30..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentDescriptor.java
+++ /dev/null
@@ -1,466 +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.extensions;
-
-import java.util.Iterator;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.eclipse.core.expressions.ElementHandler;
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.internal.navigator.CustomAndExpression;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.navigator.ICommonContentProvider;
-import org.eclipse.ui.navigator.ICommonLabelProvider;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.Priority;
-
-/**
- * Encapsulates the <code>org.eclipse.ui.navigator.navigatorContent</code>
- * extension point.
- * <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 final class NavigatorContentDescriptor implements
-		INavigatorContentDescriptor, INavigatorContentExtPtConstants {
-
-	private static final int HASH_CODE_NOT_COMPUTED = -1;
-	private String id;
-
-	private String name;
-
-	private IConfigurationElement configElement;
-
-	private int priority = Priority.NORMAL_PRIORITY_VALUE;
-
-	private Expression enablement;
-
-	private Expression possibleChildren;
-
-	private String icon;
-
-	private boolean activeByDefault;
-
-	private IPluginContribution contribution;
-
-	private Set overridingExtensions;
-
-	private OverridePolicy overridePolicy;
-
-	private String suppressedExtensionId;
-
-	private INavigatorContentDescriptor overriddenDescriptor;
-
-	private int hashCode = HASH_CODE_NOT_COMPUTED;
-
-	private boolean providesSaveables;
-
-	/**
-	 * Creates a new content descriptor from a configuration element.
-	 * 
-	 * @param configElement
-	 *            configuration element to create a descriptor from
-	 * 
-	 * @throws WorkbenchException
-	 *             if the configuration element could not be parsed. Reasons
-	 *             include:
-	 *             <ul>
-	 *             <li>A required attribute is missing.</li>
-	 *             <li>More elements are define than is allowed.</li>
-	 *             </ul>
-	 */
-	/* package */ NavigatorContentDescriptor(IConfigurationElement configElement)
-			throws WorkbenchException {
-		super();
-		this.configElement = configElement;
-		init();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorContentDescriptor#getId()
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorContentDescriptor#getName()
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorContentDescriptor#getPriority()
-	 */
-	public int getPriority() {
-		return priority;
-	}
-
-	/**
-	 * Parses the configuration element.
-	 * 
-	 * @throws WorkbenchException
-	 *             if the configuration element could not be parsed. Reasons
-	 *             include:
-	 *             <ul>
-	 *             <li>A required attribute is missing.</li>
-	 *             <li>More elements are define than is allowed.</li>
-	 *             </ul>
-	 */
-	private void init() throws WorkbenchException {
-		id = configElement.getAttribute(ATT_ID);
-		name = configElement.getAttribute(ATT_NAME);
-		String priorityString = configElement.getAttribute(ATT_PRIORITY);
-		icon = configElement.getAttribute(ATT_ICON);
-
-		String activeByDefaultString = configElement
-				.getAttribute(ATT_ACTIVE_BY_DEFAULT);
-		activeByDefault = (activeByDefaultString != null && activeByDefaultString
-				.length() > 0) ? Boolean.valueOf(
-				configElement.getAttribute(ATT_ACTIVE_BY_DEFAULT))
-				.booleanValue() : true;
-
-		String providesSaveablesString = configElement
-			.getAttribute(ATT_PROVIDES_SAVEABLES);
-		providesSaveables = (providesSaveablesString != null && providesSaveablesString
-				.length() > 0) ? Boolean.valueOf(providesSaveablesString)
-						.booleanValue() : false;
-
-		if (priorityString != null) {
-			try {
-				Priority p = Priority.get(priorityString);
-				priority = p != null ? p.getValue()
-						: Priority.NORMAL_PRIORITY_VALUE;
-			} catch (NumberFormatException exception) {
-				priority = Priority.NORMAL_PRIORITY_VALUE;
-			}
-		}
-		if (id == null) {
-			throw new WorkbenchException(NLS.bind(
-					CommonNavigatorMessages.Attribute_Missing_Warning,
-					new Object[] {
-							ATT_ID,
-							id,
-							configElement.getDeclaringExtension()
-									.getNamespaceIdentifier() }));
-		}
-
-		IConfigurationElement[] children = configElement
-				.getChildren(TAG_ENABLEMENT);
-		if (children.length == 0) {
-
-			children = configElement.getChildren(TAG_TRIGGER_POINTS);
-			if (children.length == 1) {
-				enablement = new CustomAndExpression(children[0]);
-			} else {
-				throw new WorkbenchException(NLS.bind(
-						CommonNavigatorMessages.Attribute_Missing_Warning,
-						new Object[] {
-								TAG_TRIGGER_POINTS,
-								id,
-								configElement.getDeclaringExtension()
-										.getNamespaceIdentifier() }));
-			}
-
-			children = configElement.getChildren(TAG_POSSIBLE_CHILDREN);
-			if (children.length == 1) {
-				possibleChildren = new CustomAndExpression(children[0]);
-			} else if(children.length > 1){
-				throw new WorkbenchException(NLS.bind(
-						CommonNavigatorMessages.Attribute_Missing_Warning,
-						new Object[] {
-								TAG_POSSIBLE_CHILDREN,
-								id,
-								configElement.getDeclaringExtension()
-										.getNamespaceIdentifier() }));
-			}
-		} else if (children.length == 1) {
-			try {
-				enablement = ElementHandler.getDefault().create(
-						ExpressionConverter.getDefault(), children[0]);
-			} catch (CoreException e) {
-				NavigatorPlugin.log(IStatus.ERROR, 0, e.getMessage(), e);
-			}
-		} else if (children.length > 1) {
-			throw new WorkbenchException(NLS.bind(
-					CommonNavigatorMessages.Attribute_Missing_Warning,
-					new Object[] {
-							TAG_ENABLEMENT,
-							id,
-							configElement.getDeclaringExtension()
-									.getNamespaceIdentifier() }));
-		}
-
-		contribution = new IPluginContribution() {
-
-			public String getLocalId() {
-				return getId();
-			}
-
-			public String getPluginId() {
-				return configElement.getDeclaringExtension().getNamespaceIdentifier();
-			}
-
-		};
-
-		children = configElement.getChildren(TAG_OVERRIDE);
-		if (children.length == 1) {
-			suppressedExtensionId = children[0]
-					.getAttribute(ATT_SUPPRESSED_EXT_ID);
-			overridePolicy = OverridePolicy.get(children[0]
-					.getAttribute(ATT_POLICY));
-		}
-	}
-
-	/**
-	 * @return Returns the icon.
-	 */
-	public String getIcon() {
-		return icon;
-	}
-
-	/**
-	 * @return Returns the suppressedExtensionId or null if none specified.
-	 */
-	public String getSuppressedExtensionId() {
-		return suppressedExtensionId;
-	}
-
-	/**
-	 * @return Returns the overridePolicy or null if this extension does not
-	 *         override another extension.
-	 */
-	public OverridePolicy getOverridePolicy() {
-		return overridePolicy;
-	}
-
-	/**
-	 * @return Returns the contribution.
-	 */
-	public IPluginContribution getContribution() {
-		return contribution;
-	}
-
-	/**
-	 * The content provider could be an instance of
-	 * {@link ICommonContentProvider}, but only {@link ITreeContentProvider} is
-	 * required.
-	 * 
-	 * 
-	 * @return An instance of the Content provider defined for this extension.
-	 * @throws CoreException
-	 *             if an instance of the executable extension could not be
-	 *             created for any reason
-	 * 
-	 */
-	public ITreeContentProvider createContentProvider() throws CoreException {
-		return (ITreeContentProvider) configElement
-				.createExecutableExtension(ATT_CONTENT_PROVIDER);
-	}
-
-	/**
-	 * 
-	 * The content provider could be an instance of {@link ICommonLabelProvider},
-	 * but only {@link ILabelProvider} is required.
-	 * 
-	 * @return An instance of the Label provider defined for this extension
-	 * @throws CoreException
-	 *             if an instance of the executable extension could not be
-	 *             created for any reason
-	 */
-	public ILabelProvider createLabelProvider() throws CoreException {
-		return (ILabelProvider) configElement
-				.createExecutableExtension(ATT_LABEL_PROVIDER);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorContentDescriptor#isEnabledByDefault()
-	 */
-	public boolean isActiveByDefault() {
-		return activeByDefault;
-	}
-
-	/**
-	 * Determine if this content extension would be able to provide children for
-	 * the given element.
-	 * 
-	 * @param anElement
-	 *            The element that should be used for the evaluation.
-	 * @return True if and only if the extension is enabled for the element.
-	 */
-	public boolean isTriggerPoint(Object anElement) {
-
-		if (enablement == null || anElement == null) {
-			return false;
-		}
-
-		try {
-			EvaluationContext context = new EvaluationContext(null, anElement);
-			context.setAllowPluginActivation(true);
-			return (enablement.evaluate(context) == EvaluationResult.TRUE);
-		} catch (CoreException e) {
-			NavigatorPlugin.logError(0, e.getMessage(), e);
-		}
-		return false;
-	}
-
-	/**
-	 * Determine if this content extension could provide the given element as a
-	 * child.
-	 * 
-	 * <p>
-	 * This method is used to determine what the parent of an element could be
-	 * for Link with Editor support.
-	 * </p>
-	 * 
-	 * @param anElement
-	 *            The element that should be used for the evaluation.
-	 * @return True if and only if the extension might provide an object of this
-	 *         type as a child.
-	 */
-	public boolean isPossibleChild(Object anElement) {
-
-		if ((enablement == null && possibleChildren == null)
-				|| anElement == null) {
-			return false;
-		} else if(anElement instanceof IStructuredSelection) {
-			return arePossibleChildren((IStructuredSelection) anElement);
-		}
-
-		try {
-			EvaluationContext context = new EvaluationContext(null, anElement);
-			context.setAllowPluginActivation(true);
-			if (possibleChildren != null) {
-				return (possibleChildren.evaluate(context) == EvaluationResult.TRUE);
-			} else if (enablement != null) {
-				return (enablement.evaluate(context) == EvaluationResult.TRUE);
-			}
-		} catch (CoreException e) {
-			NavigatorPlugin.logError(0, e.getMessage(), e);
-		}
-		return false;
-	}
-	
-	/**
-	 * A convenience method to check all elements in a selection. 
-	 * 
-	 * @param aSelection A non-null selection
-	 * @return True if and only if every element in the selection is a possible child.
-	 */
-	public boolean arePossibleChildren(IStructuredSelection aSelection) {
-		if(aSelection.isEmpty()) {
-			return false;
-		}
-		for (Iterator iter = aSelection.iterator(); iter.hasNext();) {
-			Object element = iter.next();
-			if(!isPossibleChild(element)) {
-				return false;
-			}			
-		}
-		return true;
-	}
-
-	/**
-	 * 
-	 * Does not force the creation of the set of overriding extensions.
-	 * 
-	 * @return True if this extension has overridding extensions.
-	 */
-	public boolean hasOverridingExtensions() {
-		return overridingExtensions != null && overridingExtensions.size() > 0;
-	}
-
-	/**
-	 * @return The set of overridding extensions (of type
-	 *         {@link INavigatorContentDescriptor}
-	 */
-	public Set getOverriddingExtensions() {
-		if (overridingExtensions == null) {
-			overridingExtensions = new TreeSet(ExtensionPriorityComparator.DESCENDING);
-		}
-		return overridingExtensions;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return "Content[" + id + ", \"" + name + "\"]"; //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$
-	}
-	
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		if (hashCode == HASH_CODE_NOT_COMPUTED) {
-			String hashCodeString = configElement.getNamespaceIdentifier() + getId();
-			hashCode = hashCodeString.hashCode();
-			if (hashCode == HASH_CODE_NOT_COMPUTED)
-				hashCode++;
-		}
-		return hashCode;
-	}
-
-	/**
-	 * @return The descriptor of the <code>suppressedExtensionId</code> if
-	 *         non-null.
-	 */
-	public INavigatorContentDescriptor getOverriddenDescriptor() {
-		return overriddenDescriptor;
-	}
-
-	/**
-	 * @param theOverriddenDescriptor
-	 *            The overriddenDescriptor to set.
-	 */
-	/* package */void setOverriddenDescriptor(
-			INavigatorContentDescriptor theOverriddenDescriptor) {
-		overriddenDescriptor = theOverriddenDescriptor;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.INavigatorContentDescriptor#hasSaveablesProvider()
-	 */
-	public boolean hasSaveablesProvider() {
-		return providesSaveables;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentDescriptorManager.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentDescriptorManager.java
deleted file mode 100644
index 2c3542d..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentDescriptorManager.java
+++ /dev/null
@@ -1,463 +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.extensions;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.WeakHashMap;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.VisibilityAssistant;
-import org.eclipse.ui.internal.navigator.VisibilityAssistant.VisibilityListener;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * <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 NavigatorContentDescriptorManager {
-
-	private static final NavigatorContentDescriptorManager INSTANCE = new NavigatorContentDescriptorManager();
- 
-	private final Map firstClassDescriptorsMap = new HashMap();
-
-	private final Map allDescriptors = new HashMap();
-
-	private class EvaluationCache implements VisibilityListener {
-
-		private final Map evaluations = new WeakHashMap();
-		private final Map evaluationsWithOverrides = new WeakHashMap();
-
-		EvaluationCache(VisibilityAssistant anAssistant) {
-			anAssistant.addListener(this);
-		}
-
-		protected final Set getDescriptors(Object anElement) {
-			return getDescriptors(anElement, true);
-		}
-
-		protected final void setDescriptors(Object anElement, Set theDescriptors) {
-			setDescriptors(anElement, theDescriptors, true);		
-		}
-		
-		protected final Set getDescriptors(Object anElement, boolean toComputeOverrides) {
-			if(toComputeOverrides)
-				return (Set) evaluations.get(anElement); 
-			return (Set) evaluationsWithOverrides.get(anElement);
-		}
-
-		protected final void setDescriptors(Object anElement, Set theDescriptors, boolean toComputeOverrides) {
-			if(toComputeOverrides)
-				evaluations.put(anElement, theDescriptors);
-			else 
-				evaluationsWithOverrides.put(anElement, theDescriptors);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.internal.navigator.VisibilityAssistant.VisibilityListener#onVisibilityOrActivationChange()
-		 */
-		public void onVisibilityOrActivationChange() {
-			evaluations.clear();
-			evaluationsWithOverrides.clear();
-		}
-	}
-
-	/* Map of (VisibilityAssistant, EvaluationCache)-pairs */
-	private final Map cachedTriggerPointEvaluations = new WeakHashMap();
-
-	/* Map of (VisibilityAssistant, EvaluationCache)-pairs */
-	private final Map cachedPossibleChildrenEvaluations = new WeakHashMap();
-
-	private ImageRegistry imageRegistry;
-
-	private final Set overridingDescriptors = new HashSet();
-
-	private final Set saveablesProviderDescriptors = new HashSet();
-	
-	private final Set firstClassDescriptorsSet = new HashSet();
-
-	/**
-	 * @return the singleton instance of the manager
-	 */
-	public static NavigatorContentDescriptorManager getInstance() {
-		return INSTANCE;
-	}
-
-	private NavigatorContentDescriptorManager() {
-		new NavigatorContentDescriptorRegistry().readRegistry();
-	}
-
-	/**
-	 * 
-	 * @return Returns all content descriptor(s).
-	 */
-	public NavigatorContentDescriptor[] getAllContentDescriptors() {
-		NavigatorContentDescriptor[] finalDescriptors = new NavigatorContentDescriptor[allDescriptors
-				.size()];
-		finalDescriptors = (NavigatorContentDescriptor[]) allDescriptors.values().toArray(finalDescriptors);
-		Arrays.sort(finalDescriptors, ExtensionPriorityComparator.INSTANCE);
-		return finalDescriptors;
-	}
-
-	/**
-	 * 
-	 * @return Returns all content descriptors that provide saveables.
-	 */
-	public NavigatorContentDescriptor[] getContentDescriptorsWithSaveables() {
-		NavigatorContentDescriptor[] finalDescriptors = new NavigatorContentDescriptor[saveablesProviderDescriptors
-		                                                                               .size()];
-		saveablesProviderDescriptors.toArray(finalDescriptors);
-		Arrays.sort(finalDescriptors, ExtensionPriorityComparator.INSTANCE);
-		return finalDescriptors;
-	}
-	
-	/**
-	 * 
-	 * Returns all content descriptor(s) which enable for the given element.
-	 * 
-	 * @param anElement
-	 *            the element to return the best content descriptor for
-	 * 
-	 * @param aVisibilityAssistant
-	 *            The relevant viewer assistant; used to filter out unbound
-	 *            content descriptors.
-	 * @return the best content descriptor for the given element.
-	 */
-	public Set findDescriptorsForTriggerPoint(Object anElement,
-			VisibilityAssistant aVisibilityAssistant) {
-		EvaluationCache cache = getEvaluationCache(
-				cachedTriggerPointEvaluations, aVisibilityAssistant);
-		if (cache.getDescriptors(anElement) != null) {
-			return cache.getDescriptors(anElement);
-		}
-
-		Set descriptors = new TreeSet(ExtensionPriorityComparator.INSTANCE);
-
-	 	/* Find other ContentProviders which enable for this object */
-		for (Iterator contentDescriptorsItr = firstClassDescriptorsMap.values()
-				.iterator(); contentDescriptorsItr.hasNext();) {
-			NavigatorContentDescriptor descriptor = (NavigatorContentDescriptor) contentDescriptorsItr
-					.next();
-
-			if (aVisibilityAssistant.isActive(descriptor)
-					&& aVisibilityAssistant.isVisible(descriptor)
-					&& descriptor.isTriggerPoint(anElement)) {
-				descriptors.add(descriptor);
-			}
-		}
-
-		cache.setDescriptors(anElement, descriptors);
-
-		return descriptors;
-	}
-
-	private EvaluationCache getEvaluationCache(Map anEvaluationMap,
-			VisibilityAssistant aVisibilityAssistant) {
-		EvaluationCache c = (EvaluationCache) anEvaluationMap
-				.get(aVisibilityAssistant);
-		if (c == null) {
-			anEvaluationMap.put(aVisibilityAssistant, c = new EvaluationCache(
-					aVisibilityAssistant));
-		}
-		return c;
-
-	}
-	
-	/**
-	 * 
-	 * Returns all content descriptor(s) which enable for the given element.
-	 * 
-	 * @param anElement
-	 *            the element to return the best content descriptor for
-	 * 
-	 * @param aVisibilityAssistant
-	 *            The relevant viewer assistant; used to filter out unbound
-	 *            content descriptors.
-	 * @return the best content descriptor for the given element.
-	 */
-	public Set findDescriptorsForPossibleChild(Object anElement,
-			VisibilityAssistant aVisibilityAssistant) {
-		return findDescriptorsForPossibleChild(anElement, aVisibilityAssistant, true);
-	}
-
-	/**
-	 * 
-	 * Returns all content descriptor(s) which enable for the given element.
-	 * 
-	 * @param anElement
-	 *            the element to return the best content descriptor for
-	 * 
-	 * @param aVisibilityAssistant
-	 *            The relevant viewer assistant; used to filter out unbound
-	 *            content descriptors.
-	 * @return the best content descriptor for the given element.
-	 */
-	public Set findDescriptorsForPossibleChild(Object anElement,
-			VisibilityAssistant aVisibilityAssistant, boolean toComputeOverrides) {
-
-		EvaluationCache cache = getEvaluationCache(
-				cachedPossibleChildrenEvaluations, aVisibilityAssistant);
-		if (cache.getDescriptors(anElement, toComputeOverrides) != null) {
-			return cache.getDescriptors(anElement, toComputeOverrides);
-		}
-		
-		Set descriptors = new TreeSet(ExtensionPriorityComparator.INSTANCE);
-		if(toComputeOverrides) {
-			addDescriptorsForPossibleChild(anElement, firstClassDescriptorsSet,
-				aVisibilityAssistant, descriptors);
-		} else {
-
-			NavigatorContentDescriptor descriptor;
-			/* Find other ContentProviders which enable for this object */
-			for (Iterator contentDescriptorsItr = allDescriptors.values().iterator(); contentDescriptorsItr
-					.hasNext();) {
-				descriptor = (NavigatorContentDescriptor) contentDescriptorsItr
-						.next();
-
-				boolean isApplicable = aVisibilityAssistant.isActive(descriptor)
-						&& aVisibilityAssistant.isVisible(descriptor)
-						&& descriptor.isPossibleChild(anElement);
-
-				 if (isApplicable) {
-					descriptors.add(descriptor);
-				}
-
-			}
-		} 
-		cache.setDescriptors(anElement, descriptors, toComputeOverrides);
-
-		return descriptors;
-	}
-
-	private boolean addDescriptorsForPossibleChild(Object anElement,
-			Set theChildDescriptors, VisibilityAssistant aVisibilityAssistant,
-			Set theFoundDescriptors) {
-		int initialSize = theFoundDescriptors.size();
-
-		NavigatorContentDescriptor descriptor;
-		/* Find other ContentProviders which enable for this object */
-		for (Iterator contentDescriptorsItr = theChildDescriptors.iterator(); contentDescriptorsItr
-				.hasNext();) {
-			descriptor = (NavigatorContentDescriptor) contentDescriptorsItr
-					.next();
-
-			boolean isApplicable = aVisibilityAssistant.isActive(descriptor)
-					&& aVisibilityAssistant.isVisible(descriptor)
-					&& descriptor.isPossibleChild(anElement);
-
-			if (descriptor.hasOverridingExtensions()) {
-
-				boolean isOverridden = addDescriptorsForPossibleChild(
-						anElement, descriptor.getOverriddingExtensions(),
-						aVisibilityAssistant, theFoundDescriptors);
-
-				if (!isOverridden && isApplicable) {
-					theFoundDescriptors.add(descriptor);
-				}
-
-			} else if (isApplicable) {
-				theFoundDescriptors.add(descriptor);
-			}
-
-		}
-		return initialSize < theFoundDescriptors.size();
-
-	}
-
-	/**
-	 * Returns the navigator content descriptor with the given id.
-	 * 
-	 * @param id
-	 *            The id of the content descriptor that should be returned
-	 * @return The content descriptor of the given id
-	 */
-	public NavigatorContentDescriptor getContentDescriptor(String id) {
-		return (NavigatorContentDescriptor) allDescriptors.get(id);
-	}
-
-	/**
-	 * 
-	 * @param descriptorId
-	 *            The unique id of a particular descriptor
-	 * @return The name (value of the 'name' attribute) of the given descriptor
-	 */
-	public String getText(String descriptorId) {
-		INavigatorContentDescriptor descriptor = getContentDescriptor(descriptorId);
-		if (descriptor != null) {
-			return descriptor.getName();
-		}
-		return descriptorId;
-	}
-
-	/**
-	 * 
-	 * @param descriptorId
-	 *            The unique id of a particular descriptor
-	 * @return The image (corresponding to the value of the 'icon' attribute) of
-	 *         the given descriptor
-	 */
-	public Image getImage(String descriptorId) {
-		return retrieveAndStoreImage(descriptorId);
-	}
-
-	protected Image retrieveAndStoreImage(String descriptorId) {
-		NavigatorContentDescriptor contentDescriptor = getContentDescriptor(descriptorId);
-
-		Image image = null;
-		if (contentDescriptor != null) {
-			String icon = contentDescriptor.getIcon();
-			if (icon != null) {
-				image = getImageRegistry().get(icon);
-				if (image == null || image.isDisposed()) {
-					ImageDescriptor imageDescriptor = AbstractUIPlugin
-							.imageDescriptorFromPlugin(contentDescriptor
-									.getContribution().getPluginId(), icon);
-					if (imageDescriptor != null) {
-						image = imageDescriptor.createImage();
-						if (image != null) {
-							getImageRegistry().put(icon, image);
-						}
-					}
-				}
-			}
-		}
-		return image;
-	}
-
-	/**
-	 * @param desc
-	 */
-	private void addNavigatorContentDescriptor(NavigatorContentDescriptor desc) {
-		if (desc == null) {
-			return;
-		}
-		synchronized (firstClassDescriptorsMap) {
-			if (firstClassDescriptorsMap.containsKey(desc.getId())) {
-				NavigatorPlugin
-						.logError(
-								0,
-								"An extension already exists with id \"" + desc.getId() + "\".", null); //$NON-NLS-1$ //$NON-NLS-2$
-			} else {
-				if (desc.getSuppressedExtensionId() == null) {
-					firstClassDescriptorsMap.put(desc.getId(), desc);
-					firstClassDescriptorsSet.add(desc);
-				} else {
-					overridingDescriptors.add(desc);
-				}
-				allDescriptors.put(desc.getId(), desc);
-				if (desc.hasSaveablesProvider()) {
-					saveablesProviderDescriptors.add(desc);
-				}
-			}
-		}
-	}
-
-	/**
-	 * 
-	 */
-	private void computeOverrides() {
-		if (overridingDescriptors.size() > 0) {
-			NavigatorContentDescriptor descriptor;
-			NavigatorContentDescriptor overriddenDescriptor;
-			for (Iterator overridingIterator = overridingDescriptors.iterator(); overridingIterator
-					.hasNext();) {
-				descriptor = (NavigatorContentDescriptor) overridingIterator
-						.next();
-				overriddenDescriptor = (NavigatorContentDescriptor) allDescriptors
-						.get(descriptor.getSuppressedExtensionId());
-				if (overriddenDescriptor != null) {
-
-					/*
-					 * add the descriptor as an overriding extension for its
-					 * suppressed extension
-					 */
-					overriddenDescriptor.getOverriddingExtensions().add(
-							descriptor);
-					descriptor.setOverriddenDescriptor(overriddenDescriptor);
-					/*
-					 * the always policy implies this is also a top-level
-					 * extension
-					 */
-					if (descriptor.getOverridePolicy() == OverridePolicy.InvokeAlwaysRegardlessOfSuppressedExt) {
-						firstClassDescriptorsMap.put(descriptor.getId(),
-								descriptor);
-						firstClassDescriptorsSet.add(descriptor);
-					}
-
-				} else {
-					NavigatorPlugin.logError(0,
-							"Invalid suppressedExtensionId (\"" //$NON-NLS-1$
-									+ descriptor.getSuppressedExtensionId()
-									+ "\" specified from " //$NON-NLS-1$
-									+ descriptor.getContribution()
-											.getPluginId()
-									+ ". No extension with matching id found.", //$NON-NLS-1$
-							null);
-				}
-			}
-		}
-	}
- 
-	private ImageRegistry getImageRegistry() {
-		if (imageRegistry == null) {
-			imageRegistry = new ImageRegistry();
-		}
-		return imageRegistry;
-	}
-
-	private class NavigatorContentDescriptorRegistry extends
-			NavigatorContentRegistryReader {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.internal.navigator.extensions.RegistryReader#readRegistry()
-		 */
-		public void readRegistry() {
-			super.readRegistry();
-			computeOverrides();
-		}
-
-		protected boolean readElement(IConfigurationElement anElement) {
-			if (TAG_NAVIGATOR_CONTENT.equals(anElement.getName())) {
-				try {
-					addNavigatorContentDescriptor(new NavigatorContentDescriptor(
-							anElement));
-
-				} catch (WorkbenchException e) {
-					// log an error since its not safe to open a dialog here
-					NavigatorPlugin.log(e.getStatus());
-				}
-			}
-			return super.readElement(anElement);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentExtension.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentExtension.java
deleted file mode 100644
index 86545de..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentExtension.java
+++ /dev/null
@@ -1,423 +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.extensions;
-
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.navigator.ICommonContentProvider;
-import org.eclipse.ui.navigator.ICommonLabelProvider;
-import org.eclipse.ui.navigator.IExtensionStateModel;
-import org.eclipse.ui.navigator.IMementoAware;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentExtension;
-
-/**
- * <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 NavigatorContentExtension implements IMementoAware,
-		INavigatorContentExtension {
-
-	private static final NavigatorContentExtension[] NO_EXTENSIONS = new NavigatorContentExtension[0];
-
-	private NavigatorContentService contentService;
-
-	private NavigatorContentDescriptor descriptor;
-
-	private final String viewerId;
-
-	private ICommonContentProvider contentProvider;
-
-	private ICommonLabelProvider labelProvider;
-
-	private IExtensionStateModel stateModel;
-
-	private boolean labelProviderInitializationFailed = false;
-
-	private boolean contentProviderInitializationFailed = false;
-
-	private boolean isDisposed = false;
-
-	private IMemento appliedMemento;
-
-	private StructuredViewerManager viewerManager;
-
-	/**
-	 * Create an object to manage the instantiated elements from the extension.
-	 * 
-	 * @param aDescriptor
-	 *            The descriptor that knows how to create elements and knows the
-	 *            id of the extension
-	 * @param aContentService
-	 *            The content service that will manage this extension
-	 * @param aViewerManager
-	 *            The viewer manager that knows how to initialize the content
-	 *            provider created by this extension.
-	 */
-	public NavigatorContentExtension(NavigatorContentDescriptor aDescriptor,
-			NavigatorContentService aContentService,
-			StructuredViewerManager aViewerManager) {
-		super();
-		Assert.isNotNull(aDescriptor);
-
-		descriptor = aDescriptor;
-		contentService = aContentService;
-		viewerId = contentService.getViewerId();
-		viewerManager = aViewerManager;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtension#getId()
-	 */
-	public String getId() {
-		return descriptor.getId();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtension#getDescriptor()
-	 */
-	public INavigatorContentDescriptor getDescriptor() {
-		return descriptor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorContentExtension#getContentProvider()
-	 */
-	public ITreeContentProvider getContentProvider() {
-
-		ITreeContentProvider provider = internalGetContentProvider();
-		if (provider != SkeletonTreeContentProvider.INSTANCE) {
-			return ((SafeDelegateTreeContentProvider) provider)
-					.getDelegateContentProvider();
-		}
-		return provider;
-	}
-
-	/**
-	 * 
-	 * @return The internal content provider that is wrapped by this extension.
-	 */
-	public ITreeContentProvider internalGetContentProvider() {
-		if (contentProvider != null || contentProviderInitializationFailed) {
-			return contentProvider;
-		}
-		synchronized (this) {
-			try {
-				if (contentProvider == null) {
-					ITreeContentProvider treeContentProvider = descriptor
-							.createContentProvider();
-					if (treeContentProvider != null) {
-						contentProvider = new SafeDelegateTreeContentProvider(
-								treeContentProvider, descriptor, contentService);
-						contentProvider.init(new CommonContentExtensionSite(
-								getId(), contentService, appliedMemento));
-						viewerManager.initialize(contentProvider);
-					} else {
-						contentProvider = SkeletonTreeContentProvider.INSTANCE;
-					}
-				}
-			} catch (CoreException e) {
-				contentProviderInitializationFailed = true;
-				e.printStackTrace();
-			} catch (RuntimeException e) {
-				contentProviderInitializationFailed = true;
-				e.printStackTrace();
-			}
-			if (contentProviderInitializationFailed) {
-				contentProvider = SkeletonTreeContentProvider.INSTANCE;
-			}
-		}
-		return contentProvider;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtension#getLabelProvider()
-	 */
-	public ICommonLabelProvider getLabelProvider() {
-		if (labelProvider != null || labelProviderInitializationFailed) {
-			return labelProvider;
-		}
-		synchronized (this) {
-			try {
-
-				if (labelProvider == null) {
-					ILabelProvider tempLabelProvider = descriptor
-							.createLabelProvider();
-
-					if (tempLabelProvider instanceof ICommonLabelProvider) {
-						labelProvider = (ICommonLabelProvider) tempLabelProvider;
-							labelProvider.init(new CommonContentExtensionSite(
-									getId(), contentService, appliedMemento));
-					} else {
-						labelProvider = new SafeDelegateCommonLabelProvider(
-								tempLabelProvider);
-					}					
-					
-					labelProvider.addListener( (ILabelProviderListener)contentService.createCommonLabelProvider() );
-				}
-			} catch (CoreException e) {
-				labelProviderInitializationFailed = true;
-				e.printStackTrace();
-			} catch (RuntimeException e) {
-				labelProviderInitializationFailed = true;
-				e.printStackTrace();
-			}
-
-			if (labelProviderInitializationFailed) {
-				labelProvider = SkeletonLabelProvider.INSTANCE;
-			}
-		}
-		return labelProvider;
-	}
-
-	/**
-	 * Dispose of any resources acquired during the lifecycle of the extension.
-	 * 
-	 */
-	public void dispose() {
-		try {
-			synchronized (this) {  
-					
-				SafeRunner.run(new ISafeRunnable() {
-
-					public void handleException(Throwable exception) { 
-						String msg = exception.getMessage() != null ? exception.getMessage() : exception.toString() ;							
-						NavigatorPlugin.logError(0, msg, exception);
-						
-					}
-
-					public void run() throws Exception {
-						if (contentProvider != null) {
-							contentProvider.dispose();
-						} 
-
-					}
-					
-				}); 
-				
-				SafeRunner.run(new ISafeRunnable() {
-
-					public void handleException(Throwable exception) { 
-						String msg = exception.getMessage() != null ? exception.getMessage() : exception.toString() ;							
-						NavigatorPlugin.logError(0, msg, exception);
-						
-					}
-
-					public void run() throws Exception {
-						if (labelProvider != null) {
-							labelProvider.removeListener((ILabelProviderListener)contentService.createCommonLabelProvider());
-							labelProvider.dispose();
-						}
-
-					}
-					
-				});				
- 	
-			}
-		} finally {
-			isDisposed = true;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtension#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		return null;
-	}
-
-	/**
-	 * @return Returns the contentProviderInitializationFailed.
-	 */
-	public boolean hasContentProviderInitializationFailed() {
-		return contentProviderInitializationFailed;
-	}
-
-	/**
-	 * @return Returns the labelProviderInitializationFailed.
-	 */
-	public boolean hasLabelProviderInitializationFailed() {
-		return labelProviderInitializationFailed;
-	}
-
-	/**
-	 * 
-	 * @return True if the loading of the content provider has failed.
-	 */
-	public boolean hasLoadingFailed() {
-		return contentProviderInitializationFailed;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtension#isLoaded()
-	 */
-	public boolean isLoaded() {
-		return contentProvider != null;
-	}
-
-	public void restoreState(IMemento aMemento) {
-		synchronized (this) {
-			appliedMemento = aMemento;
-			applyMemento(contentProvider);
-			applyMemento(labelProvider);
-
-		}
-	}
-
-	public void saveState(IMemento aMemento) {
-		synchronized (this) {
-			if(contentProvider != null && contentProvider instanceof IMementoAware)
-				((IMementoAware)contentProvider).saveState(aMemento);
-			if(labelProvider != null && labelProvider instanceof IMementoAware)
-				((IMementoAware)labelProvider).saveState(aMemento);
-			
-		}
-	}
-
-	private void applyMemento(IMementoAware target) {
-		if (target != null) {
-			target.restoreState(appliedMemento);
-		}
-
-	}
-
-	protected final void complainDisposedIfNecessary() {
-		if (isDisposed) {
-			throw new IllegalStateException("INavigatorContentExtension " //$NON-NLS-1$
-					+ descriptor.getId() + " is disposed!"); //$NON-NLS-1$
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtension#getStateModel()
-	 */
-	public IExtensionStateModel getStateModel() {
-		if (stateModel == null) {
-			stateModel = new ExtensionStateModel(descriptor.getId(), viewerId);
-		}
-		return stateModel;
-	}
-
-	/**
-	 * @param anElement
-	 *            The element for the query.
-	 * @return Returns the overridingExtensions.
-	 */
-	public NavigatorContentExtension[] getOverridingExtensionsForTriggerPoint(
-			Object anElement) {
-		if (!descriptor.hasOverridingExtensions()) {
-			return NO_EXTENSIONS;
-		}
-
-		NavigatorContentDescriptor overriddingDescriptor;
-		Set overridingExtensions = new LinkedHashSet();
-		for (Iterator contentDescriptorsItr = descriptor
-				.getOverriddingExtensions().iterator(); contentDescriptorsItr
-				.hasNext();) {
-			overriddingDescriptor = (NavigatorContentDescriptor) contentDescriptorsItr
-					.next();
-
-			if (contentService.isActive(overriddingDescriptor.getId())
-					&& contentService.isVisible(overriddingDescriptor.getId())
-					&& overriddingDescriptor.isTriggerPoint(anElement)) {
-				overridingExtensions.add(contentService
-						.getExtension(overriddingDescriptor));
-			}
-		}
-		if (overridingExtensions.size() == 0) {
-			return NO_EXTENSIONS;
-		}
-		return (NavigatorContentExtension[]) overridingExtensions
-				.toArray(new NavigatorContentExtension[overridingExtensions
-						.size()]);
-	}
-
-	/**
-	 * 
-	 * @param anElement
-	 *            The element for the query.
-	 * @return Returns the overridingExtensions.
-	 */
-	public NavigatorContentExtension[] getOverridingExtensionsForPossibleChild(
-			Object anElement) {
-		if (!descriptor.hasOverridingExtensions()) {
-			return NO_EXTENSIONS;
-		}
-
-		NavigatorContentDescriptor overriddingDescriptor;
-		Set overridingExtensions = new LinkedHashSet();
-		for (Iterator contentDescriptorsItr = descriptor
-				.getOverriddingExtensions().iterator(); contentDescriptorsItr
-				.hasNext();) {
-			overriddingDescriptor = (NavigatorContentDescriptor) contentDescriptorsItr
-					.next();
-
-			if (contentService.isActive(overriddingDescriptor.getId())
-					&& contentService.isVisible(overriddingDescriptor.getId())
-					&& overriddingDescriptor.isPossibleChild(anElement)) {
-				overridingExtensions.add(contentService
-						.getExtension(overriddingDescriptor));
-			}
-		}
-		if (overridingExtensions.size() == 0) {
-			return NO_EXTENSIONS;
-		}
-		return (NavigatorContentExtension[]) overridingExtensions
-				.toArray(new NavigatorContentExtension[overridingExtensions
-						.size()]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return descriptor.toString() + " Instance"; //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentRegistryReader.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentRegistryReader.java
deleted file mode 100644
index 7f18122..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorContentRegistryReader.java
+++ /dev/null
@@ -1,42 +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.extensions;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-
-/**
- * Provides a common superclass for all consumers of the
- * <b>org.eclipse.ui.navigator.navigatorContent</b> extension point.
- * 
- * @since 3.2
- * 
- */
-public class NavigatorContentRegistryReader extends RegistryReader implements
-		INavigatorContentExtPtConstants {
-
-	protected final NavigatorContentDescriptorManager CONTENT_DESCRIPTOR_MANAGER = NavigatorContentDescriptorManager
-			.getInstance();
-
-	protected NavigatorContentRegistryReader() {
-		super(NavigatorPlugin.PLUGIN_ID, TAG_NAVIGATOR_CONTENT);
-	}
-
-	protected boolean readElement(IConfigurationElement element) {
-		String elementName = element.getName();
-
-		/* These are all of the valid root tags that exist */
-		return TAG_ACTION_PROVIDER.equals(elementName)
-				|| TAG_NAVIGATOR_CONTENT.equals(elementName)
-				|| TAG_COMMON_WIZARD.equals(elementName)
-				|| TAG_COMMON_FILTER.equals(elementName);
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorViewerDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorViewerDescriptor.java
deleted file mode 100644
index 3e5bc50..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorViewerDescriptor.java
+++ /dev/null
@@ -1,296 +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.extensions;
-
-import java.util.HashSet;
-import java.util.Properties;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.INavigatorViewerDescriptor;
-import org.eclipse.ui.navigator.MenuInsertionPoint;
-import org.eclipse.ui.navigator.NavigatorActionService;
-
-/**
- * Encapsulates the <code>org.eclipse.ui.navigator.viewer</code> extension.
- * <p>
- * 
- * @since 3.2
- */
-public final class NavigatorViewerDescriptor implements
-		INavigatorViewerDescriptor {
-
-	static final String TAG_INCLUDES = "includes"; //$NON-NLS-1$
-
-	static final String TAG_EXCLUDES = "excludes"; //$NON-NLS-1$
-
-	static final String ATT_IS_ROOT = "isRoot"; //$NON-NLS-1$
-
-	static final String ATT_PATTERN = "pattern"; //$NON-NLS-1$
-
-	private static final String TAG_CONTENT_EXTENSION = "contentExtension"; //$NON-NLS-1$
-
-	private static final String TAG_ACTION_EXTENSION = "actionExtension"; //$NON-NLS-1$ 
-
-	private final String viewerId;
-
-	private String popupMenuId = null;
-
-	private Binding actionBinding = new Binding(TAG_ACTION_EXTENSION);
-
-	private Binding contentBinding = new Binding(TAG_CONTENT_EXTENSION);
-
-	private MenuInsertionPoint[] customInsertionPoints = null;
-
-	private boolean allowsPlatformContributions = true;
-
-	private final Properties properties = new Properties();
-
-	private Set dragAssistants;
-
-	/**
-	 * Creates a new content descriptor from a configuration element.
-	 * 
-	 * @param aViewerId
-	 *            The identifier for this descriptor.
-	 */
-	/* package */NavigatorViewerDescriptor(String aViewerId) {
-		super();
-		this.viewerId = aViewerId;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorViewerDescriptor#getViewerId()
-	 */
-	public String getViewerId() {
-		return viewerId;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.navigator.extensions.INavigatorViewerDescriptor#getPopupMenuId()
-	 */
-	public String getPopupMenuId() {
-		return popupMenuId != null ? popupMenuId : viewerId;
-	}
-
-	/**
-	 * Consume an action binding for this viewer.
-	 * 
-	 * @param element
-	 *            The IConfigurationElement containing a viewerActionBinding
-	 *            element.
-	 */
-	public void consumeActionBinding(IConfigurationElement element) {
-		consumeBinding(element, false);
-	}
-
-	/**
-	 * Consume a content binding for this viewer.
-	 * 
-	 * @param element
-	 *            The IConfigurationElement containing a viewerContentBinding
-	 *            element.
-	 */
-	public void consumeContentBinding(IConfigurationElement element) {
-		consumeBinding(element, true);
-	}
-
-	public boolean isRootExtension(String aContentExtensionId) {
-		return contentBinding.isRootExtension(aContentExtensionId);
-	}
-
-	public boolean allowsPlatformContributionsToContextMenu() {
-		return allowsPlatformContributions;
-	}
-
-	public boolean isVisibleContentExtension(String aContentExtensionId) {
-		return contentBinding.isVisibleExtension(aContentExtensionId);
-	}
-
-	public boolean isVisibleActionExtension(String anActionExtensionId) {
-		return actionBinding.isVisibleExtension(anActionExtensionId);
-	}
-
-	public boolean hasOverriddenRootExtensions() {
-		return contentBinding.hasOverriddenRootExtensions();
-	}
-
-	public MenuInsertionPoint[] getCustomInsertionPoints() {
-		return customInsertionPoints;
-	}
-
-	/**
-	 * 
-	 * @param newCustomInsertionPoints
-	 *            The set of custom insertion points, if any. A null list
-	 *            indicates the default set (as defined by
-	 *            {@link NavigatorActionService}) should be used. An empty list
-	 *            indicates there are no declarative insertion points.
-	 */
-	public void setCustomInsertionPoints(
-			MenuInsertionPoint[] newCustomInsertionPoints) {
-		if (customInsertionPoints != null) {
-			NavigatorPlugin
-					.logError(
-							0,
-							"Attempt to override custom insertion points denied. Verify there are no colliding org.eclipse.ui.navigator.viewer extension points.", null); //$NON-NLS-1$
-			return; // do not let them override the insertion points.
-		}
-		customInsertionPoints = newCustomInsertionPoints;
-	}
-
-	/**
-	 * 
-	 * @param toAllowPlatformContributions
-	 *            A value of 'true' enables object/viewer contributions. 'false'
-	 *            will only allow programmatic contributions from
-	 *            {@link CommonActionProvider}s.
-	 */
-	public void setAllowsPlatformContributions(
-			boolean toAllowPlatformContributions) {
-		allowsPlatformContributions = toAllowPlatformContributions;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorViewerDescriptor#getStringConfigProperty(java.lang.String)
-	 */
-	public String getStringConfigProperty(String aPropertyName) {
-		return properties.getProperty(aPropertyName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorViewerDescriptor#getBooleanConfigProperty(java.lang.String)
-	 */
-	public boolean getBooleanConfigProperty(String aPropertyName) {
-		String propValue = properties.getProperty(aPropertyName);
-		if (propValue == null) {
-			return false;
-		}
-		return Boolean.valueOf(propValue).booleanValue();
-	}
-
-	/* package */void setProperty(String aPropertyName, String aPropertyValue) {
-		properties.setProperty(aPropertyName, aPropertyValue);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return "ViewerDescriptor[" + viewerId + "]"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Update the popupMenuId. If a value is already set, then a warning message
-	 * will be logged.
-	 * 
-	 * @param newPopupMenuId
-	 *            The new popup menu id.
-	 */
-	/* package */void setPopupMenuId(String newPopupMenuId) {
-
-		if (newPopupMenuId != null) {
-			if (popupMenuId != null) {
-				NavigatorPlugin
-						.log(
-								IStatus.WARNING,
-								0,
-								NLS
-										.bind(
-												CommonNavigatorMessages.NavigatorViewerDescriptor_Popup_Menu_Overridden,
-												new Object[] { getViewerId(),
-														popupMenuId,
-														newPopupMenuId }), null);
-			}
-			popupMenuId = newPopupMenuId;
-		}
-	}
-
-	/**
-	 * @param descriptor
-	 *            A non-null descriptor to add
-	 */
-	void addDragAssistant(CommonDragAssistantDescriptor descriptor) {
-		getDragAssistants().add(descriptor);
-
-	}
-
-	/**
-	 * 
-	 * @return The set of {@link CommonDragAssistantDescriptor}s for this
-	 *         viewer.
-	 */
-	public Set getDragAssistants() {
-		if (dragAssistants == null) {
-			dragAssistants = new HashSet();
-		}
-		return dragAssistants;
-	}
-
-	private void consumeBinding(IConfigurationElement element, boolean isContent) {
-		IConfigurationElement[] includesElement = element
-				.getChildren(TAG_INCLUDES);
-
-		if (includesElement.length == 1) {
-			if (isContent) {
-				contentBinding.consumeIncludes(includesElement[0], true);
-			} else {
-				actionBinding.consumeIncludes(includesElement[0], false);
-			}
-		} else if (includesElement.length >= 1) {
-			NavigatorPlugin.logError(0, NLS.bind(
-					CommonNavigatorMessages.Too_many_elements_Warning,
-					new Object[] {
-							TAG_INCLUDES,
-							element.getDeclaringExtension()
-									.getUniqueIdentifier(),
-							element.getDeclaringExtension().getNamespaceIdentifier() }),
-					null);
-		}
-
-		IConfigurationElement[] excludesElement = element
-				.getChildren(TAG_EXCLUDES);
-
-		if (excludesElement.length == 1) {
-
-			if (isContent) {
-				contentBinding.consumeExcludes(excludesElement[0]);
-			} else {
-				actionBinding.consumeExcludes(excludesElement[0]);
-			}
-		} else if (excludesElement.length >= 1) {
-			NavigatorPlugin.logError(0, NLS.bind(
-					CommonNavigatorMessages.Too_many_elements_Warning,
-					new Object[] {
-							TAG_EXCLUDES,
-							element.getDeclaringExtension()
-									.getUniqueIdentifier(),
-							element.getDeclaringExtension().getNamespaceIdentifier() }),
-					null);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorViewerDescriptorManager.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorViewerDescriptorManager.java
deleted file mode 100644
index c9c2b37..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorViewerDescriptorManager.java
+++ /dev/null
@@ -1,187 +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.extensions;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.navigator.MenuInsertionPoint;
-
-/**
- * <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 NavigatorViewerDescriptorManager {
-
-	private static final NavigatorViewerDescriptorManager INSTANCE = new NavigatorViewerDescriptorManager();
-
-	private final Map viewerDescriptors = new HashMap();
-
-	/**
-	 * @return The intialized singleton instance of the viewer descriptor
-	 *         registry.
-	 */
-	public static NavigatorViewerDescriptorManager getInstance() {
-		return INSTANCE;
-	}
-
-	protected NavigatorViewerDescriptorManager() {
-		new NavigatorViewerDescriptorRegistry().readRegistry();
-	}
-
-	/**
-	 * 
-	 * @param aViewerId
-	 *            The viewer id for the viewer configuration
-	 * @return The viewer descriptor for the given viewer id.
-	 */
-	public NavigatorViewerDescriptor getNavigatorViewerDescriptor(
-			String aViewerId) {
-
-		NavigatorViewerDescriptor viewerDescriptor = (NavigatorViewerDescriptor) viewerDescriptors
-				.get(aViewerId);
-		if (viewerDescriptor != null) {
-			return viewerDescriptor;
-		}
-
-		synchronized (viewerDescriptors) {
-			viewerDescriptor = (NavigatorViewerDescriptor) viewerDescriptors
-					.get(aViewerId);
-			if (viewerDescriptor == null) {
-				viewerDescriptor = new NavigatorViewerDescriptor(aViewerId);
-				viewerDescriptors.put(viewerDescriptor.getViewerId(),
-						viewerDescriptor);
-			}
-		}
-		return viewerDescriptor;
-
-	}
-
-	private class NavigatorViewerDescriptorRegistry extends RegistryReader
-			implements IViewerExtPtConstants {
-
-		protected NavigatorViewerDescriptorRegistry() {
-			super(NavigatorPlugin.PLUGIN_ID, TAG_VIEWER);
-		}
-
-		protected boolean readElement(IConfigurationElement element) {
-			if (TAG_VIEWER.equals(element.getName())) {
-				String viewerId = element.getAttribute(ATT_VIEWER_ID);
-				NavigatorViewerDescriptor descriptor = getNavigatorViewerDescriptor(viewerId);
-
-				String attPopupMenuId = element.getAttribute(ATT_POPUP_MENU_ID);
-				IConfigurationElement[] tagPopupMenu = element
-						.getChildren(TAG_POPUP_MENU);
-				if (tagPopupMenu.length == 0 && attPopupMenuId != null) {
-					descriptor.setPopupMenuId(attPopupMenuId);
-				} else {
-					if (attPopupMenuId != null) {
-						NavigatorPlugin
-								.logError(
-										0,
-										"A popupMenuId attribute and popupMenu element may NOT be concurrently specified. (see " + element.getNamespaceIdentifier() + ")", null); //$NON-NLS-1$ //$NON-NLS-2$
-					} else if (tagPopupMenu.length > 1) {
-						NavigatorPlugin
-								.logError(
-										0,
-										"Only one \"popupMenu\" child of \"viewer\" may be specified. (see " + element.getNamespaceIdentifier() + ")", null); //$NON-NLS-1$ //$NON-NLS-2$
-					} else if(tagPopupMenu.length == 1) { // valid case
-
-						String popupMenuId = tagPopupMenu[0]
-								.getAttribute(ATT_ID);
-						String allowsPlatformContributions = tagPopupMenu[0]
-								.getAttribute(ATT_ALLOWS_PLATFORM_CONTRIBUTIONS);
-
-						if (popupMenuId != null) {
-							descriptor.setPopupMenuId(popupMenuId);
-						}
-
-						if (allowsPlatformContributions != null) {
-							descriptor.setAllowsPlatformContributions(Boolean
-									.valueOf(allowsPlatformContributions)
-									.booleanValue());
-						}
-
-						IConfigurationElement[] insertionPointElements = tagPopupMenu[0]
-								.getChildren(TAG_INSERTION_POINT);
-						MenuInsertionPoint[] insertionPoints = new MenuInsertionPoint[insertionPointElements.length];
-						String name;
-						String stringAttSeparator;
-
-						boolean isSeparator;
-						for (int indx = 0; indx < insertionPointElements.length; indx++) {
-							name = insertionPointElements[indx]
-									.getAttribute(ATT_NAME);
-							stringAttSeparator = insertionPointElements[indx]
-									.getAttribute(ATT_SEPARATOR);
-							isSeparator = stringAttSeparator != null ? Boolean
-									.valueOf(stringAttSeparator).booleanValue()
-									: false;
-							insertionPoints[indx] = new MenuInsertionPoint(name,
-									isSeparator);
-						}
-						descriptor.setCustomInsertionPoints(insertionPoints);
-					}
-				}
-
-				IConfigurationElement[] options = element
-						.getChildren(TAG_OPTIONS);
-				if (options.length == 1) {
-					IConfigurationElement[] properties = options[0]
-							.getChildren(TAG_PROPERTY);
-					String name;
-					String value;
-					for (int i = 0; i < properties.length; i++) {
-						name = properties[i].getAttribute(ATT_NAME);
-						if (name != null) {
-							value = properties[i].getAttribute(ATT_VALUE);
-							descriptor.setProperty(name, value);
-						}
-					}
-				} else if (options.length > 1) {
-					NavigatorPlugin
-							.logError(
-									0,
-									"Only one \"options\" child of \"viewer\" may be specified. (see " + element.getNamespaceIdentifier() + ")", null); //$NON-NLS-1$ //$NON-NLS-2$
-
-				}
-				return true;
-			}
-			if (TAG_VIEWER_CONTENT_BINDING.equals(element.getName())) {
-				String viewerId = element.getAttribute(ATT_VIEWER_ID);
-				NavigatorViewerDescriptor descriptor = getNavigatorViewerDescriptor(viewerId);
-				descriptor.consumeContentBinding(element);
-				return true;
-			}
-			if (TAG_VIEWER_ACTION_BINDING.equals(element.getName())) {
-				String viewerId = element.getAttribute(ATT_VIEWER_ID);
-				NavigatorViewerDescriptor descriptor = getNavigatorViewerDescriptor(viewerId);
-				descriptor.consumeActionBinding(element);
-				return true;
-			} if (TAG_DRAG_ASSISTANT.equals(element.getName())) {
-				String viewerId = element.getAttribute(ATT_VIEWER_ID);
-				NavigatorViewerDescriptor descriptor = getNavigatorViewerDescriptor(viewerId);
-				descriptor.addDragAssistant(new CommonDragAssistantDescriptor(element));
-				return true;
-			}
-			return false;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/OverridePolicy.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/OverridePolicy.java
deleted file mode 100644
index d407e73..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/OverridePolicy.java
+++ /dev/null
@@ -1,141 +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.extensions;
-
-/**
- * <p>
- * Enumeration of the OverridePolicy values supported by the Common Navigator.
- * </p>
- * 
- * @since 3.2
- */
-public final class OverridePolicy {
-
-	/**
-	 * Indicates InvokeOnlyIfSuppressedExtAlsoVisibleAndActive OverridePolicy as
-	 * an int.
-	 */
-	public static final int InvokeOnlyIfSuppressedExtAlsoVisibleAndActive_VALUE = -1;
-
-	/**
-	 * Indicates InvokeAlwaysRegardlessOfSuppressedExt OverridePolicy as an int.
-	 */
-	public static final int InvokeAlwaysRegardlessOfSuppressedExt_VALUE = 1;
-
-	/**
-	 * Indicates InvokeOnlyIfSuppressedExtAlsoVisibleAndActive OverridePolicy as
-	 * a String.
-	 */
-	public static final String InvokeOnlyIfSuppressedExtAlsoVisibleAndActive_LITERAL = "InvokeOnlyIfSuppressedExtAlsoVisibleAndActive"; //$NON-NLS-1$
-
-	/**
-	 * Indicates InvokeAlwaysRegardlessOfSuppressedExt OverridePolicy as a
-	 * String.
-	 */
-	public static final String InvokeAlwaysRegardlessOfSuppressedExt_LITERAL = "InvokeAlwaysRegardlessOfSuppressedExt"; //$NON-NLS-1$
-
-	/**
-	 * Indicates InvokeOnlyIfSuppressedExtAlsoVisibleAndActive OverridePolicy as
-	 * a OverridePolicy enumeration.
-	 */
-	public static final OverridePolicy InvokeOnlyIfSuppressedExtAlsoVisibleAndActive = new OverridePolicy(
-			InvokeOnlyIfSuppressedExtAlsoVisibleAndActive_VALUE,
-			InvokeOnlyIfSuppressedExtAlsoVisibleAndActive_LITERAL);
-
-	/**
-	 * Indicates InvokeAlwaysRegardlessOfSuppressedExt OverridePolicy as a
-	 * OverridePolicy enumeration.
-	 */
-	public static final OverridePolicy InvokeAlwaysRegardlessOfSuppressedExt = new OverridePolicy(
-			InvokeAlwaysRegardlessOfSuppressedExt_VALUE,
-			InvokeAlwaysRegardlessOfSuppressedExt_LITERAL);
-
-	/**
-	 * The ordered array of possible enumeration values.
-	 */
-	public static final OverridePolicy[] ENUM_ARRAY = new OverridePolicy[] {
-			InvokeOnlyIfSuppressedExtAlsoVisibleAndActive,
-			InvokeAlwaysRegardlessOfSuppressedExt };
-
-	/**
-	 * 
-	 * Returns the correct instance of the OverridePolicy ENUM for aLiteral.
-	 * 
-	 * <p>
-	 * This method will return InvokeAlwaysRegardlessOfSuppressedExt if the
-	 * supplied value of aLiteral is invalid.
-	 * </p>
-	 * 
-	 * @param aLiteral
-	 *            One of the defined *_LITERAL constants of this class
-	 * @return The corresponding OverridePolicy Enum or
-	 *         InvokeAlwaysRegardlessOfSuppressedExt if aLiteral is invalid
-	 */
-	public static OverridePolicy get(String aLiteral) {
-		for (int i = 0; i < ENUM_ARRAY.length; i++) {
-			if (ENUM_ARRAY[i].getLiteral().equals(aLiteral)) {
-				return ENUM_ARRAY[i];
-			}
-		}
-		return InvokeAlwaysRegardlessOfSuppressedExt;
-	}
-
-	/**
-	 * 
-	 * Returns the correct instance of the OverridePolicy ENUM for aValue.
-	 * 
-	 * <p>
-	 * This method will return InvokeAlwaysRegardlessOfSuppressedExt if the
-	 * supplied value of aValue is invalid.
-	 * </p>
-	 * 
-	 * @param aValue
-	 *            One of the defined *_VALUE constants of this class
-	 * @return The corresponding OverridePolicy Enum or
-	 *         InvokeAlwaysRegardlessOfSuppressedExt if aValue is invalid
-	 */
-	public static OverridePolicy get(int aValue) {
-
-		switch (aValue) {
-		case InvokeOnlyIfSuppressedExtAlsoVisibleAndActive_VALUE:
-			return InvokeOnlyIfSuppressedExtAlsoVisibleAndActive;
-		case InvokeAlwaysRegardlessOfSuppressedExt_VALUE:
-		default:
-			return InvokeAlwaysRegardlessOfSuppressedExt;
-
-		}
-	}
-
-	private final int value;
-
-	private final String literal;
-
-	protected OverridePolicy(int aValue, String aLiteral) {
-		value = aValue;
-		literal = aLiteral;
-	}
-
-	/**
-	 * 
-	 * @return The literal string for this specific OverridePolicy.
-	 */
-	public String getLiteral() {
-		return literal;
-	}
-
-	/**
-	 * 
-	 * @return The integer value for this specific OverridePolicy.
-	 */
-	public int getValue() {
-		return value;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/RegistryReader.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/RegistryReader.java
deleted file mode 100644
index ab2e9ef..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/RegistryReader.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.extensions;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-
-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.ui.internal.navigator.NavigatorPlugin;
-
-/**
- * Template implementation of a registry reader that creates objects representing registry contents.
- * Typically, an extension contains one element, but this reader handles multiple elements per
- * extension.
- * 
- * To start reading the extensions from the registry for an extension point, call the method
- * <code>readRegistry</code>.
- * 
- * To read children of an IConfigurationElement, call the method <code>readElementChildren</code>
- * from your implementation of the method <code>readElement</code>, as it will not be done by
- * default.
- * <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 abstract class RegistryReader {
-
-	protected static final String TAG_DESCRIPTION = "description"; //$NON-NLS-1$
-
-	private boolean isInitialized;
-	private final String extensionPointId;
-	private final String pluginId;
-	private final IExtensionRegistry registry;
-
-	/**
-	 * The constructor.
-	 */
-	protected RegistryReader(String aPluginId, String anExtensionPoint) {
-		this.registry = Platform.getExtensionRegistry();
-		this.pluginId = aPluginId;
-		this.extensionPointId = anExtensionPoint;
-	}
-
-	/**
-	 * This method extracts description as a subelement of the given element.
-	 * 
-	 * @return description string if defined, or empty string if not.
-	 */
-	protected String getDescription(IConfigurationElement config) {
-		IConfigurationElement[] children = config.getChildren(TAG_DESCRIPTION);
-		if (children.length >= 1) {
-			return children[0].getValue();
-		}
-		return "";//$NON-NLS-1$
-	}
-
-	/**
-	 * Logs the error in the workbench log using the provided text and the information in the
-	 * configuration element.
-	 */
-	protected static void logError(IConfigurationElement element, String text) {
-		IExtension extension = element.getDeclaringExtension();
-		StringBuffer buf = new StringBuffer();
-		buf.append("Plugin " + extension.getNamespaceIdentifier() + ", extension " + extension.getExtensionPointUniqueIdentifier());//$NON-NLS-2$//$NON-NLS-1$
-		buf.append("\n" + text);//$NON-NLS-1$
-		NavigatorPlugin.logError(0, buf.toString(), null);
-	}
-
-	/**
-	 * Logs a very common registry error when a required attribute is missing.
-	 */
-	protected static void logMissingAttribute(IConfigurationElement element, String attributeName) {
-		logError(element, "Required attribute '" + attributeName + "' not defined");//$NON-NLS-2$//$NON-NLS-1$
-	}
-
-	/**
-	 * Logs a very common registry error when a required child is missing.
-	 */
-	protected static void logMissingElement(IConfigurationElement element, String elementName) {
-		logError(element, "Required sub element '" + elementName + "' not defined");//$NON-NLS-2$//$NON-NLS-1$
-	}
-
-	/**
-	 * Logs a registry error when the configuration element is unknown.
-	 */
-	protected static void logUnknownElement(IConfigurationElement element) {
-		logError(element, "Unknown extension tag found: " + element.getName());//$NON-NLS-1$
-	}
-
-	/**
-	 * Apply a reproducable order to the list of extensions provided, such that the order will not
-	 * change as extensions are added or removed.
-	 */
-	protected IExtension[] orderExtensions(IExtension[] extensions) {
-		// By default, the order is based on plugin id sorted
-		// in ascending order. The order for a plugin providing
-		// more than one extension for an extension point is
-		// dependent in the order listed in the XML file.
-		IExtension[] sortedExtension = new IExtension[extensions.length];
-		System.arraycopy(extensions, 0, sortedExtension, 0, extensions.length);
-		Comparator comparer = new Comparator() {
-			public int compare(Object arg0, Object arg1) {
-				String s1 = ((IExtension) arg0).getNamespaceIdentifier();
-				String s2 = ((IExtension) arg1).getNamespaceIdentifier();
-				return s1.compareToIgnoreCase(s2);
-			}
-		};
-		Collections.sort(Arrays.asList(sortedExtension), comparer);
-		return sortedExtension;
-	}
-
-	/**
-	 * Implement this method to read element's attributes. If children should also be read, then
-	 * implementor is responsible for calling <code>readElementChildren</code>. Implementor is
-	 * also responsible for logging missing attributes.
-	 * 
-	 * @return true if element was recognized, false if not.
-	 */
-	protected abstract boolean readElement(IConfigurationElement element);
-
-	/**
-	 * Read the element's children. This is called by the subclass' readElement method when it wants
-	 * to read the children of the element.
-	 */
-	protected void readElementChildren(IConfigurationElement element) {
-		readElements(element.getChildren());
-	}
-
-	/**
-	 * Read each element one at a time by calling the subclass implementation of
-	 * <code>readElement</code>.
-	 * 
-	 * Logs an error if the element was not recognized.
-	 */
-	protected void readElements(IConfigurationElement[] elements) {
-		for (int i = 0; i < elements.length; i++) {
-			if (!readElement(elements[i])) {
-				logUnknownElement(elements[i]);
-			}
-		}
-	}
-
-	/**
-	 * Read one extension by looping through its configuration elements.
-	 */
-	protected void readExtension(IExtension extension) {
-		readElements(extension.getConfigurationElements());
-	}
-
-	/**
-	 * Start the registry reading process using the supplied plugin ID and extension point.
-	 */
-	public void readRegistry() {
-		if (isInitialized) {
-			return;
-		}
-		synchronized (this) {
-			if (!isInitialized) {
-				IExtensionPoint point = registry.getExtensionPoint(pluginId, extensionPointId);
-				if (point == null) {
-					return;
-				}
-				IExtension[] extensions = point.getExtensions();
-				extensions = orderExtensions(extensions);
-				for (int i = 0; i < extensions.length; i++) {
-					readExtension(extensions[i]);
-				}
-				isInitialized = true;
-			}
-
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SafeDelegateCommonLabelProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SafeDelegateCommonLabelProvider.java
deleted file mode 100644
index 1648955..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SafeDelegateCommonLabelProvider.java
+++ /dev/null
@@ -1,197 +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
- * Anton Leherbauer, Wind River - bug 146788
- *******************************************************************************/
-package org.eclipse.ui.internal.navigator.extensions;
-
-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.jface.viewers.ITreePathLabelProvider;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.ViewerLabel;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonLabelProvider;
-import org.eclipse.ui.navigator.IDescriptionProvider;
-
-/**
- * @since 3.2
- */
-public class SafeDelegateCommonLabelProvider implements ICommonLabelProvider, IColorProvider, IFontProvider, ITreePathLabelProvider {
-
-	private final ILabelProvider delegateLabelProvider;
-
-	/**
-	 * @param aLabelProvider
-	 *            A non-null label provider.
-	 * 
-	 */
-	public SafeDelegateCommonLabelProvider(ILabelProvider aLabelProvider) {
-		super();
-		delegateLabelProvider = aLabelProvider;
-	}
-
-	/**
-	 * <p>
-	 * No-op.
-	 * </p>
-	 * 
-	 * @see org.eclipse.ui.navigator.ICommonLabelProvider#init(ICommonContentExtensionSite)
-	 */
-	public void init(ICommonContentExtensionSite aConfig) {
-	}
-
-	/**
-	 * <p>
-	 * If the delegate label provider implements <code>IDescriptionProvider</code>,
-	 * it is used to retrieve the status bar message. 
-	 * </p>
-	 * <p>
-	 * Returns <b>null </b> otherwise, forcing the CommonNavigator to provide the default
-	 * message.
-	 * </p>
-	 * 
-	 * @see org.eclipse.ui.navigator.ICommonLabelProvider#getDescription(java.lang.Object)
-	 */
-	public String getDescription(Object element) {
-		/* The following few lines were contributed as part of a patch. */
-		if (delegateLabelProvider instanceof IDescriptionProvider) {
-			IDescriptionProvider provider = (IDescriptionProvider) delegateLabelProvider;
-			return provider.getDescription(element);
-		}
-		return null;
-	}
-
-	/**
-	 * @param listener
-	 */
-	public void addListener(ILabelProviderListener listener) {
-		delegateLabelProvider.addListener(listener);
-	}
-
-	/**
-	 * 
-	 */
-	public void dispose() {
-		delegateLabelProvider.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		return delegateLabelProvider.equals(obj);
-	}
-
-	public Image getImage(Object element) {
-		return delegateLabelProvider.getImage(element);
-	}
-
-	public String getText(Object element) {
-		return delegateLabelProvider.getText(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return delegateLabelProvider.hashCode();
-	}
-
-	public boolean isLabelProperty(Object element, String property) {
-		return delegateLabelProvider.isLabelProperty(element, property);
-	}
-
-	/**
-	 * @param listener
-	 */
-	public void removeListener(ILabelProviderListener listener) {
-		delegateLabelProvider.removeListener(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return delegateLabelProvider.toString();
-	}
-
-	public void restoreState(IMemento aMemento) {
-
-	}
-
-	public void saveState(IMemento aMemento) {
-
-	}
-
-	/* (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) {
-		if (delegateLabelProvider instanceof ITreePathLabelProvider) {
-			ITreePathLabelProvider tplp = (ITreePathLabelProvider) delegateLabelProvider;
-			String text = label.getText() != null ? label.getText() : ""; //$NON-NLS-1$
-			Image image = label.getImage();
-			tplp.updateLabel(label, elementPath);
-			if(label.getText() == null)
-				label.setText(text);
-			if(label.getImage() == null && image != null)
-				label.setImage(image);
-		} else {
-			Image image = getImage(elementPath.getLastSegment());
-			if(image != null)
-				label.setImage(image);
-			String text = getText(elementPath.getLastSegment());
-			if(text != null)
-				label.setText(text);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-	 */
-	public Color getForeground(Object element) {
-		if(delegateLabelProvider instanceof IColorProvider) {
-			return ((IColorProvider)delegateLabelProvider).getForeground(element);
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-	 */
-	public Color getBackground(Object element) {
-		if(delegateLabelProvider instanceof IColorProvider) {
-			return ((IColorProvider)delegateLabelProvider).getBackground(element);
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-	 */
-	public Font getFont(Object element) {
-		if(delegateLabelProvider instanceof IFontProvider) {
-			return ((IFontProvider)delegateLabelProvider).getFont(element);
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SafeDelegateTreeContentProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SafeDelegateTreeContentProvider.java
deleted file mode 100644
index ee84e24..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SafeDelegateTreeContentProvider.java
+++ /dev/null
@@ -1,317 +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.extensions;
-
-import java.util.ArrayList;
-import java.util.Set;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ITreePathContentProvider;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonContentProvider;
-import org.eclipse.ui.navigator.IMementoAware;
-import org.eclipse.ui.navigator.IPipelinedTreeContentProvider;
-import org.eclipse.ui.navigator.PipelinedShapeModification;
-import org.eclipse.ui.navigator.PipelinedViewerUpdate;
-
-/**
- * @since 3.2
- */
-public class SafeDelegateTreeContentProvider implements
-		IPipelinedTreeContentProvider, ITreePathContentProvider {
-
-	private static final TreePath[] NO_PATHS = new TreePath[0];
-
-	private final ITreeContentProvider contentProvider;
-
-	private NavigatorContentService contentService;
-
-	private NavigatorContentDescriptor descriptor;
-
-	private Viewer viewer;
-
-	SafeDelegateTreeContentProvider(ITreeContentProvider aContentProvider,
-			NavigatorContentDescriptor aDescriptor,
-			NavigatorContentService theContentService) {
-		super();
-		contentProvider = aContentProvider;
-		contentService = theContentService;
-		descriptor = aDescriptor;
-	}
-
-	/**
-	 * 
-	 */
-	public void dispose() {
-		SafeRunner.run(new ISafeRunnable() {
-
-			public void handleException(Throwable exception) { 
-				String msg = exception.getMessage() != null ? exception.getMessage() : exception.toString() ;
-				NavigatorPlugin.logError(0, msg, exception);
-				
-			}
-
-			public void run() throws Exception {
-				contentProvider.dispose(); 
-			}
-			
-		});
-		
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object anObject) {
-		return contentProvider.equals(anObject);
-	}
-
-	public Object[] getChildren(Object aParentElement) {
-		if (aParentElement instanceof TreePath) {
-			TreePath tp = (TreePath) aParentElement;
-			return getChildren(tp);
-		}
-		Object[] children = contentProvider.getChildren(aParentElement);
-		contentService.rememberContribution(descriptor, children);
-		return children;
-	}
-
-	public Object[] getElements(Object anInputElement) {
-		Object[] elements = contentProvider.getElements(anInputElement);
-		contentService.rememberContribution(descriptor, elements);
-		return elements;
-	}
-
-	public Object getParent(Object anElement) {
-		return contentProvider.getParent(anElement);
-	}
-
-	public boolean hasChildren(Object anElement) {
-		return contentProvider.hasChildren(anElement);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return contentProvider.hashCode();
-	}
-
-	public void inputChanged(final Viewer aViewer, final Object anOldInput, final Object aNewInput) {
-		viewer = aViewer;
-		
-		SafeRunner.run(new ISafeRunnable() {
-
-			public void handleException(Throwable exception) { 
-				String msg = exception.getMessage() != null ? exception.getMessage() : exception.toString() ;
-				NavigatorPlugin.logError(0, msg, exception);
-				
-			}
-
-			public void run() throws Exception {
-				contentProvider.inputChanged(aViewer, anOldInput, aNewInput);
-			}
-			
-		});
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return contentProvider.toString();
-	}
-
-	/**
-	 * 
-	 * @return The real content provider.
-	 */
-	public ITreeContentProvider getDelegateContentProvider() {
-		return contentProvider;
-	}
-
-	public void restoreState(IMemento aMemento) {
-		if (contentProvider != null && contentProvider instanceof IMementoAware) {
-			((IMementoAware) contentProvider).restoreState(aMemento);
-		}
-
-	}
-
-	public void saveState(IMemento aMemento) {
-		if (contentProvider != null && contentProvider instanceof IMementoAware) {
-			((IMementoAware) contentProvider).saveState(aMemento);
-		}
-
-	}
-
-	public void init(ICommonContentExtensionSite aConfig) {
-		if (contentProvider instanceof ICommonContentProvider) {
-			((ICommonContentProvider) contentProvider).init(aConfig);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.IPipelinedTreeContentProvider#getPipelinedChildren(java.lang.Object,
-	 *      java.util.Set)
-	 */
-	public void getPipelinedChildren(Object aParent, Set theCurrentChildren) {
-		if (contentProvider instanceof IPipelinedTreeContentProvider) {
-			((IPipelinedTreeContentProvider) contentProvider)
-					.getPipelinedChildren(aParent, theCurrentChildren);
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.IPipelinedTreeContentProvider#getPipelinedElements(java.lang.Object,
-	 *      java.util.Set)
-	 */
-	public void getPipelinedElements(Object anInput, Set theCurrentElements) {
-		if (contentProvider instanceof IPipelinedTreeContentProvider) {
-			((IPipelinedTreeContentProvider) contentProvider)
-					.getPipelinedElements(anInput, theCurrentElements);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.IPipelinedTreeContentProvider#getPipelinedParent(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-	public Object getPipelinedParent(Object anObject, Object aSuggestedParent) {
-		if (contentProvider instanceof IPipelinedTreeContentProvider) {
-			return ((IPipelinedTreeContentProvider) contentProvider)
-					.getPipelinedParent(anObject, aSuggestedParent);
-		}
-		return anObject;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.IPipelinedTreeContentProvider#interceptAdd(org.eclipse.ui.navigator.PipelinedShapeModification)
-	 */
-	public PipelinedShapeModification interceptAdd(
-			PipelinedShapeModification anAddModification) { 
-		if (contentProvider instanceof IPipelinedTreeContentProvider) {
-			return ((IPipelinedTreeContentProvider) contentProvider)
-					.interceptAdd(anAddModification);
-		}
-		return anAddModification;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.IPipelinedTreeContentProvider#interceptRemove(org.eclipse.ui.navigator.PipelinedShapeModification)
-	 */
-	public PipelinedShapeModification interceptRemove(
-			PipelinedShapeModification aRemoveModification) { 
-		if (contentProvider instanceof IPipelinedTreeContentProvider) {
-			return ((IPipelinedTreeContentProvider) contentProvider)
-					.interceptRemove(aRemoveModification);
-		}
-		return aRemoveModification;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.IPipelinedTreeContentProvider#interceptRefresh(org.eclipse.ui.navigator.PipelinedViewerUpdate)
-	 */
-	public boolean interceptRefresh(
-			PipelinedViewerUpdate aRefreshSynchronization) {
-		if (contentProvider instanceof IPipelinedTreeContentProvider) {
-			return ((IPipelinedTreeContentProvider) contentProvider)
-					.interceptRefresh(aRefreshSynchronization);
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.IPipelinedTreeContentProvider#interceptUpdate(org.eclipse.ui.navigator.PipelinedViewerUpdate)
-	 */
-	public boolean interceptUpdate(
-			PipelinedViewerUpdate anUpdateSynchronization) {
-		if (contentProvider instanceof IPipelinedTreeContentProvider) {
-			return ((IPipelinedTreeContentProvider) contentProvider)
-					.interceptUpdate(anUpdateSynchronization);
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreePathContentProvider#getChildren(org.eclipse.jface.viewers.TreePath)
-	 */
-	public Object[] getChildren(TreePath parentPath) {
-		if (contentProvider instanceof ITreePathContentProvider) {
-			ITreePathContentProvider tpcp = (ITreePathContentProvider) contentProvider;
-			Object[] children = tpcp.getChildren(parentPath);
-			contentService.rememberContribution(descriptor, children);
-			return children;
-		}
-		return getChildren(parentPath.getLastSegment());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreePathContentProvider#hasChildren(org.eclipse.jface.viewers.TreePath)
-	 */
-	public boolean hasChildren(TreePath path) {
-		if (contentProvider instanceof ITreePathContentProvider) {
-			ITreePathContentProvider tpcp = (ITreePathContentProvider) contentProvider;
-			return tpcp.hasChildren(path);
-		}
-		return hasChildren(path.getLastSegment());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreePathContentProvider#getParents(java.lang.Object)
-	 */
-	public TreePath[] getParents(Object element) {
-		if (contentProvider instanceof ITreePathContentProvider) {
-			ITreePathContentProvider tpcp = (ITreePathContentProvider) contentProvider;
-			return tpcp.getParents(element);
-		}
-		ArrayList segments = new ArrayList();
-		Object parent = element;
-		do {
-			parent = contentProvider.getParent(parent);
-			if (parent != null && parent != viewer.getInput())
-				segments.add(0, parent);
-		} while (parent != null && parent != viewer.getInput());
-		if (!segments.isEmpty()) {
-			// Loop backwards over the array to create the path.			
-			return new TreePath[] { new TreePath(segments.toArray()) };
-		}
-		return NO_PATHS;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonActionProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonActionProvider.java
deleted file mode 100644
index 4502cdf..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonActionProvider.java
+++ /dev/null
@@ -1,42 +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.extensions;
-
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-
-/**
- * 
- * A skeleton action provider is used as a shortcut to avoid a bunch of null
- * checks. Instead, if a client fails to provide a valid Action Provider or
- * there is some problem instantiating the class, a skeleton (no-op singleton)
- * is used in its place. 
- * 
- * @since 3.2
- */
-public final  class SkeletonActionProvider extends CommonActionProvider {
-
-	/**
-	 * A skeleton action provider is used as a shortcut to avoid a bunch of null
-	 * checks. Instead, if a client fails to provide a valid Action Provider or
-	 * there is some problem instantiating the class, a skeleton (no-op
-	 * singleton) is used in its place.
-	 */
-	public static final CommonActionProvider INSTANCE = new SkeletonActionProvider();
- 
-	private SkeletonActionProvider() {
-		super();
-	}
-
-	public void init(ICommonActionExtensionSite aConfig) {
-
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonCommonDragAssistant.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonCommonDragAssistant.java
deleted file mode 100644
index b72c670..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonCommonDragAssistant.java
+++ /dev/null
@@ -1,59 +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.extensions;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.ui.navigator.CommonDragAdapterAssistant;
-
-/**
- * A Skeleton implementation of {@link CommonDragAdapterAssistant}.
- * 
- * @since 3.2
- * 
- */
-public final class SkeletonCommonDragAssistant extends
-		CommonDragAdapterAssistant {
-
-	/**
-	 * The singleton instance.
-	 */
-	public static final SkeletonCommonDragAssistant INSTANCE = new SkeletonCommonDragAssistant();
-
-	private static final Transfer[] NO_TRANSFER_TYPES = new Transfer[0];
-
-	private SkeletonCommonDragAssistant() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonDragAdapterAssistant#getSupportedTransferTypes()
-	 */
-	public Transfer[] getSupportedTransferTypes() {
-		return NO_TRANSFER_TYPES;
-	}
-
-	/*
-	 * (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) {
-		return false;
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonLabelProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonLabelProvider.java
deleted file mode 100644
index ea1f467..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonLabelProvider.java
+++ /dev/null
@@ -1,110 +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.extensions;
-
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonLabelProvider;
-
-/** 
- * 
- * @since 3.2
- */
-public final class SkeletonLabelProvider implements ICommonLabelProvider {
-
-	/**
-	 * The initialized singleton instance.
-	 */
-	public static final SkeletonLabelProvider INSTANCE = new SkeletonLabelProvider();
-
-	/**
-	 *  
-	 */
-	private SkeletonLabelProvider() {
-		super();
-	}
-
-	/*
-	 * (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 null;
-	}
-
-	/*
-	 * (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) {
-
-	}
-
- 
-	public void init(ICommonContentExtensionSite aConfig) {
-
-	}
-
- 
-	public String getDescription(Object anElement) {
-		return null;
-	}
-
-	public void restoreState(IMemento aMemento) { 
-		
-	}
-
-	public void saveState(IMemento aMemento) { 
-		
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonLinkHelper.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonLinkHelper.java
deleted file mode 100644
index 5594ac3..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonLinkHelper.java
+++ /dev/null
@@ -1,50 +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.extensions;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.navigator.ILinkHelper;
-
-/**
- * @since 3.2
- *
- */
-public class SkeletonLinkHelper implements ILinkHelper {
-
-	/**
-	 * The singleton instance.
-	 */
-	public static final ILinkHelper INSTANCE = new SkeletonLinkHelper();
-	
-	private SkeletonLinkHelper() {
-		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.ILinkHelper#findSelection(org.eclipse.ui.IEditorInput)
-	 */
-	public IStructuredSelection findSelection(IEditorInput anInput) {
-		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) {
-		// no-op
-		
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonTreeContentProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonTreeContentProvider.java
deleted file mode 100644
index 5e80ca5..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SkeletonTreeContentProvider.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.ui.internal.navigator.extensions;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonContentProvider;
-
-/**
- * @since 3.2
- */
-public final class SkeletonTreeContentProvider implements ICommonContentProvider {
-
-	/**
-	 * The initialized singleton instance.
-	 */
-	public static final SkeletonTreeContentProvider INSTANCE = new SkeletonTreeContentProvider();
-
-	private static final Object[] NO_CHILDREN = new Object[0];
-
-	private SkeletonTreeContentProvider() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object parentElement) {
-
-		return NO_CHILDREN;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-	 */
-	public Object getParent(Object element) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(Object element) {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-
-		return NO_CHILDREN;
-	}
-
-	/*
-	 * (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 void restoreState(IMemento aMemento) {
-
-	}
-
-	public void saveState(IMemento aMemento) {
-
-	}
-
-	public void init(ICommonContentExtensionSite aConfig) {
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/StructuredViewerManager.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/StructuredViewerManager.java
deleted file mode 100644
index d11035d..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/StructuredViewerManager.java
+++ /dev/null
@@ -1,147 +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.extensions;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * <p>
- * Provides a consistent mechanism to interact with StructuredViewers over time.
- * The Common Navigator framework attempts to defer the loading of extensions,
- * which also means defering the loading of Content Providers. To follow the
- * contracts already in place by
- * {@link org.eclipse.jface.viewers.ITreeContentProvider}, the Viewer, Old
- * Input, and New Input parameters for
- * {@link org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)}
- * are cached for content providers that have not been loaded yet.
- * </p>
- * <p>
- * <b>WARNING: </b> The following class is not inherently thread-safe.
- * Appropriate measures should be taken to ensure that
- * {@link #inputChanged(Object, Object)}and
- * {@link #inputChanged(Viewer, Object, Object)}are not called concurrently
- * with {@link #initialize(IStructuredContentProvider)}.
- * 
- * 
- * 
- * @since 3.2
- */
-public class StructuredViewerManager {
-
-	private Viewer viewer;
-
-	private Object cachedOldInput;
-
-	private Object cachedNewInput;
-	
-	private UIJob refreshJob = new UIJob(
-			CommonNavigatorMessages.StructuredViewerManager_0) {
-		public IStatus runInUIThread(IProgressMonitor monitor) {
-			if(viewer != null) {
-				try {
-					if (viewer.getControl().isDisposed()) {
-						return Status.OK_STATUS;
-					}					
-	
-					
-					Display display = viewer.getControl().getDisplay();
-					if (!display.isDisposed() && viewer != null) {
-						try {
-							viewer.getControl().setRedraw(false);
-							viewer.refresh();
-						} finally {
-							viewer.getControl().setRedraw(true);
-						}
-						 
-					}
-				} catch (RuntimeException e) {
-					NavigatorPlugin.logError(0, e.toString(), e);
-				}
-			}
-			return Status.OK_STATUS;
-		}
-	};
-
-	/**
-	 * 
-	 * @param aViewer
-	 */
-	public StructuredViewerManager(Viewer aViewer) {
-		super();
-		viewer = aViewer;
-	}
-
-	/**
-	 * 
-	 * @return The real viewer.
-	 */
-	public Viewer getViewer() {
-		return viewer;
-	}
-
-	/**
-	 * 
-	 * @param anOldInput
-	 * @param aNewInput
-	 */
-	public void inputChanged(Object anOldInput, Object aNewInput) {
-		cachedOldInput = anOldInput;
-		cachedNewInput = aNewInput;
-	}
-
-	/**
-	 * 
-	 * @param aViewer
-	 * @param anOldInput
-	 * @param aNewInput
-	 */
-	public void inputChanged(Viewer aViewer, Object anOldInput, Object aNewInput) {
-		viewer = aViewer;
-		cachedOldInput = anOldInput;
-		cachedNewInput = aNewInput;
-	}
-
-	/**
-	 * 
-	 * @param aContentProvider
-	 * @return True if all is well.
-	 */
-	public boolean initialize(IStructuredContentProvider aContentProvider) {
-		boolean result = true;
-		try {
-			if (aContentProvider != null) {
-				aContentProvider.inputChanged(viewer, cachedOldInput,
-						cachedNewInput);
-			}
-		} catch (RuntimeException e) {
-			NavigatorPlugin.logError(0, e.toString(), e);
-			result = false;
-		}
-		return result;
-	}
-
-	/**
-	 * 
-	 */
-	public void safeRefresh() {
-		refreshJob.schedule(10);
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterContentProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterContentProvider.java
deleted file mode 100644
index 62469b6..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterContentProvider.java
+++ /dev/null
@@ -1,65 +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.filters;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.INavigatorFilterService;
-
-/**
- * 
- * <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 CommonFilterContentProvider implements IStructuredContentProvider {
-
-	private INavigatorContentService contentService;
-	private Object[] NO_ELEMENTS = new Object[0];
- 
- 
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (newInput instanceof INavigatorContentService) {
-			contentService = (INavigatorContentService) newInput;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		if(contentService != null) {
-			INavigatorFilterService filterService = contentService.getFilterService();
-			return filterService.getVisibleFilterDescriptors();
-		}
-		return NO_ELEMENTS ;
-		
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterDescriptor.java
deleted file mode 100644
index 661262c..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterDescriptor.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.internal.navigator.filters;
-
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.ui.internal.navigator.CustomAndExpression;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtPtConstants;
-import org.eclipse.ui.navigator.ICommonFilterDescriptor;
-
-/**
- * 
- * Describes a <b>commonFilter</b> element under a
- * <b>org.eclipse.ui.navigator.navigatorContent</b> extension.
- * 
- * @since 3.2
- * 
- */
-public class CommonFilterDescriptor implements ICommonFilterDescriptor,
-		INavigatorContentExtPtConstants {
-
-	private IConfigurationElement element;
-
-	private Expression filterExpression;
-
-	private String id;
-
-	protected CommonFilterDescriptor(IConfigurationElement anElement) {
-
-		element = anElement;
-		init();
-	}
-
-	private void init() {
-		id = element.getAttribute(ATT_ID);
-		if (id == null) {
-			id = ""; //$NON-NLS-1$
-		}
-		IConfigurationElement[] children = element
-				.getChildren(TAG_FILTER_EXPRESSION);
-		if (children.length == 1) {
-			filterExpression = new CustomAndExpression(children[0]);
-		}
-	}
-
-	/**
-	 * 
-	 * @return An identifier used to determine whether the filter is visible.
-	 *         May not be unique.
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * 
-	 * @return A translated name to identify the filter
-	 */
-	public String getName() {
-		return element.getAttribute(ATT_NAME);
-	}
-
-	/**
-	 * 
-	 * @return A translated description to explain to the user what the defined
-	 *         filter will hide from the view.
-	 */
-	public String getDescription() {
-		return element.getAttribute(ATT_DESCRIPTION);
-	}
-
-	/**
-	 * 
-	 * @return Indicates the filter should be in an "Active" state by default.
-	 */
-	public boolean isActiveByDefault() {
-		return Boolean.valueOf(element.getAttribute(ATT_ACTIVE_BY_DEFAULT))
-				.booleanValue();
-	}
-
-	/**
-	 * 
-	 * @return An instance of the ViewerFilter defined by the extension. Callers
-	 *         of this method are responsible for managing the instantiated
-	 *         filter.
-	 */
-	public ViewerFilter createFilter() {
-		try {
-
-			if (filterExpression != null) {
-
-				if (element.getAttribute(ATT_CLASS) != null) {
-					NavigatorPlugin
-							.log(
-									IStatus.WARNING,
-									0,
-									"A \"commonFilter\" was specified in " + //$NON-NLS-1$
-											element.getDeclaringExtension().getNamespaceIdentifier()
-											+ " which specifies a \"class\" attribute and an Core Expression.\n" + //$NON-NLS-1$
-											"Only the Core Expression will be respected.", //$NON-NLS-1$
-									null);
-				} 
-
-				return new CoreExpressionFilter(filterExpression);
-			}
-
-			return (ViewerFilter) element.createExecutableExtension(ATT_CLASS);
-		} catch (RuntimeException re) {
-			NavigatorPlugin.logError(0, re.getMessage(), re);
-		} catch (CoreException e) {
-			NavigatorPlugin.logError(0, e.getMessage(), e);
-		}
-
-		return SkeletonViewerFilter.INSTANCE;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return "CommonFilterDescriptor[" + getName() + " (" + getId() + ")]"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterDescriptorManager.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterDescriptorManager.java
deleted file mode 100644
index c0478d5..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterDescriptorManager.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.internal.navigator.filters;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentRegistryReader;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * @since 3.2
- * 
- */
-public class CommonFilterDescriptorManager {
-
-	private static final CommonFilterDescriptorManager INSTANCE = new CommonFilterDescriptorManager();
-
-	private static final CommonFilterDescriptor[] NO_FILTER_DESCRIPTORS = new CommonFilterDescriptor[0];
-
-	private final Set filters = new HashSet();
-
-	/**
-	 * 
-	 * @return An initialized singleton instance of the
-	 *         CommonFilterDescriptorManager.
-	 */
-	public static CommonFilterDescriptorManager getInstance() {
-		return INSTANCE;
-	}
-
-	private CommonFilterDescriptorManager() {
-		new CommonFilterDescriptorRegistry().readRegistry();
-	}
-
-	/**
-	 * 
-	 * @param contentService
-	 *            A content service to filter the visible filters.
-	 * @return The set of filters that are 'visible' to the given viewer
-	 *         descriptor.
-	 */
-	public CommonFilterDescriptor[] findVisibleFilters(INavigatorContentService contentService) {
-
-		List visibleFilters = new ArrayList();
-		CommonFilterDescriptor descriptor;
-		for (Iterator filtersItr = filters.iterator(); filtersItr.hasNext();) {
-			descriptor = (CommonFilterDescriptor) filtersItr.next();
-			if (contentService.isVisible(descriptor.getId())) {
-				visibleFilters.add(descriptor);
-			}
-		}
-		if (visibleFilters.size() == 0) {
-			return NO_FILTER_DESCRIPTORS;
-		}
-		return (CommonFilterDescriptor[]) visibleFilters
-				.toArray(new CommonFilterDescriptor[visibleFilters.size()]);
-	}
-
-	/**
-	 * @param aDescriptor
-	 *            A non-null descriptor
-	 */
-	private void addCommonFilter(CommonFilterDescriptor aDescriptor) {
-		filters.add(aDescriptor);
-	}
-
-	private class CommonFilterDescriptorRegistry extends
-			NavigatorContentRegistryReader {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.internal.navigator.extensions.NavigatorContentRegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
-		 */
-		protected boolean readElement(IConfigurationElement element) {
-			if (TAG_COMMON_FILTER.equals(element.getName())) {
-				addCommonFilter(new CommonFilterDescriptor(element));
-				return true;
-			}
-			return super.readElement(element);
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterLabelProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterLabelProvider.java
deleted file mode 100644
index 2c726b4..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterLabelProvider.java
+++ /dev/null
@@ -1,134 +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.filters;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptor;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptorManager;
-import org.eclipse.ui.navigator.ICommonFilterDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-/**
- * 
- * <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 CommonFilterLabelProvider implements ITableLabelProvider, ILabelProvider {
-
-	private static final NavigatorContentDescriptorManager CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorManager.getInstance();
-
-	 
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object element) {
-		if (element instanceof NavigatorContentDescriptor) {
-			return CONTENT_DESCRIPTOR_REGISTRY.getImage(((INavigatorContentDescriptor) element).getId());
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof NavigatorContentDescriptor) {
-			return ((INavigatorContentDescriptor) element).getName();
-		} else if (element instanceof ICommonFilterDescriptor) {
-			return ((ICommonFilterDescriptor) element).getName();
-		}
-		return null;
-	}
-
-	/*
-	 * (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) {
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
-	 */
-	public Image getColumnImage(Object element, int columnIndex) {
-		switch (columnIndex) {
-			case 0 :
-				return getImage(element);
-
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
-	 */
-	public String getColumnText(Object element, int columnIndex) {
-		switch (columnIndex) {
-			case 0 :
-				return getText(element);
-			case 1 : {
-				if (element instanceof ICommonFilterDescriptor) {
-					String d = ((ICommonFilterDescriptor) element).getDescription();
-					return d == null ? "" : d; //$NON-NLS-1$
-				}
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterSelectionDialog.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterSelectionDialog.java
deleted file mode 100644
index c1fa55e..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFilterSelectionDialog.java
+++ /dev/null
@@ -1,233 +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
- *******************************************************************************/
-/*
- * Created on Feb 9, 2004
- *  
- */
-package org.eclipse.ui.internal.navigator.filters;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-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.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.ICommonFilterDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.INavigatorViewerDescriptor;
-
-/**
- * 
- * @since 3.2
- * 
- */
-public class CommonFilterSelectionDialog extends Dialog {
-  
-	private static final int TAB_WIDTH_IN_DLUS = 200;
-
-	private static final int TAB_HEIGHT_IN_DLUS = 150;
-
-	private final CommonViewer commonViewer;
-
-	private final INavigatorContentService contentService;
-
-	private TabFolder customizationsTabFolder;
-
-	private CommonFiltersTab commonFiltersTab;
-
-	private ContentExtensionsTab contentExtensionsTab;
-
-	private Text descriptionText;
-
-	private ISelectionChangedListener updateDescriptionSelectionListener;
-
-	protected CommonFilterSelectionDialog(CommonViewer aCommonViewer) {
-		super(aCommonViewer.getControl().getShell());
-		setShellStyle(SWT.RESIZE | getShellStyle());
-
-		commonViewer = aCommonViewer;
-		contentService = commonViewer.getNavigatorContentService();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		getShell()
-				.setText(
-						CommonNavigatorMessages.CommonFilterSelectionDialog_Available_customization_);
-		 
-		
-		Composite superComposite = (Composite) super.createDialogArea(parent);
-		 
-		createCustomizationsTabFolder(superComposite); 
-		
-		commonFiltersTab = new CommonFiltersTab(customizationsTabFolder,
-				contentService);
-		createTabItem(
-				customizationsTabFolder,
-				CommonNavigatorMessages.CommonFilterSelectionDialog_Available_Filters,
-				commonFiltersTab);
-
-		boolean hideExtensionsTab = contentService.getViewerDescriptor()
-				.getBooleanConfigProperty(
-						INavigatorViewerDescriptor.PROP_HIDE_AVAILABLE_EXT_TAB);
-
-		if (!hideExtensionsTab) { 
-			contentExtensionsTab = new ContentExtensionsTab(
-					customizationsTabFolder, contentService);
-
-			createTabItem(
-					customizationsTabFolder,
-					CommonNavigatorMessages.CommonFilterSelectionDialog_Available_Content,
-					contentExtensionsTab);
-		}
-
-		createDescriptionText(superComposite);
-
-		if (commonFiltersTab != null) {
-			commonFiltersTab.addSelectionChangedListener(getSelectionListener());
-		}
-
-		if (contentExtensionsTab != null) {
-			contentExtensionsTab
-					.addSelectionChangedListener(getSelectionListener());
-		}
-
-		return customizationsTabFolder;
-	}
-
-	private void createCustomizationsTabFolder(Composite superComposite) {
-		customizationsTabFolder = new TabFolder(superComposite, SWT.RESIZE);
- 
-		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-		gd.widthHint = convertHorizontalDLUsToPixels(TAB_WIDTH_IN_DLUS);
-		gd.heightHint = convertVerticalDLUsToPixels(TAB_HEIGHT_IN_DLUS);
-		
-		customizationsTabFolder.setLayout(new GridLayout());
-		customizationsTabFolder.setLayoutData(gd);
-
-		customizationsTabFolder.setFont(superComposite.getFont());
-
-		customizationsTabFolder.addSelectionListener(new SelectionListener() {
-
-			public void widgetSelected(SelectionEvent e) {
-				if (descriptionText != null) {
-					descriptionText.setText(""); //$NON-NLS-1$
-				}
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-
-			}
-
-		});
-	}
-
-	private void createTabItem(TabFolder aTabFolder, String label,
-			Composite composite) {
-		TabItem extensionsTabItem = new TabItem(aTabFolder, SWT.NONE);
-		extensionsTabItem.setText(label);
- 		extensionsTabItem.setControl(composite);
-	}
-
-	private void createDescriptionText(Composite composite) {
-
-		descriptionText = new Text(composite, SWT.WRAP | SWT.V_SCROLL
-				| SWT.BORDER);
-		descriptionText.setFont(composite.getFont());
-		descriptionText.setBackground(composite.getBackground());
-		GridData descriptionTextGridData = new GridData(
-				GridData.FILL_HORIZONTAL);
-		descriptionTextGridData.heightHint = convertHeightInCharsToPixels(3);
-		descriptionText.setLayoutData(descriptionTextGridData);
-	}
-
-	private ISelectionChangedListener getSelectionListener() {
-		if (updateDescriptionSelectionListener == null) {
-			updateDescriptionSelectionListener = new FilterDialogSelectionListener(
-					descriptionText);
-		}
-		return updateDescriptionSelectionListener;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-	 */
-	protected void okPressed() {
-
-		String[] contentExtensionIdsToActivate = new String[0];
-		if (contentExtensionsTab != null) {
-			List checkedExtensions = new ArrayList();
-			TableItem[] tableItems = contentExtensionsTab.getTable().getItems();
-			INavigatorContentDescriptor descriptor;
-			for (int i = 0; i < tableItems.length; i++) {
-				descriptor = (INavigatorContentDescriptor) tableItems[i]
-						.getData();
-
-				if (tableItems[i].getChecked()) {
-					checkedExtensions.add(descriptor.getId());
-				}
-			}
-			if (checkedExtensions.size() != 0) {
-				contentExtensionIdsToActivate = (String[]) checkedExtensions
-						.toArray(new String[checkedExtensions.size()]);
-			}
-
-		}
-
-		String[] filterIdsToActivate = new String[0];
-		if (commonFiltersTab != null) {
-			List checkedFilters = new ArrayList();
-			TableItem[] tableItems = commonFiltersTab.getTable().getItems();
-			ICommonFilterDescriptor descriptor;
-			for (int i = 0; i < tableItems.length; i++) {
-				descriptor = (ICommonFilterDescriptor) tableItems[i].getData();
-
-				if (tableItems[i].getChecked()) {
-					checkedFilters.add(descriptor.getId());
-				}
-			}
-
-			if (checkedFilters.size() != 0) {
-				filterIdsToActivate = (String[]) checkedFilters
-						.toArray(new String[checkedFilters.size()]);
-			}
-
-		}
-
-		UpdateActiveExtensionsOperation updateExtensions = new UpdateActiveExtensionsOperation(
-				commonViewer, contentExtensionIdsToActivate);
-		UpdateActiveFiltersOperation updateFilters = new UpdateActiveFiltersOperation(
-				commonViewer, filterIdsToActivate, true);
-
-		updateExtensions.execute(null, null);
-		updateFilters.execute(null, null);
-		super.okPressed();
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFiltersTab.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFiltersTab.java
deleted file mode 100644
index abaae9d..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CommonFiltersTab.java
+++ /dev/null
@@ -1,298 +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.filters;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-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.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.internal.navigator.StringMatcher;
-import org.eclipse.ui.navigator.ICommonFilterDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.INavigatorFilterService;
-
-/**
- * @since 3.2
- * 
- */
-public class CommonFiltersTab extends CustomizationTab {
-
-
-
-	private String initialFilterTextValue = CommonNavigatorMessages.CommonFilterSelectionDialog_enter_name_of_filte_;
-
-	private Text filterText;
-
-	private ILabelProvider filterLabelProvider = new CommonFilterLabelProvider();
-
-	private CommonFilterContentProvider filterContentProvider = new CommonFilterContentProvider();
-
-	private TablePatternFilter patternFilter = new TablePatternFilter();
-
-	protected CommonFiltersTab(Composite parent,
-			INavigatorContentService aContentService) {
-		super(parent, aContentService);
-		createControl();
-	}
-
-	private  void createControl() {  
-
-		createPatternFilterText(this);
-		
-		createTable(); 
-
-		createInstructionsLabel(CommonNavigatorMessages.CommonFilterSelectionDialog_Select_the_filters_to_apply);
-
-		getTableViewer().setContentProvider(filterContentProvider);
-		getTableViewer().setLabelProvider(filterLabelProvider);
-		getTableViewer().setSorter(new CommonFilterSorter());
-		getTableViewer().setInput(getContentService());  
-
-		
-		getTableViewer().addFilter(patternFilter); 
-
-		updateFiltersCheckState();
-
-	}
-
-	private void createPatternFilterText(Composite composite) {
-		filterText = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		GridData filterTextGridData = new GridData(GridData.FILL_HORIZONTAL); 
-		filterText.setLayoutData(filterTextGridData);
-		filterText.setText(initialFilterTextValue);
-		filterText.setFont(composite.getFont());
-
-		filterText.getAccessible().addAccessibleListener(
-				new AccessibleAdapter() {
-					/*
-					 * (non-Javadoc)
-					 * 
-					 * @see org.eclipse.swt.accessibility.AccessibleListener#getName(org.eclipse.swt.accessibility.AccessibleEvent)
-					 */
-					public void getName(AccessibleEvent e) {
-						String filterTextString = filterText.getText();
-						if (filterTextString.length() == 0) {
-							e.result = initialFilterTextValue;
-						} else {
-							e.result = filterTextString;
-						}
-					}
-				});
-
-		filterText.addFocusListener(new FocusAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.FocusListener#focusLost(org.eclipse.swt.events.FocusEvent)
-			 */
-			public void focusGained(FocusEvent e) {
-				if (initialFilterTextValue.equals(filterText.getText().trim())) {
-					filterText.selectAll();
-				}
-			}
-		});
-
-		filterText.addMouseListener(new MouseAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.MouseAdapter#mouseUp(org.eclipse.swt.events.MouseEvent)
-			 */
-			public void mouseUp(MouseEvent e) {
-				super.mouseUp(e);
-				if (initialFilterTextValue.equals(filterText.getText().trim())) {
-					filterText.selectAll();
-				}
-			}
-		});
-
-		filterText.addKeyListener(new KeyAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.KeyAdapter#keyReleased(org.eclipse.swt.events.KeyEvent)
-			 */
-			public void keyPressed(KeyEvent e) {
-				// on a CR we want to transfer focus to the list
-				boolean hasItems = getTable().getItemCount() > 0;
-				if (hasItems && e.keyCode == SWT.ARROW_DOWN) {
-					getTable().setFocus();
-				} else if (e.character == SWT.CR) {
-					return;
-				}
-			}
-		});
-
-		// enter key set focus to tree
-		filterText.addTraverseListener(new TraverseListener() {
-			public void keyTraversed(TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_RETURN) {
-					e.doit = false;
-					if (getTableViewer().getTable().getItemCount() == 0) {
-						Display.getCurrent().beep();
-					} else {
-						// if the initial filter text hasn't changed, do not try
-						// to match
-						boolean hasFocus = getTable().setFocus();
-						boolean textChanged = !initialFilterTextValue
-								.equals(filterText.getText().trim());
-						if (hasFocus && textChanged
-								&& filterText.getText().trim().length() > 0) {
-							TableItem item = getFirstHighlightedItem(getTable()
-									.getItems());
-							if (item != null) {
-								getTable().setSelection(
-										new TableItem[] { item });
-								ISelection sel = getTableViewer()
-										.getSelection();
-								getTableViewer().setSelection(sel, true);
-							}
-						}
-					}
-				}
-			}
-
-			private TableItem getFirstHighlightedItem(TableItem[] items) {
-				for (int i = 0; i < items.length; i++) {
-					if (patternFilter.match(items[i].getText())) {
-						return items[i];
-					}
-				}
-				return null;
-			}
-		});
-
-		filterText.addModifyListener(new ModifyListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
-			 */
-			public void modifyText(ModifyEvent e) {
-				textChanged();
-			}
-		});
-	}
-
-	private void textChanged() {
-		patternFilter.setPattern(filterText.getText());
-		getTableViewer().refresh();
-
-	} 
-
-	private void updateFiltersCheckState() {
-		Object[] children = filterContentProvider
-				.getElements(getContentService());
-		ICommonFilterDescriptor filterDescriptor;
-		INavigatorFilterService filterService = getContentService()
-				.getFilterService();
-		for (int i = 0; i < children.length; i++) {
-			filterDescriptor = (ICommonFilterDescriptor) children[i];
-			getTableViewer().setChecked(children[i],
-					filterService.isActive(filterDescriptor.getId()));
-		}
-	}
-
-	private class TablePatternFilter extends ViewerFilter {
-
-		private StringMatcher matcher = null;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public boolean select(Viewer viewer, Object parentElement,
-				Object element) {
-			return match(filterLabelProvider.getText(element));
-		}
-
-		protected void setPattern(String newPattern) {
-			if (newPattern == null || newPattern.trim().length() == 0) {
-				matcher = new StringMatcher("*", true, false); //$NON-NLS-1$
-			} else {
-				String patternString = "*" + newPattern + "*"; //$NON-NLS-1$ //$NON-NLS-2$ 
-				matcher = new StringMatcher(patternString, true, false);
-			}
-
-		}
-
-		/**
-		 * Answers whether the given String matches the pattern.
-		 * 
-		 * @param input
-		 *            the String to test
-		 * 
-		 * @return whether the string matches the pattern
-		 */
-		protected boolean match(String input) {
-			if (input == null) {
-				return false;
-			}
-			return matcher == null || matcher.match(input);
-		}
-
-		protected boolean match(TableItem tableItem) {
-			if (tableItem == null || tableItem.getData() == null) {
-				return false;
-			}
-			return match(filterLabelProvider.getText(tableItem.getData()));
-		}
-	}
- 
-	private class CommonFilterSorter extends ViewerSorter {
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ViewerSorter#sort(org.eclipse.jface.viewers.Viewer, java.lang.Object[])
-		 */
-		public void sort(Viewer viewer, Object[] elements) {
-			Arrays.sort(elements, new Comparator() {
-				/* (non-Javadoc)
-				 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-				 */
-				public int compare(Object o1, Object o2) { 
-					ICommonFilterDescriptor lvalue = (ICommonFilterDescriptor) o1;
-					ICommonFilterDescriptor rvalue = (ICommonFilterDescriptor) o2;
-					
-					return lvalue.getName().compareTo(rvalue.getName());
-				}
-			});
-		
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ContentDescriptorContentProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ContentDescriptorContentProvider.java
deleted file mode 100644
index c63855a..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ContentDescriptorContentProvider.java
+++ /dev/null
@@ -1,115 +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.filters;
-
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-class ContentDescriptorContentProvider implements ITreeContentProvider {
-
-	private static final Object[] NO_CHILDREN = new Object[0];
-
-	private INavigatorContentService contentService;
-
-	private CheckboxTableViewer talbleViewer;
-
-	public void inputChanged(Viewer aViewer, Object anOldInput, Object aNewInput) {
-
-		if (aNewInput != null) {
-
-			if (aNewInput instanceof INavigatorContentService) {
-				contentService = (INavigatorContentService) aNewInput;
-			}
-
-			if (aViewer instanceof CheckboxTableViewer) {
-				talbleViewer = (CheckboxTableViewer) aViewer;
-			}
-
-			updateCheckState();
-		} else {
-			contentService = null;
-			talbleViewer = null;
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object aParentElement) {
-		return NO_CHILDREN;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-	 */
-	public Object getParent(Object anElement) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(Object anElement) {
-		return getChildren(anElement).length != 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object anInputElement) {
-		return contentService != null ? contentService.getVisibleExtensions()
-				: NO_CHILDREN;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-
-	}
-
-	private void updateCheckState() {
-		if (talbleViewer == null || contentService == null) {
-			return;
-		}
-
-		INavigatorContentDescriptor descriptor;
-		boolean enabled;
-
-		TableItem[] descriptorTableItems = talbleViewer.getTable().getItems();
-		for (int i = 0; i < descriptorTableItems.length; i++) {
-			if (descriptorTableItems[i].getData() instanceof INavigatorContentDescriptor) {
-				descriptor = (INavigatorContentDescriptor) descriptorTableItems[i]
-						.getData();
-				enabled = contentService.getActivationService()
-						.isNavigatorExtensionActive(descriptor.getId());
-				talbleViewer.setChecked(descriptor, enabled);
-			}
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ContentExtensionsTab.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ContentExtensionsTab.java
deleted file mode 100644
index 71f26d9..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ContentExtensionsTab.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.internal.navigator.filters;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * @since 3.2
- * 
- */
-public class ContentExtensionsTab extends CustomizationTab {
-
-	protected ContentExtensionsTab(Composite parent,
-			INavigatorContentService aContentService) {
-		super(parent, aContentService);
-		createControl();
-
-	}
-
-	private void createControl() { 
-		
-		createTable();
-
-		createInstructionsLabel(CommonNavigatorMessages.CommonFilterSelectionDialog_Select_the_available_extensions);
-
-		getTableViewer().setContentProvider(new ContentDescriptorContentProvider());
-		getTableViewer().setLabelProvider(new CommonFilterLabelProvider());
-		getTableViewer().setInput(getContentService());
-
-		updateCheckedState();
-
-	}
-
-
-	private void updateCheckedState() {
-		INavigatorContentDescriptor[] visibleExtensions = getContentService()
-				.getVisibleExtensions();
-		for (int i = 0; i < visibleExtensions.length; i++) {
-			if (getContentService().isActive(visibleExtensions[i].getId())) {
-				getTableViewer().setChecked(visibleExtensions[i], true);
-			}
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CoreExpressionFilter.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CoreExpressionFilter.java
deleted file mode 100644
index e643534..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CoreExpressionFilter.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.internal.navigator.filters;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-
-/**
- * @since 3.2
- * 
- */
-public class CoreExpressionFilter extends ViewerFilter {
-
-	private Expression filterExpression;
-
-	/**
-	 * Creates a filter which hides all elements that match the given
-	 * expression.
-	 * 
-	 * @param aFilterExpression
-	 *            An expression to hide elements in the viewer.
-	 */
-	public CoreExpressionFilter(Expression aFilterExpression) {
-		filterExpression = aFilterExpression;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
-	 *      java.lang.Object, java.lang.Object)
-	 */
-	public boolean select(Viewer viewer, Object parentElement, Object element) {
-
-		try {
-			return (filterExpression.evaluate(new EvaluationContext(null,
-					element)) != EvaluationResult.TRUE);
-		} catch (CoreException e) {
-			NavigatorPlugin.logError(0, e.getMessage(), e);
-		}
-		return true;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CustomizationTab.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CustomizationTab.java
deleted file mode 100644
index 468c470..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/CustomizationTab.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.ui.internal.navigator.filters;
-
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-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.swt.widgets.Table;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * @since 3.2
- * 
- */
-public class CustomizationTab extends Composite { 
- 
- 
-	private final INavigatorContentService contentService;
-
-	private CheckboxTableViewer tableViewer;
- 
-	protected CustomizationTab(Composite parent,
-			INavigatorContentService aContentService) {
-		super(parent, SWT.RESIZE);
- 
-		contentService = aContentService;
-		setFont(getParent().getFont()); 
-		setLayout(new GridLayout()); 
-		GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); 
-		setData(data);
- 
-	}
-
-	protected Table getTable() {
-		return tableViewer.getTable();
-	}
-
-	protected void addSelectionChangedListener(
-			ISelectionChangedListener selectionListener) {
-		if (tableViewer != null) {
-			tableViewer
-					.addSelectionChangedListener(selectionListener);
-		}
-	}
-
-	protected void createTable() {
-  
-		tableViewer = CheckboxTableViewer.newCheckList(this,SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);		
-		tableViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));		
-		tableViewer.getControl().setFont(getFont());
-
-	} 
-
-	protected void createInstructionsLabel(String labelText) {
-		Label extensionsInstructionLabel = new Label(this, SWT.BOLD | SWT.WRAP);
-
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL
-				| GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL
-				| GridData.VERTICAL_ALIGN_FILL); 
-
-		extensionsInstructionLabel.setLayoutData(gridData);
-		extensionsInstructionLabel.setFont(getFont());
-		extensionsInstructionLabel.setText(labelText);
-	}
-	 
-
-	protected final INavigatorContentService getContentService() {
-		return contentService;
-	}
-
-	protected final CheckboxTableViewer getTableViewer() {
-		return tableViewer;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/FilterActionGroup.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/FilterActionGroup.java
deleted file mode 100644
index 38763b4..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/FilterActionGroup.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.internal.navigator.filters;
-
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.INavigatorViewerDescriptor;
-
-/**
- * Creates the last 5 filters that were touched as view menu options.
- * 
- * @since 3.2
- * 
- */
-public class FilterActionGroup extends ActionGroup {	
-
-	private SelectFiltersAction selectFiltersAction;
-	private CommonViewer commonViewer;
-	private INavigatorViewerDescriptor viewerDescriptor;
-	
-	private final Set filterShortcutActions = new LinkedHashSet();
-	
-
-	/**
-	 * @param aCommonViewer The viewer this action group is associated with
-	 */
-	public FilterActionGroup(CommonViewer aCommonViewer) {
-		Assert.isNotNull(aCommonViewer);
-		commonViewer = aCommonViewer;
-		viewerDescriptor = commonViewer.getNavigatorContentService().getViewerDescriptor();
-		makeActions();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars)
-	 */
-	public void fillActionBars(IActionBars actionBars) {
-		IMenuManager menu = actionBars.getMenuManager();
-		if (selectFiltersAction != null) {
-			for (Iterator iter = filterShortcutActions.iterator(); iter.hasNext();) {
-				IAction action = (IAction) iter.next();
-				menu.insertAfter(IWorkbenchActionConstants.MB_ADDITIONS, action);				
-			}			
-			
-			menu.insertAfter(IWorkbenchActionConstants.MB_ADDITIONS,
-					selectFiltersAction);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public void fillContextMenu(IMenuManager menu) { 
-		super.fillContextMenu(menu);
-	}
-
-	/**
-	 * 
-	 */
-	private void makeActions() {
-		boolean hideAvailableCustomizationsDialog = viewerDescriptor
-				.getBooleanConfigProperty(INavigatorViewerDescriptor.PROP_HIDE_AVAILABLE_CUSTOMIZATIONS_DIALOG);
-		if (!hideAvailableCustomizationsDialog) {
-			selectFiltersAction = new SelectFiltersAction(commonViewer, this);
-			ImageDescriptor selectFiltersIcon = NavigatorPlugin.getImageDescriptor("icons/full/elcl16/filter_ps.gif"); //$NON-NLS-1$ 
-			selectFiltersAction.setImageDescriptor(selectFiltersIcon);
-			selectFiltersAction.setHoverImageDescriptor(selectFiltersIcon);
-		}
-	}
-	
-	protected void updateFilterShortcuts() {
-		
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/FilterDialogSelectionListener.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/FilterDialogSelectionListener.java
deleted file mode 100644
index dfd13dc..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/FilterDialogSelectionListener.java
+++ /dev/null
@@ -1,61 +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.filters;
-
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.navigator.ICommonFilterDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-
-/**
- * @since 3.2
- * 
- */
-public class FilterDialogSelectionListener implements ISelectionChangedListener {
-	
-	
-	private Text descriptionText;
-
-	protected FilterDialogSelectionListener(Text aDescriptionText) {
-		descriptionText = aDescriptionText;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-
-		IStructuredSelection structuredSelection = (IStructuredSelection) event
-				.getSelection();
-		Object element = structuredSelection.getFirstElement();
-		if (element instanceof INavigatorContentDescriptor) {
-			INavigatorContentDescriptor ncd = (INavigatorContentDescriptor) element;
-			String desc = NLS
-					.bind(
-							CommonNavigatorMessages.CommonFilterSelectionDialog_Hides_all_content_associated,
-							new Object[] { ncd.getName() });
-			descriptionText.setText(desc);
-		} else if (element instanceof ICommonFilterDescriptor) {
-			descriptionText.setText(((ICommonFilterDescriptor) element)
-					.getDescription());
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/SelectFiltersAction.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/SelectFiltersAction.java
deleted file mode 100644
index 3969282..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/SelectFiltersAction.java
+++ /dev/null
@@ -1,56 +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
- *******************************************************************************/
-/*
- * Created on Feb 9, 2004
- *
- */
-package org.eclipse.ui.internal.navigator.filters;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.navigator.CommonViewer;
-
-/**
- * 
- * <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 SelectFiltersAction extends Action implements IAction {
-
-	private final CommonViewer commonViewer;
-	private FilterActionGroup filterGroup; 
-
-	/**
-	 * Create an action to drive the Filter selection dialog
-	 * for a particular instance of the CommonViewer.
-	 * @param aCommonViewer
-	 * @param aFilterGroup 
-	 */
-	public SelectFiltersAction(CommonViewer aCommonViewer, FilterActionGroup aFilterGroup) {
-		super(CommonNavigatorMessages.SelectFiltersActionDelegate_0); 
-		setToolTipText(CommonNavigatorMessages.SelectFiltersActionDelegate_1); 
-		commonViewer = aCommonViewer; 
-		filterGroup = aFilterGroup;
-	}
-
-	public void run() {
-		CommonFilterSelectionDialog filterSelectionDialog = new CommonFilterSelectionDialog(commonViewer);
-		filterSelectionDialog.open();
-		filterGroup.updateFilterShortcuts();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/SkeletonViewerFilter.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/SkeletonViewerFilter.java
deleted file mode 100644
index 51cd63b..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/SkeletonViewerFilter.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.internal.navigator.filters;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-
-/**
- * 
- * A no-op viewer filter used to prevent null return values from
- * {@link CommonFilterDescriptor#createFilter()}.
- * 
- * @since 3.2
- * 
- */
-public class SkeletonViewerFilter extends ViewerFilter {
-
-	/**
-	 * The singleton instance.
-	 */
-	public static final SkeletonViewerFilter INSTANCE = new SkeletonViewerFilter();
-
-	private SkeletonViewerFilter() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
-	 *      java.lang.Object, java.lang.Object)
-	 */
-	public boolean select(Viewer viewer, Object parentElement, Object element) {
-
-		return true;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ToggleFilterAction.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ToggleFilterAction.java
deleted file mode 100644
index 28f4348..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/ToggleFilterAction.java
+++ /dev/null
@@ -1,76 +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.filters;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.ui.internal.navigator.NavigatorFilterService;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.ICommonFilterDescriptor;
-
-/**
- * @since 3.2
- * 
- */
-public class ToggleFilterAction extends Action implements IAction {
-
-	private ICommonFilterDescriptor descriptor;
-
-	private NavigatorFilterService filterService;
-
-	private CommonViewer commonViewer;
-
-	protected ToggleFilterAction(CommonViewer aCommonViewer,
-			NavigatorFilterService aFilterService,
-			ICommonFilterDescriptor aFilterDescriptor) {
-		Assert.isNotNull(aCommonViewer);
-		Assert.isNotNull(aFilterService);
-		Assert.isNotNull(aFilterDescriptor);
-
-		commonViewer = aCommonViewer;
-		filterService = aFilterService;
-		descriptor = aFilterDescriptor;
-
-		setChecked(filterService.isActive(descriptor.getId()));
-		setText(descriptor.getName());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-
-		boolean toMakeActive = !isChecked();
-
-		filterService.setActive(descriptor.getId(), toMakeActive);
-		filterService.persistFilterActivationState();
-
-		ViewerFilter viewerFilter = filterService.getViewerFilter(descriptor);
-		if (toMakeActive) {
-			commonViewer.addFilter(viewerFilter);
-		} else {
-			commonViewer.removeFilter(viewerFilter);
-		}
-
-		// the action providers may no longer be enabled, so we
-		// reset the selection.
-		commonViewer.setSelection(StructuredSelection.EMPTY);
-
-		setChecked(toMakeActive);
-
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/UpdateActiveExtensionsOperation.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/UpdateActiveExtensionsOperation.java
deleted file mode 100644
index ec9f3bc..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/UpdateActiveExtensionsOperation.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.internal.navigator.filters;
-
-import java.util.Arrays;
-
-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;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * Ensures that a given set of content extensions is <i>active</i> and a second
- * non-intersecting set of content extensions are not <i>active</i>.
- * 
- * <p>
- * This operation is smart enough not to force any change if each id in each set
- * is already in its desired state (<i>active</i> or <i>inactive</i>).
- * </p>
- * 
- * @since 3.2
- * 
- */
-public class UpdateActiveExtensionsOperation extends AbstractOperation {
-
-	private String[] contentExtensionsToActivate;
-
-	private final CommonViewer commonViewer;
-
-	private final INavigatorContentService contentService;
-
-	/**
-	 * Create an operation to activate extensions and refresh the viewer.
-	 * 
-	 * p> To use only one part of this operation (either "activate" or
-	 * "deactivate", but not both), then supply <b>null</b> for the array state
-	 * you are not concerned with.
-	 * </p>
-	 * 
-	 * @param aCommonViewer
-	 *            The CommonViewer instance to update
-	 * @param theExtensionsToActivate
-	 *            An array of ids that correspond to the extensions that should
-	 *            be in the <i>active</i> state after this operation executes.
-	 */
-	public UpdateActiveExtensionsOperation(CommonViewer aCommonViewer,
-			String[] theExtensionsToActivate) {
-		super(
-				CommonNavigatorMessages.UpdateFiltersOperation_Update_CommonViewer_Filter_);
-		commonViewer = aCommonViewer;
-		contentService = commonViewer.getNavigatorContentService();
-		contentExtensionsToActivate = theExtensionsToActivate;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info) {
-
-		boolean updateExtensionActivation = false;
-
-		// we sort the array in order to use Array.binarySearch();
-		Arrays.sort(contentExtensionsToActivate);
-		
-		IStructuredSelection ssel = null;
-	
-		try {
-			commonViewer.getControl().setRedraw(false);
-			
-			ISelection selection = commonViewer.getSelection();
-			if(selection instanceof IStructuredSelection)
-				ssel = (IStructuredSelection) selection;
-
-			INavigatorContentDescriptor[] visibleContentDescriptors = contentService
-					.getVisibleExtensions();
-
-			int indexofContentExtensionIdToBeActivated;
-			/* is there a delta? */
-			for (int i = 0; i < visibleContentDescriptors.length
-					&& !updateExtensionActivation; i++) {
-				indexofContentExtensionIdToBeActivated = Arrays.binarySearch(
-						contentExtensionsToActivate,
-						visibleContentDescriptors[i].getId());
-				/*
-				 * Either we have a filter that should be active that isn't XOR
-				 * a filter that shouldn't be active that is currently
-				 */
-				if (indexofContentExtensionIdToBeActivated >= 0
-						^ contentService.isActive(visibleContentDescriptors[i]
-								.getId())) {
-					updateExtensionActivation = true;
-				}
-			}
-
-			/* If so, update */
-			if (updateExtensionActivation) {
-				 
-				contentService.getActivationService().activateExtensions(
-						contentExtensionsToActivate, true);
-				contentService.getActivationService()
-						.persistExtensionActivations();
-				
-
-				Object[] expandedElements = commonViewer.getExpandedElements();
-
-				contentService.update();
-
-				commonViewer.refresh();
-				
-				Object[] originalObjects = ssel.toArray(); 
-				
-				commonViewer.setExpandedElements(expandedElements);
-
-				IStructuredSelection newSelection = new StructuredSelection(originalObjects);
-				commonViewer.setSelection(newSelection, true); 				
-			}
-
-		} finally {
-			commonViewer.getControl().setRedraw(true);
-		} 
-
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info) {
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/UpdateActiveFiltersOperation.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/UpdateActiveFiltersOperation.java
deleted file mode 100644
index d8fd68f..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/filters/UpdateActiveFiltersOperation.java
+++ /dev/null
@@ -1,186 +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.filters;
-
-import java.util.Arrays;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.core.runtime.Assert;
-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.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.internal.navigator.NavigatorFilterService;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.ICommonFilterDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.INavigatorFilterService;
-
-/**
- * Ensures that a given set of filters is <i>active</i> and the complement of
- * that set of filters are not <i>active</i>.
- * 
- * <p>
- * This operation is smart enough not to force any change if each id in each set
- * is already in its desired state (<i>active</i> or <i>inactive</i>).
- * </p>
- * 
- * @since 3.2
- * 
- */
-public class UpdateActiveFiltersOperation extends AbstractOperation {
-
-	private String[] filterIdsToActivate; 
-
-	private final CommonViewer commonViewer;
-
-	private final INavigatorContentService contentService;
-
-	private boolean disableTheComplement;
-
-	/**
-	 * Create an operation to activate extensions and refresh the viewer.
-	 * 
-	 * 
-	 * @param aCommonViewer
-	 *            The CommonViewer instance to update
-	 * @param theActiveFilterIds
-	 *            An array of ids that correspond to the filters that should be
-	 *            in the <i>active</i> state after this operation executes. The
-	 *            complement of this set will likewise be in the <i>inactive</i>
-	 *            state after this operation executes.
-	 *            @param toDisableTheComplement True indicates that all filters not in the set should be made inactive.
-	 */
-	public UpdateActiveFiltersOperation(CommonViewer aCommonViewer,
-			String[] theActiveFilterIds, boolean toDisableTheComplement) {
-		super(
-				CommonNavigatorMessages.UpdateFiltersOperation_Update_CommonViewer_Filter_);
-		Assert.isNotNull(theActiveFilterIds);
-		
-		commonViewer = aCommonViewer;
-		contentService = commonViewer.getNavigatorContentService();
-		filterIdsToActivate = theActiveFilterIds;
-		disableTheComplement = toDisableTheComplement;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info) {
-
-		boolean updateFilterActivation = false;
-		
-		// we sort the array in order to use Array.binarySearch();
-		Arrays.sort(filterIdsToActivate);
-		
-
-		try {
-			commonViewer.getControl().setRedraw(false);
-
-			INavigatorFilterService filterService = contentService
-					.getFilterService();
-
-			if(disableTheComplement) {
-			
-				ICommonFilterDescriptor[] visibleFilterDescriptors = filterService
-						.getVisibleFilterDescriptors();
-
-				int indexofFilterIdToBeActivated;
-
-				/* is there a delta? */
-				for (int i = 0; i < visibleFilterDescriptors.length
-						&& !updateFilterActivation; i++) {
-					indexofFilterIdToBeActivated = Arrays.binarySearch(
-							filterIdsToActivate, visibleFilterDescriptors[i]
-									.getId());
-
-					/*
-					 * Either we have a filter that should be active that isn't
-					 * XOR a filter that shouldn't be active that is currently
-					 */
-					if (indexofFilterIdToBeActivated >= 0
-							^ filterService
-									.isActive(visibleFilterDescriptors[i]
-											.getId())) {
-						updateFilterActivation = true;
-					}
-				}
-
-				/* If so, update */
-				if (updateFilterActivation) {
-
-					filterService.setActiveFilterIds(filterIdsToActivate);
-					filterService.persistFilterActivationState();
-
-					commonViewer.resetFilters();
-
-					ViewerFilter[] visibleFilters = filterService
-							.getVisibleFilters(true);
-					for (int i = 0; i < visibleFilters.length; i++) {
-						commonViewer.addFilter(visibleFilters[i]);
-					}
-
-					// the action providers may no longer be enabled, so we
-					// reset the selection.
-					commonViewer.setSelection(StructuredSelection.EMPTY);
-				}
-			} else {
-				NavigatorFilterService internalFilterService = (NavigatorFilterService)filterService;
-				
-				internalFilterService.addActiveFilterIds(filterIdsToActivate);
-
-				ICommonFilterDescriptor[] visibleDescriptors = filterService
-						.getVisibleFilterDescriptors();
-				for (int i = 0; i < visibleDescriptors.length; i++) {
-					if(Arrays.binarySearch(filterIdsToActivate, visibleDescriptors[i].getId()) >= 0 ) {
-						commonViewer.addFilter(internalFilterService.getViewerFilter(visibleDescriptors[i]));
-					}
-				}
-
-				// the action providers may no longer be enabled, so we
-				// reset the selection.
-				commonViewer.setSelection(StructuredSelection.EMPTY);
-			}
-
-		} finally {
-			commonViewer.getControl().setRedraw(true);
-		}
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info) {
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/messages.properties b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/messages.properties
deleted file mode 100644
index c02256a..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/messages.properties
+++ /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
-###############################################################################
-#String externalization, key=value
-#Thu Feb 02 14:22:56 EST 2006
-CommonFilterSelectionDialog_Available_customization_=Available customizations
-CommonSorterDescriptorManager_A_navigatorContent_extension_does_n_=A navigatorContent extension does not exist with id\: {0} in plugin {1}
-
-Delete=Delete
-Could_not_provide_children_for_element=Could not acquire children from extension\: {0}
-NewProjectWizard_errorTitle=New Project Problems
-Link_With_Editor_Job_=Linking viewer selection with current editor   
-Navigator_statusLineMultiSelect={0} items selected
-SelectFiltersActionDelegate_1=Select and deselect filters to apply to the content in the tree
-CommonFilterSelectionDialog_Select_the_available_extensions=Select the available extensions to show (unchecked extensions will not display content)\:
-SelectFiltersActionDelegate_0=Filters...
-CollapseAllActionDelegate_0=Collapse All 
-Too_many_elements_Warning=Too many elements of type\: {0} in extension "{1}" defined in bundle "{2}".
-NewProjectAction_text=P&roject...
-CommonFilterSelectionDialog_Available_Content=Available Content
-CommonFilterSelectionDialog_Hides_all_content_associated=Provides content from the "{0}" extension.
-Attribute_Missing_Warning=Missing attribute\: {0} in extension "{1}" defined in bundle "{2}".
-Open_action_label=Open
-TextAction_selectAll=Select All
-Paste=Paste 
-CommonFilterSelectionDialog_Available_Filters=Available Filters
-StructuredViewerManager_0=Refresh Common Viewer Tree
-LinkEditorActionDelegate_1=Link open editors with content in the Navigator
-LinkEditorActionDelegate_0=Link Editor
-Copy=Copy 
-Cut=Cut
-NavigatorViewerDescriptor_Popup_Menu_Overridden=Warning\: popupMenuId of "{0}" was overridden\: old value \= "{1}", new value \= "{2}".
-CommonFilterSelectionDialog_Select_the_filters_to_apply=Select the filters to apply (matching items will be hidden)\:
-UpdateFiltersOperation_Update_CommonViewer_Filter_=Update CommonViewer Filters
-CommonFilterSelectionDialog_enter_name_of_filte_=enter name of filter
-CommonSorterDescriptorManager_A_navigatorContent_extesnion_in_0_=A navigatorContent extesnion in {0} is missing an id.
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/CommonSorterDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/CommonSorterDescriptor.java
deleted file mode 100644
index 14a1230..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/CommonSorterDescriptor.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.internal.navigator.sorters;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.ui.internal.navigator.CustomAndExpression;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtPtConstants;
-
-/**
- * 
- * Describes a <b>commonSorter</b> element under a
- * <b>org.eclipse.ui.navigator.navigatorContent</b> extension.
- * 
- * @since 3.2
- */
-public class CommonSorterDescriptor implements INavigatorContentExtPtConstants {
-
-	private IConfigurationElement element;
-
-	private Expression parentExpression;
-
-	private String id;
-
-	protected CommonSorterDescriptor(IConfigurationElement anElement) { 
-		element = anElement;
-		init();
-	}
-
-	private void init() {
-		id = element.getAttribute(ATT_ID);
-		if (id == null) {
-			id = ""; //$NON-NLS-1$
-		}
-		IConfigurationElement[] children = element
-				.getChildren(TAG_PARENT_EXPRESSION);
-		if (children.length == 1) {
-			parentExpression = new CustomAndExpression(children[0]);
-		}
-	}
-
-	/**
-	 * 
-	 * @return An identifier used to determine whether the sorter is visible.
-	 *         May not be unique.
-	 */
-	public String getId() {
-		return id;
-	}
- 
-	/**
-	 * 
-	 * @param aParent
-	 *            An element from the viewer
-	 * @return True if and only if this CommonSorter can sort the children of
-	 *         the given parent.
-	 */
-	public boolean isEnabledForParent(Object aParent) {
-		if(aParent == null) {
-			return false;
-		}
-
-		if (parentExpression != null) {
-			EvaluationContext context = new EvaluationContext(null, aParent);
-			context.setAllowPluginActivation(true);
-			try {
-				return parentExpression.evaluate(context) == EvaluationResult.TRUE;
-			} catch (CoreException e) {
-				NavigatorPlugin.logError(0, e.getMessage(), e);
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * 
-	 * @return An instance of the ViewerSorter defined by the extension. Callers
-	 *         of this method are responsible for managing the instantiated
-	 *         filter.
-	 */
-	public ViewerSorter createSorter() {
-		try {
-			return (ViewerSorter) element.createExecutableExtension(ATT_CLASS);
-		} catch (RuntimeException re) {
-			NavigatorPlugin.logError(0, re.getMessage(), re);
-		} catch (CoreException e) {
-			NavigatorPlugin.logError(0, e.getMessage(), e);
-		}
-		return SkeletonViewerSorter.INSTANCE;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return "CommonSorterDescriptor[" + getId() + "]"; //$NON-NLS-1$//$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/CommonSorterDescriptorManager.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/CommonSorterDescriptorManager.java
deleted file mode 100644
index 3ff9882..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/CommonSorterDescriptorManager.java
+++ /dev/null
@@ -1,199 +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.sorters;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptor;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentRegistryReader;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-
-/**
- * @since 3.2
- * 
- */
-public class CommonSorterDescriptorManager {
-
-	private static final CommonSorterDescriptorManager INSTANCE = new CommonSorterDescriptorManager();
-
-	private static final CommonSorterDescriptor[] NO_SORTER_DESCRIPTORS = new CommonSorterDescriptor[0];
-
-	private final Map sortersMap = new HashMap();
-
-	/**
-	 * 
-	 * @return An initialized singleton instance of the
-	 *         CommonSorterDescriptorManager.
-	 */
-	public static CommonSorterDescriptorManager getInstance() {
-		return INSTANCE;
-	}
-
-	private CommonSorterDescriptorManager() {
-		new CommonSorterDescriptorRegistry().readRegistry();
-	}
-
-	/**
-	 * 
-	 * @param contentService
-	 *            A content service to filter the visible filters.
-	 * @param aParent
-	 *            The parent used to search for a sorter.
-	 * @return The set of filters that are 'visible' to the given viewer
-	 *         descriptor.
-	 */
-	public CommonSorterDescriptor[] findApplicableSorters(
-			NavigatorContentService contentService, Object aParent) {
-
-		INavigatorContentDescriptor sourceOfContribution = contentService
-				.getSourceOfContribution(aParent);
-
-		List applicableSorters = new ArrayList();
-
-		CommonSorterDescriptor descriptor;
-		Set sorters = getCommonSorters(sourceOfContribution);
-		for (Iterator sortersItr = sorters.iterator(); sortersItr.hasNext();) {
-			descriptor = (CommonSorterDescriptor) sortersItr.next();
-			if (descriptor.isEnabledForParent(aParent)) {
-				applicableSorters.add(descriptor);
-			}
-		}
-		if (applicableSorters.size() == 0) {
-			return NO_SORTER_DESCRIPTORS;
-		}
-		return (CommonSorterDescriptor[]) applicableSorters
-				.toArray(new CommonSorterDescriptor[applicableSorters.size()]);
-	}
-
-	/**
-	 * 
-	 * @param aContentService
-	 *            A content service to filter the visible filters.
-	 * @param theSource
-	 *            The source of each *value.
-	 * @param aParent
-	 *            The parent used to search for a sorter.
-	 * @param anLvalue
-	 *            The left operand to compare.
-	 * @param anRvalue
-	 *            The right operand to compare.
-	 * @return The set of filters that are 'visible' to the given viewer
-	 *         descriptor.
-	 */
-	public CommonSorterDescriptor[] findApplicableSorters(
-			NavigatorContentService aContentService,
-			INavigatorContentDescriptor theSource, Object aParent,
-			Object anLvalue, Object anRvalue) {
-
-		List applicableSorters = new ArrayList();
-
-		CommonSorterDescriptor descriptor;
-		Set sorters = getCommonSorters(theSource);
-		for (Iterator sortersItr = sorters.iterator(); sortersItr.hasNext();) {
-			descriptor = (CommonSorterDescriptor) sortersItr.next();
-			if (descriptor.isEnabledForParent(aParent)) {
-				applicableSorters.add(descriptor);
-			}
-		}
-		if (applicableSorters.size() == 0) {
-			return NO_SORTER_DESCRIPTORS;
-		}
-		return (CommonSorterDescriptor[]) applicableSorters
-				.toArray(new CommonSorterDescriptor[applicableSorters.size()]);
-	}
-
-	private class CommonSorterDescriptorRegistry extends
-			NavigatorContentRegistryReader {
-
-		private CommonSorterDescriptorRegistry() {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.internal.navigator.extensions.NavigatorContentRegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
-		 */
-		protected boolean readElement(IConfigurationElement element) {
-
-			if (TAG_NAVIGATOR_CONTENT.equals(element.getName())) {
-				String id = element.getAttribute(ATT_ID);
-				if (id != null) {
-					NavigatorContentDescriptor contentDescriptor = CONTENT_DESCRIPTOR_MANAGER
-							.getContentDescriptor(id);
-					if (contentDescriptor != null) {
-						IConfigurationElement[] children = element
-								.getChildren(TAG_COMMON_SORTER);
-
-						if (children.length > 0) {
-							Set localSorters = getCommonSorters(contentDescriptor);
-							for (int i = 0; i < children.length; i++) {
-								localSorters.add(new CommonSorterDescriptor(
-										children[i]));
-							}
-							return true;
-						}
-					} else {
-						NavigatorPlugin
-								.logError(
-										0,
-										NLS
-												.bind(
-														CommonNavigatorMessages.CommonSorterDescriptorManager_A_navigatorContent_extension_does_n_,
-														new Object[] {
-																id,
-																element
-																		.getDeclaringExtension()
-																		.getNamespaceIdentifier() }),
-										null);
-					}
-				} else {
-					NavigatorPlugin
-							.logError(
-									0,
-									NLS
-											.bind(
-													CommonNavigatorMessages.CommonSorterDescriptorManager_A_navigatorContent_extesnion_in_0_,
-													element.getNamespaceIdentifier()),
-									null);
-				}
-			}
-			return super.readElement(element);
-		}
-
-	}
-
-	private Set getCommonSorters(INavigatorContentDescriptor contentDescriptor) {
-		Set descriptors = (Set) sortersMap.get(contentDescriptor);
-		if (descriptors != null) {
-			return descriptors;
-		}
-		synchronized (sortersMap) {
-			descriptors = (Set) sortersMap.get(contentDescriptor);
-			if (descriptors == null) {
-				sortersMap.put(contentDescriptor, descriptors = new HashSet());
-			}
-		}
-		return descriptors;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/NavigatorSorterService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/NavigatorSorterService.java
deleted file mode 100644
index ce73b9a..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/NavigatorSorterService.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.internal.navigator.sorters;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorSorterService;
-
-/**
- * 
- * Provides a default implementation of {@link INavigatorSorterService}.
- * 
- * @since 3.2
- * 
- */
-public class NavigatorSorterService implements INavigatorSorterService {
-
-	private final NavigatorContentService contentService;
-
-	/* A map of (CommonSorterDescriptor, ViewerSorter)-pairs */
-	private final Map sorters = new HashMap();
-
-	/**
-	 * Create a sorter service attached to the given content service.
-	 * 
-	 * @param aContentService
-	 *            The content service used by the viewer that will use this
-	 *            sorter service.
-	 */
-	public NavigatorSorterService(NavigatorContentService aContentService) {
-		contentService = aContentService;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorSorterService#findSorterForParent(java.lang.Object)
-	 */
-	public ViewerSorter findSorterForParent(Object aParent) {
-
-		CommonSorterDescriptor[] descriptors = CommonSorterDescriptorManager
-				.getInstance().findApplicableSorters(contentService, aParent);
-		if (descriptors.length > 0) {
-			return getSorter(descriptors[0]);
-		}
-		return SkeletonViewerSorter.INSTANCE;
-	}
-
-	private ViewerSorter getSorter(CommonSorterDescriptor descriptor) {
-		ViewerSorter sorter = (ViewerSorter) sorters.get(descriptor);
-		if (sorter != null) {
-			return sorter;
-		}
-		synchronized (sorters) {
-			sorter = (ViewerSorter) sorters.get(descriptor);
-			if (sorter == null) {
-				sorters.put(descriptor, sorter = descriptor.createSorter());
-			}
-		}
-		return sorter;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.INavigatorSorterService#findSorterForParent(org.eclipse.ui.navigator.INavigatorContentDescriptor,
-	 *      java.lang.Object, java.lang.Object, java.lang.Object)
-	 */
-	public ViewerSorter findSorter(INavigatorContentDescriptor source, 
-			Object parent, Object lvalue, Object rvalue) { 
-
-		CommonSorterDescriptor[] descriptors = CommonSorterDescriptorManager
-				.getInstance().findApplicableSorters(contentService, source, parent, lvalue, rvalue);
-		if(descriptors.length > 0) {
-			return getSorter(descriptors[0]);
-		} 
-		return null;
-	}
-	 
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/SkeletonViewerSorter.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/SkeletonViewerSorter.java
deleted file mode 100644
index 4082ab7..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/sorters/SkeletonViewerSorter.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.ui.internal.navigator.sorters;
-
-import org.eclipse.jface.viewers.ViewerSorter;
-
-/**
- * @since 3.2
- *
- */
-public class SkeletonViewerSorter extends ViewerSorter {
-
-	/** The singleton instance. */
-	public static final ViewerSorter INSTANCE = new SkeletonViewerSorter();
-	
-	private SkeletonViewerSorter() {}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/CommonWizardDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/CommonWizardDescriptor.java
deleted file mode 100644
index 96284e3..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/CommonWizardDescriptor.java
+++ /dev/null
@@ -1,260 +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.wizards;
-
-import java.util.Iterator;
-
-import org.eclipse.core.expressions.ElementHandler;
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.extensions.INavigatorContentExtPtConstants;
-
-/**
- * <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 CommonWizardDescriptor implements INavigatorContentExtPtConstants, IPluginContribution {
-	
-	/** The default menu group id for commonWizards without a menuGroupId attribute. */
-	public static final String DEFAULT_MENU_GROUP_ID = "all-uncategorized"; //$NON-NLS-1$
-
-	private String id;
-	
-	private String wizardId;
-	
-	private String menuGroupId; 
-
-	private String type;
-
-	private Expression enablement;
-
-	private IConfigurationElement configElement;
-
-	/**
-	 * @param aConfigElement The configuration element from the extension point. 
-	 * @throws WorkbenchException
-	 *             if the configuration element could not be parsed. Reasons
-	 *             include:
-	 *             <ul>
-	 *             <li>A required attribute is missing.</li>
-	 *             <li>More elements are define than is allowed.</li>
-	 *             </ul>
-	 */
-	public CommonWizardDescriptor(IConfigurationElement aConfigElement)
-			throws WorkbenchException {
-		super();
-		configElement = aConfigElement;
-		init();
-	} 
-
-	/**
-	 * @param aConfigElement The configuration element from the extension point.
-	 * @param anId the identifier for visibility purposes.
-	 *  
-	 * @throws WorkbenchException
-	 *             if the configuration element could not be parsed. Reasons
-	 *             include:
-	 *             <ul>
-	 *             <li>A required attribute is missing.</li>
-	 *             <li>More elements are define than is allowed.</li>
-	 *             </ul>
-	 */
-	public CommonWizardDescriptor(IConfigurationElement aConfigElement, String anId)
-			throws WorkbenchException {
-		super();
-		configElement = aConfigElement;
-		id = anId;
-		init();
-		
-	}
-
-	/**
-	 * Determine if this content extension is enabled for the given selection.
-	 * The content extension is enabled for the selection if and only if it is
-	 * enabled for each element in the selection.
-	 * 
-	 * @param aStructuredSelection
-	 *            The selection from the viewer
-	 * @return True if and only if the extension is enabled for each element in
-	 *         the selection.
-	 */
-	public boolean isEnabledFor(IStructuredSelection aStructuredSelection) {
-		if (enablement == null) {
-			return false;
-		}
-
-		IEvaluationContext context = null;
-
-		Iterator elements = aStructuredSelection.iterator();
-		while (elements.hasNext()) {
-			context = new EvaluationContext(null, elements.next());
-			context.setAllowPluginActivation(true);
-			try {
-				if (enablement.evaluate(context) == EvaluationResult.FALSE) {
-					return false;
-				}
-			} catch (CoreException e) {
-				NavigatorPlugin.log(IStatus.ERROR, 0, e.getMessage(), e);
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Determine if this content extension is enabled for the given element.
-	 * 
-	 * @param anElement
-	 *            The element that should be used for the evaluation.
-	 * @return True if and only if the extension is enabled for the element.
-	 */
-	public boolean isEnabledFor(Object anElement) {
-
-		if (enablement == null) {
-			return false;
-		}
-
-		try {
-			EvaluationContext context = new EvaluationContext(null, anElement);
-			context.setAllowPluginActivation(true);
-			return (enablement.evaluate(context) == EvaluationResult.TRUE);
-		} catch (CoreException e) {
-			NavigatorPlugin.log(IStatus.ERROR, 0, e.getMessage(), e);
-		}
-		return false;
-	}
-
-	void init() throws WorkbenchException { 
-		wizardId = configElement.getAttribute(ATT_WIZARD_ID);
-		type = configElement.getAttribute(ATT_TYPE);
-		
-		menuGroupId = configElement.getAttribute(ATT_MENU_GROUP_ID);
-		if(menuGroupId == null) {
-			menuGroupId = DEFAULT_MENU_GROUP_ID;
-		}
-		
-		/* 
-		 * The id defaults to the id of the enclosing navigatorContent extension, if any
-		 * If not enclosed, this can be null initially, so it will default to the 
-		 * value of the associatedExtensionId
-		 *  
-		 * Code elsewhere anticipates that this attribute may be null, so there is 
-		 * no need to set it to a default non-null value. Indeed, this will cause
-		 * incorrect behavior. 
-		 * */
-		if(id == null) {
-			id = configElement.getAttribute(ATT_ASSOCIATED_EXTENSION_ID);
-		}
-
-		if (wizardId == null || wizardId.length() == 0) {
-			throw new WorkbenchException("Missing attribute: " + //$NON-NLS-1$
-					ATT_WIZARD_ID + " in common wizard extension: " + //$NON-NLS-1$
-					configElement.getDeclaringExtension().getNamespaceIdentifier());
-		}
-
-		if (type == null || type.length() == 0) {
-			throw new WorkbenchException("Missing attribute: " + //$NON-NLS-1$
-					ATT_TYPE + " in common wizard extension: " + //$NON-NLS-1$
-					configElement.getDeclaringExtension().getNamespaceIdentifier());
-		}
-
-		IConfigurationElement[] children = configElement
-				.getChildren(TAG_ENABLEMENT);
-		if (children.length == 1) {
-			try {
-				enablement = ElementHandler.getDefault().create(
-						ExpressionConverter.getDefault(), children[0]);
-			} catch (CoreException e) {
-				NavigatorPlugin.log(IStatus.ERROR, 0, e.getMessage(), e);
-			}
-		} else if (children.length > 1) {
-			throw new WorkbenchException("More than one element: " + //$NON-NLS-1$
-					TAG_ENABLEMENT + " in common wizard extension: " + //$NON-NLS-1$
-					configElement.getDeclaringExtension().getUniqueIdentifier());
-		} 
-	}
-
-	/**
-	 * 
-	 * @return Returns the common wizard wizardId
-	 */
-	public String getWizardId() {
-		return wizardId;
-	}
-
-	/**
-	 * @return Returns the type.
-	 */
-	public String getType() {
-		return type;
-	}
-	
-	/**
-	 * @return the declaring namespace.
-	 */
-	public String getNamespace() {
-		return configElement.getDeclaringExtension().getNamespaceIdentifier(); 
-	}
-	
-	/**
-	 * 
-	 * @return The identifier of the wizard descriptor for visiblity purposes (or null) if none.
-	 */
-	public String getId() {
-		return id;
-	}
-	
-
-	/**
-	 * 
-	 * @return A developer-defined logical group that this wizard menu option and 
-	 * 	others like it should be rendered in a localized manner.
-	 */
-	public String getMenuGroupId() {
-		return menuGroupId;
-	}
-
-	
-	public String toString() {
-		return "CommonWizardDescriptor["+getId()+", wizardId="+getWizardId()+"]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPluginContribution#getLocalId()
-	 */
-	public String getLocalId() {
-		return getId();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPluginContribution#getPluginId()
-	 */
-	public String getPluginId() {
-        return (configElement != null) ? configElement.getNamespaceIdentifier() : null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/CommonWizardDescriptorManager.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/CommonWizardDescriptorManager.java
deleted file mode 100644
index 8882fcd..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/CommonWizardDescriptorManager.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.wizards;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.activities.WorkbenchActivityHelper;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.extensions.NavigatorContentRegistryReader;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * <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 CommonWizardDescriptorManager {
-
-	private static final CommonWizardDescriptorManager INSTANCE = new CommonWizardDescriptorManager();
-
-	private static boolean isInitialized = false;
-
-	private static final String[] NO_DESCRIPTOR_IDS = new String[0];
-
-	private static final CommonWizardDescriptor[] NO_DESCRIPTORS = new CommonWizardDescriptor[0];
-	
-	/**
-	 * Find wizards of type 'new'.
-	 */
-	public static final String WIZARD_TYPE_NEW = "new"; //$NON-NLS-1$
-
-	private Map commonWizardDescriptors = new HashMap();
-
-	/**
-	 * @return the singleton instance of the registry
-	 */
-	public static CommonWizardDescriptorManager getInstance() {
-		if (isInitialized) {
-			return INSTANCE;
-		}
-		synchronized (INSTANCE) {
-			if (!isInitialized) {
-				INSTANCE.init();
-				isInitialized = true;
-			}
-		}
-		return INSTANCE;
-	}
-
-	private void init() {
-		new CommonWizardRegistry().readRegistry();
-	}
-
-	private void addCommonWizardDescriptor(CommonWizardDescriptor aDesc) {
-		if (aDesc == null) {
-			return;
-		} else if(aDesc.getWizardId() == null) {
-			NavigatorPlugin.logError(0, "A null wizardId was supplied for a commonWizard in " + aDesc.getNamespace(), null); //$NON-NLS-1$
-		}
-		synchronized (commonWizardDescriptors) {
-			Set descriptors = (Set) commonWizardDescriptors.get(aDesc
-					.getType());
-			if (descriptors == null) { 
-				commonWizardDescriptors.put(aDesc.getType(), descriptors = new HashSet());
-			}
-			if (!descriptors.contains(aDesc)) {
-				descriptors.add(aDesc);
-			}
-		}
-	}
-
-	/**
-	 * 
-	 * Returns all wizard id(s) which enable for the given element.
-	 * 
-	 * @param anElement
-	 *            the element to return the best content descriptor for
-	 * @param aType
-	 *            The type of wizards to locate (e.g. 'new', 'import', or
-	 *            'export' etc).
-	 * @param aContentService 
-	 * 			 The content service to use when deciding visibility.   
-	 * @return The set of commonWizard ids for the given element
-	 */
-	public String[] getEnabledCommonWizardDescriptorIds(Object anElement,
-			String aType, INavigatorContentService aContentService) {
-
-		Set commonDescriptors = (Set) commonWizardDescriptors.get(aType);
-		if (commonDescriptors == null) {
-			return NO_DESCRIPTOR_IDS;
-		}
-		/* Find other Common Wizard providers which enable for this object */
-		List descriptorIds = new ArrayList();
-		for (Iterator commonWizardDescriptorsItr = commonDescriptors.iterator(); commonWizardDescriptorsItr
-				.hasNext();) {
-			CommonWizardDescriptor descriptor = (CommonWizardDescriptor) commonWizardDescriptorsItr
-					.next();
-
-			if (isVisible(aContentService, descriptor)
-					&& descriptor.isEnabledFor(anElement)) {
-				descriptorIds.add(descriptor.getWizardId());
-			}
-		}
-		String[] wizardIds = new String[descriptorIds.size()];
-		return (String[]) descriptorIds.toArray(wizardIds); 
-	}
-	
-
-	/**
-	 * 
-	 * Returns all wizard descriptor(s) which enable for the given element.
-	 * 
-	 * @param anElement
-	 *            the element to return the best content descriptor for
-	 * @param aType
-	 *            The type of wizards to locate (e.g. 'new', 'import', or
-	 *            'export' etc).
-	 * @param aContentService 
-	 * 			 The content service to use when deciding visibility.   
-	 * @return The set of commonWizard descriptors for the element
-	 */
-	public CommonWizardDescriptor[] getEnabledCommonWizardDescriptors(Object anElement,
-			String aType, INavigatorContentService aContentService) {
-
-		Set commonDescriptors = (Set) commonWizardDescriptors.get(aType);
-		if (commonDescriptors == null) {
-			return NO_DESCRIPTORS;
-		}
-		/* Find other Common Wizard providers which enable for this object */
-		List descriptors = new ArrayList();
-		for (Iterator commonWizardDescriptorsItr = commonDescriptors.iterator(); commonWizardDescriptorsItr
-				.hasNext();) {
-			CommonWizardDescriptor descriptor = (CommonWizardDescriptor) commonWizardDescriptorsItr
-					.next();
-
-			if (isVisible(aContentService, descriptor)
-					&& descriptor.isEnabledFor(anElement)) {
-				descriptors.add(descriptor);
-			}
-		}
-		CommonWizardDescriptor[] enabledDescriptors = new CommonWizardDescriptor[descriptors.size()];
-		return (CommonWizardDescriptor[]) descriptors.toArray(enabledDescriptors);  
-	}
-
-	/**
-	 * @param aContentService
-	 * @param descriptor
-	 * @return True if the descriptor is visible to the given content service.
-	 */
-	private boolean isVisible(INavigatorContentService aContentService, CommonWizardDescriptor descriptor) {
-		return !WorkbenchActivityHelper.filterItem(descriptor) && 
-					(aContentService == null || 
-							(descriptor.getId() == null || 
-									( aContentService.isVisible(descriptor.getId()) && 
-											aContentService.isActive(descriptor.getId())
-									)
-							)
-					);
-	}
-  
-	private class CommonWizardRegistry extends NavigatorContentRegistryReader {
- 
-
-		protected boolean readElement(IConfigurationElement anElement) {
-			if (TAG_COMMON_WIZARD.equals(anElement.getName())) {
-				try {
-					addCommonWizardDescriptor(new CommonWizardDescriptor(
-							anElement));
-				} catch (WorkbenchException e) {
-					// log an error since its not safe to open a dialog here
-					NavigatorPlugin
-							.logError(0, e.getMessage(), e);
-					return false;
-				}
-				return true;
-			} if(TAG_NAVIGATOR_CONTENT.equals(anElement.getName())) {
-				
-				IConfigurationElement[] commonWizards = anElement.getChildren(TAG_COMMON_WIZARD);
-				
-				String contentExtensionId = anElement.getAttribute(ATT_ID);
-				for (int i = 0; i < commonWizards.length; i++) {
-					try {
-						addCommonWizardDescriptor(new CommonWizardDescriptor(
-									commonWizards[i], contentExtensionId));
-					} catch (WorkbenchException e) {
-						// log an error since its not safe to open a dialog here
-						NavigatorPlugin
-								.logError(0, e.getMessage(), e);
-						return false;
-					}					
-				}
-				return true;
-			}
-			return super.readElement(anElement);
-		}
-	}
-	 
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/WizardShortcutAction.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/WizardShortcutAction.java
deleted file mode 100644
index 09366ae..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/wizards/WizardShortcutAction.java
+++ /dev/null
@@ -1,115 +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.wizards;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWizard;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.navigator.CommonNavigatorMessages;
-import org.eclipse.ui.wizards.IWizardDescriptor;
-
-/**
- * <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 WizardShortcutAction extends Action implements IPluginContribution {
-	private IWizardDescriptor descriptor;
-
-	private IWorkbenchWindow window;
-
-	/**
-	 * 
-	 * @param aWindow
-	 *            The window to use for the shell and selection service.
-	 * @param aDescriptor
-	 *            The descriptor with information for triggering the desired
-	 *            wizard.
-	 */
-	public WizardShortcutAction(IWorkbenchWindow aWindow,
-			IWizardDescriptor aDescriptor) {
-		super(aDescriptor.getLabel());
-		descriptor = aDescriptor;
-		setToolTipText(descriptor.getDescription());
-		setImageDescriptor(descriptor.getImageDescriptor());
-		setId(ActionFactory.NEW.getId());
-		this.window = aWindow;
-	}
-
-	/**
-	 * This action has been invoked by the user 
-	 */
-	public void run() {
-		// create instance of target wizard
-
-		IWorkbenchWizard wizard;
-		try {
-			wizard = descriptor.createWizard();
-		} catch (CoreException e) {
-			ErrorDialog.openError(window.getShell(),
-					CommonNavigatorMessages.NewProjectWizard_errorTitle,
-					CommonNavigatorMessages.NewProjectAction_text, e
-							.getStatus());
-			return;
-		}
-
-		ISelection selection = window.getSelectionService().getSelection();
-
-		if (selection instanceof IStructuredSelection) {
-			wizard
-					.init(window.getWorkbench(),
-							(IStructuredSelection) selection);
-		} else {
-			wizard.init(window.getWorkbench(), StructuredSelection.EMPTY);
-		}
-
-		Shell parent = window.getShell();
-		WizardDialog dialog = new WizardDialog(parent, wizard);
-		dialog.create();
-		// WorkbenchHelp.setHelp(dialog.getShell(),
-		// IWorkbenchHelpContextIds.NEW_WIZARD_SHORTCUT);
-		dialog.open();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.activities.support.IPluginContribution#getLocalId()
-	 */
-	public String getLocalId() {
-		return descriptor.getId();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.activities.support.IPluginContribution#getPluginId()
-	 */
-	public String getPluginId() {
-		return descriptor.getId();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonActionProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonActionProvider.java
deleted file mode 100644
index 8d7343c..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonActionProvider.java
+++ /dev/null
@@ -1,129 +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.navigator;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.actions.ActionGroup;
-
-/**
- * <p>
- * Provides actions from extensions for menu and
- * {@link org.eclipse.ui.IActionBars} contributions.
- * </p>
- * <p>
- * This abstract class should be extended by clients of the
- * <b>org.eclipse.ui.navigator.navigatorContent</b> extension point for
- * top-level and nested <b>actionProvider </b> elements.
- * </p>
- * <p>
- * {@link CommonActionProvider}s may be declared as top-level elements in the
- * extension point (e.g. an <b>actionProvider</b> element at the root of the
- * extension point). Alternatively, <b>actionProvider</b> elements may be
- * nested under a <b>navigatorContent</b> element, in which case they are
- * considered to be "associated" with that content extension. For more
- * information, see the <b>org.eclipse.ui.navigator.navigatorContent</b>
- * extension point.
- * </p>
- * <p>
- * Each action provider will have the opportunity to contribute to the context
- * menu when a user right clicks and also contribute to the {@link IActionBars}
- * each time the selection changes. Clients should re-configure the
- * {@link IActionBars} each time that {@link #fillActionBars(IActionBars)} is
- * called (which is once per selection changes). {@link #updateActionBars()}
- * will never be called from the {@link NavigatorActionService}. This behavior
- * is required since each selection could determine a different set of
- * retargetable actions. For instance, the "Delete" operation for a custom model
- * element is likely to be different than for a resource.
- * </p>
- * <p>
- * Therefore, each extension will have an opportunity to contribute to the
- * IActionBars based on the <b>possibleChildren</b> expression of the enclosing
- * <b>navigatorContent</b> extension or the <b>enablement</b> expression of
- * the <b>actionProvider</b> (for both top-level <b>actionProvider</b>s and
- * nested <b>actionProvider</b>s which only support a subset of the enclosing
- * content extensions <b>possibleChildren</b> expression).
- * <p>
- * Clients may extend this class.
- * </p>
- * 
- * @since 3.2
- */
-public abstract class CommonActionProvider extends ActionGroup implements
-		IMementoAware {
-
-	private ICommonActionExtensionSite actionSite;
-
-	/**
-	 * <p>
-	 * Initialize the current ICommonActionProvider with the supplied
-	 * information.
-	 * </p>
-	 * <p>
-	 * init() is guaranteed to be called before any other method of the
-	 * ActionGroup super class.
-	 * 
-	 * @param aSite
-	 *            The configuration information for the instantiated Common
-	 *            Action Provider.
-	 */
-	public void init(ICommonActionExtensionSite aSite) {
-		actionSite = aSite;
-	}
-
-	/**
-	 * <p>
-	 * Restore the previous state of any actions using the flags in aMemento.
-	 * This method allows the state of any actions that persist from session to
-	 * session to be restored.
-	 * </p>
-	 * 
-	 * <p>
-	 * The default behavior is to do nothing.
-	 * </p>
-	 * 
-	 * @param aMemento
-	 *            A memento that was given to the view part to restore its
-	 *            state.
-	 */
-	public void restoreState(IMemento aMemento) {
-	}
-
-	/**
-	 * <p>
-	 * Save flags in aMemento to remember the state of any actions that persist
-	 * from session to session.
-	 * </p>
-	 * <p>
-	 * Extensions should qualify any keys stored in the memento with their
-	 * plugin id
-	 * </p>
-	 * 
-	 * <p>
-	 * The default behavior is to do nothing.
-	 * </p>
-	 * 
-	 * @param aMemento
-	 *            A memento that was given to the view part to save its state.
-	 */
-	public void saveState(IMemento aMemento) {
-	}
-
-	/**
-	 * 
-	 * @return The cached reference to the action site. Will only be non-null if
-	 *         the subclass calls super.init() first.
-	 */
-	protected final ICommonActionExtensionSite getActionSite() {
-		return actionSite;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDragAdapter.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDragAdapter.java
deleted file mode 100644
index ad6c420..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDragAdapter.java
+++ /dev/null
@@ -1,231 +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.navigator;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DragSourceAdapter;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.dnd.NavigatorPluginDropAction;
-import org.eclipse.ui.part.PluginTransfer;
-
-/**
- * 
- * Provides an implementation of {@link DragSourceAdapter} which uses the
- * extensions provided by the associated {@link INavigatorContentService}.
- * 
- * <p>
- * Clients should not need to create an instance of this class unless they are
- * creating their own custom viewer. Otherwise, {@link CommonViewer} configures
- * its drag adapter automatically.
- * </p> 
- * 
- * @see INavigatorDnDService
- * @see CommonDragAdapterAssistant
- * @see CommonDropAdapter
- * @see CommonDropAdapterAssistant
- * @see CommonViewer
- * @since 3.2
- * 
- */
-public final class CommonDragAdapter extends DragSourceAdapter {
-
-	private static final boolean DEBUG = false;
-
-	private final INavigatorContentService contentService;
-
-	private final ISelectionProvider provider;
-
-	/**
-	 * Create a DragAdapter that drives the configuration of the drag data.
-	 * 
-	 * @param aContentService
-	 *            The content service this Drag Adapter is associated with
-	 * @param aProvider
-	 *            The provider that can give the current selection from the
-	 *            appropriate viewer.
-	 */
-	public CommonDragAdapter(INavigatorContentService aContentService,
-			ISelectionProvider aProvider) {
-		super();
-		contentService = aContentService;
-		provider = aProvider;
-	}
-
-	/**
-	 * 
-	 * @return An array of supported Drag Transfer types. The list contains [
-	 *         {@link LocalSelectionTransfer#getTransfer()},
-	 *         {@link PluginTransfer#getInstance()}] in addition to any
-	 *         supported types contributed by the
-	 *         {@link CommonDragAdapterAssistant assistants}.
-	 * @see CommonDragAdapterAssistant
-	 * @see LocalSelectionTransfer
-	 * @see PluginTransfer
-	 */
-	public Transfer[] getSupportedDragTransfers() {
-		CommonDragAdapterAssistant[] assistants = contentService
-				.getDnDService().getCommonDragAssistants();
-
-		Set supportedTypes = new LinkedHashSet();
-		supportedTypes.add(PluginTransfer.getInstance());
-		supportedTypes.add(LocalSelectionTransfer.getTransfer());
-		Transfer[] transferTypes = null;
-		for (int i = 0; i < assistants.length; i++) {
-			transferTypes = assistants[i].getSupportedTransferTypes();
-			for (int j = 0; j < transferTypes.length; j++) {
-				if (transferTypes[j] != null) {
-					supportedTypes.add(transferTypes[j]);
-				}
-			}
-		}
-		
-		Transfer[] transfers = (Transfer[]) supportedTypes
-				.toArray(new Transfer[supportedTypes.size()]);
-		return transfers;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragStart(org.eclipse.swt.dnd.DragSourceEvent)
-	 */
-	public void dragStart(DragSourceEvent event) {
-		if (DEBUG) {
-			System.out.println("CommonDragAdapter.dragStart (begin): " + event); //$NON-NLS-1$
-		}
-		try {
-			// Workaround for 1GEUS9V
-			DragSource dragSource = (DragSource) event.widget;
-			Control control = dragSource.getControl();
-			if (control == control.getDisplay().getFocusControl()) {
-				ISelection selection = provider.getSelection();
-				if (!selection.isEmpty()) {
-					LocalSelectionTransfer.getTransfer()
-							.setSelection(selection);
-					event.doit = true;
-				} else {
-					event.doit = false;
-				}
-			} else {
-				event.doit = false;
-			}
-		} catch (RuntimeException e) {
-			NavigatorPlugin.logError(0, e.getMessage(), e);
-		}
-
-		if (DEBUG) {
-			System.out
-					.println("CommonDragAdapter.dragStart (end): doit=" + event.doit); //$NON-NLS-1$
-	}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragSetData(org.eclipse.swt.dnd.DragSourceEvent)
-	 */
-	public void dragSetData(DragSourceEvent event) {
-
-		ISelection selection = LocalSelectionTransfer.getTransfer()
-				.getSelection();
-
-		if (DEBUG) {
-			System.out
-					.println("CommonDragAdapter.dragSetData (begin): event" + event + " selection=" + selection); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (LocalSelectionTransfer.getTransfer()
-				.isSupportedType(event.dataType)) {
-			event.data = selection;
-
-			if (DEBUG) {
-				System.out
-						.println("CommonDragAdapter.dragSetData set LocalSelectionTransfer"); //$NON-NLS-1$
-			}
-		} else if (PluginTransfer.getInstance().isSupportedType(event.dataType)) {
-			event.data = NavigatorPluginDropAction
-					.createTransferData(contentService);
-			if (DEBUG) {
-				System.out
-						.println("CommonDragAdapter.dragSetData set PluginTransfer"); //$NON-NLS-1$
-			}
-		} else if (selection instanceof IStructuredSelection) {
-			if (DEBUG) {
-				System.out
-						.println("CommonDragAdapter.dragSetData looking for assistants"); //$NON-NLS-1$
-			}
-
-			INavigatorDnDService dndService = contentService.getDnDService();
-			CommonDragAdapterAssistant[] assistants = dndService
-					.getCommonDragAssistants();
-			for (int i = 0; i < assistants.length; i++) {
-
-				Transfer[] supportedTransferTypes = assistants[i]
-						.getSupportedTransferTypes();
-				for (int j = 0; j < supportedTransferTypes.length; j++) {
-					if (supportedTransferTypes[j]
-							.isSupportedType(event.dataType)) {
-						try {
-							if (DEBUG) {
-								System.out
-										.println("CommonDragAdapter.dragSetData set assistant transfer type"); //$NON-NLS-1$
-							}
-							if(assistants[i].setDragData(event,
-									(IStructuredSelection) selection)) {
-								return;
-							}
-						} catch (RuntimeException re) {
-							NavigatorPlugin.logError(0, re.getMessage(), re);
-						}
-					}
-
-				}
-			}
-
-		} else {
-			event.doit = false;
-		}
-
-		if (DEBUG) {
-			System.out.println("CommonDragAdapter.dragSetData (end): " + event); //$NON-NLS-1$
-		}
-	}
-	 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragFinished(org.eclipse.swt.dnd.DragSourceEvent)
-	 */
-	public void dragFinished(DragSourceEvent event) {
-
-		if (DEBUG) {
-			System.out.println("CommonDragAdapter.dragFinished()."); //$NON-NLS-1$
-		}
-
-		LocalSelectionTransfer.getTransfer().setSelection(null);
-
-		// TODO Handle clean up if drop target was outside of workbench
-		// if (event.doit != false) {
-		//			
-		// }
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDragAdapterAssistant.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDragAdapterAssistant.java
deleted file mode 100644
index 085b9ae..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDragAdapterAssistant.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.navigator;
-
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.part.PluginTransfer;
-
-/**
- * Assist the {@link CommonDragAdapter} by providing new TransferTypes and the
- * logic to handle setting up the transfer data. Clients must extend this class
- * as part of the <b>org.eclipse.ui.navigator.viewer/dragAssistant</b>
- * extension. By default, the Common Navigator supports
- * {@link LocalSelectionTransfer} and {@link PluginTransfer}.
- * 
- * <p>
- * Clients may extend this class.
- * </p>
- * 
- * @see INavigatorDnDService
- * @see CommonDragAdapter
- * @see CommonDropAdapter
- * @see CommonDropAdapterAssistant
- * @see CommonViewer
- * @see <a
- *      href="http://www.eclipse.org/articles/Article-SWT-DND/DND-in-SWT.html">Drag
- *      and Drop: Adding Drag and Drop to an SWT Application</a>
- * @see <a
- *      href="http://www.eclipse.org/articles/Article-Workbench-DND/drag_drop.html">Drag
- *      and Drop in the Eclipse UI (Custom Transfer Types)</a>
- * 
- * @since 3.2
- * 
- */
-public abstract class CommonDragAdapterAssistant {
-
-	private INavigatorContentService contentService;
-
-	/**
-	 * Extra TransferTypes allow the Navigator to generate different kinds of
-	 * payloads for DND clients. By default, the {@link CommonDragAdapter}
-	 * supports {@link LocalSelectionTransfer} and {@link PluginTransfer}.
-	 * 
-	 * <p>
-	 * CommonDragAdapterAssistants can extend the available TransferTypes that a
-	 * Common Navigator Viewer can generate. Clients should return the set of
-	 * Transfer Types they support. When a drop event occurs, the available drag
-	 * assistants will be searched for a <i>enabled</i> assistants for the
-	 * {@link DragSourceEvent}. Only if the drop event occurs will
-	 * {@link #setDragData(DragSourceEvent, IStructuredSelection)} be called. If
-	 * the drop event is cancelled,
-	 * {@link #setDragData(DragSourceEvent, IStructuredSelection)} will not be
-	 * called.
-	 * </p>
-	 * 
-	 * @return The added transfer types. (e.g. FileTransfer.getInstance()).
-	 */
-	public abstract Transfer[] getSupportedTransferTypes();
-
-	/**
-	 * Set the value of the {@link org.eclipse.swt.widgets.Event#data} field using the given selection.
-	 * Clients will only have an opportunity to set the drag data if they have
-	 * returned a matching Transfer Type from
-	 * {@link #getSupportedTransferTypes()} for the
-	 * {@link DragSourceEvent#dataType}.
-	 * <p>
-	 * Clients will only have an opportunity to set the data when the drop event
-	 * occurs. If the drop operation is cancelled, then this method will not be
-	 * called.
-	 * </p>
-	 * 
-	 * @param anEvent
-	 *            The event object should have its {@link Event#data} field set
-	 *            to a value that matches a supported {@link TransferData} type.
-	 * @param aSelection
-	 *            The current selection from the viewer.
-	 * @return True if the data could be set; false otherwise.
-	 */
-	public abstract boolean setDragData(DragSourceEvent anEvent,
-			IStructuredSelection aSelection);
-
-	/**
-	 * Accept and remember the content service this assistant is associated
-	 * with.
-	 * 
-	 * @param aContentService
-	 */
-	public final void setContentService(INavigatorContentService aContentService) {
-		contentService = aContentService;
-	}
-
-	/**
-	 * 
-	 * @return The associated content service.
-	 */
-	public INavigatorContentService getContentService() {
-		return contentService;
-	}
-
-	/**
-	 * 
-	 * @return The shell for the viewer this assistant is associated with or the
-	 *         shell of the active workbench window.
-	 */
-	public final Shell getShell() {
-		if (contentService != null) {
-			((NavigatorContentService) contentService).getShell();
-		}
-		return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDropAdapter.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDropAdapter.java
deleted file mode 100644
index cf061af..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDropAdapter.java
+++ /dev/null
@@ -1,315 +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.navigator;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.Transfer;
-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.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.dnd.NavigatorDnDService;
-import org.eclipse.ui.internal.navigator.dnd.NavigatorPluginDropAction;
-import org.eclipse.ui.part.PluginDropAdapter;
-import org.eclipse.ui.part.PluginTransfer;
-
-/**
- * Provides an implementation of {@link PluginDropAdapter} which uses the
- * extensions provided by the associated {@link INavigatorContentService}.
- * 
- * <p>
- * Clients should not need to create an instance of this class unless they are
- * creating their own custom viewer. Otherwise, {@link CommonViewer} configures
- * its drop adapter automatically.
- * </p>
- *  
- * 
- * @see INavigatorDnDService
- * @see CommonDragAdapter
- * @see CommonDragAdapterAssistant
- * @see CommonDropAdapterAssistant
- * @see CommonViewer
- * @since 3.2
- */
-public final class CommonDropAdapter extends PluginDropAdapter {
-
-	private static final Transfer[] SUPPORTED_DROP_TRANSFERS = new Transfer[] {
-			LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance(),
-			PluginTransfer.getInstance() };
-
-	private static final boolean DEBUG = false;
-
-	private final INavigatorContentService contentService;
-
-	private final NavigatorDnDService dndService;
-
-	/**
-	 * Create a DropAdapter that handles a drop based on the given content
-	 * service and selection provider.
-	 * 
-	 * @param aContentService
-	 *            The content service this Drop Adapter is associated with
-	 * @param aStructuredViewer
-	 *            The viewer this DropAdapter is associated with.
-	 */
-	public CommonDropAdapter(INavigatorContentService aContentService,
-			StructuredViewer aStructuredViewer) {
-		super(aStructuredViewer);
-		contentService = aContentService;
-		dndService = (NavigatorDnDService) contentService.getDnDService();
-	}
-
-	/**
-	 * 
-	 * @return An array of Transfers allowed by the CommonDropAdapter. Includes
-	 *         {@link LocalSelectionTransfer#getTransfer()},
-	 *         {@link FileTransfer#getInstance()},
-	 *         {@link PluginTransfer#getInstance()}.
-	 * @see LocalSelectionTransfer
-	 * @see FileTransfer
-	 * @see PluginTransfer
-	 */
-	public Transfer[] getSupportedDropTransfers() {
-		return SUPPORTED_DROP_TRANSFERS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragEnter(DropTargetEvent event) {
-		super.dragEnter(event);
-
-		for (int i = 0; i < event.dataTypes.length; i++) {
-			if (LocalSelectionTransfer.getTransfer().isSupportedType(
-					event.dataTypes[i])) {
-				event.currentDataType = event.dataTypes[i]; 
-				return;
-			}
-		}
-
-		for (int i = 0; i < event.dataTypes.length; i++) {
-			if (FileTransfer.getInstance().isSupportedType(event.dataTypes[i])) {
-				event.currentDataType = event.dataTypes[i];
-				event.detail = DND.DROP_COPY; 
-				return;
-			}
-		}
-
-		for (int i = 0; i < event.dataTypes.length; i++) {
-			if (PluginTransfer.getInstance()
-					.isSupportedType(event.dataTypes[i])) {
-				event.currentDataType = event.dataTypes[i]; 
-				return;
-			}
-		}
-
-		event.detail = DND.DROP_NONE; 
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragLeave(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragLeave(DropTargetEvent event) {
-		super.dragLeave(event);
-		if (LocalSelectionTransfer.getTransfer().isSupportedType(
-				event.currentDataType)) {
-			event.data = NavigatorPluginDropAction
-					.createTransferData(contentService);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.PluginDropAdapter#drop(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void drop(DropTargetEvent event) {
-		if (PluginTransfer.getInstance().isSupportedType(event.currentDataType)) {
-			super.drop(event);
-		} else {
-
-			Object target = getCurrentTarget() != null ? 
-							getCurrentTarget() : getViewer().getInput();
-							
-			CommonDropAdapterAssistant[] assistants = dndService
-				.findCommonDropAdapterAssistants(target, getCurrentTransfer());
-
-			IStatus valid = null;
-			for (int i = 0; i < assistants.length; i++) {
-				try {
- 
-					valid = assistants[i].validateDrop(getCurrentTarget(),
-							getCurrentOperation(), getCurrentTransfer());
-					if (valid != null && valid.isOK()) {
-						assistants[i].handleDrop(this, event,
-								getCurrentTarget());
-						return;
-					} 
-				} catch (Throwable t) {
-					NavigatorPlugin.logError(0, t.getMessage(), t);
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#validateDrop(java.lang.Object,
-	 *      int, org.eclipse.swt.dnd.TransferData)
-	 */
-	public boolean validateDrop(Object aDropTarget, int theDropOperation,
-			TransferData theTransferData) {
-
-		if (DEBUG) {
-			System.out.println("CommonDropAdapter.validateDrop (begin)"); //$NON-NLS-1$
-		}
-
-		boolean result = false;
-
-		IStatus valid = null;
-
-		if (super.validateDrop(aDropTarget, theDropOperation, theTransferData)) {
-			result = true; 
-		} else {
-
-			Object target = aDropTarget != null ? aDropTarget : getViewer().getInput();
-			CommonDropAdapterAssistant[] assistants = dndService
-					.findCommonDropAdapterAssistants(target,
-							theTransferData);
-			if (DEBUG) {
-				System.out
-						.println("CommonDropAdapter.validateDrop found " + assistants.length + " drop assistants"); //$NON-NLS-1$//$NON-NLS-2$
-				for(int i=0; i<assistants.length; i++)
-					System.out.println("CommonDropAdapter.validateDrop :" + assistants[i].getClass().getName()); //$NON-NLS-1$
-				
-			}
-			for (int i = 0; i < assistants.length; i++) {
-				try { 
-					valid = assistants[i].validateDrop(target,
-							theDropOperation, theTransferData); 
-				} catch (Throwable t) {
-					NavigatorPlugin.logError(0, t.getMessage(), t);
-				}
-				if (valid != null && valid.isOK()) {
-					result = true;
-					if (DEBUG) { 
-						System.out
-								.println("CommonDropAdapter.validateDrop found \""+assistants[i].getClass().getName()+"\" would handle drop."); //$NON-NLS-1$ //$NON-NLS-2$ 
-					}					
-					break;
-				}
-			}
-		}
-
-		if (DEBUG) {
-			System.out
-					.println("CommonDropAdapter.validateDrop (returning " + (valid != null ? valid.getSeverity() + ": " + valid.getMessage() : "" + result) + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		}
-
-
-		setScrollExpandEnabled(result);
-		return result;
-
-	}
-
-	/*
-	 * The visibility of the following methods is raised for downstream clients
-	 * (assistants).
-	 */
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#getBounds(org.eclipse.swt.widgets.Item)
-	 */
-	public Rectangle getBounds(Item item) {
-		return super.getBounds(item);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#getCurrentLocation()
-	 */
-	public int getCurrentLocation() {
-		return super.getCurrentLocation();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#getCurrentOperation()
-	 */
-	public int getCurrentOperation() {
-		return super.getCurrentOperation();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#getCurrentTarget()
-	 */
-	public Object getCurrentTarget() {
-		return super.getCurrentTarget();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.PluginDropAdapter#getCurrentTransfer()
-	 */
-	public TransferData getCurrentTransfer() {
-		return super.getCurrentTransfer();
-	}
-	
-    /**
-     * 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 = getViewer().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;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDropAdapterAssistant.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDropAdapterAssistant.java
deleted file mode 100644
index 52af6c6..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonDropAdapterAssistant.java
+++ /dev/null
@@ -1,219 +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.navigator;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-
-/**
- * <p>
- * Used by the
- * <b>org.eclipse.ui.navigator.navigatorContent/navigatorContent/commonDropAdapter</b>
- * extension point to carry out pluggable drop operations.
- * </p>
- * <p>
- * Each {@link CommonDropAdapterAssistant} is contained by single content
- * extension. The opportunity for each assistant to handle the drop operation is
- * determined by the <b>possibleChildren</b> expression of the
- * <b>org.eclipse.ui.navigator.navigatorContent/navigatorContent</b> extension;
- * whenever every element in the drag set matches the <b>possibleChildren</b>
- * expression of an extension, it is eligible to handle the drop operation. This
- * initial set is further culled using the <b>possibleDropTargets</b>
- * expression of the <b>commonDropAdapter</b> using the current drop target.
- * </p>
- * <p>
- * If drag operations originate outside of Eclipse, then the set of eligible
- * drop adapters is determined based on the drop target (using the
- * <b>possibleDropTargets</b> expression). Each assistant can then indicate 
- * whether {@link #isSupportedType(TransferData) the incoming type is supported}.
- * <p>
- * Whenever a match is found, the assistant will be given an opportunity to
- * first {@link #validateDrop(Object, int, TransferData)}, and then if the
- * assistant returns true, the assist must
- * {@link #handleDrop(CommonDropAdapter, DropTargetEvent, Object)}. If
- * multiple assistants match the drop target, then the potential assistants are
- * ordered based on priority and their override relationships and given an
- * opportunity to validate the drop operation in turn. The first one to validate
- * will have the opportunty to carry out the drop.
- * </p>
- * 
- * <p>
- * Clients may handle DND operations that begin and end in the current viewer by
- * overriding the following methods:
- * <ul>
- * <li>{@link #validateDrop(Object, int, TransferData)}: Indicate whether this
- * assistant can handle a drop onto the current viewer.</li>
- * <li>{@link #handleDrop(CommonDropAdapter, DropTargetEvent, Object)}: Handle
- * the drop operation onto the current viewer.</li>
- * </ul>
- * </p>
- * <p>
- * If a user originates a drag operation to another viewer that cannot handle
- * one of the available drag transfer types, drop assistants may handle the drop
- * operation for the target viewer. Clients must override :
- * <ul>
- * <li>{@link #validatePluginTransferDrop(IStructuredSelection, Object)}:
- * Indicate whether this assistant can handle the drop onto another viewer.
- * <li>{@link #handlePluginTransferDrop(IStructuredSelection, Object)}: Handle
- * the drop operation onto the other viewer.</li>
- * </ul>
- * </p> 
- * <p>
- * Clients may implement this interface.
- * </p>
- * 
- * @see INavigatorDnDService
- * @see INavigatorDnDService#findCommonDropAdapterAssistants(Object,
- *      TransferData)
- * @since 3.2
- * 
- */
-public abstract class CommonDropAdapterAssistant {
-
-	private INavigatorContentService contentService;
-
-	/**
-	 * Perform any necessary initialization using the
-	 * {@link INavigatorContentService}.
-	 * 
-	 * 
-	 * @param aContentService
-	 *            The instance of {@link INavigatorContentService} that the
-	 *            current CommonDropAdapterAssistant will be associated with
-	 */
-	public final void init(INavigatorContentService aContentService) {
-		contentService = aContentService;
-		doInit();
-	}
-
-	/**
-	 * Override to perform any one-time initialization.
-	 */
-	protected void doInit() {
-
-	}
-
-	/**
-	 * 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.
-	 * If clients return true, then they will be allowed to handle the drop in
-	 * {@link #handleDrop(CommonDropAdapter, DropTargetEvent, Object) }.
-	 * </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 A status indicating whether the drop is valid.
-	 */
-	public abstract IStatus validateDrop(Object target, int operation,
-			TransferData transferType);
-
-	/**
-	 * Carry out the DND operation.
-	 * 
-	 * @param aDropAdapter
-	 *            The Drop Adapter contains information that has already been
-	 *            parsed from the drop event.
-	 * @param aDropTargetEvent
-	 *            The drop target event.
-	 * @param aTarget
-	 *            The object being dragged onto
-	 * @return A status indicating whether the drop completed OK.
-	 */
-	public abstract IStatus handleDrop(CommonDropAdapter aDropAdapter,
-			DropTargetEvent aDropTargetEvent, Object aTarget);
-
-	/**
-	 * Clients may extend the supported transfer types beyond the default
-	 * {@link LocalSelectionTransfer#getTransfer()} and
-	 * {@link org.eclipse.ui.part.PluginTransfer#getInstance()} transfer types. When a transfer type
-	 * other than one of these is encountered, the DND Service will query the
-	 * <b>visible</b> and <b>active</b> descriptors that are <b>enabled</b>
-	 * for the drop target of the current operation.
-	 * 
-	 * @param aTransferType
-	 *            The transfer data from the drop operation
-	 * @return True if the given TransferData can be understood by this
-	 *         assistant.
-	 */
-	public boolean isSupportedType(TransferData aTransferType) {
-		return LocalSelectionTransfer.getTransfer().isSupportedType(
-				aTransferType);
-	}
-
-	/**
-	 * 
-	 * Return true if the client can handle the drop onto the target viewer of
-	 * the drop operation.
-	 * <p>
-	 * The default behavior of this method is to return <b>Status.CANCEL_STATUS</b>.
-	 * </p>
-	 * 
-	 * @param aDragSelection
-	 *            The selection dragged from the viewer.
-	 * @param aDropTarget
-	 *            The target of the drop operation.
-	 * 
-	 * @return OK if the plugin transfer can be handled by this assistant.
-	 */
-	public IStatus validatePluginTransferDrop(
-			IStructuredSelection aDragSelection, Object aDropTarget) {
-		return Status.CANCEL_STATUS;
-	}
-
-	/**
-	 * Handle the drop operation for the target viewer.
-	 * <p>
-	 * The default behavior of this method is to return <b>Status.CANCEL_STATUS</b>.
-	 * </p>
-	 * 
-	 * @param aDragSelection
-	 *            The selection dragged from the viewer.
-	 * @param aDropTarget
-	 *            The target of the drop operation.
-	 * 
-	 * @return OK if the drop operation succeeded.
-	 */
-	public IStatus handlePluginTransferDrop(
-			IStructuredSelection aDragSelection, Object aDropTarget) {
-		return Status.CANCEL_STATUS;
-	}
-
-	/**
-	 * 
-	 * @return The associated content service.
-	 */
-	protected INavigatorContentService getContentService() {
-		return contentService;
-	}
-
-	/**
-	 * 
-	 * @return A shell for the viewer currently used by the
-	 *         {@link INavigatorContentService}.
-	 */
-	protected final Shell getShell() {
-		return ((NavigatorContentService) contentService).getShell();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonNavigator.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonNavigator.java
deleted file mode 100644
index 8a3f175..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonNavigator.java
+++ /dev/null
@@ -1,618 +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.navigator;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-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.TreeViewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.ISaveablePart;
-import org.eclipse.ui.ISaveablesLifecycleListener;
-import org.eclipse.ui.ISaveablesSource;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.Saveable;
-import org.eclipse.ui.SaveablesLifecycleEvent;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.internal.navigator.CommonNavigatorActionGroup;
-import org.eclipse.ui.internal.navigator.CommonNavigatorManager;
-import org.eclipse.ui.part.ISetSelectionTarget;
-import org.eclipse.ui.part.IShowInTarget;
-import org.eclipse.ui.part.ShowInContext;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * <p>
- * This class provides the IViewPart for the Common Navigator framework in the
- * Eclipse workbench. This class also serves as the backbone for navigational
- * viewers. The following types are used by this class to render the Common
- * Navigator:
- * <ul>
- * <li>
- * <p>
- * {@link org.eclipse.ui.navigator.CommonViewer}: The viewer that renders the
- * extensible tree. Creates and manages the lifecylce of the Navigator Content
- * Service (described below).
- * </p>
- * </li>
- * <li>
- * <p>
- * {@link org.eclipse.ui.navigator.NavigatorActionService}: Manages instances
- * of {@link org.eclipse.ui.navigator.CommonActionProvider}s provided by
- * individual extensions and content extensions.
- * </p>
- * </li>
- * <li>
- * <p>
- * {@link org.eclipse.ui.navigator.INavigatorContentService}: Manages instances
- * of Navigator Content Extensions. Instances are created as needed, and
- * disposed of upon the disposal of the Navigator Content Service.
- * </p>
- * </li>
- * </ul>
- * <p>
- * Clients are not expected to subclass CommonNavigator. Clients that wish to
- * define their own custom extensible navigator view need to specify an instance
- * of the <b>org.eclipse.ui.views</b> extension point:
- * 
- * <pre>
- *   
- *          &lt;extension
- *          		point=&quot;org.eclipse.ui.views&quot;&gt;
- *          	&lt;view
- *          		name=&quot;My Custom View&quot;
- *          		icon=&quot;relative/path/to/icon.gif&quot;
- *          		category=&quot;org.acme.mycategory&quot;
- *          		class=&quot;org.eclipse.ui.navigator.CommonNavigator&quot;
- *          		id=&quot;org.acme.MyCustomNavigatorID&quot;&gt;
- *          	&lt;/view&gt;
- *          &lt;/extension&gt; 
- *    
- * </pre>
- * 
- * </p> 
- * Clients that wish to extend the view menu provided via the
- * <b>org.eclipse.ui.popupMenu</b>s extension may specify the the <i>popupMenuId</i>
- * specified by <b>org.eclipse.ui.navigator.viewer</b> (or a nested <b>popupMenu</b> element) of their target viewer
- * as their target menu id.
- * 
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- *  
- * @since 3.2
- */
-public class CommonNavigator extends ViewPart implements ISetSelectionTarget, ISaveablePart, ISaveablesSource, IShowInTarget {
-
- 
-	/**
-	 * 
-	 */
-	private static final Class INAVIGATOR_CONTENT_SERVICE = INavigatorContentService.class;
-	private static final Class COMMON_VIEWER_CLASS = CommonViewer.class;
-	private static final Class ISHOW_IN_TARGET_CLASS = IShowInTarget.class;
-
-	/**
-	 * <p>
-	 * Used to track changes to the {@link #isLinkingEnabled}&nbsp;property.
-	 * </p>
-	 */
-	public static final int IS_LINKING_ENABLED_PROPERTY = 1;
-
-	private CommonViewer commonViewer;
-
-	private CommonNavigatorManager commonManager;
-
-	private ActionGroup commonActionGroup;
-
-	private IMemento memento;
-
-	private boolean isLinkingEnabled = false;
-
-	private String LINKING_ENABLED = "CommonNavigator.LINKING_ENABLED"; //$NON-NLS-1$ 
-
-	/**
-	 * 
-	 */
-	public CommonNavigator() {
-		super();
-	}
-
-	/**
-	 * <p>
-	 * Create the CommonViewer part control and setup the default providers as
-	 * necessary.
-	 * </p>
-	 * 
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite aParent) {
-
-		commonViewer = createCommonViewer(aParent);	
-
-		try {
-			commonViewer.getControl().setRedraw(false);
-			
-			INavigatorFilterService filterService = commonViewer
-					.getNavigatorContentService().getFilterService();
-			ViewerFilter[] visibleFilters = filterService.getVisibleFilters(true);
-			for (int i = 0; i < visibleFilters.length; i++) {
-				commonViewer.addFilter(visibleFilters[i]);
-			}
-	
-			commonViewer.setSorter(new CommonViewerSorter());
-	
-			/*
-			 * make sure input is set after sorters and filters to avoid unnecessary
-			 * refreshes
-			 */
-			commonViewer.setInput(getInitialInput()); 
-	
-			getSite().setSelectionProvider(commonViewer);
-	
-			updateTitle();
-		} finally { 
-			commonViewer.getControl().setRedraw(true);
-		}
-
-		/*
-		 * Create the CommonNavigatorManager last because information about the
-		 * state of the CommonNavigator is required for the initialization of
-		 * the CommonNavigatorManager
-		 */
-		commonManager = createCommonManager();
-		if (memento != null) {
-			commonManager.restoreState(memento);
-			commonViewer.getNavigatorContentService().restoreState(memento);
-		}
-
-		commonActionGroup = createCommonActionGroup();
-		commonActionGroup.fillActionBars(getViewSite().getActionBars());
-		
-		ISaveablesLifecycleListener saveablesLifecycleListener = new ISaveablesLifecycleListener() {
-			ISaveablesLifecycleListener siteSaveablesLifecycleListener = (ISaveablesLifecycleListener) getSite()
-					.getService(ISaveablesLifecycleListener.class);
-
-			public void handleLifecycleEvent(SaveablesLifecycleEvent event) {
-				if (event.getEventType() == SaveablesLifecycleEvent.DIRTY_CHANGED) {
-					firePropertyChange(PROP_DIRTY);
-				}
-				siteSaveablesLifecycleListener.handleLifecycleEvent(event);
-			}
-		};
-		commonViewer.getNavigatorContentService()
-				.getSaveablesService().init(this, getCommonViewer(),
-						saveablesLifecycleListener);
-		
-		getCommonViewer().addSelectionChangedListener(new ISelectionChangedListener() {
-
-			public void selectionChanged(SelectionChangedEvent event) {
-				firePropertyChange(PROP_DIRTY);
-			}});
-	}
-
-	/**
-	 * <p>
-	 * Note: This method is for internal use only. Clients should not call this
-	 * method.
-	 * </p>
-	 * <p>
-	 * This method will be invoked when the DisposeListener is notified of the
-	 * disposal of the Eclipse view part.
-	 * </p>
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		if (commonManager != null) {
-			commonManager.dispose();
-		}
-		if(commonActionGroup != null) {
-			commonActionGroup.dispose();
-		}
-		super.dispose();
-	}
-
-	/**
-	 * <p>
-	 * Note: This method is for internal use only. Clients should not call this
-	 * method.
-	 * </p>
-	 * 
-	 * @see org.eclipse.ui.part.ViewPart#init(org.eclipse.ui.IViewSite,
-	 *      org.eclipse.ui.IMemento)
-	 */
-	public void init(IViewSite aSite, IMemento aMemento)
-			throws PartInitException {
-		super.init(aSite, aMemento);
-		memento = aMemento;
-		if (memento != null) {
-			Integer linkingEnabledInteger = memento.getInteger(LINKING_ENABLED);
-			setLinkingEnabled(((linkingEnabledInteger != null) ? linkingEnabledInteger
-					.intValue() == 1
-					: false));
-		}
-
-	}
-
-	/**
-	 * 
-	 * <p>
-	 * Note: This method is for internal use only. Clients should not call this
-	 * method.
-	 * </p>
-	 * 
-	 * @see org.eclipse.ui.part.ViewPart#saveState(org.eclipse.ui.IMemento)
-	 */
-	public void saveState(IMemento aMemento) {
-		aMemento.putInteger(LINKING_ENABLED, (isLinkingEnabled) ? 1 : 0);
-		super.saveState(aMemento);
-		commonManager.saveState(aMemento);
-		commonViewer.getNavigatorContentService().saveState(aMemento);
-	}
-
-	/**
-	 * <p>
-	 * Force the workbench to focus on the Common Navigator tree.
-	 * </p>
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		if (commonViewer != null) {
-			commonViewer.getTree().setFocus();
-		}
-	}
-
-	/**
-	 * <p>
-	 * Set the selection to the Common Navigator tree, and expand nodes if
-	 * necessary. Use caution when invoking this method as it can cause
-	 * Navigator Content Extensions to load, thus causing plugin activation.
-	 * </p>
-	 * 
-	 * @see org.eclipse.ui.part.ISetSelectionTarget#selectReveal(org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectReveal(ISelection selection) {
-		if (commonViewer != null) {
-			if(selection instanceof IStructuredSelection) {
-				Object[] newSelection = ((IStructuredSelection)selection).toArray();
-				Object[] expandedElements = commonViewer.getExpandedElements();
-				Object[] newExpandedElements = new Object[newSelection.length + expandedElements.length];
-				System.arraycopy(expandedElements, 0, newExpandedElements, 0, expandedElements.length);
-				System.arraycopy(newSelection, 0, newExpandedElements, expandedElements.length, newSelection.length);
- 				commonViewer.setExpandedElements(newExpandedElements);
-			}
-			commonViewer.setSelection(selection, true);
-		}
-	}
-
-	/**
-	 * <p>
-	 * Linking is handled by an action which listens for
-	 * changes to the {@link CommonNavigator#IS_LINKING_ENABLED_PROPERTY}.
-	 * Custom implementations that wish to override this functionality, need to
-	 * override the action used by the default ActionGroup and listen for
-	 * changes to the above property.
-	 * 
-	 * @param toEnableLinking
-	 *            True enables linking the current selection with open editors
-	 */
-	public final void setLinkingEnabled(boolean toEnableLinking) {
-		isLinkingEnabled = toEnableLinking;
-		firePropertyChange(IS_LINKING_ENABLED_PROPERTY);
-	}
-
-	/**
-	 * @return Whether linking the current selection with open editors is
-	 *         enabled.
-	 */
-	public final boolean isLinkingEnabled() {
-		return isLinkingEnabled;
-	}
-
-	/**
-	 * <p>
-	 * Provides access to the commonViewer used by the current CommonNavigator.
-	 * The field will not be valid until after
-	 * {@link #init(IViewSite, IMemento)}&nbsp;has been called by the
-	 * Workbench.
-	 * </p>
-	 *  
-	 * @return The (already created) instance of Common Viewer.
-	 */
-	public CommonViewer getCommonViewer() {
-		return commonViewer;
-	}
-
-	/**
-	 * @return The Navigator Content Service which populates this instance of
-	 *         Common Navigator
-	 */
-	public INavigatorContentService getNavigatorContentService() {
-		return getCommonViewer().getNavigatorContentService();
-	}
-
-	/**
-	 * 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) {
-		if (adapter == COMMON_VIEWER_CLASS) {
-			return getCommonViewer();
-		} else if (adapter == INAVIGATOR_CONTENT_SERVICE) {
-			return getCommonViewer().getNavigatorContentService();
-		} else if ( adapter == ISHOW_IN_TARGET_CLASS) {
-			return this;
-		}
-		return super.getAdapter(adapter);
-	}
-
-	/**
-	 * @return The Navigator Content Service which populates this instance of
-	 *         Common Navigator
-	 */
-	public NavigatorActionService getNavigatorActionService() {
-		return commonManager.getNavigatorActionService();
-	}
-
-	/**
-	 * <p>
-	 * Constructs and returns an instance of {@link CommonViewer}. The ID of
-	 * the Eclipse view part will be used to create the viewer. The ID is
-	 * important as some extensions indicate they should only be used with a
-	 * particular viewer ID.
-	 * <p>
-	 * 
-	 * @param aParent
-	 *            A composite parent to contain the Common Viewer
-	 * @return An initialized instance of CommonViewer
-	 */
-	protected CommonViewer createCommonViewer(Composite aParent) {
-		CommonViewer aViewer = new CommonViewer(getViewSite().getId(), aParent,
-				SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		initListeners(aViewer);
-		aViewer.getNavigatorContentService().restoreState(memento);
-		return aViewer;
-	}
-
-	/**
-	 * <p>
-	 * Adds the listeners to the Common Viewer.
-	 * </p>
-	 * 
-	 * @param viewer
-	 *            The viewer
-	 * @since 2.0
-	 */
-	protected void initListeners(TreeViewer viewer) {
-
-		viewer.addDoubleClickListener(new IDoubleClickListener() {
-
-			public void doubleClick(DoubleClickEvent event) {
-				try {
-					handleDoubleClick(event);
-				} catch (RuntimeException re) {
-					re.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * <p>
-	 * Note: This method is for internal use only. Clients should not call this
-	 * method.
-	 * </p>
-	 * 
-	 * @param anEvent
-	 *            Supplied by the DoubleClick listener.
-	 */
-	protected void handleDoubleClick(DoubleClickEvent anEvent) {
-
-		IAction openHandler = getViewSite().getActionBars().getGlobalActionHandler(ICommonActionConstants.OPEN);
-		
-		if(openHandler == null) {
-			IStructuredSelection selection = (IStructuredSelection) anEvent
-					.getSelection();
-			Object element = selection.getFirstElement();
-	
-			TreeViewer viewer = getCommonViewer();
-			if (viewer.isExpandable(element)) {
-				viewer.setExpandedState(element, !viewer.getExpandedState(element));
-			}
-		}
-	}
-
-	/**
-	 * <p>
-	 * The Common Navigator Manager handles the setup of the Common Navigator
-	 * Menu, manages updates to the ActionBars from
-	 * {@link CommonActionProvider}&nbsp; extensions as the user's selection
-	 * changes, and also updates the status bar based on the current selection.
-	 * 
-	 * @return The Common Navigator Manager class which handles menu population
-	 *         and ActionBars
-	 */
-	protected CommonNavigatorManager createCommonManager() {
-		return new CommonNavigatorManager(this);
-	}
-
-	/**
-	 * <p>
-	 * The ActionGroup is used to populate the ActionBars of Common Navigator
-	 * View Part, and the returned implementation will have an opportunity to
-	 * fill the ActionBars of the view as soon as it is created. ({@link ActionGroup#fillActionBars(org.eclipse.ui.IActionBars)}.
-	 * </p>
-	 * <p>
-	 * The default implementation returns an action group which will add the
-	 * following actions:
-	 * <ul>
-	 * <li>
-	 * <p>
-	 * Link with editor support. Allows the user to toggling linking the current
-	 * selection with the active editors.
-	 * </p>
-	 * <li>
-	 * <p>
-	 * Collapse all. Collapses all expanded nodes.
-	 * </p>
-	 * <li>
-	 * <p>
-	 * Select Filters. Provides access to the "Select Filters" dialog that
-	 * allows users to enable/disable filters and also the Content Extension
-	 * activations.
-	 * </p>
-	 * </ul>
-	 * 
-	 * @return The Action Group to be associated with the Common Navigator View
-	 *         Part.
-	 */
-	protected ActionGroup createCommonActionGroup() {
-		return new CommonNavigatorActionGroup(this, commonViewer);
-	}
-
-	/**
-	 * @return The initial input for the viewer. Defaults to
-	 *         getSite().getPage().getInput()
-	 */
-	protected IAdaptable getInitialInput() {
-		return getSite().getPage().getInput();
-	}
-
-	/**
-	 * <p>
-	 * Updates the title text and title tool tip. Called whenever the input of
-	 * the viewer changes.
-	 * </p>
-	 */
-	protected void updateTitle() {
-
-		if (commonViewer == null) {
-			return;
-		}
-
-		Object input = commonViewer.getInput();
-		String viewName = getConfigurationElement().getAttribute("name"); //$NON-NLS-1$ 
-		// IWorkingSet workingSet = workingSetFilter.getWorkingSet();
-
-		if (input == null) {
-			setPartName(viewName);
-			setTitleToolTip(""); //$NON-NLS-1$ 
-		} else {
-			String inputToolTip = getFrameToolTipText(input);
-
-			setPartName(viewName);
-			setTitleToolTip(inputToolTip);
-		}
-	}
-
-	/**
-	 * <p>
-	 * Returns the tool tip text for the given element. Used as the tool tip
-	 * text for the current frame, and for the view title tooltip.
-	 * </p>
-	 */
-	protected String getFrameToolTipText(Object anElement) {
-		if (commonViewer != null) {
-			return ((ILabelProvider) commonViewer.getLabelProvider())
-					.getText(anElement);
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablesSource#getSaveables()
-	 */
-	public Saveable[] getSaveables() {
-		return getNavigatorContentService().getSaveablesService().getSaveables();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablesSource#getActiveSaveables()
-	 */
-	public Saveable[] getActiveSaveables() {
-		return getNavigatorContentService().getSaveablesService().getActiveSaveables();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		// Ignore. This method is not called because CommonNavigator implements
-		// ISaveablesSource. All saves will go through the ISaveablesSource /
-		// Saveable protocol.
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		// ignore
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isDirty()
-	 */
-	public boolean isDirty() {
-		Saveable[] saveables = getSaveables();
-		for (int i = 0; i < saveables.length; i++) {
-			if(saveables[i].isDirty()) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isSaveOnCloseNeeded()
-	 */
-	public boolean isSaveOnCloseNeeded() {
-		return isDirty();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.IShowInTarget#show(org.eclipse.ui.part.ShowInContext)
-	 */
-	public boolean show(ShowInContext context) {
-		if(context != null && context.getSelection() != null && !context.getSelection().isEmpty()) {
-			selectReveal(context.getSelection());
-			return true;
-		} 
-		return false;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewer.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewer.java
deleted file mode 100644
index 3de7be9..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewer.java
+++ /dev/null
@@ -1,457 +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.navigator;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.navigator.ContributorTrackingSet;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.internal.navigator.NavigatorPipelineService;
-
-/**
- * 
- * Provides the Tree Viewer for the Common Navigator. Content and labels are
- * provided by an instance of {@link INavigatorContentService}&nbsp; which uses
- * the ID supplied in the constructor
- * {@link CommonViewer#CommonViewer(String, Composite, int)} or through
- * {@link NavigatorContentServiceFactory#createContentService(String, org.eclipse.jface.viewers.StructuredViewer)}.
- * 
- * <p>
- * Clients may extend this class.
- * </p>
- * 
- * <p>
- * Note that as of 3.2.1 and 3.3, the common viewer caches its selection.
- * Clients must not set the selection of the viewer's tree control directly.
- * </p>
- * 
- * @since 3.2
- */
-public class CommonViewer extends TreeViewer {
-
-	private final NavigatorContentService contentService;
-
-	private ISelection cachedSelection;
-	
-	/**
-	 * <p>
-	 * Constructs the Tree Viewer for the Common Navigator and the corresponding
-	 * NavigatorContentService. The NavigatorContentService will provide the
-	 * Content Provider and Label Provider -- these need not be supplied by
-	 * clients.
-	 * <p>
-	 * For the valid bits to supply in the style mask (aStyle), see
-	 * documentation provided by {@link TreeViewer}.
-	 * </p>
-	 * 
-	 * @param aViewerId
-	 *            An id tied to the extensions that is used to focus specific
-	 *            content to a particular instance of the Common Navigator
-	 * @param aParent
-	 *            A Composite parent to contain the actual SWT widget
-	 * @param aStyle
-	 *            A style mask that will be used to create the TreeViewer
-	 *            Composite.
-	 */
-	public CommonViewer(String aViewerId, Composite aParent, int aStyle) {
-		super(aParent, aStyle);
-		contentService = new NavigatorContentService(aViewerId, this);
-		init();
-	}
-
-	/**
-	 * <p>
-	 * Initializes the content provider, label provider, and drag and drop
-	 * support. Should not be called by clients -- this method is invoked when
-	 * the constructor is invoked.
-	 * </p>
-	 */
-	protected void init() {
-		setUseHashlookup(true);
-		setContentProvider(contentService.createCommonContentProvider());
-		DecoratingLabelProvider decoratingProvider = new DecoratingLabelProvider(
-				contentService.createCommonLabelProvider(), PlatformUI
-						.getWorkbench().getDecoratorManager()
-						.getLabelDecorator());
-		setLabelProvider(decoratingProvider);
-		initDragAndDrop();
-
-	}
-
-	protected void removeWithoutRefresh(Object[] elements) {
-		super.remove(elements);
-	}
-
-	/**
-	 * <p>
-	 * Adds DND support to the Navigator. Uses hooks into the extensible
-	 * framework for DND.
-	 * </p>
-	 * <p>
-	 * By default, the following Transfer types are supported:
-	 * <ul>
-	 * <li>LocalSelectionTransfer.getInstance(),
-	 * <li>PluginTransfer.getInstance()
-	 * </ul>
-	 * </p>
-	 * 
-	 * @see CommonDragAdapter
-	 * @see CommonDropAdapter
-	 */
-	protected void initDragAndDrop() {
-
-		/* Handle Drag and Drop */
-		int operations = DND.DROP_COPY | DND.DROP_MOVE;
-
-		CommonDragAdapter dragAdapter = new CommonDragAdapter(contentService,
-				this);
-		addDragSupport(operations, dragAdapter.getSupportedDragTransfers(),
-				dragAdapter);
-
-		CommonDropAdapter dropAdapter = new CommonDropAdapter(contentService,
-				this);
-		addDropSupport(operations, dropAdapter.getSupportedDropTransfers(),
-				dropAdapter);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#createTreeItem(org.eclipse.swt.widgets.Widget,
-	 *      java.lang.Object, int)
-	 */
-	protected void createTreeItem(Widget parent, final Object element, int index) {
-		try {
-			super.createTreeItem(parent, element, index);
-		} catch (Exception ex) {
-			ex.printStackTrace();
-		} catch (Error e) {
-			e.printStackTrace();
-		}
-
-	}
-
-	/*
-	 * @see ContentViewer#handleLabelProviderChanged(LabelProviderChangedEvent)
-	 */
-	protected void handleLabelProviderChanged(LabelProviderChangedEvent event) {
-
-		Object[] changed = event.getElements();
-		if (changed != null) {
-			List others = Arrays.asList(changed);
-			for (Iterator iter = others.iterator(); iter.hasNext();) {
-				if(iter.next() == null)
-					iter.remove(); 
-			} 
-			if (others.isEmpty()) {
-				return;
-			}
-			event = new LabelProviderChangedEvent((IBaseLabelProvider) event
-					.getSource(), others.toArray());
-		}
-		super.handleLabelProviderChanged(event);
-	}
-
-	protected void handleDispose(DisposeEvent event) {
-		dispose();
-		super.handleDispose(event);
-	}
- 
-	/**
-	 * <p>
-	 * Disposes of the NavigatorContentService, which will dispose the Content
-	 * and Label providers.
-	 * </p>
-	 */
-	public void dispose() {
-		if (contentService != null) {
-			contentService.dispose();
-		}
-		clearSelectionCache();
-	}
-
-	/**
-	 * Sets this viewer's sorter and triggers refiltering and resorting of this
-	 * viewer's element. Passing <code>null</code> turns sorting off.
-	 * 
-	 * @param sorter
-	 *            a viewer sorter, or <code>null</code> if none
-	 */
-	public void setSorter(ViewerSorter sorter) {
-		if (sorter != null && sorter instanceof CommonViewerSorter) {
-			((CommonViewerSorter) sorter).setContentService(contentService);
-		}
-
-		super.setSorter(sorter);
-	}
-
-	/**
-	 * <p>
-	 * The {@link INavigatorContentService}provides the hook into the framework
-	 * to provide content from the various extensions.
-	 * </p>
-	 * 
-	 * @return The {@link INavigatorContentService}that was created when the
-	 *         viewer was created.
-	 */
-	public INavigatorContentService getNavigatorContentService() {
-		return contentService;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#add(java.lang.Object,
-	 *      java.lang.Object[])
-	 */
-	public void add(Object parentElement, Object[] childElements) {
-		// TODO Intercept ADD for the pipeline service.
-
-		NavigatorPipelineService pipeDream = (NavigatorPipelineService) contentService
-				.getPipelineService();
-
-		PipelinedShapeModification modification = new PipelinedShapeModification(
-				parentElement, new ContributorTrackingSet(contentService,
-						childElements));
-
-		pipeDream.interceptAdd(modification);
-
-		Object parent = (parentElement == getInput()) ? getInput()
-				: modification.getParent();
-
-		super.add(parent, modification.getChildren().toArray());
-
-	}
-
-	/**
-	 * <p>
-	 * Removals are handled by refreshing the parents of each of the given
-	 * elements. The parents are determined via calls ot the contentProvider.
-	 * </p>
-	 * 
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#remove(java.lang.Object[])
-	 */
-	public void remove(Object[] elements) {
-
-		// TODO Intercept REMOVE for the pipeline service.
-
-		NavigatorPipelineService pipeDream = (NavigatorPipelineService) contentService
-				.getPipelineService();
-
-		PipelinedShapeModification modification = new PipelinedShapeModification(
-				null, new ContributorTrackingSet(contentService, elements));
-
-		pipeDream.interceptRemove(modification);
-
-		super.remove(modification.getChildren().toArray());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.StructuredViewer#refresh(java.lang.Object,
-	 *      boolean)
-	 */
-	public void refresh(Object element, boolean updateLabels) {
-
-		
-		if(element != getInput()) {
-		
-			INavigatorPipelineService pipeDream = contentService
-					.getPipelineService();
-	
-			PipelinedViewerUpdate update = new PipelinedViewerUpdate();
-			update.getRefreshTargets().add(element);
-			update.setUpdateLabels(updateLabels);
-			/* if the update is modified */
-			if (pipeDream.interceptRefresh(update)) {
-				/* intercept and apply the update */
-				boolean toUpdateLabels = update.isUpdateLabels();
-				for (Iterator iter = update.getRefreshTargets().iterator(); iter
-						.hasNext();) {
-					super.refresh(iter.next(), toUpdateLabels);
-				}
-			} else {
-				super.refresh(element, updateLabels);
-			}
-		} else {
-			super.refresh(element, updateLabels);
-		}
-	}
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.Viewer#setSelection(org.eclipse.jface.viewers.ISelection, boolean)
-	 */
-	public void setSelection(ISelection selection, boolean reveal) { 
-
-		if(selection instanceof IStructuredSelection) {
-			IStructuredSelection sSelection = (IStructuredSelection) selection;
-			
-			INavigatorPipelineService pipeDream = contentService
-					.getPipelineService();
-
-			PipelinedViewerUpdate update = new PipelinedViewerUpdate();
-			update.getRefreshTargets().addAll(sSelection.toList());
-			update.setUpdateLabels(false);
-			/* if the update is modified */
-			if (pipeDream.interceptRefresh(update)) {
-				/* intercept and apply the update */ 
-				super.setSelection(new StructuredSelection(update.getRefreshTargets().toArray()) , reveal);
-			} else {
-				super.setSelection(selection, reveal);
-			}
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#setSelectionToWidget(java.util.List, boolean)
-	 */
-	protected void setSelectionToWidget(List v, boolean reveal) {
-		clearSelectionCache();
-		super.setSelectionToWidget(v, reveal);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#handleDoubleSelect(org.eclipse.swt.events.SelectionEvent)
-	 */
-	protected void handleDoubleSelect(SelectionEvent event) {
-		clearSelectionCache();
-		super.handleDoubleSelect(event);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.StructuredViewer#handleOpen(org.eclipse.swt.events.SelectionEvent)
-	 */
-	protected void handleOpen(SelectionEvent event) {
-		clearSelectionCache();
-		super.handleOpen(event);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.StructuredViewer#handlePostSelect(org.eclipse.swt.events.SelectionEvent)
-	 */
-	protected void handlePostSelect(SelectionEvent e) {
-		clearSelectionCache();
-		super.handlePostSelect(e);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.StructuredViewer#handleSelect(org.eclipse.swt.events.SelectionEvent)
-	 */
-	protected void handleSelect(SelectionEvent event) {
-		clearSelectionCache();
-		super.handleSelect(event);
-	}
-	
-	/**
-	 * Clears the selection cache.
-	 */
-	private void clearSelectionCache() {
-		cachedSelection = null;
-	}
-	
-	/**
-	 * Returns the current selection.
-	 * <p>
-	 * Note that as of 3.2.1 and 3.3, the common viewer caches its selection.
-	 * Clients must not set the selection of the viewer's tree control directly.
-	 * </p>
-	 * 
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#getSelection()
-	 */
-	public ISelection getSelection() {
-		if (cachedSelection == null) {
-			cachedSelection = super.getSelection();
-		}
-		return cachedSelection;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.StructuredViewer#refresh(java.lang.Object)
-	 */
-	public void refresh(Object element) {
-		refresh(element, true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.StructuredViewer#update(java.lang.Object,
-	 *      java.lang.String[])
-	 */
-	public void update(Object element, String[] properties) {
-
-
-		if(element != getInput()) {
-			NavigatorPipelineService pipeDream = (NavigatorPipelineService) contentService
-					.getPipelineService();
-	
-			PipelinedViewerUpdate update = new PipelinedViewerUpdate();
-			update.getRefreshTargets().add(element);
-			update.setUpdateLabels(true);
-			/* if the update is modified */
-			if (pipeDream.interceptUpdate(update)) {
-				/* intercept and apply the update */ 
-				for (Iterator iter = update.getRefreshTargets().iterator(); iter
-						.hasNext();) {
-					super.refresh(iter.next(), true);
-				}
-			} else {
-				super.update(element, properties);
-			}
-		} else {
-			super.update(element, properties);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return contentService.toString() + " Viewer"; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#internalRefresh(java.lang.Object,
-	 *      boolean)
-	 */
-	protected void internalRefresh(Object element, boolean updateLabels) {
-		if (element == null && getRoot() == null) {
-			return;
-		}
-		super.internalRefresh(element, updateLabels);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewerSiteFactory.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewerSiteFactory.java
deleted file mode 100644
index 27b6903..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewerSiteFactory.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.navigator;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.internal.navigator.CommonViewerSiteDelegate;
-import org.eclipse.ui.internal.navigator.CommonViewerSiteIEditorPartSiteDelegate;
-import org.eclipse.ui.internal.navigator.CommonViewerSiteIPageSiteDelegate;
-import org.eclipse.ui.internal.navigator.CommonViewerSiteIViewSiteDelegate;
-import org.eclipse.ui.part.IPageSite;
-
-/**
- * Allows clients to create {@link ICommonViewerSite} for a variety of contexts.
- * The {@link ICommonViewerSite} may be used by the
- * {@link NavigatorActionService} to allow customization for any
- * {@link CommonActionProvider} used by a particular instance of the Common
- * Navigator.
- *  
- * 
- * @since 3.2
- */
-public final class CommonViewerSiteFactory {
-	/**
-	 * 
-	 * @param aViewSite
-	 *            The viewer site that should be delegated to to satisfy the
-	 *            contract of ICommonViewerSite.
-	 * @return An ICommonViewerSite that delegates to the given parameter.
-	 */
-	public static ICommonViewerWorkbenchSite createCommonViewerSite(
-			IViewSite aViewSite) {
-		return new CommonViewerSiteIViewSiteDelegate(aViewSite);
-	}
-
-	/**
-	 * 
-	 * @param aEditorSite
-	 *            The editor site that should be delegated to to satisfy the
-	 *            contract of ICommonViewerSite.
-	 * @return An ICommonViewerSite that delegates to the given parameter.
-	 */
-	public static ICommonViewerWorkbenchSite createCommonViewerSite(
-			IEditorSite aEditorSite) {
-		return new CommonViewerSiteIEditorPartSiteDelegate(aEditorSite);
-	}
-
-	/**
-	 * 
-	 * @param anId
-	 *            The unique identifier corresponding to the abstract viewer for
-	 *            the returned ICommonViewerSite.
-	 * 
-	 * @param aSelectionProvider
-	 *            The selection provider that will initially be returned by
-	 *            {@link ICommonViewerSite#getSelectionProvider()}
-	 * 
-	 * @param aShell
-	 *            The shell that will be returned by
-	 *            {@link ICommonViewerSite#getShell()}
-	 * @return An ICommonViewerSite that delegates to the given parameter.
-	 */
-	public static ICommonViewerSite createCommonViewerSite(String anId,
-			ISelectionProvider aSelectionProvider, Shell aShell) {
-		return new CommonViewerSiteDelegate(anId, aSelectionProvider, aShell);
-	}
-
-	/**
-	 * 
-	 * @param anId
-	 *            The unique identifier corresponding to the abstract viewer for
-	 *            the returned ICommonViewerSite.
-	 * @param aPageSite
-	 *            The page site that should be delegated to to satisfy the
-	 *            contract of ICommonViewerSite.
-	 * @return An ICommonViewerSite that delegates to the given parameter.
-	 */
-	public static ICommonViewerSite createCommonViewerSite(String anId,
-			IPageSite aPageSite) {
-		return new CommonViewerSiteIPageSiteDelegate(anId, aPageSite);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewerSorter.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewerSorter.java
deleted file mode 100644
index 48fe8c7..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewerSorter.java
+++ /dev/null
@@ -1,115 +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.navigator;
-
-import java.util.Set;
-
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreePathViewerSorter;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-
-/**
- * 
- * Provides an implementation of TreeViewerSorter that uses the given parent to determine the
- * correct sort order based on the defined
- * <b>org.eclipse.ui.navigator.navigatorContent/navigatorContent/commonSorter</b> elements
- * available in the set of <i>visible</i> content extensions.
- * 
- * <p>
- * The CommonViewerSorter must be assigned a {@link INavigatorContentService} to drive its sorting
- * algorithm. Without a vaild content service, the sorter will return the default ordering.
- * </p>
- * <p>
- * A CommonViewerSorter may not be attached to more than one CommonViewer.
- * </p>
- * 
- * <p>
- * Clients may not extend this class.
- * </p>
- * 
- * 
- * 
- * @since 3.2
- * 
- */
-public final class CommonViewerSorter extends TreePathViewerSorter {
-
-	private NavigatorContentService contentService;
-
-	private INavigatorSorterService sorterService;
-
-	/**
-	 * Create a sorter service attached to the given content service.
-	 * 
-	 * @param aContentService
-	 *            The content service used by the viewer that will use this sorter service.
-	 */
-	protected void setContentService(NavigatorContentService aContentService) {
-		contentService = aContentService;
-		sorterService = contentService.getSorterService();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerSorter#category(java.lang.Object)
-	 */
-	public int category(Object element) {
-		if (contentService == null)
-			return 0;
-
-		INavigatorContentDescriptor source = contentService.getSourceOfContribution(element);
-		if (source == null)
-			source = getSource(element);
-		return source != null ? source.getPriority() : Priority.NORMAL_PRIORITY_VALUE;
-	}
-
-	public int compare(Viewer viewer, TreePath parentPath, Object e1, Object e2) {
-		if (contentService == null)
-			return -1;
-		INavigatorContentDescriptor sourceOfLvalue = contentService.getSourceOfContribution(e1);
-		INavigatorContentDescriptor sourceOfRvalue = contentService.getSourceOfContribution(e2);
-
-		if (sourceOfLvalue == null)
-			sourceOfLvalue = getSource(e1);
-		if (sourceOfRvalue == null)
-			sourceOfRvalue = getSource(e2);
-
-		// identity comparison
-		if (sourceOfLvalue != null && sourceOfLvalue == sourceOfRvalue) {
-			Object parent;
-			if (parentPath == null) {
-				parent = viewer.getInput();
-			} else {
-				parent = parentPath.getLastSegment();
-			}
-			ViewerSorter sorter = sorterService.findSorter(sourceOfLvalue, parent, e1, e2);
-			if (sorter != null) {
-				return sorter.compare(viewer, e1, e2);
-			}
-		}
-		int categoryDelta = category(e1) - category(e2);
-		if (categoryDelta == 0) {
-			return super.compare(viewer, e1, e2);
-		}
-		return categoryDelta;
-	}
-
-	private INavigatorContentDescriptor getSource(Object o) {
-		Set descriptors = contentService.findDescriptorsWithPossibleChild(o);
-		if (descriptors != null && descriptors.size() > 0) {
-			return (INavigatorContentDescriptor) descriptors.iterator().next();
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonActionConstants.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonActionConstants.java
deleted file mode 100644
index 4423904..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonActionConstants.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.navigator;
-
-/**
- * 
- * Defines constants for the retargetable actions available in the Common Viewer
- * context menu.
- * 
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @since 3.2
- * 
- */
-public interface ICommonActionConstants {
-
-	/**
-	 * The 'open' retargetable action id.
-	 */
-	public static final String OPEN = "org.eclipse.ui.navigator.Open"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonActionExtensionSite.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonActionExtensionSite.java
deleted file mode 100644
index 758d34a..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonActionExtensionSite.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.navigator;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-
-/**
- * 
- * Provides access to information required for the initialization of
- * CommonActionProviders.
- * 
- * <p>
- * See the documentation of the <b>org.eclipse.ui.navigator.navigatorContent</b>
- * extension point and {@link CommonActionProvider} for more information on
- * contributing actions.
- * </p> 
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @see CommonActionProvider
- * 
- * @since 3.2
- */
-public interface ICommonActionExtensionSite {
-
-	/**
-	 * By default, the extension state model returned is for the associated
-	 * content extension (if this is NOT a top-level action provider).
-	 * Otherwise, clients may use
-	 * {@link INavigatorContentService#findStateModel(String)} to locate the
-	 * state model of another content extension.
-	 * 
-	 * @return The extension state model of the associated Content Extension (if
-	 *         any) or a state model specifically for this
-	 *         ICommonActionProvider.
-	 * @see IExtensionStateModel
-	 */
-	IExtensionStateModel getExtensionStateModel();
-
-	/**
-	 * 
-	 * @return The unique identifier of the associated content extension or the
-	 *         top-level Common Action Provider.
-	 */
-	String getExtensionId();
-
-	/**
-	 * 
-	 * @return The associated content service for the instantiated Common Action
-	 *         Provider.
-	 */
-	INavigatorContentService getContentService();
-
-	/**
-	 * 
-	 * @return The associated structured viewer for the instantiated Common
-	 *         Action Provider.
-	 */
-	StructuredViewer getStructuredViewer();
-
-	/**
-	 * 
-	 * @return The ICommonViewerSite from the CommonViewer.
-	 */
-	ICommonViewerSite getViewSite();
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonContentExtensionSite.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonContentExtensionSite.java
deleted file mode 100644
index fc77a9e..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonContentExtensionSite.java
+++ /dev/null
@@ -1,61 +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.navigator;
-
-import org.eclipse.ui.IMemento;
-
-/**
- * 
- * Provides initialization data for a content extension. Supplied in the
- * <code>init()</code> methods of various interfaces allowed by the framework.
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @since 3.2
- * @see ICommonLabelProvider
- * @see ICommonContentProvider
- * 
- */
-public interface ICommonContentExtensionSite {
-
-	/**
-	 * The extension state model allows an extension to isolate all of the
-	 * dynamic state information that affects how it presents content or
-	 * displays actions. Clients may use this state model to drive values from
-	 * actions that will cause label or content providers to change their
-	 * behavior.
-	 * 
-	 * @return The state model associated with this logical extension.
-	 */
-	IExtensionStateModel getExtensionStateModel();
-
-	/**
-	 * Advanced extensions may expose user-customizeable properties that affect
-	 * the structure or behavior of the extension. Clients may use the given
-	 * memento to restore or persist these settings between sessions.
-	 * 
-	 * @return A memento which can be used to restore or persist settings
-	 *         between workbench sessions.
-	 */
-	IMemento getMemento(); 
- 
-
-	/**
-	 * 
-	 * @return The extension instance. Clients may use their extension
-	 *         instance to get access to other components defined by the logical
-	 *         extension.
-	 */
-	INavigatorContentExtension getExtension();
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonContentProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonContentProvider.java
deleted file mode 100644
index 159a038..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonContentProvider.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.navigator;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-
-/**
- * 
- * Allows extensions to vary their behavior based on properties in the extension
- * model and the given memento. The state model should be initialized from
- * values in the memento if necessary.
- * 
- * <p>
- * Clients should refer to the <b>org.eclipse.ui.navigator.navigatorContent</b>
- * extension point for more information on building a content extension.
- * </p>
- * 
- * <p>
- * Clients may (but are not required to) implement this interface if there is no
- * cause to do so. {@link ITreeContentProvider} is respected by the Common
- * Navigator.
- * </p>
- * 
- * @since 3.2
- * 
- */
-public interface ICommonContentProvider extends ITreeContentProvider,
-		IMementoAware {
-
-	/**
-	 * Initialize the content provider with the given configuration.
-	 * 
-	 * @param aConfig
-	 *            The extension site provides information that some extensions
-	 *            will find useful to configure themselves properly in a
-	 *            particular viewer.
-	 * 
-	 * @see ICommonLabelProvider
-	 */
-	void init(ICommonContentExtensionSite aConfig);
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonFilterDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonFilterDescriptor.java
deleted file mode 100644
index 659cbd0..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonFilterDescriptor.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.navigator;
-
-/**
- * Provides information about a <b>commonFilter</b> extension.
- *  
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @since 3.2
- * 
- */
-public interface ICommonFilterDescriptor {
-	
-	/**
-	 * 
-	 * @return An identifier used to determine whether the filter is visible.
-	 * 
-	 */
-	String getId();
-
-	/**
-	 * 
-	 * @return A translated name to identify the filter
-	 */
-	String getName();
-
-	/**
-	 * 
-	 * @return A translated description to explain to the user what the defined
-	 *         filter will hide from the view.
-	 */
-	String getDescription();
-
-	/**
-	 * 
-	 * @return Indicates the filter should be in an "Active" state by default.
-	 */
-	boolean isActiveByDefault();
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonLabelProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonLabelProvider.java
deleted file mode 100644
index dc15814..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonLabelProvider.java
+++ /dev/null
@@ -1,56 +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.navigator;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-
-/**
- * 
- * Allows extensions to vary their behavior based on properties in the extension
- * model and the given memento.
- * 
- * <p>
- * Clients should refer to the <b>org.eclipse.ui.navigator.navigatorContent</b>
- * extension point for more information on building a content extension.
- * </p>
- * <p>
- * Clients should not dispose of any Image Resources that might be shared by
- * other extensions when their Label Provider is disposed. When a content extension
- * is deactivated, both its content and label providers are disposed, but the
- * viewer remains visible to the user. If clients dispose of Image Resources used
- * by other extensions, then it will cause problems for those extensions and the 
- * viewer in general. 
- * </p>
- * <p>
- * Clients need not implement this interface if there is no cause to do so.
- * {@link org.eclipse.jface.viewers.ILabelProvider} is respected by the Common
- * Navigator.
- * </p>
- * 
- * 
- * @since 3.2
- */
-public interface ICommonLabelProvider extends ILabelProvider, IMementoAware,
-		IDescriptionProvider {
-
-	/**
-	 * Initialize the label provider with the given configuration.
-	 * 
-	 * @param aConfig
-	 *            The extension site provides information that some extensions
-	 *            will find useful to configure themselves properly in a
-	 *            particular viewer.
-	 * 
-	 * @see ICommonContentProvider
-	 */
-	void init(ICommonContentExtensionSite aConfig);
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonMenuConstants.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonMenuConstants.java
deleted file mode 100644
index a045742..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonMenuConstants.java
+++ /dev/null
@@ -1,172 +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
- *******************************************************************************/
-/*
- * Created on Feb 5, 2004
- *
- * To change the template for this generated file go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-package org.eclipse.ui.navigator;
-
-import org.eclipse.ui.IWorkbenchActionConstants;
-
-/**
- * Defines strings used for menu insertion points.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @since 3.2
- */
-public interface ICommonMenuConstants {
-
-	/**
-	 * Pop-up menu: name of group for the top of the menu (value
-	 * <code>"group.top"</code>).
-	 */
-	public static final String GROUP_TOP = "group.top"; //$NON-NLS-1$ 
-
-	/**
-	 * Pop-up menu: name of group for goto actions (value
-	 * <code>"group.goto"</code>).
-	 * <p>
-	 * Examples for open actions are:
-	 * <ul>
-	 * <li>Go Into</li>
-	 * <li>Go To</li>
-	 * </ul>
-	 * </p>
-	 */
-	public static final String GROUP_GOTO = "group.goto"; //$NON-NLS-1$
-
-	/**
-	 * Pop-up menu: name of group for show actions (value
-	 * <code>"group.show"</code>).
-	 * <p>
-	 * Examples for show actions are:
-	 * <ul>
-	 * <li>Show in Navigator</li>
-	 * <li>Show in Type Hierarchy</li>
-	 * </ul>
-	 * </p>
-	 */
-	public static final String GROUP_SHOW = "group.show"; //$NON-NLS-1$
-
-	/**
-	 * Pop-up menu: name of group for new actions (value
-	 * <code>"group.new"</code>).
-	 * <p>
-	 * Examples for new actions are:
-	 * <ul>
-	 * <li>Create new class</li>
-	 * <li>Create new interface</li>
-	 * </ul>
-	 * </p>
-	 */
-	public static final String GROUP_NEW = "group.new"; //$NON-NLS-1$
-
-	/**
-	 * Pop-up menu: name of group for open actions (value
-	 * <code>"group.open"</code>).
-	 * <p>
-	 * Examples for open actions are:
-	 * <ul>
-	 * <li>Open To</li>
-	 * <li>Open With</li>
-	 * </ul>
-	 * </p>
-	 * 
-	 * @see #GROUP_OPEN_WITH
-	 */
-	public static final String GROUP_OPEN = "group.open"; //$NON-NLS-1$
-
-	/**
-	 * Pop-up menu: name of group for open actions (value
-	 * <code>"group.openWith"</code>).
-	 * <p>
-	 * Examples for open actions are:
-	 * <ul>
-	 * <li>Open With</li>
-	 * </ul>
-	 * </p>
-	 */
-	public static final String GROUP_OPEN_WITH = "group.openWith"; //$NON-NLS-1$
-
-	/**
-	 * Pop-up menu: name of group for porting actions (value
-	 * <code>"group.port"</code>).
-	 * <p>
-	 * Examples for open actions are:
-	 * <ul>
-	 * <li>Import</li>
-	 * <li>Export</li>
-	 * </ul>
-	 * </p>
-	 */
-	public static final String GROUP_PORT = "group.port";//$NON-NLS-1$
-
-	/**
-	 * Pop-up menu: name of group for properties actions (value
-	 * <code>"group.edit"</code>).
-	 */
-	public static final String GROUP_EDIT = "group.edit"; //$NON-NLS-1$ 
-
-	/**
-	 * Pop-up menu: name of group for build actions (value
-	 * <code>"group.build"</code>).
-	 */
-	public static final String GROUP_BUILD = "group.build"; //$NON-NLS-1$
-
-	/**
-	 * Pop-up menu: name of group for reorganize actions (value
-	 * <code>"group.reorganize"</code>).
-	 */
-	public static final String GROUP_REORGANIZE = IWorkbenchActionConstants.GROUP_REORGANIZE;
-
-	/**
-	 * Pop-up menu: name of group for code generation actions ( value
-	 * <code>"group.generate"</code>).
-	 */
-	public static final String GROUP_GENERATE = "group.generate"; //$NON-NLS-1$
-
-	/**
-	 * Pop-up menu: name of group for source actions. This is an alias for
-	 * <code>GROUP_GENERATE</code> to be more consistent with main menu bar
-	 * structure.
-	 *  
-	 */
-	public static final String GROUP_SOURCE = GROUP_GENERATE;
-
-	/**
-	 * Pop-up menu: name of group for search actions (value
-	 * <code>"group.search"</code>).
-	 */
-	public static final String GROUP_SEARCH = "group.search"; //$NON-NLS-1$
-
-	/**
-	 * Pop-up menu: name of group for additional actions (value
-	 * <code>"additions"</code>).
-	 */
-	public static final String GROUP_ADDITIONS = "additions"; //$NON-NLS-1$
-
-	/**
-	 * Pop-up menu: name of group for viewer setup actions (value
-	 * <code>"group.viewerSetup"</code>).
-	 */
-	public static final String GROUP_VIEWER_SETUP = "group.viewerSetup"; //$NON-NLS-1$
-
-	/**
-	 * Pop-up menu: name of group for properties actions (value
-	 * <code>"group.properties"</code>).
-	 */
-	public static final String GROUP_PROPERTIES = "group.properties"; //$NON-NLS-1$ 
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonViewerSite.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonViewerSite.java
deleted file mode 100644
index 41fdbfe..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonViewerSite.java
+++ /dev/null
@@ -1,64 +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.navigator;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * 
- * Provides context for extensions including a valid shell, a selection
- * provider, and a unique identifer corresponding to the abstract viewer behind
- * the viewer site.
- *  
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @since 3.2
- */
-public interface ICommonViewerSite extends IAdaptable {
-
-	/**
-	 * 
-	 * @return The unique identifier associated with the defined abstract
-	 *         viewer. In general, this will be the id of the
-	 *         <b>org.eclipse.ui.views</b> extension that defines the view
-	 *         part.
-	 */
-	String getId();
-
-
-	/**
-	 * 
-	 * @return A valid shell corresponding to the shell of the
-	 *         {@link CommonViewer}
-	 */
-	Shell getShell();
-
-	/**
-	 * 
-	 * @return The selection provider that can provide a current, valid
-	 *         selection. The default selection provider is the
-	 *         {@link CommonViewer}.
-	 */
-	ISelectionProvider getSelectionProvider();
-
-	/**
-	 * Sets the selection provider for this common viewer site.
-	 * 
-	 * @param provider
-	 *            the selection provider, or <code>null</code> to clear it
-	 */
-	public void setSelectionProvider(ISelectionProvider provider);
-	
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonViewerWorkbenchSite.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonViewerWorkbenchSite.java
deleted file mode 100644
index 3efefd7..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ICommonViewerWorkbenchSite.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.navigator;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * 
- * Provides a page, set of action bars, menu registration callback, and active
- * window.
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @since 3.2
- * 
- */
-public interface ICommonViewerWorkbenchSite extends ICommonViewerSite {
-
-	/**
-	 * Returns the page corresponding to this viewer site.
-	 * 
-	 * @return the page corresponding to this viewer site
-	 */
-	public IWorkbenchPage getPage();
-
-	/**
-	 * Registers a pop-up menu with a particular id for extension.
-	 * <p>
-	 * Within the workbench one plug-in may extend the pop-up menus for a view
-	 * or editor within another plug-in. In order to be eligible for extension,
-	 * the menu must be registered by calling <code>registerContextMenu</code>.
-	 * Once this has been done the workbench will automatically insert any
-	 * action extensions which exist.
-	 * </p>
-	 * <p>
-	 * A unique menu id must be provided for each registered menu. This id
-	 * should be published in the Javadoc for the page.
-	 * </p>
-	 * <p>
-	 * Any pop-up menu which is registered with the workbench should also define
-	 * a <code>GroupMarker</code> in the registered menu with id
-	 * <code>IWorkbenchActionConstants.MB_ADDITIONS</code>. Other plug-ins
-	 * will use this group as a reference point for insertion. The marker should
-	 * be defined at an appropriate location within the menu for insertion.
-	 * </p>
-	 * 
-	 * @param menuId
-	 *            the menu id
-	 * @param menuManager
-	 *            the menu manager
-	 * @param selectionProvider
-	 *            the selection provider
-	 */
-	void registerContextMenu(String menuId, MenuManager menuManager,
-			ISelectionProvider selectionProvider);
-
-	/**
-	 * Returns the action bars for this page site. Pages have exclusive use of
-	 * their site's action bars.
-	 * 
-	 * @return the action bars
-	 */
-	IActionBars getActionBars();
-
-	/**
-	 * 
-	 * @return A workbench window corresponding to the container of the
-	 *         {@link CommonViewer}
-	 */
-	IWorkbenchWindow getWorkbenchWindow();
-
-	/**
-	 * @return the IWorkbenchPart that this site is embedded within.
-	 */
-	IWorkbenchPart getPart();
-
-	/**
-	 * @return the IWorkbenchPartSite that this site is embedded within.
-	 */
-	IWorkbenchPartSite getSite();
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IDescriptionProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IDescriptionProvider.java
deleted file mode 100644
index b7590ea..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IDescriptionProvider.java
+++ /dev/null
@@ -1,47 +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.navigator;
-
-/**
- * 
- * Label providers (as specified by the <i>labelProvider</i> attribute of the
- * <b>org.eclipse.ui.navigator.navigatorContent</b> extension point) may 
- * choose to also implement this interface in order to provide text for 
- * the status bar at the bottom of the Eclipse window. 
- * 
- * <p>
- * Clients may implement this interface, but are not required to do so.
- * </p>
- * 
- * @since 3.2
- */
-public interface IDescriptionProvider {
-
-	/**
-	 * <p>
-	 * Provide a description for the status bar view, if available. A default
-	 * string of the form "(x) items selected" will be used if this method
-	 * choosed to return null.
-	 * </p>
-	 * 
-	 * <p>
-	 * The empty string ("") will be respected as a valid value if returned.
-	 * Return <b>null </b> if the extension defers to the default method of
-	 * supplying status bar descriptions.
-	 * </p>
-	 * 
-	 * @param anElement
-	 *            The element selected in the Navigator
-	 * @return A description for the status bar view, or null if not available.
-	 */
-	String getDescription(Object anElement);
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IExtensionActivationListener.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IExtensionActivationListener.java
deleted file mode 100644
index 83d9d6c..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IExtensionActivationListener.java
+++ /dev/null
@@ -1,40 +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.navigator;
-
-
-/**
- * 
- * An extension activation listener is notified whenever the activation state
- * changese for one or more content extensions.
- * 
- *   
- * <p>
- * Clients may implement this interface.
- * </p>
- * 
- * @since 3.2
- * @see INavigatorActivationService
- * @see INavigatorActivationService#addExtensionActivationListener(IExtensionActivationListener)
- * @see INavigatorActivationService#removeExtensionActivationListener(IExtensionActivationListener)
- */
-public interface IExtensionActivationListener {
-	/**
-	 * @param aViewerId
-	 *            The viewer id of the INavigatorContentService
-	 * @param theNavigatorExtensionIds
-	 *            An array of updated extension ids
-	 * @param isActive
-	 *            The new activation state of the extensions
-	 */
-	void onExtensionActivation(String aViewerId,
-			String[] theNavigatorExtensionIds, boolean isActive);
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IExtensionStateModel.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IExtensionStateModel.java
deleted file mode 100644
index 009d53a..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IExtensionStateModel.java
+++ /dev/null
@@ -1,134 +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.navigator;
-
-import org.eclipse.jface.util.IPropertyChangeListener;
-
-/**
- * 
- * Allows clients to coordinate state across components that are part of the
- * same logical extension.
- * 
- * <p>
- * That is, a content provider might vary how it exposes its content based on
- * the state of a specific property in the model. Interested parties may add
- * themselves as {@link IPropertyChangeListener}s to track changes in the state
- * model.
- * </p>
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @since 3.2
- * 
- */
-public interface IExtensionStateModel {
-
-	/**
-	 * The id is used to look up the state model across different components of
-	 * the same logical extension. Generally, the id of the content extension is
-	 * used.
-	 * 
-	 * @return The unique identifier of this state model.
-	 */
-	String getId();
-
-	/**
-	 * 
-	 * @return The viewer id that this state model is associated with.
-	 */
-	String getViewerId();
-
-	/**
-	 * 
-	 * @param aPropertyName
-	 *            The name of a given property
-	 * @return The current value of the property.
-	 */
-	String getStringProperty(String aPropertyName);
-
-	/**
-	 * 
-	 * @param aPropertyName
-	 *            The name of a given property
-	 * @return The current value of the property.
-	 */
-	boolean getBooleanProperty(String aPropertyName);
-
-	/**
-	 * 
-	 * @param aPropertyName
-	 *            The name of a given property
-	 * @return The current value of the property.
-	 */
-	int getIntProperty(String aPropertyName);
-
-	/**
-	 * 
-	 * @param aPropertyName
-	 *            The name of a given property
-	 * @return The current value of the property.
-	 */
-	Object getProperty(String aPropertyName);
-
-	/**
-	 * 
-	 * @param aPropertyName
-	 *            The name of a given property
-	 * @param aPropertyValue
-	 *            The new value of a the given property.
-	 */
-	void setStringProperty(String aPropertyName, String aPropertyValue);
-
-	/**
-	 * 
-	 * @param aPropertyName
-	 *            The name of a given property
-	 * @param aPropertyValue
-	 *            The new value of a the given property.
-	 */
-	void setBooleanProperty(String aPropertyName, boolean aPropertyValue);
-
-	/**
-	 * 
-	 * @param aPropertyName
-	 *            The name of a given property
-	 * @param aPropertyValue
-	 *            The new value of a the given property.
-	 */
-	void setIntProperty(String aPropertyName, int aPropertyValue);
-
-	/**
-	 * 
-	 * @param aPropertyName
-	 *            The name of a given property
-	 * @param aPropertyValue
-	 *            The new value of a the given property.
-	 */
-	void setProperty(String aPropertyName, Object aPropertyValue);
-
-	/**
-	 * 
-	 * @param aListener
-	 *            An implementation of {@link IPropertyChangeListener} that
-	 *            should be notified when changes occur in this model.
-	 */
-	void addPropertyChangeListener(IPropertyChangeListener aListener);
-
-	/**
-	 * 
-	 * @param aListener
-	 *            An implementation of {@link IPropertyChangeListener} that
-	 *            should no longer be notified when changes occur in this model.
-	 */
-	void removePropertyChangeListener(IPropertyChangeListener aListener);
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ILinkHelper.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ILinkHelper.java
deleted file mode 100644
index 40f6fcd..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/ILinkHelper.java
+++ /dev/null
@@ -1,66 +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.navigator;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-
-/**
- * <p>
- * Provides information to the Common Navigator on how to link selections with
- * active editors and vice versa.
- * </p>
- * <p>
- * The Common Navigator allows clients to plug-in their own custom logic for
- * linking selections from the Viewer to active editors. This interface is used
- * by the <b>org.eclipse.ui.navigator.linkHelper </b> extension
- * point to gather information and trigger editor activations.
- * </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>
- * <p>
- * Clients may implement this interface.
- * </p>
- * 
- * @since 3.2
- */
-public interface ILinkHelper {
-
-	/**
-	 * <p>
-	 * Determine the correct structured selection for the Common Navigator given
-	 * anInput.
-	 * </p>
-	 * 
-	 * @param anInput
-	 *            An Editor input
-	 * @return A selection to be set against the {@link CommonViewer}
-	 */
-	IStructuredSelection findSelection(IEditorInput anInput);
-
-	/**
-	 * <p>
-	 * Activate the correct editor for aSelection.
-	 * </p>
-	 * 
-	 * @param aPage
-	 *            A WorkbenchPage to use for editor location and activation
-	 * @param aSelection
-	 *            The current selection from the {@link CommonViewer}
-	 */
-	void activateEditor(IWorkbenchPage aPage, IStructuredSelection aSelection);
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IMementoAware.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IMementoAware.java
deleted file mode 100644
index d4d7293..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IMementoAware.java
+++ /dev/null
@@ -1,57 +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.navigator;
-
-import org.eclipse.ui.IMemento;
-
-/**
- * Clients may use mementos to persist interesting state between sessions.
- * Clients should ensure that the memento keys are unique; generally by using
- * the id of the content extension as a prefix.
- * 
- * <p>
- * Clients may implement this interface.
- * </p>
- * 
- * @since 3.2
- * 
- */
-public interface IMementoAware {
-
-	/**
-	 * <p>
-	 * Restore the previous state of any actions using the flags in aMemento.
-	 * This method allows the state of any actions that persist from session to
-	 * session to be restored.
-	 * </p>
-	 * 
-	 * @param aMemento
-	 *            A memento that was given to the view part to restore its
-	 *            state.
-	 */
-	public void restoreState(IMemento aMemento);
-
-	/**
-	 * <p>
-	 * Save flags in aMemento to remember the state of any actions that persist
-	 * from session to session.
-	 * </p>
-	 * <p>
-	 * Extensions should qualify any keys stored in the memento with their
-	 * plugin id
-	 * </p>
-	 * 
-	 * @param aMemento
-	 *            A memento that was given to the view part to save its state.
-	 */
-	public void saveState(IMemento aMemento);
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorActivationService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorActivationService.java
deleted file mode 100644
index fc98ce1..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorActivationService.java
+++ /dev/null
@@ -1,119 +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.navigator;
-
-/**
- * 
- * Determines if an extension is <i>active</i> within the context of a given
- * viewer and manages the persistence of this information. If an extension is
- * <i>active</i> then the extension will contribute functionality to the
- * viewer. If an extension is not <i>active</i>, then the extension will not be
- * given opportunities to contribute functionality to the given viewer. See
- * {@link INavigatorContentService} for more detail on what states are
- * associated with a content extension.
- * 
- * @since 3.2
- * 
- */
-public interface INavigatorActivationService {
-
-	/**
-	 * Activate the extensions specified by the extensionIds array. Clients may
-	 * also choose to disable all other extensions. The set of descriptors
-	 * returned is the set that were activated as a result of this call. In the
-	 * case of this method, that means that a descriptor will be returned for
-	 * each extensionId in the array, regardless of whether that extension is
-	 * already enabled.
-	 * 
-	 * <p>
-	 * Clients must call {@link #persistExtensionActivations()} to save the the
-	 * activation state after activating or deactivating extensions.
-	 * </p>
-	 * 
-	 * @param extensionIds
-	 *            The list of extensions to activate
-	 * @param toDeactivateAllOthers
-	 *            True will deactivate all other extensions; False will leave
-	 *            the other activations as-is
-	 * @return A list of all INavigatorContentDescriptors that were activated as
-	 *         a result of this call. This will be the set of
-	 *         INavigatorContentDescriptors that corresponds exactly to the set
-	 *         of given extensionIds.
-	 */
-	public INavigatorContentDescriptor[] activateExtensions(
-			String[] extensionIds, boolean toDeactivateAllOthers);
-
-	/**
-	 * Deactivate the extensions specified by the extensionIds. Clients may
-	 * choose to activate all other extensions which are not explicitly
-	 * disabled. If toActivateAllOthers is true, the array of returned
-	 * descriptors will be the collection of all extensions not specified in the
-	 * extensionIds array. If it is false, the array will be empty.
-	 * 
-	 * <p>
-	 * Clients must call {@link #persistExtensionActivations()} to save the the
-	 * activation state after activating or deactivating extensions.
-	 * </p>
-	 * 
-	 * @param extensionIds
-	 *            The list of extensions to activate
-	 * @param toActivateAllOthers
-	 *            True will activate all other extensions; False will leave the
-	 *            other activations as-is
-	 * @return A list of all INavigatorContentDescriptors that were activated as
-	 *         a result of this call. If toActivateAllOthers is false, the
-	 *         result will be an empty array. Otherwise, it will be the set of
-	 *         all visible extensions minus those given in the 'extensionIds'
-	 *         parameter.
-	 */
-	public INavigatorContentDescriptor[] deactivateExtensions(
-			String[] extensionIds, boolean toActivateAllOthers);
-
-	/**
-	 * 
-	 * Checks the known activation state for the given viewer id to determine if
-	 * the given navigator extension is 'active'.
-	 * 
-	 * @param aNavigatorExtensionId
-	 *            The unique identifier associated with a given extension.
-	 * 
-	 * @return True if the extension is active in the context of the viewer id.
-	 */
-	public boolean isNavigatorExtensionActive(String aNavigatorExtensionId);
-
-	/**
-	 * Save the activation state of each content extension for the associated
-	 * content service. Clients should persist the activation state after any
-	 * call to {@link #activateExtensions(String[], boolean)} or
-	 * {@link #deactivateExtensions(String[], boolean)}.
-	 * 
-	 */
-	public void persistExtensionActivations();
-
-	/**
-	 * Request notification when the activation state changes.
-	 * 
-	 * @param aListener
-	 *            An implementation of {@link IExtensionActivationListener}
-	 */
-	public void addExtensionActivationListener(
-			IExtensionActivationListener aListener);
-
-	/**
-	 * No longer receive notification when activation state changes.
-	 * 
-	 * @param aListener
-	 *            An implementation of {@link IExtensionActivationListener}
-	 */
-	public void removeExtensionActivationListener(
-			IExtensionActivationListener aListener);
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentDescriptor.java
deleted file mode 100644
index bc3edeb..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentDescriptor.java
+++ /dev/null
@@ -1,141 +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.navigator;
-
-import java.util.Set;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.internal.navigator.extensions.OverridePolicy;
-
-/**
- * 
- * The descriptor provides a handle to a content extension. Information such as
- * the Id, the name, the priority, and whether the descriptor provides one or
- * more root elements is provided.
- * 
- * 
- * <p>
- * There is one {@link INavigatorContentExtension} for each content service.
- * There is only one {@link INavigatorContentDescriptor} for each extension.
- * </p>
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @since 3.2
- * 
- */
-public interface INavigatorContentDescriptor {
-
-	/**
-	 * Returns the navgiator content extension id
-	 * 
-	 * @return the navgiator content extension id
-	 */
-	String getId();
-
-	/**
-	 * Returns the name of this navigator extension
-	 * 
-	 * @return the name of this navigator extension
-	 */
-	String getName();
-
-	/**
-	 * Returns the priority of the navigator content extension.
-	 * 
-	 * @return the priority of the navigator content extension. Returns 0 (zero)
-	 *         if no priority was specified.
-	 */
-	int getPriority();
-
-	/**
-	 * The enabledByDefault attribute specifies whether an extension should be
-	 * activated in the context of a viewer automatically. Users may override
-	 * this setting through the "Types of Content" dialog.
-	 * 
-	 * @return true if the extension is enabled by default.
-	 */
-	boolean isActiveByDefault();
-
-	/**
-	 * Determine if this content extension is enabled for the given element.
-	 * 
-	 * @param anElement
-	 *            The element that should be used for the evaluation.
-	 * @return True if and only if the extension is enabled for the element.
-	 */
-	boolean isTriggerPoint(Object anElement);
-
-	/**
-	 * Determine if this content extension could provide the given element as a
-	 * child.
-	 * 
-	 * <p>
-	 * This method is used to determine what the parent of an element could be
-	 * for Link with Editor support.
-	 * </p>
-	 * 
-	 * @param anElement
-	 *            The element that should be used for the evaluation.
-	 * @return True if and only if the extension might provide an object of this
-	 *         type as a child.
-	 */
-	boolean isPossibleChild(Object anElement);
-
-	/**
-	 * A convenience method to check all elements in a selection.
-	 * 
-	 * @param aSelection
-	 *            A non-null selection
-	 * @return True if and only if every element in the selection is a possible
-	 *         child.
-	 */
-	boolean arePossibleChildren(IStructuredSelection aSelection);
-
-	/**
-	 * @return Returns the suppressedExtensionId or null if none specified.
-	 */
-	String getSuppressedExtensionId();
-
-	/**
-	 * @return Returns the overridePolicy or null if this extension does not
-	 *         override another extension.
-	 */
-	OverridePolicy getOverridePolicy();
-
-	/**
-	 * @return The descriptor of the <code>suppressedExtensionId</code> if
-	 *         non-null.
-	 */
-	INavigatorContentDescriptor getOverriddenDescriptor();
-
-	/**
-	 * 
-	 * Does not force the creation of the set of overriding extensions.
-	 * 
-	 * @return True if this extension has overridding extensions.
-	 */
-	boolean hasOverridingExtensions();
-
-	/**
-	 * @return The set of overridding extensions (of type
-	 *         {@link INavigatorContentDescriptor}
-	 */
-	Set getOverriddingExtensions();
-
-	/**
-	 * @return true if the extension's content provider may adapt to a {@link SaveablesProvider}.
-	 */
-	boolean hasSaveablesProvider();
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentExtension.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentExtension.java
deleted file mode 100644
index efc8ef9..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentExtension.java
+++ /dev/null
@@ -1,88 +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.navigator;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-
-/**
- * The content extension represents the components of a <b>navigatorContent</b>
- * extension. These handles are managed by a content service
- * {@link INavigatorContentService}.
- * 
- * <p>
- * There is one {@link INavigatorContentExtension} for each content service.
- * There is only one {@link INavigatorContentDescriptor} for each extension.
- * </p>
- *  
- * 
- *<p>
- * This interface is not intended to be implemented by clients.
- *</p>
- * @since 3.2
- * 
- */
-public interface INavigatorContentExtension extends IAdaptable {
-
-	/**
-	 * 
-	 * @return The id attribute of the navigatorContent extension.
-	 */
-	String getId();
-
-	/**
-	 * There is one descriptor for all instances of a
-	 * INavigatorContentExtension.
-	 * 
-	 * 
-	 * @return A handle to the descriptor used to manage this extension.
-	 */
-	INavigatorContentDescriptor getDescriptor();
-
-	/**
-	 * Clients may choose to implement {@link ICommonContentProvider}, but are
-	 * only required to supply an implementation of {@link ITreeContentProvider}.
-	 * 
-	 * @return The content provider defined by the <b>navigatorContent</b>
-	 *         extension.
-	 * @see ICommonContentProvider
-	 * @see ITreeContentProvider
-	 */
-	ITreeContentProvider getContentProvider();
-
-	/**
-	 * The real underlying implementation may only support the
-	 * {@link ILabelProvider} interface, but a simple delegate is used when this
-	 * is the case to ensure that clients may anticpate an
-	 * {@link ICommonLabelProvider} interface.
-	 * 
-	 * @return The content provider defined by the <b>navigatorContent</b>
-	 *         extension.
-	 * @see ICommonLabelProvider
-	 * @see ILabelProvider
-	 */
-	ICommonLabelProvider getLabelProvider(); 
-
-	/**
-	 * 
-	 * @return True if any class has been instantiated by this extension.
-	 */
-	boolean isLoaded();
-
-	/**
-	 * 
-	 * @return The state model associated with this content extension.
-	 * @see IExtensionStateModel
-	 */
-	IExtensionStateModel getStateModel();
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentService.java
deleted file mode 100644
index dad2e1a..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentService.java
+++ /dev/null
@@ -1,437 +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.navigator;
-
-import java.util.Set;
-
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.ISaveablesSource;
-
-/**
- * 
- * Manages content extensions for extensible viewers and provides reusable
- * services for filters, sorting, the activation of content extensions, and DND.
- * The service can locate the appropriate providers (for contents or labels) for
- * an element and provide a ready-to-go {@link ITreeContentProvider} and
- * {@link ILabelProvider} for viewers that wish to take advantage of the
- * <b>org.eclipse.ui.navigator.navigatorContent</b> extensions defined for a
- * particular <i>viewerId</i>.
- * 
- * <p>
- * Clients should create instances of the this class using the factory ({@link NavigatorContentServiceFactory}).
- * </p>
- * 
- * <p>
- * Clients may contribute logical extensions using
- * <b>org.eclipse.ui.navigator.navigatorContent</b>. Each extension has three
- * states which determine whether the extension is used by the content service:
- * <ul>
- * <li><a name="visible"><i>visible</i>: If a content extension id matches a
- * <b>viewerContentBinding</b> for the <i>viewerId</i> of this content
- * service, then the extension is <i>visible</i>. Visible extensions may only
- * be configured through <b>viewerContentBinding</b>s. </li>
- * 
- * <li><a name="active"><i>active</i>: The active state may be set to a default using the
- * <i>activeByDefault</i> attribute of <b>navigatorContent</b>. Users may
- * toggle the <i>active</i> state through the "Available customizations"
- * dialog. Clients may also configure the active extensions using
- * {@link INavigatorActivationService#activateExtensions(String[], boolean)} or
- * {@link INavigatorActivationService#deactivateExtensions(String[], boolean)}
- * from the {@link #getActivationService() Activation Service} </li>
- * 
- * <li><a name="enabled"><i>enabled</i>: An extension is <i>enabled</i> for an element if the
- * extension contributed that element or if the element is described in the
- * <i>triggerPoints</i> element of the <b>navigatorContent</b> extension. The
- * findXXX() methods search for <i>enabled</i> extensions. </li>
- * </ul>
- * </p>
- * <p>
- * A new instance of the content service should be created for each viewer.
- * Clients should use {@link #createCommonContentProvider()} and
- * {@link #createCommonLabelProvider()} for the viewer. Each content service
- * tracks the viewer it is attached to. Clients may create the content service
- * with a viewer using ({@link NavigatorContentServiceFactory#createContentService(String)}).
- * Alternatively, when the content provider is created and set on a viewer,
- * {@link IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, Object, Object)}
- * will be called and the content provider will update the viewer used by its
- * backing content service. Therefore, only each content service has exactly one
- * content provider and one label provider.
- * </p>
- * <p>
- * Extensions may also coordinate their behavior through a
- * {@link IExtensionStateModel state model}. The state model holds properties
- * and supports property change listeners. Actions can toggle the setting of
- * properties and the corresponding content/label providers will respond to
- * property change event. Each <b>navigatorContent</b> extension has its own
- * contained state model keyed off of the content extension id.
- * </p>
- * <p>
- * Clients may respond when content extensions are loaded by attaching a
- * {@link INavigatorContentServiceListener} to the content service.
- * </p>
- * <p>
- * Some extensions may provide content or label providers which implement
- * {@link IMemento}. Clients must call {@link #restoreState(IMemento)} and
- * {@link #saveState(IMemento)} at the appropriate times for these extensions to
- * prepare themselves with the memento.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @since 3.2
- * 
- */
-public interface INavigatorContentService {
-
-	/**
-	 * Create a Content Provider which will use an enhanced delegation model to
-	 * locate extension content providers using this content service for each
-	 * element in the tree.
-	 * 
-	 * <p>
-	 * The content provider returned will populate the root of the viewer in one
-	 * of two ways.
-	 * <p>
-	 * In the first approach, the content provider will seek out content
-	 * extensions which are bound using a <b>viewerContentBinding</b>. If any
-	 * of the found <b>viewerContentBindings</b> declare the <i>isRoot</i>
-	 * attribute on as true, then that set of extensions will be consulted for
-	 * the root elements of the tree. The input of the viewer will be supplied
-	 * to each of their {@link IStructuredContentProvider#getElements(Object)}
-	 * methods and aggregate the results for the root of the viewer.
-	 * </p>
-	 * <p>
-	 * In the second approach, if no <b>viewerContentBindings</b> declare
-	 * <i>isRoot</i> as true, then all matching extensions are consulted based
-	 * on their <b>triggerPoints</b> expression in the <b>navigatorContent</b>
-	 * extension. Any matching extensions are then consulted via their
-	 * {@link IStructuredContentProvider#getElements(Object)} methods and the
-	 * results are aggregated into the root.
-	 * </p>
-	 * <p>
-	 * After the root is populated, the children of each root element are
-	 * determined by consulting the source extension and all extension which
-	 * describe the element in their <b>triggerPoints</b> expression.
-	 * </p>
-	 * <p>
-	 * If clients wish to use a viewer other than the CommonViewer, then they
-	 * are responsible for creating the content provider, and setting it on
-	 * their viewer.
-	 * </p>
-	 * 
-	 * @return An enhanced content provider that will use this content service
-	 *         to drive the viewer.
-	 */
-	ITreeContentProvider createCommonContentProvider();
-
-	/**
-	 * Create a Label Provider which will use an enhanced delegation model to
-	 * locate extension label providers using this content service for each
-	 * element in the tree.
-	 * 
-	 * <p>
-	 * The label of each element is determined by consulting the source of the
-	 * element. If the source chooses to return null, then other extensions
-	 * which declare the element in their <b>triggerPoints</b> extension are
-	 * consulted. The first non-null value is used (including the empty label).
-	 * </p>
-	 * 
-	 * <p>
-	 * If clients wish to use a viewer other than the CommonViewer, then they
-	 * are responsible for creating the label provider, and setting it on their
-	 * viewer.
-	 * </p>
-	 * 
-	 * @return An enhanced label provider that will use this content service to
-	 *         drive labels in the viewer.
-	 */
-	ILabelProvider createCommonLabelProvider();
-
-	/**
-	 * 
-	 * @return The description provider for this content service.
-	 */
-	IDescriptionProvider createCommonDescriptionProvider();
-
-	/**
-	 * The state model stores properties associated with the extension. Each
-	 * content extension has its own contained state model. Components of the
-	 * extension (content provider, label provider, action providers, etc) may
-	 * attach themselves as listeners to the model ({@link IExtensionStateModel#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)})
-	 * and respond to changes to the values of the properties.
-	 * 
-	 * @param anExtensionId
-	 *            The extension id defined by a <b>navigatorContent</b>
-	 *            extension.
-	 * @return The state model for the given extension id.
-	 */
-	IExtensionStateModel findStateModel(String anExtensionId);
-
-	/**
-	 * The viewer id is used to locate matching <b>viewerContentBindings</b>.
-	 * In general, this would be the id of the view defined by a
-	 * <b>org.eclipse.ui.views</b> extension. However, there is no formal
-	 * requirement that this is the case.
-	 * 
-	 * @return The viewerId used to create this content service.
-	 */
-	String getViewerId();
-
-	/**
-	 * The viewer descriptor provides some basic information about the abstract
-	 * viewer that uses this content service.
-	 * 
-	 * @return The viewer descriptor for this content service.
-	 * @see INavigatorViewerDescriptor
-	 */
-	INavigatorViewerDescriptor getViewerDescriptor();
-
-	/**
-	 * See <a href="#active">above</a> for the definition of <i>active</i>.
-	 * 
-	 * @param anExtensionId
-	 *            The unqiue identifier from a content extension.
-	 * @return True if and only if the given extension id is <i>active</i> for
-	 *         this content service.
-	 * @see INavigatorContentService For more information on what <i>active</i>
-	 *      means.
-	 * 
-	 */
-	boolean isActive(String anExtensionId);
-
-	/**
-	 *  See <a href="#visible">above</a> for the definition of <i>visible</i>.
-	 *  
-	 * @param anExtensionId
-	 *            The unqiue identifier from a content extension.
-	 * @return True if and only if the given extension id is <i>visible</i> to
-	 *         this content service.
-	 * @see INavigatorContentService For more information on what <i>visible</i>
-	 *      means.
-	 */
-	boolean isVisible(String anExtensionId);
-
-	/**
-	 * Return the set of <i>visible</i> extension ids for this content service,
-	 * which includes those that are bound through <b>viewerContentBinding</b>s
-	 * and those that are bound through
-	 * {@link #bindExtensions(String[], boolean)}.
-	 * 
-	 * @return The set of <i>visible</i> extension ids for this content service
-	 */
-	String[] getVisibleExtensionIds();
-
-	/**
-	 * Return the set of <i>visible</i> content descriptors for this content
-	 * service, which includes those that are bound through
-	 * <b>viewerContentBinding</b>s and those that are bound through
-	 * {@link #bindExtensions(String[], boolean)}.
-	 * 
-	 * @return The set of <i>visible</i> content descriptors for this content
-	 *         service
-	 */
-	INavigatorContentDescriptor[] getVisibleExtensions();
-
-	/**
-	 * Bind the set of given extensions to this content service. Programmatic
-	 * bindings allow clients to make extensions <i>visible</i> to an instance
-	 * of the content service by appending to the bindings declared through
-	 * <b>org.eclipse.ui.navigator.viewer</b>. Programmtic bindings are not
-	 * persisted and are not remembered or propagated to other instances of the
-	 * INavigatorContentService in the same session. Programmatic bindings
-	 * cannot be undone for a given instance of the INavigatorContentService and
-	 * do not override declarative bindings.
-	 * <p>
-	 * Once a content extension has been bound to the INavigatorContentService,
-	 * clients may use
-	 * {@link INavigatorActivationService#activateExtensions(String[], boolean) }
-	 * or
-	 * {@link  INavigatorActivationService#deactivateExtensions(String[], boolean) }
-	 * to control the <i>activation</i> state of the extension. See
-	 * {@link INavigatorContentService} for more information on the difference
-	 * between <i>visible</i> and <i>active</i>.
-	 * </p>
-	 * 
-	 * @param extensionIds
-	 *            The list of extensions to make visible.
-	 * @param isRoot
-	 *            whether the context provider shold be a root content provider
-	 * @return A list of all INavigatorContentDescriptors that correspond to the
-	 *         given extensionIds.
-	 */
-	INavigatorContentDescriptor[] bindExtensions(String[] extensionIds,
-			boolean isRoot);
-
-	/**
-	 * Restore the state associated with the memento.
-	 * 
-	 * @param aMemento
-	 *            The memento for extensions to use when restoring previous
-	 *            settings.
-	 */
-	void restoreState(IMemento aMemento);
-
-	/**
-	 * Persist any session-to-session state with the memento.
-	 * 
-	 * @param aMemento
-	 *            The memento for extensions to use when persisting previous
-	 *            settings.
-	 */
-	void saveState(IMemento aMemento);
-
-	/**
-	 * Add a listener to be notified whenever an extension is loaded.
-	 * 
-	 * @param aListener
-	 *            A listener to be attached.
-	 */
-	void addListener(INavigatorContentServiceListener aListener);
-
-	/**
-	 * Remove a listener (by identity) from the set of listeners.
-	 * 
-	 * @param aListener
-	 *            A listener to be detached.
-	 */
-	void removeListener(INavigatorContentServiceListener aListener);
-
-	/**
-	 * The root content providers are recalculated by this method. The attached
-	 * viewer is also refreshed as a result of this method.
-	 * 
-	 */
-	void update();
-
-	/**
-	 * Release any acquired resources and instantiated content extensions.
-	 * 
-	 */
-	void dispose();
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>triggerPoints</b> expression or that indicate they should be bound as
-	 * a root extension.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @return The set of {@link INavigatorContentExtension}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         either declared through a
-	 *         <b>org.eclipse.ui.navigator.viewer/viewerContentBinding</b> to
-	 *         be a root element or have a <b>triggerPoints</b> expression that
-	 *         is <i>enabled</i> for the given element.
-	 */
-	Set findRootContentExtensions(Object anElement);
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>triggerPoints</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @return The set of {@link INavigatorContentExtension}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         have a <b>triggerPoints</b> expression that is <i>enabled</i>
-	 *         for the given element.
-	 */
-	Set findContentExtensionsByTriggerPoint(Object anElement);
-
-	/**
-	 * Search for extensions that declare the given element in their
-	 * <b>possibleChildren</b> expression.
-	 * 
-	 * @param anElement
-	 *            The element to use in the query
-	 * @return The set of {@link INavigatorContentExtension}s that are
-	 *         <i>visible</i> and <i>active</i> for this content service and
-	 *         have a <b>possibleChildren</b> expression that is <i>enabled</i>
-	 *         for the given element.
-	 */
-	Set findContentExtensionsWithPossibleChild(Object anElement);
-
-	/**
-	 * The filter service can provide the available filters for the viewer, and
-	 * manage which filters are <i>active</i>.
-	 * 
-	 * @return An {@link INavigatorFilterService} that can provide information
-	 *         to a viewer about what filters are <i>visible</i> and <i>active</i>.
-	 */
-	INavigatorFilterService getFilterService();
-
-	/**
-	 * The sorter service provides the appropriate sorter based on the current
-	 * items being sorted. By default, the CommonViewer uses
-	 * {@link CommonViewerSorter} which delegates to this service. Clients do
-	 * not need to provide their own {@link ViewerSorter} unless they wish to
-	 * override this functionality.
-	 * 
-	 * @return An {@link INavigatorSorterService} that can provide
-	 *         {@link ViewerSorter} based on the context of the parent.
-	 */
-	INavigatorSorterService getSorterService();
-
-	/**
-	 * The pipeline service calculates the appropriate viewer modification or
-	 * refresh that should be applied for viewers that wish to take advantage of
-	 * the model pipelining that some extensions use to massage or reshape
-	 * contents in the viewer. Clients that use the {@link CommonViewer} do not
-	 * need to be concerned with this service as the refreshes are automatically
-	 * computed using this service.
-	 * 
-	 * 
-	 * @return The {@link INavigatorPipelineService} which can determine the
-	 *         correct updates to apply to a viewer.
-	 */
-	INavigatorPipelineService getPipelineService();
-
-	/**
-	 * The DND Service provides instances of {@link CommonDragAdapterAssistant}
-	 * and {@link CommonDropAdapterAssistant} for this content service.
-	 * 
-	 * @return The {@link INavigatorDnDService} which can add additional
-	 *         TransferTypes for the DragAdapter and setup the data correctly
-	 *         for those extended Transfer Types.
-	 */
-	INavigatorDnDService getDnDService();
-
-	/**
-	 * The activation service is used to toggle whether certain extensions have
-	 * the opportunity to contribute content and/or actions.
-	 * 
-	 * @return The {@link INavigatorActivationService} for this content service.
-	 */
-	INavigatorActivationService getActivationService();
-	
-	/**
-	 * The saveable service helps implementing {@link ISaveablesSource}.
-	 * 
-	 * @return the {@link INavigatorSaveablesService} for this content service.
-	 */
-	INavigatorSaveablesService getSaveablesService();
-	
-	/** 
-	 * Return the content extension for the given id. 
-	 * 
-	 * @param anExtensionId The id used to define the <b>org.eclipse.ui.navigator.navigatorContent/navigatorContent</b> extension.
-	 * @return An instance of the content extension for the given extension id. May return <b>null</b> if the id is invalid.
-	 */
-	public INavigatorContentExtension getContentExtensionById(String anExtensionId);
-
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentServiceListener.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentServiceListener.java
deleted file mode 100644
index 1c3286f..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorContentServiceListener.java
+++ /dev/null
@@ -1,37 +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.navigator;
-
-
-
-/**
- * <p>
- * Used by clients who would like to listen for the load event of am
- * {@link INavigatorContentExtension}.
- *  
- * 
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 3.2
- */
-public interface INavigatorContentServiceListener {
-
-	
-	/**
-	 * Notifies the listener that the given extension
-	 * has now been loaded. Extensions are loaded as 
-	 * needed as the user expands nodes in the tree viewer. 
-	 * 
-	 * @param anExtension The extension that was loaded.
-	 */
-	void onLoad(INavigatorContentExtension anExtension);
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorDnDService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorDnDService.java
deleted file mode 100644
index 51f9ce7..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorDnDService.java
+++ /dev/null
@@ -1,133 +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.navigator;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.TransferData;
-
-/**
- * 
- * Provides instances of {@link CommonDragAdapterAssistant} and
- * {@link CommonDropAdapterAssistant} for the associated
- * {@link INavigatorContentService}.
- * 
- * <p>
- * Clients should only take note of this Service they are are using the
- * {@link INavigatorContentService} in the context of a viewer which is not or
- * does not extend {@link CommonViewer}. Clients should take a look at the
- * initialization of the DND support in the {@link CommonViewer} if they wish to
- * support this capability in their own viewers.
- * </p>
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @see CommonDragAdapter
- * @see CommonDragAdapterAssistant
- * @see CommonDropAdapter
- * @see CommonDropAdapterAssistant
- * @see CommonViewer
- * @see INavigatorContentService#getDnDService()
- * @see <a
- *      href="http://www.eclipse.org/articles/Article-SWT-DND/DND-in-SWT.html">Drag
- *      and Drop: Adding Drag and Drop to an SWT Application</a>
- * @see <a
- *      href="http://www.eclipse.org/articles/Article-Workbench-DND/drag_drop.html">Drag
- *      and Drop in the Eclipse UI (Custom Transfer Types)</a>
- * 
- * @since 3.2
- * 
- * 
- */
-public interface INavigatorDnDService {
-
-	/**
-	 * 
-	 * As part of the <b>org.eclipse.ui.navigator.viewer</b> extension point,
-	 * clients may explicit extend the support Transfer Types of a particular
-	 * viewer using the <b>dragAssistant</b> element. This element defines a
-	 * class which extends {@link CommonDragAdapterAssistant} and can direct the
-	 * viewer on how to provide different kinds of DND Transfer Types. The array
-	 * is returned in no particular order.
-	 * 
-	 * @return An array of {@link CommonDragAdapterAssistant} or an empty array.
-	 */
-	CommonDragAdapterAssistant[] getCommonDragAssistants();
-
-	/**
-	 * Clients may choose to programmatically bind drag assistants to an
-	 * instance of the DND Service. A programmatic binding is not persisted
-	 * between sessions and is not propagated to other instances of
-	 * {@link INavigatorContentService} with the same id. 
-	 * 
-	 * @param anAssistant The assistant to bind.
-	 */
-	void bindDragAssistant(CommonDragAdapterAssistant anAssistant);
-
-	/**
-	 * 
-	 * This method returns an array of {@link CommonDropAdapterAssistant} from
-	 * content extensions that are <i>visible</i> and <i>active</i> for the
-	 * associated {@link INavigatorContentService}. The array is sorted by
-	 * priority, with overrides taken into account.
-	 * 
-	 * <p>
-	 * The array should be processed from the first element to the last, asking
-	 * each extension to
-	 * {@link CommonDropAdapterAssistant#validateDrop(Object, int, org.eclipse.swt.dnd.TransferData)}.
-	 * The first to successfully validate the drop operation will have the
-	 * opportunity to
-	 * {@link CommonDropAdapterAssistant#handleDrop(CommonDropAdapter, org.eclipse.swt.dnd.DropTargetEvent, Object) handle the drop}
-	 * </p>
-	 * 
-	 * @param aDropTarget
-	 *            The target element in the viewer of the drop operation.
-	 * @param theTransferType
-	 *            The transfer type of the current drop operation.
-	 * @return An array of {@link CommonDropAdapterAssistant}s that are defined
-	 *         by the set of
-	 *         <b>org.eclipse.ui.navigator.navigatorContent/navigatorContent</b>
-	 *         extensions that provide a <b>possibleChildren</b> expression
-	 *         that matches the given drop target.
-	 */
-	CommonDropAdapterAssistant[] findCommonDropAdapterAssistants(
-			Object aDropTarget, TransferData theTransferType);
-
-	/**
-	 * 
-	 * This method returns an array of {@link CommonDropAdapterAssistant} from
-	 * content extensions that are <i>visible</i> and <i>active</i> for the
-	 * associated {@link INavigatorContentService}.
-	 * 
-	 * <p>
-	 * The array should be processed from the first element to the last, asking
-	 * each extension to
-	 * {@link CommonDropAdapterAssistant#validateDrop(Object, int, org.eclipse.swt.dnd.TransferData)}.
-	 * The first to successfully validate the drop operation will have the
-	 * opportunity to
-	 * {@link CommonDropAdapterAssistant#handleDrop(CommonDropAdapter, org.eclipse.swt.dnd.DropTargetEvent, Object) handle the drop}
-	 * </p>
-	 * 
-	 * @param aDropTarget
-	 *            The target element in the viewer of the drop operation.
-	 * @param theDragSelection
-	 *            The drag selection of the current drop operation.
-	 * @return An array of {@link CommonDropAdapterAssistant}s that are defined
-	 *         by the set of
-	 *         <b>org.eclipse.ui.navigator.navigatorContent/navigatorContent</b>
-	 *         extensions that provide a <b>possibleChildren</b> expression
-	 *         that matches the given drop target.
-	 */
-	CommonDropAdapterAssistant[] findCommonDropAdapterAssistants(
-			Object aDropTarget, IStructuredSelection theDragSelection);
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorFilterService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorFilterService.java
deleted file mode 100644
index 4688603..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorFilterService.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.navigator;
-
-import org.eclipse.jface.viewers.ViewerFilter;
-
-/**
- * Provides support for managing the filters defined for a Common Navigator
- * viewer.
- * 
- * <p>
- * An INavigatorFilterService manages the available common filters and their
- * current activation state for a particular INavigatorContentService. An
- * INavigatorFilterService cannot be acquired without an
- * INavigatorContentService (through
- * {@link INavigatorContentService#getFilterService}). Each instance will
- * provide information specific to the content service associated with it.
- * </p>
- * <p>
- * The visibility of commonFilters is controlled through matching
- * <b>viewerContentBinding</b>s. That is, like content extensions, the id of a
- * commonFilter must match an includes expression for at least one
- * <b>viewerContentBinding</b> element for the corresponding
- * INavigatorContentService.
- * </p>
- * <p>
- * The activation of each filter should be persisted from session to session.
- * Clients of this interface have control over when the persistence occurs. In
- * particular, clients should call {@link  #persistFilterActivationState()}
- * after each call to {@link #setActiveFilterIds(String[])}.
- * </p> 
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @see INavigatorContentService#getFilterService()
- * @see ViewerFilter
- * @since 3.2
- * 
- */
-public interface INavigatorFilterService {
-
-	/**
-	 * 
-	 * Determine the set of filters which are <i>visible</i> to the
-	 * content service associated with this filter service. 
-	 * 
-	 * @param toReturnOnlyActiveFilters
-	 *            True indicates that only active filters should be returned.
-	 * @return An array of ViewerFilters that should be applied to the viewer
-	 *         rendering the content from this INavigatorContentService
-	 */
-	ViewerFilter[] getVisibleFilters(boolean toReturnOnlyActiveFilters);
-
-	/**
-	 * 
-	 * <i>Visible</i> filters are filters whose ids match a
-	 * <b>viewerContentBinding</b> for the corresponding viewer.
-	 * 
-	 * @return An array of all visible filter descriptors.
-	 */
-	ICommonFilterDescriptor[] getVisibleFilterDescriptors();
-
-	/**
-	 * @param aFilterId
-	 *            Check the activation of aFilterId for the content service
-	 *            corresponding to this filter service.
-	 * @return True if the filter specified by the id is active for the content
-	 *         service corresponding to this filter service.
-	 */
-	boolean isActive(String aFilterId);
-
-	/**
-	 * Activate the set of given filters. An <i>active</i> filter will always be
-	 * returned from {@link #getVisibleFilters(boolean)}. An <i>inactive</i> filter will
-	 * only be returned from {@link #getVisibleFilters(boolean)} when it is
-	 * called with <b>false</b>.
-	 * 
-	 * 
-	 * @param theFilterIds
-	 *            An array of filter ids to activate.
-	 * 
-	 */
-	void setActiveFilterIds(String[] theFilterIds);
-
-	/** 
-	 * Persist the current activation state for visible filters.
-	 */
-	void persistFilterActivationState();
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorPipelineService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorPipelineService.java
deleted file mode 100644
index 816512c..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorPipelineService.java
+++ /dev/null
@@ -1,132 +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.navigator;
-
-/**
- * 
- * Performs calculations that are necessary to determine the correct children to
- * render in the viewer.
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @see INavigatorContentService#getPipelineService()
- * @see PipelinedShapeModification
- * @see PipelinedViewerUpdate
- * @see IPipelinedTreeContentProvider
- * @since 3.2
- */
-public interface INavigatorPipelineService {
-	
-
-	/**
-	 * Intercept attempts to add elements directly to the viewer.
-	 * 
-	 * <p>
-	 * For content extensions that reshape the structure of children in a
-	 * viewer, their overridden extensions may sometimes use optimized refreshes
-	 * to add elements to the tree. These attempts must be intercepted and
-	 * mapped to the correct set of model elements in the overridding extension.
-	 * Clients may add, remove, or modify elements in the given set of added
-	 * children. Clients should return a set for downstream extensions to
-	 * massage further.
-	 * </p>
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param anAddModification
-	 *            The shape modification which contains the current suggested
-	 *            parent and children. Clients may modify this parameter
-	 *            directly and return it as the new shape modification.
-	 * @return The new shape modification to use. Clients should <b>never</b>
-	 *         return <b>null</b> from this method.
-	 */
-	public PipelinedShapeModification interceptAdd(
-			PipelinedShapeModification anAddModification);
-	
-	/**
-	 * Intercept attempts to remove elements directly from the viewer.
-	 * 
-	 * <p>
-	 * For content extensions that reshape the structure of children in a
-	 * viewer, their overridden extensions may sometimes use optimized refreshes
-	 * to remove elements to the tree. These attempts must be intercepted and
-	 * mapped to the correct set of model elements in the overridding extension.
-	 * Clients may add, remove, or modify elements in the given set of removed
-	 * children. Clients should return a set for downstream extensions to
-	 * massage further.
-	 * </p>
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param aRemoveModification
-	 *            The shape modification which contains the current suggested
-	 *            parent and children. Clients may modify this parameter
-	 *            directly and return it as the new shape modification.
-	 * @return The new shape modification to use. Clients should <b>never</b>
-	 *         return <b>null</b> from this method.
-	 */
-	public PipelinedShapeModification interceptRemove(
-			PipelinedShapeModification aRemoveModification);
-	
-	/**
-	 * Intercept calls to viewer <code>refresh()</code> methods.
-	 * 
-	 * <p>
-	 * Clients may modify the given update to add or remove the elements to be
-	 * refreshed. Clients may return the same instance that was passed in for
-	 * the next downstream extension.
-	 * </p>
-	 * 
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param aRefreshSynchronization
-	 *            The (current) refresh update to execute against the viewer.
-	 * @return The (potentially reshaped) refresh to execute against the viewer.
-	 */
-	boolean interceptRefresh(PipelinedViewerUpdate aRefreshSynchronization);
-	
-	/**
-	 * Intercept calls to viewer <code>update()</code> methods.
-	 * 
-	 * <p>
-	 * Clients may modify the given update to add or remove the elements to be
-	 * updated. Clients may also add or remove properties for the given targets
-	 * to optimize the refresh. Clients may return the same instance that was
-	 * passed in for the next downstream extension.
-	 * </p>
-	 * 
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param anUpdateSynchronization
-	 *            The (current) update to execute against the viewer.
-	 * @return The (potentially reshaped) update to execute against the viewer.
-	 */
-	public boolean interceptUpdate(
-			PipelinedViewerUpdate anUpdateSynchronization);
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorSaveablesService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorSaveablesService.java
deleted file mode 100644
index e025a4d..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorSaveablesService.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.navigator;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.ui.ISaveablesLifecycleListener;
-import org.eclipse.ui.ISaveablesSource;
-import org.eclipse.ui.Saveable;
-
-/**
- * 
- * This interface is not intended to be implemented by clients.
- * 
- * @since 3.2
- * 
- */
-public interface INavigatorSaveablesService {
-
-	/**
-	 * Initializes this service. Must be called on the UI thread, and may only
-	 * be called once. The given viewer's control must not be disposed.
-	 * <p>
-	 * The given listener will be notified of changes to the result of
-	 * {@link #getSaveables()} and to the dirty state of those saveables. The
-	 * given source will be used as the event source for these event
-	 * notifications.
-	 * </p>
-	 * <p>
-	 * The given viewer's selection will be used by
-	 * {@link #getActiveSaveables()} to determine the active saveables. The
-	 * active saveables are determined by iterating over the current selection,
-	 * and for each element, walking up its parent chain until an element
-	 * representing a saveable is found, or a root element is reached.
-	 * </p>
-	 * 
-	 * @param source
-	 * @param viewer
-	 * @param listener
-	 * 
-	 */
-	public void init(ISaveablesSource source, StructuredViewer viewer,
-			ISaveablesLifecycleListener listener);
-
-	/**
-	 * Returns the Saveable objects for which elements are contained in the
-	 * tree.
-	 * 
-	 * @return the saveables
-	 */
-	public Saveable[] getSaveables();
-
-	/**
-	 * Returns the active saveables based on the current selection. This method
-	 * must be called on the UI thread.
-	 * 
-	 * @return the active saveables based on the current selection
-	 */
-	public Saveable[] getActiveSaveables();
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorSorterService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorSorterService.java
deleted file mode 100644
index d8f08ee..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorSorterService.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.navigator;
-
-import org.eclipse.jface.viewers.ViewerSorter;
-
-/**
- * 
- * Provides an interface to extensions declared in
- * <b>org.eclipse.ui.navigator.navigatorContent/commonSorter</b>.
- * 
- * <p>
- * Like other extensions to the Common Navigator framework, sorters defined by
- * the above extension point must be bound to the associated
- * {@link INavigatorContentService} through a
- * <b>org.eclipse.ui.navigator.viewer/viewerContentBinding</b> extension.
- * </p>
- *  
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p> 
- * 
- * @see INavigatorContentService#getSorterService()
- * @see ViewerSorter
- * @since 3.2 
- */
-public interface INavigatorSorterService {
-
-	/**
-	 * Return a {@link ViewerSorter} from an extension which is visible to the
-	 * associated {@link INavigatorContentService} and whose <b>parentExpression</b>
-	 * matches the given parent.
-	 * 
-	 * @param aParent An element from the tree
-	 * @return An applicable ViewerSorter or simple {@link ViewerSorter} if no sorter is found.
-	 */
-	ViewerSorter findSorterForParent(Object aParent);
-	
-	/**
-	 * Return a {@link ViewerSorter} from an extension which is visible to the
-	 * associated {@link INavigatorContentService} and whose <b>parentExpression</b>
-	 * matches the given parent.
-	 * 
-	 * @param source The source of the element.
-	 * @param parent An element from the tree
-	 * @param lvalue An element from the tree
-	 * @param rvalue An element from the tree
-	 * @return An applicable ViewerSorter or simple {@link ViewerSorter} if no sorter is found.
-	 */
-	ViewerSorter findSorter(INavigatorContentDescriptor source, Object parent, Object lvalue, Object rvalue);	
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorViewerDescriptor.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorViewerDescriptor.java
deleted file mode 100644
index e7699f4..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/INavigatorViewerDescriptor.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.navigator;
-
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.Separator;
-
-/**
- * Provides a basic metadata about the abstract viewer for a particular content
- * service.
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @since 3.2
- * 
- */
-public interface INavigatorViewerDescriptor {
-
-	/**
-	 * {@value} (boolean): True indicates the
-	 * "Available Extensions" tab in the "Available Customizations" dialog
-	 * should not be available for the user (defaults to <b>false</b>).
-	 * 
-	 */
-	String PROP_HIDE_AVAILABLE_EXT_TAB = "org.eclipse.ui.navigator.hideAvailableExtensionsTab"; //$NON-NLS-1$
-
-	/**
-	 * {@value} (boolean): True
-	 * indicates the entire "Available Customizations" dialog should not be
-	 * available for the user (defaults to <b>false</b>).
-	 */
-	String PROP_HIDE_AVAILABLE_CUSTOMIZATIONS_DIALOG = "org.eclipse.ui.navigator.hideAvailableCustomizationsDialog"; //$NON-NLS-1$
-
-	/**
-	 * {@value} (boolean): True indicates the
-	 * "Collapse All" button should not be available for the user (defaults to
-	 * <b>false</b>).
-	 */
-	String PROP_HIDE_COLLAPSE_ALL_ACTION = "org.eclipse.ui.navigator.hideCollapseAllAction"; //$NON-NLS-1$
-
-	/**
-	 * {@value} (boolean): True indicates
-	 * the "Link With Editor" action should not be available for the user
-	 * (defaults to <b>false</b>).
-	 */
-	String PROP_HIDE_LINK_WITH_EDITOR_ACTION = "org.eclipse.ui.navigator.hideLinkWithEditorAction"; //$NON-NLS-1$
-
-	/**
-	 * Returns the id of the viewer targeted by this extension.
-	 * 
-	 * @return the id of the viewer targeted by this extension.
-	 */
-	String getViewerId();
-
-	/**
-	 * The default value of the popup menu id is the viewer id. Clients may
-	 * override this value using a <b>navigatorConfiguration</b> extension.
-	 * 
-	 * @return The id of the context menu of the viewer.
-	 */
-	String getPopupMenuId();
-
-	/**
-	 * Returns true if the content extension of the given id is 'visible'. A
-	 * content extension is 'visible' if it matches a viewerContentBinding for
-	 * the given viewer id.
-	 * 
-	 * @param aContentExtensionId
-	 *            The id to query
-	 * @return True if the content extension matches a viewerContentBinding for
-	 *         the viewer id of this descriptor.
-	 */
-	boolean isVisibleContentExtension(String aContentExtensionId);
-
-	/**
-	 * Returns true if the action extension of the given id is 'visible'. An
-	 * action extension is 'visible' if it matches a viewerActionBinding for the
-	 * given viewer id.
-	 * 
-	 * @param anActionExtensionId
-	 *            The id to query
-	 * @return True if the action extension matches a viewerActionBinding for
-	 *         the viewer id of this descriptor.
-	 */
-	boolean isVisibleActionExtension(String anActionExtensionId);
-
-	/**
-	 * Returns true if the content extension of the given id matches a
-	 * viewerContentBinding extension that declares isRoot as true.
-	 * 
-	 * @param aContentExtensionId
-	 *            The id to query
-	 * @return True if the content extension matches a viewerContentBinding
-	 *         which declares 'isRoot' as true for the viewer id of this
-	 *         descriptor.
-	 */
-	boolean isRootExtension(String aContentExtensionId);
-
-	/**
-	 * Returns true if there exists at least one matching viewerContentBinding
-	 * which declares isRoot as true. This behavior will override the default
-	 * enablement for the viewer root.
-	 * 
-	 * @return True if there exists a matching viewerContentBinding which
-	 *         declares isRoot as true.
-	 */
-	boolean hasOverriddenRootExtensions();
-
-	/**
-	 * Returns true by default. A true value indicates that object and view
-	 * contributions should be supported by the popup menu of any viewer
-	 * described by this viewer descriptor. The value may be overridden from the
-	 * &lt;popupMenu /&gt; child element of the &lt;viewer /&gt; element in the
-	 * <b>org.eclipse.ui.navigator.viewer</b> extension point.
-	 * 
-	 * @return True if object/view contributions should be allowed or False
-	 *         otherwise.
-	 */
-	boolean allowsPlatformContributionsToContextMenu();
-
-	/**
-	 * 
-	 * Custom insertion points are declared through a nested 'popupMenu' element
-	 * in the <b>org.eclipse.ui.navigator.viewer</b> extension point. Each
-	 * insertion point represents either a {@link Separator} or
-	 * {@link GroupMarker} in the context menu of the viewer.
-	 * <p>
-	 * 
-	 * @return The set of custom insertion points, if any. A null list indicates
-	 *         the default set (as defined by {@link NavigatorActionService})
-	 *         should be used. An empty list indicates there are no declarative
-	 *         insertion points.
-	 */
-	MenuInsertionPoint[] getCustomInsertionPoints();
-
-	/**
-	 * @param aPropertyName
-	 *            A property name corresponding to a configuration option from
-	 *            <b>org.eclipse.ui.navigator.viewer</b>
-	 * @return The unmodified string value returned from the extension (<b>null</b>
-	 *         is a possible return value).
-	 */
-	String getStringConfigProperty(String aPropertyName);
-
-	/**
-	 * @param aPropertyName
-	 *            A property name corresponding to a configuration option from
-	 *            <b>org.eclipse.ui.navigator.viewer</b>
-	 * @return The boolean value returned from the extension (<b>null</b> is a
-	 *         possible return value).
-	 */
-	boolean getBooleanConfigProperty(String aPropertyName);
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IPipelinedTreeContentProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IPipelinedTreeContentProvider.java
deleted file mode 100644
index 342a08b..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/IPipelinedTreeContentProvider.java
+++ /dev/null
@@ -1,216 +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.navigator;
-
-import java.util.Set;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-
-/**
- * 
- * A pipelined content provider allows an extension to reshape the contributions
- * of an upstream content extension.
- * 
- * <p>
- * An "upstream" extension is either:
- * <ul>
- * <li> the extension overridden by this extension using the
- * <b>org.eclipse.ui.navigatorContent/navigatorContent/override</b> element, or
- * </li>
- * <li>another extension that overrides the same extension this extension
- * overrides, but with higher priority than this extension. </li>
- * </ul>
- * </p>
- * <p>
- * Overridden extensions form a tree where the nodes of the tree represent the
- * content extensions, children represent overridding extensions, and the
- * children are sorted by priority. Pipeline contributions traverse the tree,
- * allowing children to override the contributions of their parent, giving
- * precedence to the children of highest priority.
- * </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>
- * 
- * <p>
- * Clients may (but are not required to) implement this interface if there is no
- * cause to do so. {@link ITreeContentProvider} is respected by the Common
- * Navigator.
- * </p>
- * 
- * @see INavigatorPipelineService
- * @see INavigatorContentService#getPipelineService()
- * @since 3.2
- * 
- */
-public interface IPipelinedTreeContentProvider extends ICommonContentProvider {
-
-	/**
-	 * Intercept the children that would be contributed to the viewer and
-	 * determine how to change the shape of those children. The set of children
-	 * should be modified to contain the correct children to return to the
-	 * viewer.
-	 * 
-	 * 
-	 * @param aParent
-	 *            A parent from the viewer
-	 * @param theCurrentChildren
-	 *            The set of children contributed thus far from upstream content
-	 *            providers.
-	 */
-	void getPipelinedChildren(Object aParent, Set theCurrentChildren);
-
-	/**
-	 * Intercept the elements that would be contributed to the root of the
-	 * viewer and determine how to change the shape of those children. The given
-	 * set of elements should be modified to contain the correct elements to
-	 * return to the viewer.
-	 * 
-	 * @param anInput
-	 *            An input from the viewer
-	 * @param theCurrentElements
-	 *            The set of children contributed thus far from upstream content
-	 *            providers.
-	 */
-	void getPipelinedElements(Object anInput, Set theCurrentElements);
-
-	/**
-	 * Intercept requests for a parent of the given object.
-	 * 
-	 * @param anObject
-	 *            The object being queried for a parent.
-	 * @param aSuggestedParent
-	 *            The parent already suggested from upstream extensions.
-	 * @return The intended parent from this pipelined content provider.
-	 */
-	Object getPipelinedParent(Object anObject, Object aSuggestedParent);
-
-	/**
-	 * Intercept attempts to add elements directly to the viewer.
-	 * 
-	 * <p>
-	 * For content extensions that reshape the structure of children in a
-	 * viewer, their overridden extensions may sometimes use optimized refreshes
-	 * to add elements to the tree. These attempts must be intercepted and
-	 * mapped to the correct set of model elements in the overridding extension.
-	 * Clients may add, remove, or modify elements in the given set of added
-	 * children. Clients should return a set for downstream extensions to
-	 * massage further. 
-	 * </p>
-	 * <p>
-	 * Clients may change what parent the reshaped elements are added to, so
-	 * long as that parent is not the root of the viewer.
-	 * </p>
-	 * <p>
-	 * Clients should never create their own pipeline shape
-	 * modifications, but instead return the shape modification that was passed
-	 * in with appropriate changes.
-	 * </p>
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param anAddModification
-	 *            The shape modification which contains the current suggested
-	 *            parent and children. Clients may modify this parameter
-	 *            directly and return it as the new shape modification.
-	 * @return The new shape modification to use. Clients should <b>never</b>
-	 *         return <b>null</b> from this method.
-	 */
-	PipelinedShapeModification interceptAdd(
-			PipelinedShapeModification anAddModification);
-
-	/**
-	 * Intercept attempts to remove elements directly from the viewer.
-	 * 
-	 * <p>
-	 * For content extensions that reshape the structure of children in a
-	 * viewer, their overridden extensions may sometimes use optimized refreshes
-	 * to remove elements to the tree. These attempts must be intercepted and
-	 * mapped to the correct set of model elements in the overridding extension.
-	 * Clients may add, remove, or modify elements in the given set of removed
-	 * children. Clients should return a set for downstream extensions to
-	 * massage further.
-	 * </p>
-	 * <p>
-	 * The parent will be <b>null</b> for remove modifications.
-	 * <p>
-	 * Clients should never create their own pipeline shape
-	 * modifications, but instead return the shape modification that was passed
-	 * in with appropriate changes.
-	 * </p>
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param aRemoveModification
-	 *            The shape modification which contains the current suggested
-	 *            parent and children. Clients may modify this parameter
-	 *            directly and return it as the new shape modification.
-	 * @return The new shape modification to use. Clients should <b>never</b>
-	 *         return <b>null</b> from this method.
-	 */
-	PipelinedShapeModification interceptRemove(
-			PipelinedShapeModification aRemoveModification);
-
-	/**
-	 * Intercept calls to viewer <code>refresh()</code> methods.
-	 * 
-	 * <p>
-	 * Clients may modify the given update to add or remove the elements to be
-	 * refreshed. Clients may return the same instance that was passed in for
-	 * the next downstream extension.
-	 * </p>
-	 * 
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param aRefreshSynchronization
-	 *            The (current) refresh update to execute against the viewer.
-	 * @return True if the viewer update was modified.
-	 */
-	boolean interceptRefresh(PipelinedViewerUpdate aRefreshSynchronization);
-
-	/**
-	 * Intercept calls to viewer <code>update()</code> methods.
-	 * 
-	 * <p>
-	 * Clients may modify the given update to add or remove the elements to be
-	 * updated. Clients may also add or remove properties for the given targets
-	 * to optimize the refresh. Clients may return the same instance that was
-	 * passed in for the next downstream extension.
-	 * </p>
-	 * 
-	 * <p>
-	 * <b>Clients should not call any of the add, remove, refresh, or update
-	 * methods on the viewer from this method or any code invoked by the
-	 * implementation of this method.</b>
-	 * </p>
-	 * 
-	 * @param anUpdateSynchronization
-	 *            The (current) update to execute against the viewer.
-	 * @return True if the viewer update was modified.
-	 */
-	boolean interceptUpdate(PipelinedViewerUpdate anUpdateSynchronization);
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/MenuInsertionPoint.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/MenuInsertionPoint.java
deleted file mode 100644
index 589383c..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/MenuInsertionPoint.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.navigator;
-
-/**
- * A descriptive construct to relay information about a menu insertion point;
- * including the name of the insertion point and whether the item should be
- * rendered as a separator or group marker.
- * 
- * @since 3.2
- * 
- */
-public final class MenuInsertionPoint {
-	private String name;
-
-	private boolean isSeparator;
-	
-	private String toString;
-
-	/**
-	 * 
-	 * @param aName
-	 *            The name that clients will refer to when inserting items into
-	 *            the menu at this point.
-	 * @param toMakeASeparator
-	 *            A value of true will cause the point to be rendered as a
-	 *            org.eclipse.jface.action.Separator (a "bar" in the menu);
-	 *            false will cause the point to be rendered as a
-	 *            org.eclipse.jface.action.GroupMarker.
-	 */
-	public MenuInsertionPoint(String aName, boolean toMakeASeparator) {
-		name = aName;
-		isSeparator = toMakeASeparator;
-	}
-
-	/**
-	 * 
-	 * @return True if the point should be rendered as a
-	 *         org.eclipse.jface.action.Separator (a "bar" in the menu); or
-	 *         false if the point should be rendered as a
-	 *         org.eclipse.jface.action.GroupMarker.
-	 */
-	public boolean isSeparator() {
-		return isSeparator;
-	}
-
-	/**
-	 * 
-	 * @return The name that clients will refer to when inserting items into the
-	 *         menu at this point.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	public String toString() { 
-		if(toString == null) {
-			toString = "MenuInsertionPoint[name=\""+name+"\", isSeparator="+isSeparator+"]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		return toString;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/NavigatorActionService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/NavigatorActionService.java
deleted file mode 100644
index 4ebfccc..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/NavigatorActionService.java
+++ /dev/null
@@ -1,357 +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.navigator;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.actions.CommonActionDescriptorManager;
-import org.eclipse.ui.internal.navigator.actions.CommonActionProviderDescriptor;
-import org.eclipse.ui.internal.navigator.extensions.CommonActionExtensionSite;
-import org.eclipse.ui.internal.navigator.extensions.SkeletonActionProvider;
-
-/**
- * <p>
- * Provides context menu items and {@link IActionBars} contributions for a particular abstract
- * viewer. The interface matches that of {@link ActionGroup} and may be used in the same manner.
- * Clients must call
- * {@link NavigatorActionService#prepareMenuForPlatformContributions(MenuManager, ISelectionProvider, boolean)}
- * when using this class to allow object or viewer contributions. The
- * <b>org.eclipse.ui.navigator.viewer/viewer/popupMenu</b> element may override whether platform
- * contributions are allowed to the menu with its <i>allowsPlatformContributions</i> attribute.
- * "Platform Contributions" are menu items that are added through the <b>org.eclipse.ui.popupMenus</b>
- * extension point.
- * </p>
- * <p>
- * A {@link CommonActionProvider} has opportunities to contribute to the context menu and
- * {@link org.eclipse.ui.IActionBars} whenever the selection in the viewer changes. Action Providers
- * are selected based on the enablement expressions of their associated content extension or their
- * own enablement expression if it is declared as a top-level &lt;actionProvider /&gt; element (of
- * the <b>org.eclipse.ui.navigator.navigatorContent</b> extension point). See the schema
- * documentation of <b>org.eclipse.ui.navigator.navigatorContent</b> for more information on how to
- * specify an Action Provider.
- * </p>
- * <p>
- * Clients that reuse this service outside of an instance of {@link CommonNavigator} must be sure
- * that {{@link #fillActionBars(IActionBars)} is called whenever the selection changes. The
- * retargetable actions for each selection could change, based on who contributed the items.
- * 
- * @since 3.2
- * 
- */
-public final class NavigatorActionService extends ActionGroup implements IMementoAware {
-
-	private static final IContributionItem[] DEFAULT_GROUPS = new IContributionItem[]{new Separator(ICommonMenuConstants.GROUP_NEW), new GroupMarker(ICommonMenuConstants.GROUP_GOTO), new GroupMarker(ICommonMenuConstants.GROUP_OPEN), new GroupMarker(ICommonMenuConstants.GROUP_OPEN_WITH), new Separator(ICommonMenuConstants.GROUP_EDIT), new GroupMarker(ICommonMenuConstants.GROUP_SHOW), new GroupMarker(ICommonMenuConstants.GROUP_REORGANIZE), new GroupMarker(ICommonMenuConstants.GROUP_PORT), new Separator(ICommonMenuConstants.GROUP_GENERATE), new Separator(ICommonMenuConstants.GROUP_SEARCH), new Separator(ICommonMenuConstants.GROUP_BUILD), new Separator(ICommonMenuConstants.GROUP_ADDITIONS), new Separator(ICommonMenuConstants.GROUP_PROPERTIES)};
-
-	private final ICommonViewerSite commonViewerSite;
-
-	private final StructuredViewer structuredViewer;
-
-	private final NavigatorContentService contentService;
-
-	private final INavigatorViewerDescriptor viewerDescriptor;
-
-	private final Set actionProviderDescriptors = new HashSet();
-
-	/*
-	 * Map of CommonActionProviderDescriptors to CommonActionProviders
-	 */
-	private final Map actionProviderInstances = new HashMap();
-
-	private IMemento memento;
-
-	private IContributionItem[] menuGroups;
-
-	private boolean disposed = false;
-
-	/**
-	 * @param aCommonViewerSite
-	 *            A site that provides information about the context for extensions.
-	 * @param aStructuredViewer
-	 *            The associated StructuredViewer. Used to initialize extensions. <b>May NOT be
-	 *            null.</b>
-	 * @param aContentService
-	 *            The associated INavigatorContentService (for extensions that coordinate behavior
-	 *            with content extensions -- either nested or top-level action providers). <b>May
-	 *            NOT be null.</b>
-	 */
-	public NavigatorActionService(ICommonViewerSite aCommonViewerSite, StructuredViewer aStructuredViewer, INavigatorContentService aContentService) {
-		super();
-		Assert.isNotNull(aCommonViewerSite);
-		Assert.isNotNull(aStructuredViewer);
-		Assert.isNotNull(aContentService);
-
-		commonViewerSite = aCommonViewerSite;
-		contentService = (NavigatorContentService) aContentService;
-		structuredViewer = aStructuredViewer;
-		viewerDescriptor = contentService.getViewerDescriptor();
-
-	}
-
-	/**
-	 * Prepares the menu for object contributions, if the option is set in the extension. The option
-	 * is controlled by the &lgt;popupMenu /&gt; element's 'allowPlatformContributions' attribute.
-	 * Clients may choose to ignore this setting by supplying a value of <b>true</b> for the
-	 * <code>force</code> attribute.
-	 * 
-	 * @param menu
-	 *            The context menu of the IViewPart
-	 * @param aSelectionProvider
-	 *            The selection provider that will supplement actions with a valid, current
-	 *            selection.
-	 * @param force
-	 *            A value of 'true' forces the menu to be registered for object/view contributions.
-	 *            Otherwise, the option from the extension point will be respected. See
-	 *            <b>org.eclipse.ui.navigator.viewer/viewer</b> for more information.
-	 */
-	public void prepareMenuForPlatformContributions(MenuManager menu, ISelectionProvider aSelectionProvider, boolean force) {
-		Assert.isTrue(!disposed);
-
-		if (commonViewerSite instanceof ICommonViewerWorkbenchSite) {
-			/*
-			 * Hooks into the Eclipse framework for Object contributions, and View contributions.
-			 */
-			if (force || viewerDescriptor.allowsPlatformContributionsToContextMenu()) {
-				((ICommonViewerWorkbenchSite) commonViewerSite).registerContextMenu(contentService.getViewerDescriptor().getPopupMenuId(), menu, aSelectionProvider);
-			}
-		}
-	}
-
-	/**
-	 * Requests that the service invoke extensions to fill the given menu with Action Providers that
-	 * are interested in elements from the given selection.
-	 * 
-	 * <p>
-	 * Object contributions (see <b>org.eclipes.ui.popupMenus</b>) may also respected by this
-	 * method if <code>toRespectObjectContributions</code> is true.
-	 * </p>
-	 * 
-	 * @param aMenu
-	 *            The menu being presented to the user.
-	 * @see ActionGroup#fillContextMenu(IMenuManager)
-	 */
-	public void fillContextMenu(IMenuManager aMenu) {
-		Assert.isTrue(!disposed);
-
-		if (menuGroups == null) {
-			createMenuGroups();
-		}
-
-		for (int i = 0; i < menuGroups.length; i++) {
-			aMenu.add(menuGroups[i]);
-		}
-
-		addCommonActionProviderMenu(aMenu);
-
-	}
-
-	private void createMenuGroups() {
-		MenuInsertionPoint[] customPoints = viewerDescriptor.getCustomInsertionPoints();
-
-		if (customPoints == null) {
-			menuGroups = DEFAULT_GROUPS;
-		} else {
-			menuGroups = new IContributionItem[customPoints.length];
-			for (int i = 0; i < customPoints.length; i++) {
-				if (customPoints[i].isSeparator()) {
-					menuGroups[i] = new Separator(customPoints[i].getName());
-				} else {
-					menuGroups[i] = new GroupMarker(customPoints[i].getName());
-				}
-			}
-		}
-	}
-
-	/**
-	 * @param aMenu
-	 */
-	private void addCommonActionProviderMenu(IMenuManager aMenu) {
-
-		CommonActionProviderDescriptor[] providerDescriptors = CommonActionDescriptorManager.getInstance().findRelevantActionDescriptors(contentService, getContext());
-		if (providerDescriptors.length > 0) {
-			CommonActionProvider provider = null;
-			for (int i = 0; i < providerDescriptors.length; i++) {
-				try {
-					provider = getActionProviderInstance(providerDescriptors[i]);
-					provider.setContext(getContext());
-					provider.fillContextMenu(aMenu);
-				} catch (Throwable t) {
-					NavigatorPlugin.logError(0, t.getMessage(), t);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Request that the service invoke extensions to fill the given IActionBars with retargetable
-	 * actions or view menu contributions from Action Providers that are interested in the given
-	 * selection.
-	 * 
-	 * @param theActionBars
-	 *            The action bars in use by the current view site.
-	 * @see ActionGroup#fillActionBars(IActionBars)
-	 */
-	public void fillActionBars(IActionBars theActionBars) {
-		Assert.isTrue(!disposed);
-
-		theActionBars.clearGlobalActionHandlers();
-		ActionContext context = getContext();
-		if (context == null) {
-			context = new ActionContext(StructuredSelection.EMPTY);
-		}
-
-		CommonActionProviderDescriptor[] providerDescriptors = CommonActionDescriptorManager.getInstance().findRelevantActionDescriptors(contentService, context);
-		if (providerDescriptors.length > 0) {
-			CommonActionProvider provider = null;
-			for (int i = 0; i < providerDescriptors.length; i++) {
-				try {
-					provider = getActionProviderInstance(providerDescriptors[i]);
-					if(provider != null) {
-						provider.setContext(context);
-						provider.fillActionBars(theActionBars);
-						provider.updateActionBars();
-					}
-
-				} catch (RuntimeException e) {
-					NavigatorPlugin.logError(0, e.getMessage(), e);
-				}
-			}
-		}
-		theActionBars.updateActionBars();
-		theActionBars.getMenuManager().update();
-	}
-
-	/**
-	 * Dispose of any state or resources held by the service.
-	 * 
-	 * @see ActionGroup#dispose()
-	 */
-	public void dispose() {
-		synchronized (actionProviderInstances) {
-			for (Iterator iter = actionProviderInstances.values().iterator(); iter.hasNext();) {
-				CommonActionProvider element = (CommonActionProvider) iter.next();
-				element.dispose();
-			}
-			actionProviderInstances.clear();
-		}
-		actionProviderDescriptors.clear();
-		disposed = false;
-	}
-
-	/**
-	 * Use the given memento to restore the state of each Action Provider as it is initialized.
-	 * 
-	 * @param aMemento
-	 *            The memento retrieved from the dialog settings
-	 */
-	public void restoreState(IMemento aMemento) {
-		Assert.isTrue(!disposed);
-		memento = aMemento;
-
-		synchronized (actionProviderInstances) {
-			for (Iterator actionProviderIterator = actionProviderInstances.values().iterator(); actionProviderIterator.hasNext();) {
-				final CommonActionProvider provider = (CommonActionProvider) actionProviderIterator.next();
-				ISafeRunnable runnable = new ISafeRunnable() {
-					public void run() throws Exception {
-						provider.restoreState(memento);
-					}
-
-					public void handleException(Throwable exception) {
-						NavigatorPlugin.logError(0, "Could not restore state for action provider " + provider.getClass(), exception); //$NON-NLS-1$
-
-					}
-				};
-				SafeRunner.run(runnable);
-
-			}
-		}
-	}
-
-	/**
-	 * Request that Action Providers save any state that they find interesting.
-	 * 
-	 * @param aMemento
-	 *            The memento retrieved from the dialog settings
-	 */
-	public void saveState(IMemento aMemento) {
-		Assert.isTrue(!disposed);
-
-		memento = aMemento;
-		CommonActionProvider provider = null;
-		synchronized (actionProviderInstances) {
-			for (Iterator actionProviderIterator = actionProviderInstances.values().iterator(); actionProviderIterator.hasNext();) {
-				provider = (CommonActionProvider) actionProviderIterator.next();
-				provider.saveState(memento);
-			}
-		}
-	}
-
-	private CommonActionProvider getActionProviderInstance(
-			CommonActionProviderDescriptor aProviderDescriptor) {
-		CommonActionProvider provider = null;
-		try {
-			provider = (CommonActionProvider) actionProviderInstances
-					.get(aProviderDescriptor);
-			if (provider != null) {
-				return provider;
-			}
-			synchronized (actionProviderInstances) {
-				provider = (CommonActionProvider) actionProviderInstances
-						.get(aProviderDescriptor);
-				if (provider == null) {
-					provider = aProviderDescriptor.createActionProvider();
-					if (provider != null) {
-						initialize(aProviderDescriptor.getId(), provider);
-						actionProviderInstances.put(aProviderDescriptor, provider);
-					} else {
-						actionProviderInstances.put(aProviderDescriptor,
-								(provider = SkeletonActionProvider.INSTANCE));
-					}
-				}
-			}
-		} catch(Throwable t) {
-			NavigatorPlugin.logError(0, t.getMessage(), t);
-		}
-		return provider;
-	}
-
-	private void initialize(String id, CommonActionProvider anActionProvider) {
-		if (anActionProvider != null && anActionProvider != SkeletonActionProvider.INSTANCE) {
-			ICommonActionExtensionSite configuration = new CommonActionExtensionSite(id, commonViewerSite, contentService, structuredViewer);
-			anActionProvider.init(configuration);
-			anActionProvider.restoreState(memento);
-			anActionProvider.setContext(new ActionContext(StructuredSelection.EMPTY));
-			if (commonViewerSite instanceof ICommonViewerWorkbenchSite) {
-				anActionProvider.fillActionBars(((ICommonViewerWorkbenchSite) commonViewerSite).getActionBars());
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/NavigatorContentServiceFactory.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/NavigatorContentServiceFactory.java
deleted file mode 100644
index fb39881..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/NavigatorContentServiceFactory.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.navigator;
-
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-
-
-/**
- * Provides a factory pattern for creating {@link INavigatorContentService}s 
- * for given viewer ids.  
- * 
- * <p>
- * Clients may supply the viewer in {@link #createContentService(String, StructuredViewer) }
- * or wait until the content provider is created by the service 
- * and set on the viewer. When the content provider is set, the 
- * viewer will call inputChanged(), and the content service
- * will update its managed viewer accordingly. Therefore, each
- * content service should be attached to at most one viewer. 
- * </p>
- *  
- * @since 3.2  
- *
- */
-public final class NavigatorContentServiceFactory {
-	
-	/**
-	 * The singleton instance for creating NavigatorContentServices. 
-	 */
-	public static final NavigatorContentServiceFactory INSTANCE = new NavigatorContentServiceFactory(); 
-	
-	
-	/**
-	 * Returns an instance of INavigatorContentService configured 
-	 * for the given id. Instances are not shared for the same 
-	 * viewerId. 
-	 * 
-	 * @param aViewerId The viewer id of interest
-	 * @return An instance of INavigatorContentService configured for the given id. 
-	 */
-	public INavigatorContentService createContentService(String aViewerId) { 
-		return createContentService(aViewerId, null);
-	}
-	
-	/**
-	 * Returns an instance of INavigatorContentService configured 
-	 * for the given id. Instances are not shared for the same 
-	 * viewerId. 
-	 * 
-	 * @param aViewerId The viewer id of interest
-	 * @param aViewer The content service can use the given viewer to initialize content providers 
-	 * @return An instance of INavigatorContentService configured for the given id. 
-	 * @see IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, Object, Object)
-	 */
-	public INavigatorContentService createContentService(String aViewerId, StructuredViewer aViewer) {
-		if(aViewer == null) {
-			return new NavigatorContentService(aViewerId);
-		}
-		return new NavigatorContentService(aViewerId, aViewer);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/PipelinedShapeModification.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/PipelinedShapeModification.java
deleted file mode 100644
index 04587fe..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/PipelinedShapeModification.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.navigator;
-
-import java.util.Set;
-
-/**
- * 
- * Indicates how a shape modification should be transformed when applied to the
- * tree. Clients use {@link PipelinedShapeModification} as the input and return
- * type from intercept methods on {@link IPipelinedTreeContentProvider}.
- * 
- * <p>
- * Overridding extensions should use these to map attempts to directly modify
- * the tree down to the overridden model. A shape modification can either be an
- * <i>add</i> or <i>remove</i> shape modification, and the type is determined
- * by the context of its use. If supplied to an <code>interceptRemove</code>
- * method, then it is a remove shape modification, otherwise if supplied to an
- * <code>interceptAdd</code> method, then it is an add shape modification.
- * </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 final class PipelinedShapeModification {
-
-	private Object parent;
-
-	private final Set children;
-
-	/**
-	 * Create a shape modification. The given parent and children will be set as
-	 * the initial values for the shape modification.
-	 * 
-	 * @param aParent
-	 *            The parent for the add or remove call to the tree.
-	 * @param theChildren
-	 *            The children that should be added or removed from the tree.
-	 */
-	public PipelinedShapeModification(Object aParent, Set theChildren) {
-		parent = aParent;
-		children = theChildren;
-	}
-
-	/**
-	 * 
-	 * @return The parent to use for the shape modification.
-	 */
-	public final Object getParent() {
-		return parent;
-	}
-
-	/**
-	 * 
-	 * @param aParent
-	 *            The parent to use for the shape modification.
-	 */
-	public final void setParent(Object aParent) {
-		parent = aParent;
-	}
-
-	/**
-	 * 
-	 * @return The current set of children. Clients may add or remove elements
-	 *         directly to this set.
-	 */
-	public final Set getChildren() {
-		return children;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/PipelinedViewerUpdate.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/PipelinedViewerUpdate.java
deleted file mode 100644
index b02d486..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/PipelinedViewerUpdate.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.ui.navigator;
-
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-
-/**
- * 
- * A pipelined viewer update should map requests to refresh or update elements
- * in the viewer to their correct, modified structure. Clients use
- * {@link PipelinedViewerUpdate} as the input and return type from intercept
- * methods on {@link IPipelinedTreeContentProvider}.
- * 
- * <p>
- * Clients should use the viewer update to describe how the request from the
- * upstream extension (see {@link IPipelinedTreeContentProvider} for more
- * information on <i>upstream</i> extensions) should be reshaped when applied
- * to the tree. A request from an upstream extension to refresh a given element
- * could result in multiple refresh requests from downstream extensions.
- * Therefore, the refresh targets are modeled as a set.
- * </p>
- * <p>
- * Initially, this set will contain the original element that was passed to the
- * refresh requests. Clients may squash the refresh by clearing the set, change
- * the original target by removing the current element and adding a new target,
- * or expand the refresh by adding more elements to the set.
- * </p>
- * <p>
- * A pipelined extension may receive a {@link PipelinedViewerUpdate} as the
- * result of a call to {@link AbstractTreeViewer#refresh()}-methods or
- * {@link AbstractTreeViewer#update(Object, String[])}-methods. The
- * <code>properties</code> field is only applicable for <code>update()</code>
- * calls and the <code>updateLabels</code> field is only applicable for
- * <code>refresh()</code> calls.
- * </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 final class PipelinedViewerUpdate {
-
-	private static final String[] NO_PROPERTIES = new String[0];
-
-	private final Set refreshTargets = new LinkedHashSet();
-
-	private boolean updateLabels = false;
-
-	private Map properties;
-
-	/**
-	 * Properties allow optimization for <code>update</code> calls.
-	 * 
-	 * @param aTarget
-	 *            The target which may have specific properties associated with
-	 *            it for an optimized refresh.
-	 * 
-	 * @return Returns the properties for the given target. If no properties are
-	 *         specified, then an empty array is returned. <b>null</b> will
-	 *         never be returned.
-	 */
-	public final String[] getProperties(Object aTarget) {
-		if (properties != null && properties.containsKey(aTarget)) {
-			String[] props = (String[]) properties.get(aTarget);
-			return props != null ? props : NO_PROPERTIES;
-		}
-		return NO_PROPERTIES;
-	}
-
-	/**
-	 * 
-	 * Properties allow optimization for <code>update</code> calls.
-	 * 
-	 * @param aTarget
-	 *            The target of the properties.
-	 * @param theProperties
-	 *            The properties to pass along to the <code>update</code>
-	 *            call.
-	 * @see AbstractTreeViewer#update(Object, String[])
-	 */
-	public final void setProperties(Object aTarget, String[] theProperties) {
-		if (theProperties != null && theProperties.length > 0) {
-			if (properties == null) {
-				properties = new HashMap();
-			}
-			properties.put(aTarget, theProperties);
-
-		} else {
-			properties.remove(aTarget);
-		}
-
-		if (properties.size() == 0) {
-			properties = null;
-		}
-
-	}
-
-	/**
-	 * @return Returns the current set of refresh targets. Clients may add or
-	 *         remove directly to or from this set.
-	 */
-	public final Set getRefreshTargets() {
-		return refreshTargets;
-	}
-
-	/**
-	 * @return Returns the true if the labels should also be updated during the
-	 *         <code>refresh</code>.
-	 */
-	public final boolean isUpdateLabels() {
-		return updateLabels;
-	}
-
-	/**
-	 * @param toUpdateLabels
-	 *            True indicates that calls to <code>refresh</code> should
-	 *            force the update of the labels in addition to refreshing the
-	 *            structure.
-	 */
-	public final void setUpdateLabels(boolean toUpdateLabels) {
-		updateLabels = toUpdateLabels;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/Priority.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/Priority.java
deleted file mode 100644
index 61164db..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/Priority.java
+++ /dev/null
@@ -1,227 +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.navigator;
-
-/**
- * <p>
- * Enumeration of the Priority values supported by the Common Navigator.
- * </p>
- *  
- * @since 3.2
- */
-public final class Priority {
-
-	/**
-	 * Indicates Highest priority as an int.
-	 */
-	public static final int HIGHEST_PRIORITY_VALUE = 0;
-
-	/**
-	 * Indicates Higher priority as an int.
-	 */
-	public static final int HIGHER_PRIORITY_VALUE = 1;
-
-	/**
-	 * Indicates High priority as an int.
-	 */
-	public static final int HIGH_PRIORITY_VALUE = 2;
-
-	/**
-	 * Indicates Normal priority as an int.
-	 */
-	public static final int NORMAL_PRIORITY_VALUE = 3;
-
-	/**
-	 * Indicates Low priority as an int.
-	 */
-	public static final int LOW_PRIORITY_VALUE = 4;
-
-	/**
-	 * Indicates Lower priority as an int.
-	 */
-	public static final int LOWER_PRIORITY_VALUE = 5;
-
-	/**
-	 * Indicates Lowest priority as an int.
-	 */
-	public static final int LOWEST_PRIORITY_VALUE = 6;
-
-	/**
-	 * Indicates Highest priority as a String.
-	 */
-	public static final String HIGHEST_PRIORITY_LITERAL = "highest"; //$NON-NLS-1$
-
-	/**
-	 * Indicates Higher priority as a String.
-	 */
-	public static final String HIGHER_PRIORITY_LITERAL = "higher"; //$NON-NLS-1$
-
-	/**
-	 * Indicates High priority as a String.
-	 */
-	public static final String HIGH_PRIORITY_LITERAL = "high"; //$NON-NLS-1$
-
-	/**
-	 * Indicates Normal priority as a String.
-	 */
-	public static final String NORMAL_PRIORITY_LITERAL = "normal"; //$NON-NLS-1$
-
-	/**
-	 * Indicates Low priority as a String.
-	 */
-	public static final String LOW_PRIORITY_LITERAL = "low"; //$NON-NLS-1$
-
-	/**
-	 * Indicates Lower priority as a String.
-	 */
-	public static final String LOWER_PRIORITY_LITERAL = "lower"; //$NON-NLS-1$
-
-	/**
-	 * Indicates Lowest priority as a String.
-	 */
-	public static final String LOWEST_PRIORITY_LITERAL = "lowest"; //$NON-NLS-1$
-
-	/**
-	 * Indicates Highest priority as a Priority enumeration.
-	 */
-	public static final Priority HIGHEST = new Priority(HIGHEST_PRIORITY_VALUE,
-			HIGHEST_PRIORITY_LITERAL);
-
-	/**
-	 * Indicates Higher priority as a Priority enumeration.
-	 */
-	public static final Priority HIGHER = new Priority(HIGHER_PRIORITY_VALUE,
-			HIGHER_PRIORITY_LITERAL);
-
-	/**
-	 * Indicates High priority as a Priority enumeration.
-	 */
-	public static final Priority HIGH = new Priority(HIGH_PRIORITY_VALUE,
-			HIGH_PRIORITY_LITERAL);
-
-	/**
-	 * Indicates Normal priority as a Priority enumeration.
-	 */
-	public static final Priority NORMAL = new Priority(NORMAL_PRIORITY_VALUE,
-			NORMAL_PRIORITY_LITERAL);
-
-	/**
-	 * Indicates Low priority as a Priority enumeration.
-	 */
-	public static final Priority LOW = new Priority(LOW_PRIORITY_VALUE,
-			LOW_PRIORITY_LITERAL);
-
-	/**
-	 * Indicates Lower priority as a Priority enumeration.
-	 */
-	public static final Priority LOWER = new Priority(LOWER_PRIORITY_VALUE,
-			LOWER_PRIORITY_LITERAL);
-
-	/**
-	 * Indicates Lowest priority as a Priority enumeration.
-	 */
-	public static final Priority LOWEST = new Priority(LOWEST_PRIORITY_VALUE,
-			LOWEST_PRIORITY_LITERAL);
-
-	/**
-	 * The ordered array of possible enumeration values (0=> Highest,
-	 * length-1=>Lowest)
-	 */
-	public static final Priority[] ENUM_ARRAY = new Priority[] { HIGHEST,
-			HIGHER, HIGH, NORMAL, LOW, LOWER, LOWEST };
-
-	/**
-	 * 
-	 * Returns the correct instance of the Priority ENUM for aLiteral.
-	 * 
-	 * <p>
-	 * This method will return NORMAL if the supplied value of aLiteral is
-	 * invalid.
-	 * </p>
-	 * 
-	 * @param aLiteral
-	 *            One of the defined *_LITERAL constants of this class
-	 * @return The corresponding Priority Enum or NORMAL if aLiteral is invalid
-	 */
-	public static Priority get(String aLiteral) {
-		for (int i = 0; i < ENUM_ARRAY.length; i++) {
-			if (ENUM_ARRAY[i].getLiteral().equals(aLiteral)) {
-				return ENUM_ARRAY[i];
-			}
-		}
-		return NORMAL;
-	}
-
-	/**
-	 * 
-	 * Returns the correct instance of the Priority ENUM for aValue.
-	 * 
-	 * <p>
-	 * This method will return NORMAL if the supplied value of aValue is
-	 * invalid.
-	 * </p>
-	 * 
-	 * @param aValue
-	 *            One of the defined *_VALUE constants of this class
-	 * @return The corresponding Priority Enum or NORMAL if aValue is invalid
-	 */
-	public static Priority get(int aValue) {
-
-		switch (aValue) {
-		case HIGHEST_PRIORITY_VALUE:
-			return HIGHEST;
-		case HIGHER_PRIORITY_VALUE:
-			return HIGHER;
-		case HIGH_PRIORITY_VALUE:
-			return HIGH;
-		case LOWER_PRIORITY_VALUE:
-			return LOWER;
-		case LOWEST_PRIORITY_VALUE:
-			return LOWEST;
-		case NORMAL_PRIORITY_VALUE:
-		default:
-			return NORMAL;
-		}
-	}
-
-	private final int value;
-
-	private final String literal;
-
-	protected Priority(int aValue, String aLiteral) {
-		value = aValue;
-		literal = aLiteral;
-	}
-
-	/**
-	 * 
-	 * @return The literal string for this specific Priority.
-	 */
-	public String getLiteral() {
-		return literal;
-	}
-
-	/**
-	 * 0 is the lowest priority; 7 is the highest.
-	 * 
-	 * @return The integer value for this specific Priority. 
-	 */
-	public int getValue() {
-		return value;
-	}
-	
-	/* (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return "Priority ["+getLiteral()+"]";  //$NON-NLS-1$//$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/SaveablesProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/SaveablesProvider.java
deleted file mode 100644
index 10c2034..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/SaveablesProvider.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.ui.navigator;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.ISaveablesLifecycleListener;
-import org.eclipse.ui.Saveable;
-import org.eclipse.ui.SaveablesLifecycleEvent;
-import org.eclipse.ui.services.IDisposable;
-
-/**
- * Provides {@link Saveable} objects to the common navigator, and allows to map
- * between elements in the tree and models.
- * <p>
- * This class is intended to be subclassed by clients.
- * </p>
- * Instances of subclasses will be returned from content extensions that
- * implement {@link IAdaptable}.
- * 
- * @since 3.2
- * 
- */
-public abstract class SaveablesProvider implements IDisposable {
-
-	private ISaveablesLifecycleListener listener;
-
-	/**
-	 * Creates a new saveable model provider. May only be called by subclasses.
-	 * 
-	 */
-	protected SaveablesProvider() {
-	}
-
-	/**
-	 * Initializes this SaveablesProvider with the given listener, and calls the hook method doInit().
-	 * 
-	 * @param listener
-	 */
-	final public void init(ISaveablesLifecycleListener listener) {
-		this.listener = listener;
-		doInit();
-	}
-
-	/**
-	 * May be overridden by clients. The default implementation does nothing.
-	 */
-	protected void doInit() {
-	}
-
-	/**
-	 * Notifies the listener that the given models were opened in this model
-	 * provider. This method must be called on the UI thread.
-	 * 
-	 * @param models
-	 */
-	final protected void fireSaveablesOpened(Saveable[] models) {
-		listener.handleLifecycleEvent(new SaveablesLifecycleEvent(this,
-				SaveablesLifecycleEvent.POST_OPEN, models, false));
-	}
-
-	/**
-	 * Notifies the listener that the given models are about to be closed in
-	 * this model provider. This method must be called on the UI thread.
-	 * 
-	 * @param models
-	 * @param force
-	 *            true if the closing may be canceled by the user
-	 * @return true if the listener vetoed the closing (may be ignored if force
-	 *         is true)
-	 */
-	final protected boolean fireSaveablesClosing(Saveable[] models,
-			boolean force) {
-		SaveablesLifecycleEvent saveablesLifecycleEvent = new SaveablesLifecycleEvent(
-				this, SaveablesLifecycleEvent.PRE_CLOSE, models, force);
-		listener.handleLifecycleEvent(saveablesLifecycleEvent);
-		return saveablesLifecycleEvent.isVeto();
-	}
-
-	/**
-	 * Notifies the listener that the given models were closed in this model
-	 * provider. This method must be called on the UI thread.
-	 * 
-	 * @param models
-	 */
-	final protected void fireSaveablesClosed(Saveable[] models) {
-		listener.handleLifecycleEvent(new SaveablesLifecycleEvent(this,
-				SaveablesLifecycleEvent.POST_CLOSE, models, false));
-	}
-
-	/**
-	 * Notifies the listener that the given models' dirty state has changed.
-	 * This method must be called on the UI thread.
-	 * 
-	 * @param models
-	 */
-	final protected void fireSaveablesDirtyChanged(Saveable[] models) {
-		listener.handleLifecycleEvent(new SaveablesLifecycleEvent(this,
-				SaveablesLifecycleEvent.DIRTY_CHANGED, models, false));
-	}
-
-	/**
-	 * Returns the saveables reachable through this provider. Changes to the
-	 * list of saveables or to the saveables' dirty state must be announced
-	 * using the appropriate fire* methods.
-	 * 
-	 * @return the saveables returned by this saveables provider.
-	 */
-	public abstract Saveable[] getSaveables();
-
-	/**
-	 * Returns the elements representing the given saveable. It is recommended
-	 * that a saveable be represented by only one element.
-	 * 
-	 * @param saveable
-	 * @return the elements representing the given saveable (array may be empty)
-	 */
-	public abstract Object[] getElements(Saveable saveable);
-
-	/**
-	 * Returns the saveable for the given element, or null if the element does
-	 * not represent a saveable.
-	 * 
-	 * @param element
-	 * @return the saveable for the given element, or null
-	 */
-	public abstract Saveable getSaveable(Object element);
-
-	/**
-	 * Disposes of this saveables provider. Subclasses may extend, but must call
-	 * the super implementation.
-	 */
-	public void dispose() {
-		listener = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/WizardActionGroup.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/WizardActionGroup.java
deleted file mode 100644
index 66b0cad..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/WizardActionGroup.java
+++ /dev/null
@@ -1,323 +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.navigator;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.SortedSet;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.internal.navigator.wizards.CommonWizardDescriptor;
-import org.eclipse.ui.internal.navigator.wizards.CommonWizardDescriptorManager;
-import org.eclipse.ui.internal.navigator.wizards.WizardShortcutAction;
-import org.eclipse.ui.wizards.IWizardDescriptor;
-import org.eclipse.ui.wizards.IWizardRegistry;
-
-/**
- * 
- * Populates context menus with shortcut actions for defined wizards. Wizards
- * may be defined by any of the following extension points:
- * <p>
- * <ul>
- * <li><b>org.eclipse.ui.newWizards</b></li>
- * <li><b>org.eclipse.ui.importWizards</b></li>
- * <li><b>org.eclipse.ui.exportWizards</b></li>
- * </ul>
- * </p>
- * <p>
- * Here are the required steps for using this feature correctly:
- * <ol>
- * <li>Declare all new/import/export wizards from the extension points above,
- * or locate the existing wizards that you intend to reuse.</li>
- * <li>Declare <b>org.eclipse.ui.navigator.navigatorContent/commonWizard</b>
- * elements to identify which wizards should be associated with what items in
- * your viewer or navigator.</li>
- * <li>If you are using Resources in your viewer and have bound the resource
- * extension declared in <b>org.eclipse.ui.navigator.resources</b>, then you
- * will get most of this functionality for free.</li>
- * <li>Otherwise, you may choose to build your own custom menu. In which case,
- * you may instantiate this class, and hand it the menu or submenu that you want
- * to list out the available wizard shortcuts via
- * {@link WizardActionGroup#fillContextMenu(IMenuManager)}.</li>
- * </ol>
- * </p>
- * <p>
- * Clients may instantiate, but not subclass WizardActionGroup.
- * </p>
- * 
- * @see PlatformUI#getWorkbench()
- * @see IWorkbench#getNewWizardRegistry()
- * @see IWorkbench#getImportWizardRegistry()
- * @see IWorkbench#getExportWizardRegistry()
- * @since 3.2
- * 
- */
-public final class WizardActionGroup extends ActionGroup {
-
-	/**
-	 * The type for commonWizard extensions with the value "new" for their type
-	 * attribute.
-	 */
-	public static final String TYPE_NEW = "new"; //$NON-NLS-1$
-
-	/**
-	 * The type for commonWizard extensions with the value "new" for their type
-	 * attribute.
-	 */
-	public static final String TYPE_IMPORT = "import"; //$NON-NLS-1$
-
-	/**
-	 * The type for commonWizard extensions with the value "new" for their type
-	 * attribute.
-	 */
-	public static final String TYPE_EXPORT = "export"; //$NON-NLS-1$
-
-	private static final CommonWizardDescriptor[] NO_DESCRIPTORS = new CommonWizardDescriptor[0];
-	
-	private static final String[] NO_IDS = new String[0];  
-	
-	private CommonWizardDescriptor[] descriptors;
-
-	/* a map of (id, IAction)-pairs. */
-	private Map actions;
-
-	/*
-	 * the window is passed to created WizardShortcutActions for the shell and
-	 * selection service.
-	 */
-	private IWorkbenchWindow window;
-
-	/* the correct wizard registry for this action group (getRegistry()) */
-	private IWizardRegistry wizardRegistry; 
-
-	private boolean disposed = false;
-
-	private String type;
-
-	private INavigatorContentService contentService;
-
-	/**
-	 * 
-	 * @param aWindow
-	 *            The window that will be used to acquire a Shell and a
-	 *            Selection Service
-	 * @param aWizardRegistry
-	 *            The wizard registry will be used to locate the correct wizard
-	 *            descriptions.
-	 * @param aType
-	 *            Indicates the value of the type attribute of the commonWizard
-	 *            extension point. Use any of the TYPE_XXX constants defined on
-	 *            this class.
-	 * @see PlatformUI#getWorkbench()
-	 * @see IWorkbench#getNewWizardRegistry()
-	 * @see IWorkbench#getImportWizardRegistry()
-	 * @see IWorkbench#getExportWizardRegistry()
-	 */
-	public WizardActionGroup(IWorkbenchWindow aWindow,
-			IWizardRegistry aWizardRegistry, String aType) {
-		super();
-		Assert.isNotNull(aWindow);
-		Assert.isNotNull(aWizardRegistry);
-		Assert
-				.isTrue(aType != null
-						&& (TYPE_NEW.equals(aType) || TYPE_IMPORT.equals(aType) || TYPE_EXPORT
-								.equals(aType)));
-		window = aWindow;
-		wizardRegistry = aWizardRegistry;
-		type = aType;
-
-	}
-	
-
-	/**
-	 * 
-	 * @param aWindow
-	 *            The window that will be used to acquire a Shell and a
-	 *            Selection Service
-	 * @param aWizardRegistry
-	 *            The wizard registry will be used to locate the correct wizard
-	 *            descriptions.
-	 * @param aType
-	 *            Indicates the value of the type attribute of the commonWizard
-	 *            extension point. Use any of the TYPE_XXX constants defined on
-	 *            this class.
-	 * @param aContentService 
-	 * 			 The content service to use when deciding visibility.         
-	 * @see PlatformUI#getWorkbench()
-	 * @see IWorkbench#getNewWizardRegistry()
-	 * @see IWorkbench#getImportWizardRegistry()
-	 * @see IWorkbench#getExportWizardRegistry()
-	 */
-	public WizardActionGroup(IWorkbenchWindow aWindow,
-			IWizardRegistry aWizardRegistry, String aType, INavigatorContentService aContentService) {
-		this(aWindow, aWizardRegistry, aType);
-		contentService = aContentService;
-
-	}
-
-	public void setContext(ActionContext aContext) {
-		Assert.isTrue(!disposed);
-
-		super.setContext(aContext);
-		if (aContext != null) {
-			ISelection selection = aContext.getSelection();
-			Object element = null;
-			if (selection instanceof IStructuredSelection) {
-				element = ((IStructuredSelection) selection).getFirstElement();
-			}
-			if(element == null) {
-				element = Collections.EMPTY_LIST;
-			}
-			// null should be okay here
-			setWizardActionDescriptors(CommonWizardDescriptorManager.getInstance()
-					.getEnabledCommonWizardDescriptors(element, type, contentService));
-		} else {
-			setWizardActionDescriptors(NO_DESCRIPTORS);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public void fillContextMenu(IMenuManager menu) {
-		Assert.isTrue(!disposed);
- 
-		if (descriptors != null) { 
-			Map groups = findGroups(); 
-			SortedSet sortedWizards = null;
-			String menuGroupId = null;
-			for (Iterator menuGroupItr = groups.keySet().iterator(); menuGroupItr.hasNext();) {
-				menuGroupId = (String) menuGroupItr.next();
-				sortedWizards = (SortedSet) groups.get(menuGroupId); 
-				menu.add(new Separator(menuGroupId));
-				for (Iterator wizardItr = sortedWizards.iterator(); wizardItr.hasNext();) {
-					menu.add((IAction) wizardItr.next());				
-				}
-			} 
-		} 
-	}
-
-	/**
-	 * @return A Map of menuGroupIds to SortedSets of IActions. 
-	 */
-	private synchronized Map/*<String, SortedSet<IAction>>*/  findGroups() {  
-		IAction action = null;
-		Map groups = new TreeMap();
-		SortedSet sortedWizards = null;
-		String menuGroupId = null;
-		for (int i = 0; i < descriptors.length; i++) {
-			menuGroupId = descriptors[i].getMenuGroupId() != null ? 
-							descriptors[i].getMenuGroupId() : CommonWizardDescriptor.DEFAULT_MENU_GROUP_ID;
-			sortedWizards = (SortedSet) groups.get(menuGroupId);
-			if(sortedWizards == null) {
-				groups.put(descriptors[i].getMenuGroupId(), sortedWizards = new TreeSet(ActionComparator.INSTANCE));
-			}  
-			if ((action = getAction(descriptors[i].getWizardId())) != null) {
-				sortedWizards.add(action); 
-			}			
-		}
-		return groups;
-	}
-
-
-	public void dispose() {
-		super.dispose();
-		actions = null;
-		window = null;
-		descriptors = null;
-		wizardRegistry = null;
-		disposed = true;
-	}
-
-	/*
-	 * (non-Javadoc) Returns the action for the given wizard id, or null if not
-	 * found.
-	 */
-	protected IAction getAction(String id) {
-		if (id == null || id.length() == 0) {
-			return null;
-		}
-
-		// Keep a cache, rather than creating a new action each time,
-		// so that image caching in ActionContributionItem works.
-		IAction action = (IAction) getActions().get(id);
-		if (action == null) {
-			IWizardDescriptor descriptor = wizardRegistry.findWizard(id);
-			if (descriptor != null) {
-				action = new WizardShortcutAction(window, descriptor);
-				getActions().put(id, action);
-			}
-		}
-
-		return action;
-	}
-
-	/**
-	 * @return a map of (id, IAction)-pairs.
-	 */
-	protected Map getActions() {
-		if (actions == null) {
-			actions = new HashMap();
-		}
-		return actions;
-	}
-
-	/**
-	 * @return Returns the wizardActionIds.
-	 */
-	public synchronized String[] getWizardActionIds() { 
-		if(descriptors != null && descriptors.length > 0) { 
-			String[] wizardActionIds = new String[descriptors.length]; 
-			for (int i = 0; i < descriptors.length; i++) {
-				wizardActionIds[i] = descriptors[i].getWizardId();
-			}
-			return wizardActionIds;
-		}
-		return NO_IDS;
-	}
-
-	/**
-	 * @param theWizardDescriptors
-	 *            The wizard action ids to set. These should be defined through
-	 *            <b>org.eclipse.ui.xxxWizards</b>
-	 */
-	protected synchronized void setWizardActionDescriptors(CommonWizardDescriptor[] theWizardDescriptors) { 
-		descriptors = theWizardDescriptors;
-	}
-	  
-	private static class ActionComparator implements Comparator {
-		
-		private static final ActionComparator INSTANCE = new ActionComparator();
-		/* (non-Javadoc)
-		 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-		 */
-		public int compare(Object arg0, Object arg1) {
-			return ((IAction)arg0).getText().compareTo(((IAction)arg1).getText());
-		}
-	} 
-}
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/package.html b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/package.html
deleted file mode 100644
index 2a81cf8..0000000
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/package.html
+++ /dev/null
@@ -1,12 +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 Common Navigator framework. Services allow clients to contribute
-reusable content/label providers and define viewers that use the available content/label
-providers.
-</body>
-</html>
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 bd7bc22..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.project
+++ /dev/null
@@ -1,30 +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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</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 f76a4fb..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:19:24 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=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.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 edc2d12..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:19:24 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.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 0db1acc..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.0.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)"
-Eclipse-LazyStart: true
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
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/component.xml b/bundles/org.eclipse.ui.presentations.r21/component.xml
deleted file mode 100644
index 23e684d..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/component.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<component xmlns="http://eclipse.org/component"
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://eclipse.org/component ../component.xsd "
-   name="Platform UI R2.1 Presentation">
- <plugin id="org.eclipse.ui.presentations.r21" />
-
- <!-- No API packages -->
-
- <component-depends unrestricted="true"/>
-</component>
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 9c61924..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21BasicStackPresentation.java
+++ /dev/null
@@ -1,1201 +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
- *     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;
-
-	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
-	 */
-	protected R21PaneFolder getPaneFolder() {
-		return paneFolder;
-	}
-
-	/**
-	 * Returns true iff the underlying tab folder has been disposed.
-	 * 
-	 * @return
-	 */
-	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();
-	}
-
-	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();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setActive(boolean)
-	 */
-	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.
-	 */
-	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);
-		}
-	}
-
-	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);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#getSystemMenuManager()
-	 */
-	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()]);
-	}
-
-	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();
-	}
-
-	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 34cbe21..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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 = preferenceStore
-			.getInt(IPreferenceConstants.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()]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#getCurrentPart()
-	 */
-	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 f8cc2ec..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21ViewStackPresentation.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.internal.IPreferenceConstants;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-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 {
-
-    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 = preferenceStore.getInt(IPreferenceConstants.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 8210df9..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21Colors.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.
-     */
-    static public Color[] getActiveEditorGradient() {
-        return activeEditorGradient;
-    }
-
-    /**
-     * Returns the active editor gradient end 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.
-     */
-    static public int[] getActiveEditorGradientPercents() {
-        return activeEditorPercentages;
-    }
-
-    /**
-     * Returns the active editor gradient start 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.
-     */
-    static public Color[] getActiveNoFocusEditorGradient() {
-        return activeNoFocusEditorGradient;
-    }
-
-    /**
-     * Returns the active no focus editor gradient percents.
-     */
-    static public int[] getActiveNoFocusEditorGradientPercents() {
-        return activeNoFocusEditorPercentages;
-    }
-
-    /**
-     * Returns the active gradient for views.
-     */
-    static public Color[] getActiveViewGradient() {
-        return activeViewGradient;
-    }
-
-    /**
-     * Returns the active view gradient end 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.
-     */
-    static public int[] getActiveViewGradientPercents() {
-        return activeViewPercentages;
-    }
-
-    /**
-     * Returns the active view gradient start 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.
-     */
-    static public Color[] getDeactivatedEditorGradient() {
-        return deactivatedEditorGradient;
-    }
-
-    /**
-     * Returns the editor gradient percents when the window is deactivated.
-     */
-    static public int[] getDeactivatedEditorGradientPercents() {
-        return deactivatedEditorPercentages;
-    }
-
-    /**
-     * Returns the gradient for views when the window is deactivated.
-     */
-    static public Color[] getDeactivatedViewGradient() {
-        return deactivatedViewGradient;
-    }
-
-    /**
-     * Returns the view gradient percents when the window is deactivated.
-     */
-    static public int[] getDeactivatedViewGradientPercents() {
-        return deactivatedViewPercentages;
-    }
-
-    /**
-     * Returns a color identified by an RGB value.
-     */
-    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.
-     */
-    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 34755f2..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationPlugin.java
+++ /dev/null
@@ -1,86 +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.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.
-     */
-    public static R21PresentationPlugin 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 = R21PresentationPlugin.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;
-    }
-
-    /* (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 6030b0d..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, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, 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 868ade2..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolder.java
+++ /dev/null
@@ -1,2567 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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);
-        } else {
-            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;
-    }
-
-    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);
-        } else {
-            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.
-     * 
-     * @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>
-     *
-     * @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.
-     * 
-     * @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;
-        String platform = SWT.getPlatform();
-        if ("photon".equals(platform)) { //$NON-NLS-1$
-			toolbarTrim = 6;
-		}
-        if ("gtk".equals(platform)) { //$NON-NLS-1$
-			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
-        String platform = SWT.getPlatform();
-        if ("gtk".equals(platform)) { //$NON-NLS-1$
-			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();
-        }
-    }
-
-    /**
-     * 
-     * @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();
-        }
-    }
-
-    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 0d786b7..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderEvent.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.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 d4c71ac..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderListener.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations.r21.widgets;
-
-public interface CTabFolderListener {
-    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 e3d5bb8..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabItem.java
+++ /dev/null
@@ -1,618 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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);
-    }
-
-    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 cf04ddd..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolderButtonListener.java
+++ /dev/null
@@ -1,43 +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.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) {
-    }
-
-    /**
-     * 
-     * @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 8936bd2..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.project
+++ /dev/null
@@ -1,28 +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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</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 d560891..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,69 +0,0 @@
-#Tue May 09 08:57:38 EDT 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.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.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 3282048..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Tue Sep 12 08:59:17 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\="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><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.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 ebccd55..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.2.1.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-friends:="org.eclipse.ui.tests.views.properties.tabbed",
- org.eclipse.ui.views.properties.tabbed
-Require-Bundle: org.eclipse.ui.forms;bundle-version="[3.2.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.2.0,4.0.0)";visibility:=reexport,
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)"
-Eclipse-LazyStart: true
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.3
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 da9dc30..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyContributor.exsd
+++ /dev/null
@@ -1,161 +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>
-      </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 640a80b..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="1" 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 460ec29..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyTabs.exsd
+++ /dev/null
@@ -1,178 +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="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">
-      <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>
-               <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>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="image" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </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.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="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/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 cb80adf..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.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.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 tab extension is in error.
-     */
-	public static String TabDescriptor_Tab_error;
-
-    /**
-     * 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 01aff6b..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.properties
+++ /dev/null
@@ -1,15 +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
-###############################################################################
-SectionDescriptor_Section_error=Section in {0} must provide an id and a tab.
-TabDescriptor_Tab_error=Tab in {0} must provide an id, label and category.
-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/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 b65ad46..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/SectionDescriptor.java
+++ /dev/null
@@ -1,237 +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.view;
-
-import com.ibm.icu.text.MessageFormat;
-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.jface.viewers.ISelection;
-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.ISection;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * 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
-	implements ISectionDescriptor {
-
-	private final static String SECTION_ERROR = TabbedPropertyMessages.SectionDescriptor_Section_error;
-
-	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 static final String TOP = "top"; //$NON-NLS-1$
-
-	private String id;
-
-	private String targetTab;
-
-	private String afterSection;
-
-	private ArrayList inputTypes;
-
-	private TabbedPropertyRegistryClassSectionFilter classFilter;
-
-	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) {
-		this.configurationElement = configurationElement;
-
-		classFilter = new TabbedPropertyRegistryClassSectionFilter(typeMapper);
-		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);
-		}
-		if (getAfterSection() == null) {
-			afterSection = TOP;
-		}
-	}
-
-	/**
-	 * Handle the section error when an issue is found loading from the
-	 * configuration element.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element
-	 * @param exception
-	 *            an optional CoreException
-	 */
-	private void handleSectionError(CoreException exception) {
-		String pluginId = getConfigurationElement().getDeclaringExtension()
-			.getNamespace();
-		String message = MessageFormat.format(SECTION_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#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 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/Tab.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/Tab.java
deleted file mode 100755
index 09ce815..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/Tab.java
+++ /dev/null
@@ -1,240 +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.view;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.Platform;
-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;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * A property tab is composed by one or more property sections and is used to
- * categorize sections.
- * 
- * @author Anthony Hunter
- */
-public class Tab {
-
-    private ISection[] sections;
-
-    private boolean controlsCreated;
-
-    Tab() {
-        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 ISafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.createControls(sectionComposite, page);
-                }
-
-                public void handleException(Throwable exception) {
-                    /* not used */
-                }
-            };
-            Platform.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 ISafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.dispose();
-                }
-
-                public void handleException(Throwable exception) {
-                    /* not used */
-                }
-            };
-            Platform.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 ISafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.aboutToBeShown();
-                }
-
-                public void handleException(Throwable exception) {
-                    /* not used */
-                }
-            };
-            Platform.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 ISafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.aboutToBeHidden();
-                }
-
-                public void handleException(Throwable exception) {
-                    /* not used */
-                }
-            };
-            Platform.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 ISafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.setInput(part, selection);
-                }
-
-                public void handleException(Throwable throwable) {
-                    throwable.printStackTrace();
-                }
-            };
-            Platform.run(runnable);
-        }
-    }
-
-    void setSections(ISection[] sections) {
-        this.sections = sections;
-    }
-
-    /**
-     * 
-     * @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 ISafeRunnable() {
-
-                    public void run()
-                        throws Exception {
-                        section.refresh();
-                    }
-
-                    public void handleException(Throwable throwable) {
-                        throwable.printStackTrace();
-                    }
-                };
-                Platform.run(runnable);
-            }
-        }
-    }
-}
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 b4e82ed..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabDescriptor.java
+++ /dev/null
@@ -1,402 +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.view;
-
-import com.ibm.icu.text.MessageFormat;
-import java.util.ArrayList;
-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.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.ISection;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ITabItem;
-
-/**
- * Represents the default implementation of a tab descriptor on the tabbed
- * property tabs extensions.
- * 
- * @author Anthony Hunter
- */
-public class TabDescriptor
-	implements Cloneable, ITabItem {
-
-	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 static final String TOP = "top"; //$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;
-
-	private List sectionDescriptors;
-
-	/**
-	 * Constructor for TabDescriptor.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element for the tab descriptor.
-	 */
-	public TabDescriptor(IConfigurationElement configurationElement) {
-		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()
-							.getNamespace(), 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);
-			}
-		}
-		if (getAfterTab() == null) {
-			afterTab = TOP;
-		}
-		sectionDescriptors = new ArrayList(5);
-		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.
-	 */
-	protected String getAfterTab() {
-		return afterTab;
-	}
-
-	/**
-	 * Get the category this tab belongs to.
-	 * 
-	 * @return Get the category this tab belongs to.
-	 */
-	protected 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;
-		}
-
-		sectionDescriptors.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)) {
-			sectionDescriptors.add(0, target);
-			return true;
-		}
-		for (int i = 0; i < sectionDescriptors.size(); i++) {
-			ISectionDescriptor descriptor = (ISectionDescriptor) sectionDescriptors
-				.get(i);
-			if (target.getAfterSection().equals(descriptor.getId())) {
-				sectionDescriptors.add(i + 1, target);
-				return true;
-			} else {
-				if (descriptor.getAfterSection().equals(target.getId())) {
-					sectionDescriptors.add(i, target);
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Instantiate this tab's sections.
-	 */
-	public Tab createTab() {
-		List sections = new ArrayList(sectionDescriptors.size());
-		for (Iterator iter = sectionDescriptors.iterator(); iter.hasNext();) {
-			ISectionDescriptor descriptor = (ISectionDescriptor) iter.next();
-			ISection section = descriptor.getSectionClass();
-			sections.add(section);
-		}
-		Tab tab = new Tab();
-		tab.setSections((ISection[]) sections.toArray(new ISection[sections
-			.size()]));
-		return tab;
-	}
-
-	/**
-	 * Get the list of section descriptors for the tab.
-	 * 
-	 * @return the list of section descriptors for the tab.
-	 */
-	protected List getSectionDescriptors() {
-		return sectionDescriptors;
-	}
-
-	/**
-	 * Set the list of section descriptors for the tab.
-	 * 
-	 * @param sectionDescriptors
-	 *            the list of section descriptors for the tab.
-	 */
-	protected void setSectionDescriptors(List sectionDescriptors) {
-		this.sectionDescriptors = sectionDescriptors;
-	}
-
-	/**
-	 * @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()
-			.getNamespace();
-		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);
-	}
-
-	/**
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object object) {
-		if (this == object) {
-			return true;
-		}
-
-		if (this.getClass() == object.getClass()) {
-			TabDescriptor descriptor = (TabDescriptor) 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 importent 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 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 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;
-	}
-
-	/**
-	 * 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 d1a4b5a..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.util.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 {
-	
-	private TabbedPropertyRegistry registry;
-
-	private IWorkbenchPart currentPart;
-	
-	/**
-	 * Constructor for TabListContentProvider.
-	 */
-	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 fc7f04d..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyComposite.java
+++ /dev/null
@@ -1,256 +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.view;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-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.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 gainedFocus;
-
-	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();
-
-		mainComposite.addFocusListener(new FocusListener() {
-
-			public void focusGained(FocusEvent e) {
-				gainedFocus = true;
-				mainComposite.redraw();
-			}
-
-			public void focusLost(FocusEvent e) {
-				gainedFocus = false;
-				mainComposite.redraw();
-			}
-		});
-		mainComposite.addPaintListener(new PaintListener() {
-
-			public void paintControl(PaintEvent e) {
-				if (gainedFocus) {
-					Rectangle r = getClientArea();
-					e.gc.drawFocus(0, 0, r.width, r.height);
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the contents in the main composite.
-	 */
-	protected void createMainContents() {
-		leftComposite = factory.createComposite(mainComposite, SWT.NO_FOCUS);
-		leftComposite.setLayout(new FormLayout());
-
-		scrolledComposite = factory.createScrolledComposite(mainComposite, SWT.H_SCROLL
-			| SWT.V_SCROLL | SWT.NO_FOCUS);
-		scrolledComposite.setLayout(new FormLayout());
-
-		FormData formData = new FormData();
-		formData.left = new FormAttachment(leftComposite, 0);
-		formData.right = new FormAttachment(100, 0);
-		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);
-		formData.top = new FormAttachment(0, 0);
-		formData.bottom = new FormAttachment(100, 0);
-		leftComposite.setLayoutData(formData);
-
-		final Composite rightComposite = factory.createComposite(scrolledComposite,
-			SWT.NO_FOCUS);
-		rightComposite.setLayout(new FormLayout());
-		FormLayout formLayout = new FormLayout();
-		formLayout.marginHeight = 0;
-		formLayout.marginWidth = 0;
-		rightComposite.setLayout(formLayout);
-
-		scrolledComposite.setContent(rightComposite);
-		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);
-
-		if (displayTitle) {
-			title = new TabbedPropertyTitle(rightComposite, factory);
-		}
-
-		tabComposite = factory.createComposite(rightComposite, SWT.NO_FOCUS);
-		tabComposite.setLayout(new FormLayout());
-
-		if (displayTitle) {
-			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);
-		}
-
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		if (displayTitle) {
-			data.top = new FormAttachment(title, 0);
-		} else {
-			data.top = new FormAttachment(0, 0);
-		}
-		data.bottom = new FormAttachment(100, 0);
-		tabComposite.setLayoutData(data);
-
-		listComposite.addPaintListener(new PaintListener() {
-
-			public void paintControl(PaintEvent e) {
-				Point leftSize = leftComposite.computeSize(SWT.DEFAULT,
-					SWT.DEFAULT);
-				FormData formData2 = new FormData();
-				formData2.left = new FormAttachment(0, leftSize.x);
-				formData2.right = new FormAttachment(100, 0);
-				formData2.top = new FormAttachment(0, 0);
-				formData2.bottom = new FormAttachment(100, 0);
-				scrolledComposite.setLayoutData(formData2);
-				mainComposite.layout(true);
-			}
-		});
-	}
-
-	/**
-	 * 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 485af21..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyList.java
+++ /dev/null
@@ -1,875 +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.view;
-
-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.swt.widgets.Shell;
-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 hoverBackground;
-
-	private Color defaultBackground;
-
-	private Color defaultForeground;
-
-	private Color activeBackground;
-
-	private Color border;
-
-	private Color darkShadow;
-
-	private Color textColor;
-
-	private TabbedPropertySheetWidgetFactory factory;
-
-	public class ListElement
-		extends Canvas {
-
-		private ITabItem tab;
-
-		private int index;
-
-		private boolean selected;
-
-		private boolean hover;
-
-		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), true);
-						/*
-						 * 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();
-				}
-			});
-		}
-
-		public void setSelected(boolean selected) {
-			this.selected = selected;
-			redraw();
-		}
-
-		/**
-		 * Draws elements and collects element areas.
-		 */
-		private void paint(PaintEvent e) {
-			e.gc.setBackground(defaultBackground);
-			e.gc.setForeground(defaultForeground);
-			Rectangle bounds = getBounds();
-			e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-
-			// draw tab
-			if (selected) {
-				e.gc.setBackground(activeBackground);
-			} else if (hover) {
-				e.gc.setBackground(hoverBackground);
-			} else {
-				e.gc.setBackground(defaultBackground);
-			}
-
-			/* draw the fill in the tab */
-			if (selected) {
-				e.gc.fillRectangle(4, 0, bounds.width, bounds.height);
-				e.gc.fillRectangle(3, 1, 3, bounds.height);
-			} else if (hover) {
-				e.gc.fillRectangle(2, 0, bounds.width - 4, bounds.height);
-			}
-
-			/* draw the border */
-			if (selected) {
-				e.gc.setForeground(border);
-				e.gc.drawLine(4, 0, bounds.width - 1, 0);
-				e.gc.drawPoint(3, 1);
-				e.gc.drawPoint(3, bounds.height - 1);
-				e.gc.drawLine(2, 2, 2, bounds.height - 2);
-			} else {
-				e.gc.setForeground(border);
-				if (getSelectionIndex() != NONE
-					&& getSelectionIndex() + 1 == index) {
-					e.gc.drawLine(4, 0, bounds.width - 1, 0);
-				} else {
-					e.gc.drawLine(2, 0, bounds.width - 3, 0);
-				}
-				e.gc.drawLine(bounds.width - 1, 0, 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 */
-				e.gc.drawImage(tab.getImage(), textIndent - 2, textMiddle);
-				textIndent = textIndent + 16 + 2;
-			} else if (tab.isIndented()) {
-				/* draw the indent tiny square */
-				e.gc.drawRectangle(20, textMiddle + 6, 1, 1);
-				textIndent = textIndent + 16 + 4;
-			}
-
-			/* draw the text */
-			e.gc.setForeground(textColor);
-			e.gc.drawText(tab.getText(), textIndent, textMiddle);
-			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);
-			}
-		}
-
-		public String getText() {
-			return tab.getText();
-		}
-
-		public String toString() {
-			return tab.getText();
-		}
-	}
-
-	public class TopNavigationElement
-		extends Canvas {
-
-		/**
-		 * @param parent
-		 */
-		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();
-					}
-				}
-			});
-		}
-
-		/**
-		 * @param e
-		 */
-		private void paint(PaintEvent e) {
-			e.gc.setBackground(defaultBackground);
-			e.gc.setForeground(defaultForeground);
-			Rectangle bounds = getBounds();
-
-			if (elements.length != 0) {
-				e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-				e.gc.setForeground(border);
-				e.gc.drawLine(bounds.width - 1, 0, bounds.width - 1,
-					bounds.height - 1);
-			} else {
-				e.gc.setBackground(activeBackground);
-				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(textColor);
-				String properties_not_available = TabbedPropertyMessages.TabbedPropertyList_properties_not_available;
-				e.gc.drawText(properties_not_available, textIndent, textMiddle);
-			}
-
-			if (isUpScrollRequired()) {
-				e.gc.setForeground(darkShadow);
-				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 - 4, 8, middle + 5, 8);
-
-				e.gc.setForeground(activeBackground);
-				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.drawLine(middle - 3, 7, middle + 4, 7);
-			}
-		}
-	}
-
-	public class BottomNavigationElement
-		extends Canvas {
-
-		/**
-		 * @param parent
-		 */
-		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();
-					}
-				}
-			});
-		}
-
-		/**
-		 * @param e
-		 */
-		private void paint(PaintEvent e) {
-			e.gc.setBackground(defaultBackground);
-			e.gc.setForeground(defaultForeground);
-			Rectangle bounds = getBounds();
-
-			if (elements.length != 0) {
-				e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-				e.gc.setForeground(border);
-				e.gc.drawLine(bounds.width - 1, 0, bounds.width - 1,
-					bounds.height - 1);
-				if (getSelectionIndex() != NONE && elements.length != 0
-					&& getSelectionIndex() == elements.length - 1) {
-					e.gc.drawLine(4, 0, bounds.width - 1, 0);
-				} else {
-					e.gc.drawLine(2, 0, bounds.width - 1, 0);
-				}
-			} else {
-				e.gc.setBackground(activeBackground);
-				e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-			}
-
-			if (isDownScrollRequired()) {
-				e.gc.setForeground(darkShadow);
-				int middle = bounds.width / 2;
-				int bottom = bounds.height - 2;
-				e.gc.drawLine(middle + 1, bottom, middle + 5, bottom - 4);
-				e.gc.drawLine(middle, bottom, middle - 4, bottom - 4);
-				e.gc.drawLine(middle - 4, bottom - 5, middle + 5, bottom - 5);
-
-				e.gc.setForeground(activeBackground);
-				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.drawLine(middle - 3, bottom - 4, middle + 4, bottom - 4);
-			}
-		}
-	}
-
-	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, true);
-					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.
-	 */
-	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();
-					if (getTextDimension(label).x > getTextDimension(((ITabItem) children[widestLabelIndex])
-						.getText()).x) {
-						widestLabelIndex = i;
-					}
-				}
-			}
-		}
-
-		computeTopAndBottomTab();
-	}
-
-	/**
-	 * Selects one for the elements in the list.
-	 */
-	public void select(int index, boolean reveal) {
-		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());
-	}
-
-	/**
-	 * Selects one for 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;
-	}
-
-	/**
-	 * Computes the size based on the widest string in the list.
-	 */
-	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 {
-			int width = getTextDimension(elements[widestLabelIndex].getText()).x;
-			/*
-			 * 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.
-			 */
-			result.x = width + 32;
-		}
-		return result;
-	}
-
-	private Point getTextDimension(String text) {
-		Shell shell = new Shell();
-		GC gc = new GC(shell);
-		gc.setFont(getFont());
-		Point point = gc.textExtent(text);
-		point.x++;
-		gc.dispose();
-		shell.dispose();
-		return point;
-	}
-
-	/**
-	 * Initialize the colours used.
-	 */
-	private void initColours() {
-		defaultBackground = Display.getCurrent().getSystemColor(
-			SWT.COLOR_WIDGET_BACKGROUND);
-
-		RGB rgb = defaultBackground.getRGB();
-		rgb.blue = Math.min(255, Math.round(rgb.blue * 1.05F));
-		rgb.red = Math.min(255, Math.round(rgb.red * 1.05F));
-		rgb.green = Math.min(255, Math.round(rgb.green * 1.05F));
-		hoverBackground = factory.getColors().createColor(
-			"TabbedPropertyList.hoverBackground", rgb); //$NON-NLS-1$
-
-		defaultForeground = Display.getCurrent().getSystemColor(
-			SWT.COLOR_WIDGET_FOREGROUND);
-		activeBackground = Display.getCurrent().getSystemColor(
-			SWT.COLOR_LIST_BACKGROUND);
-		border = Display.getCurrent().getSystemColor(
-			SWT.COLOR_WIDGET_NORMAL_SHADOW);
-		darkShadow = Display.getCurrent().getSystemColor(
-			SWT.COLOR_WIDGET_DARK_SHADOW);
-		textColor = Display.getCurrent().getSystemColor(
-			SWT.COLOR_WIDGET_FOREGROUND);
-	}
-
-	/**
-	 * @see org.eclipse.swt.widgets.Widget#dispose()
-	 */
-	public void dispose() {
-		hoverBackground.dispose();
-		defaultBackground.dispose();
-		defaultForeground.dispose();
-		activeBackground.dispose();
-		border.dispose();
-		darkShadow.dispose();
-		textColor.dispose();
-		super.dispose();
-	}
-
-	/**
-	 * 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;
-	}
-
-	private boolean isDownScrollRequired() {
-		return elements.length > tabsThatFitInComposite
-			&& bottomVisibleIndex != elements.length - 1;
-	}
-
-	private boolean isUpScrollRequired() {
-		return elements.length > tabsThatFitInComposite && topVisibleIndex != 0;
-	}
-
-	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.
-	 * 
-	 * @param up
-	 *            if <code>true</code>, then we are laying out as a result of
-	 *            an scroll up request.
-	 */
-	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()].getText();
-				}
-			}
-
-			public void getHelp(AccessibleEvent e) {
-				if (getSelectionIndex() != NONE) {
-					e.result = elements[getSelectionIndex()].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 3f343f9..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistry.java
+++ /dev/null
@@ -1,466 +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.view;
-
-import com.ibm.icu.text.MessageFormat;
-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.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.IActionProvider;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * 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;
-
-	// 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 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 TabDescriptor[] tabDescriptors;
-
-	protected static final TabDescriptor[] EMPTY_DESCRIPTOR_ARRAY = new TabDescriptor[0];
-
-	/**
-	 * 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);
-				}
-			} 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.
-	 * @return the the categories that are valid 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 configurationElement
-	 *            the configuration element
-	 * @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 property tab descriptors for the given contributor id and object
-	 * input. The descriptors are sorted using the afterPage attribute.
-	 */
-	public TabDescriptor[] getTabDescriptors(IWorkbenchPart part,
-			ISelection selection) {
-		if (selection == null || selection.isEmpty()) {
-			return EMPTY_DESCRIPTOR_ARRAY;
-		}
-
-		TabDescriptor[] allDescriptors = getAllTabDescriptors();
-		TabDescriptor[] result = filterTabDescriptors(allDescriptors, part,
-			selection);
-		return result;
-	}
-
-	/**
-	 * Filters out the tab descriptors that do not have any sections for the
-	 * given input.
-	 */
-	protected TabDescriptor[] filterTabDescriptors(TabDescriptor[] descriptors,
-			IWorkbenchPart part, ISelection selection) {
-		List result = new ArrayList();
-		for (int i = 0; i < descriptors.length; i++) {
-			TabDescriptor descriptor = adaptDescriptorFor(descriptors[i], part,
-				selection);
-			if (!descriptor.getSectionDescriptors().isEmpty()) {
-				result.add(descriptor);
-			}
-		}
-		if (result.size() == 0) {
-			return EMPTY_DESCRIPTOR_ARRAY;
-		}
-		return (TabDescriptor[]) result
-			.toArray(new TabDescriptor[result.size()]);
-	}
-
-	/**
-	 * Given a property tab descriptor remove all its section descriptors that
-	 * do not apply to the given input object.
-	 */
-	protected TabDescriptor adaptDescriptorFor(TabDescriptor 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);
-			}
-		}
-		TabDescriptor result = (TabDescriptor) 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 TabDescriptor[] 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);
-				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;
-    }
-
-	/**
-	 * Sets the section descriptor provider for the contributor.
-	 * 
-	 * @param sectionDescriptorProvider
-	 *            the section descriptor provider for the contributor.
-	 */
-	public void setSectionDescriptorProvider(
-			ISectionDescriptorProvider sectionDescriptorProvider) {
-		this.sectionDescriptorProvider = sectionDescriptorProvider;
-	}
-}
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 50c078b..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryClassSectionFilter.java
+++ /dev/null
@@ -1,180 +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.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.
-	 */
-	protected TabbedPropertyRegistryClassSectionFilter(ITypeMapper typeMapper) {
-		super();
-		this.typeMapper = typeMapper;
-	}
-
-	/**
-	 * Verifies if the property section extension represented by sectionElement
-	 * applies to the given input.
-	 */
-	protected 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;
-					}
-				}
-			}
-		}
-
-		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 84dc781..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryFactory.java
+++ /dev/null
@@ -1,94 +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.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
-	 */
-	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.
-	 */
-	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.
-	 */
-	public void disposeRegistry(ITabbedPropertySheetPageContributor target) {
-		/**
-		 * Get the contributor id from the ITabbedPropertySheetPageContributor interface
-		 */
-		String key = target.getContributorId();
-		CacheData data = (CacheData) idToCacheData.get(key);
-		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 9c9fa4c..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyTitle.java
+++ /dev/null
@@ -1,196 +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.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.GC;
-import org.eclipse.swt.graphics.Image;
-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.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-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$
-
-	/**
-	 * Width of the margin that will be added around the control.
-	 */
-	public int marginWidth = 4;
-
-	/**
-	 * Height of the margin that will be added around the control.
-	 */
-	public int marginHeight = 4;
-
-	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 = ITabbedPropertyConstants.HSPACE + 6;
-		layout.marginHeight = 5;
-		setLayout(layout);
-
-		label = factory.createCLabel(this, BLANK);
-		label.setBackground(new Color[] {
-			factory.getColors().getColor(FormColors.TB_BG),
-			factory.getColors().getColor(FormColors.TB_GBG)}, new int[] {100},
-			true);
-		label.setFont(JFaceResources.getBannerFont());
-		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) {
-		Color bg = factory.getColors().getColor(FormColors.TB_BG);
-		Color gbg = factory.getColors().getColor(FormColors.TB_GBG);
-		Color border = factory.getColors().getColor(FormColors.TB_BORDER);
-		Rectangle bounds = getClientArea();
-		Point tsize = null;
-		Point labelSize = null;
-		int twidth = bounds.width - marginWidth - marginWidth;
-		if (label != null) {
-			labelSize = label.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-		}
-		if (labelSize != null) {
-			twidth -= labelSize.x + 4;
-		}
-		int tvmargin = 4;
-		int theight = getHeight();
-		if (tsize != null) {
-			theight += Math.max(theight, tsize.y);
-		}
-		if (labelSize != null) {
-			theight = Math.max(theight, labelSize.y);
-		}
-		theight += tvmargin + tvmargin;
-		int midpoint = (theight * 66) / 100;
-		int rem = theight - midpoint;
-		GC gc = e.gc;
-		gc.setForeground(bg);
-		gc.setBackground(gbg);
-		gc.fillGradientRectangle(marginWidth, marginHeight, bounds.width - 1
-			- marginWidth - marginWidth, midpoint - 1, true);
-		gc.setForeground(gbg);
-		gc.setBackground(getBackground());
-		gc.fillGradientRectangle(marginWidth, marginHeight + midpoint - 1,
-			bounds.width - 1 - marginWidth - marginWidth, rem - 1, true);
-		gc.setForeground(border);
-		gc.drawLine(marginWidth, marginHeight + 2, marginWidth, marginHeight
-			+ theight - 1);
-		gc.drawLine(marginWidth, marginHeight + 2, marginWidth + 2,
-			marginHeight);
-		gc.drawLine(marginWidth + 2, marginHeight, bounds.width - marginWidth
-			- 3, marginHeight);
-		gc.drawLine(bounds.width - marginWidth - 3, marginHeight, bounds.width
-			- marginWidth - 1, marginHeight + 2);
-		gc.drawLine(bounds.width - marginWidth - 1, marginHeight + 2,
-			bounds.width - marginWidth - 1, marginHeight + theight - 1);
-	}
-
-	/**
-	 * Set the text label.
-	 * 
-	 * @param text
-	 *            the text 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();
-	}
-
-	/**
-	 * @return the height of the title.
-	 */
-	public int getHeight() {
-		Shell shell = new Shell();
-		GC gc = new GC(shell);
-		gc.setFont(getFont());
-		Point point = gc.textExtent(BLANK);
-		point.x++;
-		int textOrImageHeight = Math.max(point.x, 16);
-		gc.dispose();
-		shell.dispose();
-		return textOrImageHeight + 8;
-	}
-}
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 5513f64..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyViewer.java
+++ /dev/null
@@ -1,143 +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.view;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jface.util.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;
-
-	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, reveal);
-		}
-	}
-
-	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);
-	}
-
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		this.part = part;
-		setInput(selection);
-	}
-	
-	public IWorkbenchPart getWorkbenchPart() {
-		return part;
-	}
-}
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 73f1371..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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/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 ea9a009..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AdvancedPropertySection.java
+++ /dev/null
@@ -1,89 +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.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,
-			TabbedPropertySheetPage tabbedPropertySheetPage) {
-		super.createControls(parent, tabbedPropertySheetPage);
-		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);
-	}
-
-	/**
-	 * @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/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 c2685df..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptor.java
+++ /dev/null
@@ -1,93 +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 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.
- * 
- * @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;
-
-	/**
-	 * 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/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 2b1e336..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabSelectionListener.java
+++ /dev/null
@@ -1,30 +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.ui.internal.views.properties.tabbed.view.TabDescriptor;
-
-/**
- * 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.
-	 */
-	public void tabSelected(TabDescriptor 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/TabbedPropertySheetPage.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetPage.java
deleted file mode 100644
index 1a0972d..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetPage.java
+++ /dev/null
@@ -1,912 +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 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.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.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.Tab;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabDescriptor;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabListContentProvider;
-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 Tab 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 TabDescriptor) {
-				return ((TabDescriptor) 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();
-			Tab tab = null;
-			TabDescriptor descriptor = (TabDescriptor) 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 = (Tab) 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(Tab 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(Tab 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) {
-		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 = 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 new TabListContentProvider(registry);
-	}
-
-	/**
-	 * Dispose the contributor with the provided contributor id. This happens on
-	 * part close as well as when contributiors switch between the workbench
-	 * part and contributor from a selection.
-	 * 
-	 * @param contributorId
-	 *            the contributor id.
-	 */
-	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);
-		}
-	}
-
-	private void resizeScrolledComposite() {
-		Point currentTabSize = new Point(0, 0);
-		if (currentTab != null) {
-			Composite sizeReference = (Composite) tabToComposite
-				.get(currentTab);
-			currentTabSize.y = (sizeReference != null) ? sizeReference
-				.computeSize(SWT.DEFAULT, SWT.DEFAULT).y
-				: 0;
-			currentTabSize.x = (sizeReference != null) ? sizeReference
-				.computeSize(SWT.DEFAULT, SWT.DEFAULT).x
-				: 0;
-		}
-		if (hasTitleBar) {
-			int titleHeight = tabbedPropertyComposite.getTitle().computeSize(
-				SWT.DEFAULT, SWT.DEFAULT).y;
-			currentTabSize.y += titleHeight;
-		}
-		tabbedPropertyComposite.getScrolledComposite().setMinSize(
-			currentTabSize.x, currentTabSize.y);
-	}
-
-	private void disposeTabs(Collection tabs) {
-		for (Iterator iter = tabs.iterator(); iter.hasNext();) {
-			Tab tab = (Tab) 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) {
-		TabDescriptor[] 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.
-	 */
-	protected void updateTabs(TabDescriptor[] descriptors) {
-		Map newTabs = new HashMap(descriptors.length * 2);
-		boolean disposingCurrentTab = (currentTab != null);
-		for (int i = 0; i < descriptors.length; i++) {
-			Tab tab = (Tab) descriptorToTab.remove(descriptors[i]);
-
-			if (tab != null && tab.controlsHaveBeenCreated()) {
-				if (tab == currentTab) {
-					disposingCurrentTab = false;
-				}
-			} else {
-				tab = (descriptors[i]).createTab();
-			}
-
-			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;
-	}
-
-	/**
-	 * Helper method for creating property tab composites.
-	 */
-	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);
-		TabDescriptor[] 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.
-	 */
-	public Tab getCurrentTab() {
-		return currentTab;
-	}
-
-	/**
-	 * Handle the tab selected change event.
-	 * 
-	 * @param tabDescriptor
-	 *            the new selected tab.
-	 */
-	private void handleTabSelection(TabDescriptor 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);
-	}
-
-	/**
-	 * 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.
-			 */
-			return;
-		}
-		
-        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());
-        }
-    }
-
-}
\ 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 9c6a775..0000000
--- a/bundles/org.eclipse.ui.views/.project
+++ /dev/null
@@ -1,28 +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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</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 d2d9da5..0000000
--- a/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:20:48 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=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/.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 6ae9b2f..0000000
--- a/bundles/org.eclipse.ui.views/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 16 14:12:15 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/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
deleted file mode 100644
index db5d37e..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.2.100.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.ui.internal.views.ViewsPlugin
-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;x-internal:=true,
- org.eclipse.ui.views.contentoutline,
- org.eclipse.ui.views.properties
-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.2.0,4.0.0)"
-Eclipse-LazyStart: true
-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/component.xml b/bundles/org.eclipse.ui.views/component.xml
deleted file mode 100644
index 3efc32e..0000000
--- a/bundles/org.eclipse.ui.views/component.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<component xmlns="http://eclipse.org/component"
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://eclipse.org/component ../component.xsd "
-   name="Platform UI Views">
- <plugin id="org.eclipse.ui.views" />
-
- <package name="org.eclipse.ui.views.contentoutline" >
-   <type name="ContentOutline" instantiate="false" subclass="false"/>
- </package>
-
- <package name="org.eclipse.ui.views.properties" exclusive="false" >
-   <type name="ColorPropertyDescriptor" subclass="false"/>
-   <type name="ComboBoxPropertyDescriptor" subclass="false"/>
-   <type name="IPropertySheetEntryListener" implement="false"/>
-   <type name="PropertySheet" instantiate="false" subclass="false"/>
-   <type name="PropertySheetPage" subclass="false"/>
-   <type name="TextPropertyDescriptor" subclass="false"/>
- </package>
-
- <component-depends unrestricted="true"/>
-
-</component>
\ No newline at end of file
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/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 0fae877..0000000
--- a/bundles/org.eclipse.ui.views/plugin.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
-###############################################################################
-pluginName= Views
-providerName= Eclipse.org
-
-Views.PropertySheet = Properties
-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 86d2559..0000000
--- a/bundles/org.eclipse.ui.views/plugin.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   
-     <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="%Views.PropertySheet"
-            icon="$nl$/icons/full/eview16/prop_ps.gif"
-            category="org.eclipse.ui"
-            class="org.eclipse.ui.views.properties.PropertySheet"
-            id="org.eclipse.ui.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>
-   
-</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 c7e21a3..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/ViewsPlugin.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 ddba84a..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/ContentOutlineMessages.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 - 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 1f6e5ab..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/PropertiesMessages.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 - Initial API and implementation
- **********************************************************************/
-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 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 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 8efdcdc..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/messages.properties
+++ /dev/null
@@ -1,34 +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
-
-# ==============================================================================
-# Properties View
-# ==============================================================================
-
-Categories_text = Show &Categories
-Categories_toolTip = Show Categories
-
-CopyProperty_text = &Copy
-
-Defaults_text = &Restore Default Value
-Defaults_toolTip = Restore Default Value
-
-Filter_text = Show &Advanced Properties
-Filter_toolTip = Show Advanced Properties
-
-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 5357d0d..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutline.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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>
- */
-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 d5b7a3b..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutlinePage.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.views.contentoutline;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Platform;
-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];
-            Platform.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 7f046b7..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/IContentOutlinePage.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.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 4426ad0..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ColorPropertyDescriptor.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.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>
- */
-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 7bc4a62..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxLabelProvider.java
+++ /dev/null
@@ -1,80 +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.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];
-            } else {
-                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 ee9c1fa..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxPropertyDescriptor.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.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>
- */
-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
-     */
-    public ILabelProvider getLabelProvider() {
-        if (isLabelProviderSet()) {
-			return super.getLabelProvider();
-		} else {
-			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 43ceb2e..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ICellEditorActivationListener.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.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 6b0f7c2..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertiesHelpContextIds.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.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$
-
-    // 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 5583add..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertyDescriptor.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.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 ea310bc..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntry.java
+++ /dev/null
@@ -1,170 +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.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 05b2d14..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntryListener.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;
-
-/**
- * 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>
- */
-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 d9f78a8..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetPage.java
+++ /dev/null
@@ -1,30 +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.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/PropertyDescriptor.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyDescriptor.java
deleted file mode 100644
index 63a5b77..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyDescriptor.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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
-     */
-    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;
-		} else {
-			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/PropertySheet.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheet.java
deleted file mode 100644
index 4858162..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheet.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISaveablePart;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IViewSite;
-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.part.IContributedContentsView;
-import org.eclipse.ui.part.IPage;
-import org.eclipse.ui.part.IPageBookViewPage;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.PageBookView;
-
-/**
- * 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
- */
-public class PropertySheet extends PageBookView implements ISelectionListener {
-    /**
-     * 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;
-
-    /**
-     * Creates a property sheet view.
-     */
-    public PropertySheet() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     * Returns the default property sheet page.
-     */
-    protected IPage createDefaultPage(PageBook book) {
-        PropertySheetPage 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);
-        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);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     */
-    protected PageRec doCreatePage(IWorkbenchPart part) {
-        // Try to get a custom property sheet page.
-        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)
-     * Method declared on PageBookView.
-     * The property sheet may show properties for any view other than this view.
-     */
-    protected boolean isImportant(IWorkbenchPart part) {
-        return part != this;
-    }
-
-    /**
-     * 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);
-		}
-
-        // 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 our own selection or null selection
-        if (part == this || sel == null) {
-			return;
-		}
-
-        // pass the selection to the page		
-        IPropertySheetPage page = (IPropertySheetPage) getCurrentPage();
-        if (page != null) {
-			page.selectionChanged(part, sel);
-		}
-    }
-    
-    /**
-	 * 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;
-	}
-}
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 ba36fa7..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetAction.java
+++ /dev/null
@@ -1,55 +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.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
-     */
-    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 f469c7a..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetCategory.java
+++ /dev/null
@@ -1,85 +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 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.
-     */
-    public PropertySheetCategory(String name) {
-        categoryName = name;
-    }
-
-    /**
-     * Add an <code>IPropertySheetEntry</code> to the list
-     * of entries in this category. 
-     */
-    public void addEntry(IPropertySheetEntry entry) {
-        entries.add(entry);
-    }
-
-    /**
-     * 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.
-     */
-    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 65ba608..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetPage.java
+++ /dev/null
@@ -1,556 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.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.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.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.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
- */
-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) {
-				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();
-	
-    /**
-     * 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) {
-                        if (helpContextId instanceof String) {
-                            PlatformUI.getWorkbench()
-									.getHelpSystem().displayHelp(
-											(String) helpContextId);
-                            return;
-                        }
-
-                        // Since 2.0 the only valid type for helpContextIds
-                        // is a String (a single id).
-                        // However for backward compatibility we have to handle
-                        // and array of contexts (Strings and/or IContexts) 
-                        // or a context computer.
-                        Object[] contexts = null;
-                        if (helpContextId instanceof IContextComputer) {
-                            // get local contexts
-                            contexts = ((IContextComputer) helpContextId)
-                                    .getLocalContexts(e);
-                        } else {
-                            contexts = (Object[]) helpContextId;
-                        }
-                        IWorkbenchHelpSystem help = PlatformUI.getWorkbench().getHelpSystem();
-                        // Ignore all but the first element in the array
-                        if (contexts[0] instanceof IContext) {
-							help.displayHelp((IContext) contexts[0]);
-						} else {
-							help.displayHelp((String) contexts[0]);
-						}
-                        return;
-                    }
-                }
-
-                // No help for the selection so show page help
-                PlatformUI.getWorkbench().getHelpSystem().displayHelp(HELP_CONTEXT_PROPERTY_SHEET_PAGE);
-            }
-        });
-    }
-
-    /**
-     * 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);
-
-        // 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);
-
-        // 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 336c9e1..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetSorter.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 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 84e711e..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetViewer.java
+++ /dev/null
@@ -1,1350 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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.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;
-
-    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);
-
-        // 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) {
-        // 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();
-        }
-
-        // get the new selection
-        TreeItem[] sel = new TreeItem[] { selection };
-        if (sel.length == 0) {
-            setMessage(null);
-            setErrorMessage(null);
-        } else {
-            Object object = sel[0].getData(); // assume single selection
-            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(sel[0]);
-            }
-        }
-        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) {
-                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);
-        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);
-        }
-    }
-
-    /**
-     * 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 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 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/TextPropertyDescriptor.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/TextPropertyDescriptor.java
deleted file mode 100644
index 86484b8..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/TextPropertyDescriptor.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.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>
- */
-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 6fdf49f..0000000
--- a/bundles/org.eclipse.ui.win32/.project
+++ /dev/null
@@ -1,37 +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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</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 1577bff..0000000
--- a/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:21:10 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=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.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 f2424d2..0000000
--- a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java
+++ /dev/null
@@ -1,720 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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();
-    }
-
-    /**
-     * 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 {
-                        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.
-        if (!(input instanceof IPathEditorInput))
-            throw new PartInitException(OleMessages.format(
-                    "OleEditor.invalidInput", new Object[] { input })); //$NON-NLS-1$
-        
-        IPath path= ((IPathEditorInput)input).getPath();
-
-        //Cannot create this with a file and no physical location
-        if (path == null
-                || !(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 this.clientSite != null;
-    }
-
-    /* 
-     * (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 getClientSite() != null && 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) {
-    	if (input instanceof IPathEditorInput)
-    		source = new File(((IPathEditorInput)input).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();
-    }
-
-}
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 7154c3a..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, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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 6695da6..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.project
+++ /dev/null
@@ -1,34 +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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</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 d54f0e9..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:21: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=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=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 ad6030f..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +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
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 ef55695..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/build.properties
+++ /dev/null
@@ -1,18 +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.compatibility.jar=src/
-src.includes=about.html
-bin.includes = fragment.xml,\
-               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 e59b9fc..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/CompatibleWorkbenchPage.java
+++ /dev/null
@@ -1,183 +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;
-
-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 6a71f61..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/ICompatibleWorkbenchPage.java
+++ /dev/null
@@ -1,211 +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;
-
-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
-     * @see IEditorPart#gotoMarker
-     * @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
-     * @see IEditorPart#gotoMarker
-     * @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.workbench/Eclipse UI/org/eclipse/ui/internal/FastViewBar.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/FastViewBar.java
index ff9d1af..ccccc53 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/FastViewBar.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/FastViewBar.java
@@ -1160,8 +1160,8 @@
 	 * Restore all refs and close the group
 	 */
 	public void closeGroup() {
-//		Perspective persp = window.getActiveWorkbenchPage().getActivePerspective();
-//		persp.closeTrimGroup(this);
+		Perspective persp = window.getActiveWorkbenchPage().getActivePerspective();
+		persp.closeTrimGroup(this);
 	}
 
 	/**
diff --git a/bundles/org.eclipse.ui/buildnotes_workbench.html b/bundles/org.eclipse.ui/buildnotes_workbench.html
index a9e88c7..95c3c9b 100644
--- a/bundles/org.eclipse.ui/buildnotes_workbench.html
+++ b/bundles/org.eclipse.ui/buildnotes_workbench.html
@@ -12,6 +12,44 @@
 <h1>Eclipse Platform Build Notes (3.3)<br>
 JFace and Workbench</h1>
 
+<p>Integration Build (Oktober 17, 2006, 3:57 p.m.)</p>
+  <p>Problem reports updated</p>
+  <p>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=161263">Bug 161263</a>. Broken fast view bars (NEW)<br>
+  </p>
+
+<p>Integration Build (Oktober 16, 2006, 11:44 p.m.)</p>
+  <p>Problem reports updated</p>
+  <p>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=87494">Bug 87494</a>. [Undo] Define a consistent, efficient validation strategy for undoable workspace operations (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=93611">Bug 93611</a>. [Viewers] Please refactor TableLayout to behave like standard layout (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111887">Bug 111887</a>. [EFS] Provide IFileStoreEditorInput (+ impl) for new IFileStore (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=128386">Bug 128386</a>. CloseUnrelatedProjectsAction as API (NEW)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=156678">Bug 156678</a>. QuickAccess items are unordered (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=157495">Bug 157495</a>. [Viewers] public subclasses of ViewerSorter should be changed to ViewerComparator (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=157646">Bug 157646</a>. [Import/Export] "Import Existing Project" from zip locks file - prevents deletion (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=157980">Bug 157980</a>. 'AbstractSearchDialog': Confusing name (NEW)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=158521">Bug 158521</a>. [FieldAssist] FieldDecorationRegistry does not obey the contracts for getMaximumDecorationWidth() and getMaximumDecorationHeight() (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=158778">Bug 158778</a>. [Viewers] request for remove(parent, index) API on tree viewer (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=158960">Bug 158960</a>. [PerspectiveBar] Get rid of "Close All Perspectives" in contextual menu (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=159190">Bug 159190</a>. [Viewers] multiple dispose listeners for elements in VIRTUAL tree viewer (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=159597">Bug 159597</a>. [Viewers] getRowPart(Point) behaves differently on Table than on Tree (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=159600">Bug 159600</a>. [Viewers] Tooltips not working on TreeViewer (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=159918">Bug 159918</a>. [Viewers] TreeViewer.setChildCount(...) should preserve selection (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160128">Bug 160128</a>. Chkpii error in latest build (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160153">Bug 160153</a>. [Viewers] tableViewer.setUseHashlookup causes wrong selections (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160231">Bug 160231</a>. [Undo] Operations_undoRedoCommand needs to be translated correctly. (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160505">Bug 160505</a>. [Viewers]TableLayout available for TreeViewer, ... (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160543">Bug 160543</a>. [FastViews] View Menu button needs accessible name (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160545">Bug 160545</a>. IResourceNavigator javadoc errors in build N200610110010 (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160659">Bug 160659</a>. CCE in ResourceNavigator (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160700">Bug 160700</a>. [Viewers] Editing backwards compatility (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160720">Bug 160720</a>. [Undo] - need tracing options to monitor workspace undo history validation (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160746">Bug 160746</a>. [Workbench] Dangerous use of getActiveShell in the workbench (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=161037">Bug 161037</a>. Compile warnings in N20061014-0010/compilelogs/platform.doc.isv.javadoc.txt (NEW)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=161086">Bug 161086</a>. [Viewers] performance problem in AbstractTreeViewer.internalExpandToLevel (FIXED)<br>
+  </p>
+
 <p>Integration Build (Oktober 09, 2006, 11:20 p.m.)</p>
   <p>Problem reports updated</p>
   <p>
diff --git a/examples/org.eclipse.jface.examples.databinding/.classpath b/examples/org.eclipse.jface.examples.databinding/.classpath
deleted file mode 100644
index d512f63..0000000
--- a/examples/org.eclipse.jface.examples.databinding/.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/executionEnvironments/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.jface.examples.databinding/.cvsignore b/examples/org.eclipse.jface.examples.databinding/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.jface.examples.databinding/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.jface.examples.databinding/.project b/examples/org.eclipse.jface.examples.databinding/.project
deleted file mode 100644
index 0ccc228..0000000
--- a/examples/org.eclipse.jface.examples.databinding/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jface.examples.databinding</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.jem.workbench.JavaEMFNature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.jem.beaninfo.BeanInfoNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 69aa645..0000000
--- a/examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,71 +0,0 @@
-#Mon Aug 28 13:26:41 EDT 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=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=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.indirectStaticAccess=error
-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=error
-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=error
-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.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-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.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.jface.examples.databinding/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 846d8bf..0000000
--- a/examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Thu Aug 24 15:24:48 EDT 2006
-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.jface.examples.databinding/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 9ad123f..0000000
--- a/examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Oct 18 13:46:33 EDT 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=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.jface.examples.databinding/META-INF/MANIFEST.MF b/examples/org.eclipse.jface.examples.databinding/META-INF/MANIFEST.MF
deleted file mode 100644
index d910bf0..0000000
--- a/examples/org.eclipse.jface.examples.databinding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jface.examples.databinding
-Bundle-Version: 1.0.100.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.jface,
- org.eclipse.jface.databinding,
- org.eclipse.core.runtime,
- org.eclipse.jface.databinding.beans,
- org.eclipse.jface.databinding.ui
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.jface.examples.databinding;x-internal:=false,
- org.eclipse.jface.examples.databinding.compositetable;x-internal:=false,
- org.eclipse.jface.examples.databinding.compositetable.binding;x-internal:=false,
- org.eclipse.jface.examples.databinding.compositetable.day;x-internal:=false,
- org.eclipse.jface.examples.databinding.compositetable.day.binding;x-internal:=false,
- org.eclipse.jface.examples.databinding.compositetable.day.internal;x-internal:=true,
- org.eclipse.jface.examples.databinding.compositetable.month;x-internal:=false,
- org.eclipse.jface.examples.databinding.compositetable.reflect;x-internal:=false,
- org.eclipse.jface.examples.databinding.compositetable.timeeditor;x-internal:=false,
- org.eclipse.jface.examples.databinding.mask;x-internal:=false,
- org.eclipse.jface.examples.databinding.mask.internal;x-internal:=true,
- org.eclipse.jface.examples.databinding.model;x-internal:=false,
- org.eclipse.jface.examples.databinding.radioGroup;x-internal:=false
diff --git a/examples/org.eclipse.jface.examples.databinding/about.html b/examples/org.eclipse.jface.examples.databinding/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.jface.examples.databinding/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.jface.examples.databinding/build.properties b/examples/org.eclipse.jface.examples.databinding/build.properties
deleted file mode 100644
index f6d4f34..0000000
--- a/examples/org.eclipse.jface.examples.databinding/build.properties
+++ /dev/null
@@ -1,18 +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
-###############################################################################
-bin.includes = plugin.xml,\
-               .,\
-               META-INF/,\
-               plugin.properties,\
-               about.html
-output.databindingexamples.jar = bin/
-src.includes = about.html
-source.. = src/
diff --git a/examples/org.eclipse.jface.examples.databinding/plugin.properties b/examples/org.eclipse.jface.examples.databinding/plugin.properties
deleted file mode 100644
index 759e715..0000000
--- a/examples/org.eclipse.jface.examples.databinding/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 Data Binding Examples
-providerName = Eclipse.org
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/DataBindingFactory1.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/DataBindingFactory1.java
deleted file mode 100644
index 146c6aa..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/DataBindingFactory1.java
+++ /dev/null
@@ -1,90 +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.examples.databinding;
-
-import org.eclipse.jface.internal.databinding.provisional.AbstractDataBindingContextFactory;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.BindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.IBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.IObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.NestedObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Widget;
-
-
-/**
- * A data binding context factory that configures the data binding context with
- * all the default factories used by version 1.0 of the JFace data binding
- * framework.  Once version 1.0 ship, the order and behavior of these factories
- * will be frozen so that clients can depend on this class's behavior.
- * <p>
- * If you need to add your own factories in addition to or instead of the default
- * ones, this class may be subclassed by overriding the
- * {@link #addObservableFactories(IObservableFactory[])},
- * {@link #addBindSupportFactories(BindSupportFactory[])}, and
- * {@link #addBindingFactories(IBindingFactory[])} methods, changing the
- * contents and/or order of the factories, and then delegating to super().
- *  
- * @since 3.3
- * @deprecated no longer part of the API
- */
-public class DataBindingFactory1 extends AbstractDataBindingContextFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.AbstractDataBindingContextFactory#createContext()
-	 */
-	public void configureContext(DataBindingContext context) {
-		addObservableFactories(new IObservableFactory[] {
-				new NestedObservableFactory(context),
-				new BeanObservableFactory(context, null, new Class[] { Widget.class }),
-				new SWTObservableFactory(),
-				new ViewersObservableFactory(),
-				new DefaultObservableFactory(context)
-		});
-		addBindSupportFactories(new BindSupportFactory[] {
-				new DefaultBindSupportFactory()
-		});
-		addBindingFactories(new IBindingFactory[] {
-				new DefaultBindingFactory(),
-				new ViewersBindingFactory()
-		});
-	}
-
-	/**
-	 * Creates, configures, and returns a new data binding context.
-	 * 
-	 * @param parentComposite
-	 *            when parentComposite is disposed, it will automatically
-	 *            dispose the DataBindingContext.
-	 * @return DataBindingContext a configured data binding context.
-	 */
-	public DataBindingContext createContext(Composite parentComposite) {
-		final DataBindingContext result = createContext();
-		
-		parentComposite.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				result.dispose();
-			}
-		});
-		
-		return result;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ExampleBinding.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ExampleBinding.java
deleted file mode 100644
index 33662fd..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ExampleBinding.java
+++ /dev/null
@@ -1,86 +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.examples.databinding;
-
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.NestedObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * An example application-level data binding factory implementation. This should
- * be copied into your application and be modified to include the specific
- * updatable factories your application needs in the order it needs them.
- * <p>
- * Note that the search order for IUpdatableFactory implementations is last to
- * first.
- * </p>
- * 
- * @since 1.0
- */
-public class ExampleBinding {
-
-	/**
-	 * Creates a data binding context whose lifecycle is bound to an SWT
-	 * control, and which supports binding to SWT controls, JFace viewers, and
-	 * POJO model objects with JavaBeans-style notification.
-	 * <p>
-	 * This method is a convenience method; its implementation is equivalent to
-	 * calling {@link DataBinding#createContext(Control, IUpdatableFactory[]) }
-	 * where the array of factories consists of a {@link NestedUpdatableFactory},
-	 * a {@link BeanUpdatableFactory} instance, a {@link SWTUpdatableFactory},
-	 * and a {@link ViewersUpdatableFactory}.
-	 * </p>
-	 * 
-	 * @param control
-	 * @return a data binding context
-	 */
-	public static DataBindingContext createContext(Control control) {
-		final DataBindingContext context = createContext();
-		control.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				context.dispose();
-			}
-		});
-		return context;
-	}
-
-	/**
-	 * Creates a data binding context which supports binding to SWT controls,
-	 * JFace viewers, and POJO model objects with JavaBeans-style notification.
-	 * This data binding context's life cycle is not bound to the dispose event
-	 * of any SWT control. Consequently, the programmer is responsible to
-	 * manually dispose any IUpdatables created using this data binding context
-	 * as necessary.
-	 * <p>
-	 * This method is a convenience method; its implementation is equivalent to
-	 * calling {@link DataBinding#createContext(Control, IUpdatableFactory[]) }
-	 * where the array of factories consists of a {@link NestedUpdatableFactory},
-	 * a {@link BeanUpdatableFactory} instance, a {@link SWTUpdatableFactory},
-	 * and a {@link ViewersUpdatableFactory}.
-	 * </p>
-	 * 
-	 * @return a data binding context
-	 */
-	public static DataBindingContext createContext() {
-		DataBindingContext context = new DataBindingContext();
-		context.addObservableFactory(new NestedObservableFactory(context));
-		context.addObservableFactory(new BeanObservableFactory(context, null, new Class[]{Widget.class}));
-		context.addObservableFactory(new SWTObservableFactory());
-		context.addObservableFactory(new ViewersObservableFactory());
-		return context;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/HelloWorld.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/HelloWorld.java
deleted file mode 100644
index 95fde57..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/HelloWorld.java
+++ /dev/null
@@ -1,59 +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
- *     Brad Reynolds - bug 159539
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding;
-
-import org.eclipse.jface.databinding.DataBindingContext;
-import org.eclipse.jface.databinding.beans.BeansObservables;
-import org.eclipse.jface.databinding.observable.list.WritableList;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.examples.databinding.model.SimplePerson;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @since 3.2
- * 
- */
-public class HelloWorld {
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-        
-		DataBindingContext dbc = DataBindingContext.withDefaults();
-		Combo combo = new Combo(shell, SWT.READ_ONLY);
-		WritableList list = new WritableList();
-		list.add("Hello");
-		list.add("Bonjour");
-		list.add("Guten Tag");
-		dbc.bindList(SWTObservables.getItems(combo), list, null);
-		combo.select(0);
-		Text text = new Text(shell, SWT.BORDER);
-		SimplePerson person = new SimplePerson("Boris", "1234 Carling Ave",
-				"Ottawa", "Canada");
-		dbc.bindValue(SWTObservables.getText(text, SWT.Modify),
-				BeansObservables.getAttribute(person, "name"), null);
-		GridLayoutFactory.swtDefaults().numColumns(2).generateLayout(shell);
-		shell.pack();
-		shell.open();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ModelObject.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ModelObject.java
deleted file mode 100644
index f5b6759..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ModelObject.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.jface.examples.databinding;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class ModelObject {
-	private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
-			this);
-	private String id;
-
-	public void addPropertyChangeListener(PropertyChangeListener listener) {
-		propertyChangeSupport.addPropertyChangeListener(listener);
-	}
-
-	public void addPropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
-	}
-
-	public void removePropertyChangeListener(PropertyChangeListener listener) {
-		propertyChangeSupport.removePropertyChangeListener(listener);
-	}
-
-	public void removePropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		propertyChangeSupport.removePropertyChangeListener(propertyName,
-				listener);
-	}
-
-	protected void firePropertyChange(String propertyName, Object oldValue,
-			Object newValue) {
-		propertyChangeSupport.firePropertyChange(propertyName, oldValue,
-				newValue);
-	}
-	
-	protected void firePropertyChange(String propertyName, int oldValue,
-			int newValue) {
-		propertyChangeSupport.firePropertyChange(propertyName, oldValue,
-				newValue);
-	}
-	
-	protected void firePropertyChange(String propertyName, boolean oldValue,
-			boolean newValue) {
-		propertyChangeSupport.firePropertyChange(propertyName, oldValue,
-				newValue);
-	}
-
-	public void setId(String string) {
-		Object oldValue = id;
-		id = string;
-		firePropertyChange("id", oldValue, id);
-	}
-
-	protected Object[] append(Object[] array, Object object) {
-		List newList = new ArrayList(Arrays.asList(array));
-		newList.add(object);
-		return newList.toArray((Object[]) Array.newInstance(array.getClass()
-				.getComponentType(), newList.size()));
-	}
-
-	protected Object[] remove(Object[] array, Object object) {
-		List newList = new ArrayList(Arrays.asList(array));
-		newList.remove(object);
-		return newList.toArray((Object[]) Array.newInstance(array.getClass()
-				.getComponentType(), newList.size()));
-	}
-	
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/AbsoluteLayout.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/AbsoluteLayout.java
deleted file mode 100644
index a588fed..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/AbsoluteLayout.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Coconut Palm Software, 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:
- *     Coconut Palm Software, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable;
-
-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;
-
-/**
- * A layout manager that lays out child controls in absolute positions.  
- * Each control's bounds is specified by setting an SWT Rectangle
- * object specifying the control's bounds into the control's layout data.
- * <p>
- * Use this layout manager whenever you would have used a null layout
- * previously.
- * 
- * @since 3.3
- */
-public class AbsoluteLayout extends Layout {
-
-	/* (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 flush) {
-		Point result = new Point(0, 0);
-		Control[] children = composite.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			Rectangle bounds = (Rectangle) children[i].getLayoutData();
-			if (bounds == null) {
-				continue;
-			}
-			int rightBounds = bounds.x + bounds.width;
-			int bottomBounds = bounds.y + bounds.height;
-			if (result.x < rightBounds) {
-				result.x = rightBounds;
-			}
-			if (result.y < bottomBounds) {
-				result.y = bottomBounds;
-			}
-		}
-		return result;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Layout#layout(org.eclipse.swt.widgets.Composite, boolean)
-	 */
-	protected void layout(Composite composite, boolean flush) {
-		Control[] children = composite.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			Rectangle bounds = (Rectangle) children[i].getLayoutData();
-			if (bounds == null) {
-				continue;
-			}
-			children[i].setBounds(bounds);
-		}
-	}
-}
-
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/CompositeTable.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/CompositeTable.java
deleted file mode 100644
index d7c0933..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/CompositeTable.java
+++ /dev/null
@@ -1,1273 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme                  - Initial API and implementation
- *     Coconut Palm Software, Inc. - API cleanup
- */
-package org.eclipse.jface.examples.databinding.compositetable;
-
-import java.lang.reflect.Constructor;
-import java.util.ArrayList;
-import java.util.LinkedList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * Class CompositeTable. n. (1) An SWT virtual table control that extends
- * Composite. (2) An SWT virtual table control that is composed of many
- * Composites, each representing a header or a row, one below the other.
- * <p>
- * 
- * CompositeTable is designed specifically to work nicely in the Eclipse Visual
- * Editor, but it is equally easy to use in hand-coded layouts.
- * <p>
- * 
- * <b>Synopsis:</b>
- * <p>
- * 
- * In order to edit anything, one must:
- * <p>
- * 
- * <ul>
- * <li>Extend Composite or Canvas and create an object that can be duplicated
- * to represent the rows in your table.
- * <li>Optionally, extend Composite or Canvas and create a header object in the
- * same way.
- * <li>If the canvas and row objects do not have a layout manager, the
- * CompositeTable will automatically supply one that lays out child controls in
- * a visual table. If they have a layout manager, CompositeTable will let them
- * use that.
- * <li>Create a CompositeTable object, either using VE or using hand-coded SWT.
- * <li>Drop the header (if applicable), then the row object on the
- * CompositeTable or simply write code that creates instances of these objects
- * in that order as child controls of your CompositeTable.
- * <li>Set the RunTime property to "true". Your control is now "live."
- * <li>Add a RowConstructionListener if you need to add event handlers to
- * individual row controls when a row is created.
- * <li>Add a RowContentProvider that knows how to put data into your row
- * object's controls on demand.
- * <li>Add a RowFocusListener to validate and save changed data.
- * <li>Set the NumRowsInCollection property to the number of rows in the
- * underlying data structure.
- * </ul>
- * 
- * Detailed description:
- * <p>
- * 
- * This control is designed to work inside of the Eclipse Visual Editor. To use
- * it, drop one on the design surface. (Even though it extends Canvas, it does
- * not make sense to put a layout manager on it.)
- * <p>
- * 
- * Next create one or two new custom controls by using the Visual Editor to
- * extend Composite. If you create one custom control, it will be used as the
- * prototype for all rows that will be displayed in the table. If you create
- * two, the first one will be used as a prototype for the header and the second
- * one will be used as a prototype for the rows.
- * <p>
- * 
- * If these custom controls are not given layout managers (null layout), then
- * CompositeTable will automatically detect this situation and will supply its
- * own layout manager that will automatically lay out the children of these
- * controls in columns to form a table. However, if you supply layout managers
- * for your header prototype and row prototype objects, CompositeTable will
- * respect your choice. If you use CompositeTable's built-in layout manager,
- * then the weights property will be used to determine what percentage of the
- * total width will be allocated to each column. If this property is not set or
- * if the sum of their elements does not equal 100, the columns are created as
- * equal sizes.
- * <p>
- * 
- * Once you have created your (optional) Header and Row custom controls, simply
- * drop them onto your CompositeTable control in VE. The first of these two
- * custom controls to be instantiated in your code will be interpreted by the
- * CompositeTable as the header control and the second will be interpreted as
- * the row control.
- * <p>
- * 
- * Now that you have defined the (optional) header and row, you can switch your
- * CompositeTable into run mode and use it. This is done by switching the
- * RunTime property to true.
- * <p>
- * 
- * Once in run mode, all of the CompositeTable's properties will be active. In
- * order to use it, set the NumRowsInCollection property to the number of rows
- * in the collection you want to display. And add a RefreshContentProvider,
- * which will be called whenever CompositeTable needs to refresh a particular
- * row.
- * <p>
- * 
- * Please refer to the remainder of the JavaDoc for information on the remaining
- * properties and events.
- * <p>
- * 
- * Although this control extends Composite, it is not intended to be subclassed
- * except within its own implementation and it makes no sense to set a layout
- * manager on it (although as discussed above, the child controls may have
- * layout managers).
- * 
- * @author djo
- * @since 3.2
- */
-public class CompositeTable extends Canvas {
-
-	// Property fields here
-	private boolean runTime = false;
-
-	private int[] weights = new int[0];
-
-	private int numRowsInCollection = 0;
-
-	private int maxRowsVisible = Integer.MAX_VALUE;
-
-	// Private fields here
-	private Constructor headerConstructor = null;
-
-	private Control headerControl = null;
-
-	private Constructor rowConstructor = null;
-
-	private Control rowControl = null;
-
-	// TODO: on public API methods that reference contentPane, make sure it's not null before doing anything
-	private InternalCompositeTable contentPane = null;
-
-	/**
-	 * Constructor CompositeTable. Construct a CompositeTable control.
-	 * CompositeTable accepts the same style bits as the SWT Canvas.
-	 * 
-	 * @param parent
-	 *            The SWT parent control.
-	 * @param style
-	 *            Style bits. These are the same as Canvas
-	 */
-	public CompositeTable(Composite parent, int style) {
-		super(parent, style);
-		setBackground(Display.getCurrent().getSystemColor(
-				SWT.COLOR_LIST_BACKGROUND));
-		setLayout(new Layout() {
-			protected Point computeSize(Composite composite, int wHint,
-					int hHint, boolean flushCache) {
-				if (headerControl == null && rowControl == null) {
-					return new Point(2, 20);
-				}
-				Point headerSize = new Point(0, 0);
-				if (headerControl != null) {
-					headerSize = headerControl.computeSize(SWT.DEFAULT,
-							SWT.DEFAULT);
-				}
-				Point rowSize = new Point(0, 0);
-				if (rowControl != null) {
-					rowSize = rowControl.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				}
-				Point result = new Point(Math.max(headerSize.x, rowSize.x),
-						headerSize.y + rowSize.y);
-				return result;
-			}
-
-			protected void layout(Composite composite, boolean flushCache) {
-				resize();
-			}
-		});
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Control#setBackground(org.eclipse.swt.graphics.Color)
-	 */
-	public void setBackground(Color color) {
-		super.setBackground(color);
-		if (contentPane != null) {
-			contentPane.setBackground(color);
-		}
-	}
-
-	private int numChildrenLastTime = 0;
-
-	/**
-	 * (non-API) Method resize. Resize this table's contents. Called from within
-	 * the custom layout manager.
-	 */
-	protected final void resize() {
-		if (isRunTime()) {
-			Control[] children = getChildren();
-			int childrenLength = 0;
-			for (int i = 0; i < children.length; i++) {
-				if (!(children[i] instanceof InternalCompositeTable)) {
-					++childrenLength;
-				}
-			}
-			if (numChildrenLastTime != childrenLength) {
-				resizeAndRecordPrototypeRows();
-				showPrototypes(false);
-				contentPane.dispose();
-				contentPane = new InternalCompositeTable(this, SWT.NULL);
-			}
-			updateVisibleRows();
-		} else {
-			resizeAndRecordPrototypeRows();
-		}
-	}
-
-	/**
-	 * (non-API) Method updateVisibleRows. Makes sure that the content pane is
-	 * displaying the correct number of visible rows given the control's size.
-	 * Called from within #resize.
-	 */
-	protected void updateVisibleRows() {
-		if (contentPane == null) {
-			switchToRunMode();
-		}
-		Point size = getSize();
-		contentPane.setBounds(0, 0, size.x, size.y);
-	}
-
-	/**
-	 * Switch from design mode where prototype header/row objects can be dropped
-	 * on the control into run mode where all of the properties do what you
-	 * would expect.
-	 */
-	private void switchToRunMode() {
-		showPrototypes(false);
-		contentPane = new InternalCompositeTable(this, SWT.NULL);
-	}
-
-	/**
-	 * Switch back to design mode so that the prototype header/row objects may
-	 * be manipulated directly in a GUI design tool.
-	 */
-	private void switchToDesignMode() {
-		contentPane.dispose();
-		contentPane = null;
-		showPrototypes(true);
-		resizeAndRecordPrototypeRows();
-	}
-
-	/**
-	 * Turns display of the prototype objects on or off.
-	 * 
-	 * @param newValue
-	 *            true of the prototype objects should be displayed; false
-	 *            otherwise.
-	 */
-	private void showPrototypes(boolean newValue) {
-		if (headerControl != null) {
-			headerControl.setVisible(newValue);
-		}
-		if (rowControl != null) {
-			rowControl.setVisible(newValue);
-		}
-	}
-
-	/**
-	 * (non-API) Method resizeAndRecordPrototypeRows. Figure out what child
-	 * controls are the header and row prototype rows respectively and resize
-	 * them so they occupy the entire width and their preferred height.
-	 */
-	protected void resizeAndRecordPrototypeRows() {
-		Control[] children = getChildren();
-		ArrayList realChildren = new ArrayList();
-		Control[] finalChildren = children;
-
-		// Find first two prototypes
-		for (int i = 0; i < children.length; i++) {
-			if (children[i] instanceof InternalCompositeTable) {
-				continue;
-			}
-			if (realChildren.size() < 2) {
-				realChildren.add(children[i]);
-			}
-		}
-		finalChildren = (Control[]) realChildren
-				.toArray(new Control[realChildren.size()]);
-
-		if (finalChildren.length == 0) {
-			headerConstructor = null;
-			headerControl = null;
-			rowConstructor = null;
-			rowControl = null;
-			return;
-		}
-
-		// Get a constructor for the header and/or the row prototype
-		headerConstructor = null;
-		headerControl = null;
-		rowConstructor = null;
-		rowControl = null;
-
-		if (finalChildren.length == 1) {
-			try {
-				rowControl = (Composite) finalChildren[0];
-				rowConstructor = finalChildren[0].getClass().getConstructor(
-						new Class[] { Composite.class, Integer.TYPE });
-			} catch (Exception e) {
-				throw new RuntimeException("Unable to get constructor object for header or row", e);
-			}
-		} else {
-			try {
-				headerConstructor = finalChildren[0].getClass().getConstructor(
-						new Class[] { Composite.class, Integer.TYPE });
-				headerControl = finalChildren[0];
-				rowConstructor = finalChildren[1].getClass().getConstructor(
-						new Class[] { Composite.class, Integer.TYPE });
-				rowControl = finalChildren[1];
-			} catch (Exception e) {
-				throw new RuntimeException("Unable to get constructor object for header or row", e);
-			}
-		}
-
-		// Now actually resize the children
-		int top = 0;
-		int width = getSize().x;
-		for (int i = 0; i < finalChildren.length; ++i) {
-			int height = 50;
-			if (finalChildren[i] instanceof Composite) {
-				Composite child = (Composite) finalChildren[i];
-				if (child.getLayout() == null) {
-					height = layoutHeaderOrRow(child, i==0);	// The 0th element is the header
-				} else {
-					height = finalChildren[i].computeSize(SWT.DEFAULT,
-							SWT.DEFAULT).y;
-				}
-			} else {
-				height = finalChildren[i].computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-			}
-
-			finalChildren[i].setBounds(0, top, width, height);
-			top += height;
-		}
-
-		numChildrenLastTime = children.length;
-		Display.getCurrent().asyncExec(new Runnable() {
-			public void run() {
-				if (!CompositeTable.this.isDisposed()) {
-					if (!getParent().isDisposed()) {
-						getParent().layout(true);
-					}
-				}
-			}
-		});
-	}
-
-	/**
-	 * (non-API) Method layoutHeaderOrRow. If a header or row object does not
-	 * have a layout manager, this method will automatically be called to layout
-	 * the child controls of that header or row object.
-	 * 
-	 * @param child
-	 *            The child object to layout.
-	 * @param isHeader If we're laying out a header or a row object
-	 * @return the height of the header or row
-	 */
-	int layoutHeaderOrRow(Composite child, boolean isHeader) {
-		if (isFittingHorizontally() || isWidthWiderThanAllColumns()) {
-			return layoutWeightedHeaderOrRow(child, isHeader);
-		}
-		return layoutAbsoluteWidthHeaderOrRow(child, isHeader);
-	}
-	
-   boolean isWidthWiderThanAllColumns() {
-      // isFittingHorizontally must be false because this is only called
-      // as the second part of a short-circuit boolean evaluation
-      int allColumnsTotalWidth = 0;
-      for (int i = 0; i < weights.length; i++) {
-         allColumnsTotalWidth += weights[i]+2;
-      }
-      return getSize().x > allColumnsTotalWidth;
-   }
-
-   private int layoutWeightedHeaderOrRow(Composite child, boolean isHeader) {
-		Control[] children = child.getChildren();
-		if (children.length == 0) {
-			return 50;
-		}
-		int maxHeight = computeMaxHeight(isHeader, children);
-
-		int[] weights = this.weights;
-      if (isFittingHorizontally()) {
-         weights = checkWeights(weights, children.length);
-      } else {
-         weights = computeWeights(weights, children.length);
-      }
-		
-		int widthRemaining = child.getParent().getSize().x;
-		int totalSize = widthRemaining;
-		for (int i = 0; i < children.length - 1; i++) {
-			int left = totalSize - widthRemaining;
-			int desiredHeight = computeDesiredHeight(children[i], isHeader);
-			int top = computeTop(maxHeight, desiredHeight);
-			int width = (int) (((float) weights[i]) / 100 * totalSize);
-			children[i].setBounds(left + 2, top, width - 4, desiredHeight);
-			widthRemaining -= width;
-		}
-
-		int left = totalSize - widthRemaining;
-		int desiredHeight = computeDesiredHeight(children[children.length - 1], isHeader);
-		int top = computeTop(maxHeight, desiredHeight);
-		children[children.length - 1].setBounds(left + 2, top,
-				widthRemaining - 4, desiredHeight);
-
-		return maxHeight;
-	}
-	
-   private int layoutAbsoluteWidthHeaderOrRow(Composite child, boolean isHeader) {
-		Control[] children = child.getChildren();
-		if (children.length == 0) {
-			return 50;
-		}
-		int maxHeight = computeMaxHeight(isHeader, children);
-
-		int[] weights = this.weights;
-		int left = 0;
-		for (int i = 0; i < children.length; i++) {
-			int desiredHeight = computeDesiredHeight(children[i], isHeader);
-			int top = computeTop(maxHeight, desiredHeight);
-			children[i].setBounds(left + 2, top, weights[i], desiredHeight);
-			left += weights[i]+4;
-		}
-
-		return maxHeight;
-	}
-
-	private int computeTop(int maxHeight, int desiredHeight) {
-		return maxHeight - desiredHeight - 1;
-	}
-
-	private int computeMaxHeight(boolean isHeader, Control[] children) {
-		int maxHeight = 0;
-		for (int i = 0; i < children.length; i++) {
-			int height = computeDesiredHeight(children[i], isHeader);
-			if (maxHeight < height) {
-				maxHeight = height;
-			}
-		}
-		++maxHeight;
-		return maxHeight;
-	}
-	
-	int computeDesiredHeight(Control control, boolean isHeader) {
-		int controlHeight = control.computeSize(SWT.DEFAULT,
-				SWT.DEFAULT, false).y;
-		if (maxRowsVisible == Integer.MAX_VALUE || isHeader) {
-			return controlHeight;
-		}
-		if (contentPane != null && fittingVertically && isRunTime()) {
-			// FIXME: Yuck: bad code smell here...  (coupling with contentPane)
-			int fitControlHeight = contentPane.clientAreaHeight / maxRowsVisible;
-			if (fitControlHeight < controlHeight) {
-				return controlHeight;
-			}
-			return fitControlHeight-2;
-		}
-		return controlHeight;
-	}
-
-   private int[] computeWeights(int[] weights, int numChildren) {
-      if (weights.length != numChildren) {
-         return checkWeights(weights, numChildren);
-      }
-      int allColumnsTotalWidth = 0;
-      for (int i = 0; i < weights.length; i++) {
-         allColumnsTotalWidth += weights[i];
-      }
-      int[] realWeights = new int[numChildren];
-      int total=100;
-      for (int i = 0; i < realWeights.length; i++) {
-         realWeights[i] = (int) (((double)weights[i])/allColumnsTotalWidth * 100);
-         total -= realWeights[i];
-      }
-      int i=0;
-      while (total > 0) {
-         ++realWeights[i];
-         --total;
-         ++i;
-         if (i >= realWeights.length) {
-            i = 0;
-         }
-      }
-      return realWeights;
-   }
-
-	/**
-	 * Compute and return a weights array where each weight is the percentage
-	 * the corresponding column should occupy of the entire control width. If
-	 * the elements in the supplied weights array add up to 100 and the length
-	 * of the array is the same as the number of columns, the supplied weights
-	 * array is used. Otherwise, this method computes and returns a weights
-	 * array that makes each column an equal size.
-	 * 
-	 * @param weights
-	 *            The default or user-supplied weights array.
-	 * @param numChildren
-	 *            The number of child controls.
-	 * @return The weights array that will be used by the layout manager.
-	 */
-	private int[] checkWeights(int[] weights, int numChildren) {
-		if (weights.length == numChildren) {
-			int sum = 0;
-			for (int i = 0; i < weights.length; i++) {
-				sum += weights[i];
-			}
-			if (sum == 100) {
-				return weights;
-			}
-		}
-
-		// Either the number of weights doesn't match or they don't add up.
-		// Compute something sane and return that instead.
-		int[] result = new int[numChildren];
-		int weight = 100 / numChildren;
-		int extra = 100 % numChildren;
-		for (int i = 0; i < result.length - 1; i++) {
-			result[i] = weight;
-			if (extra > 0) {
-				result[i]++;
-				extra--;
-			}
-		}
-		result[numChildren - 1] = weight + extra;
-		return result;
-	}
-
-	/**
-	 * Method isRunTime. Returns if the CompositeTable is in run time mode as
-	 * opposed to design time mode. In design time mode, the only permitted
-	 * operations are to add or remove child Composites to be used as the header
-	 * and/or row prototype objects.
-	 * 
-	 * @return true if this CompositeTable is in run mode. false otherwise.
-	 */
-	public boolean isRunTime() {
-		return runTime;
-	}
-
-	/**
-	 * Method setRunTime. Turns run-time mode on or off. When run-time mode is
-	 * off, CompositeTable ignores most property operations and will accept
-	 * prototype child controls to be added. When run-time mode is on, the
-	 * prototype controls are interpreted and all properties become active.
-	 * 
-	 * @param runTime
-	 *            true if run-time mode should be enabled; false otherwise.
-	 */
-	public void setRunTime(boolean runTime) {
-		if (this.runTime != runTime) {
-			this.runTime = runTime;
-			if (runTime) {
-				if (rowControl == null) {
-					resizeAndRecordPrototypeRows();
-				}
-				switchToRunMode();
-			} else {
-				switchToDesignMode();
-			}
-		}
-	}
-
-	/**
-	 * Method getWeights. If isFittingHorizontally, returns an array 
-	 * representing the percentage of the total width each column is allocated 
-	 * or null if no weights have been specified.
-	 * <p> 
-	 * If !isFittingHorizontally, returns an array where each element is the
-	 * absolute width in pixels of the corresponding column.
-	 * <p>
-	 * This property is ignored if the programmer has set a layout
-	 * manager on the header and/or the row prototype objects.
-	 * 
-	 * @return the current weights array or null if no weights have been
-	 *         specified.
-	 */
-	public int[] getWeights() {
-		return weights;
-	}
-
-	/**
-	 * Method setWeights.  If isFittingHorizontally, specifies an array 
-	 * representing the percentage of the total width each column is allocated 
-	 * or null if no weights have been specified.
-	 * <p> 
-	 * If !isFittingHorizontally, specifies an array where each element is the
-	 * absolute width in pixels of the corresponding column.
-	 * <p>
-	 * This property is ignored if the programmer has set a layout
-	 * manager on the header and/or the row prototype objects.
-	 * <p>
-	 * The number of elements in the array must match the number of columns and
-	 * if isFittingHorizontally, the sum of all elements must equal 100. 
-	 * If either of these constraints is not true, this property will be ignored 
-	 * and all columns will be created equal in width.
-	 * 
-	 * @param weights
-	 *            the weights to use if the CompositeTable is automatically
-	 *            laying out controls.
-	 */
-	public void setWeights(int[] weights) {
-		this.weights = weights;
-		if (contentPane != null) {
-			contentPane.setWeights();
-		}
-	}
-
-	boolean linesVisible = true;
-
-	/**
-	 * Method getLinesVisible. Returns if the CompositeTable will draw grid lines
-	 * on the header and row Composite objects. This property is ignored if the
-	 * programmer has set a layout manager on the header and/or the row
-	 * prototype objects.
-	 * 
-	 * @return true if the CompositeTable will draw grid lines; false otherwise.
-	 */
-	public boolean getLinesVisible() {
-		return linesVisible;
-	}
-
-	/**
-	 * Method setLinesVisible. Sets if the CompositeTable will draw grid lines on
-	 * the header and row Composite objects. This property is ignored if the
-	 * programmer has set a layout manager on the header and/or the row
-	 * prototype objects.
-	 * 
-	 * @param linesVisible
-	 *            true if the CompositeTable will draw grid lines; false
-	 *            otherwise.
-	 */
-	public void setLinesVisible(boolean linesVisible) {
-		this.linesVisible = linesVisible;
-	}
-
-	String insertHint = "Press <Ctrl-INSERT> to insert new data."; //$NON-NLS-1$
-
-	/**
-	 * Returns the hint string that will be displayed when there are no rows in
-	 * the table.
-	 * 
-	 * @return The hint string that will be displayed when there are no rows in
-	 *         the table.
-	 */
-	public String getInsertHint() {
-		return insertHint;
-	}
-
-	/**
-	 * Sets the hint string that will be displayed when there are no rows in the
-	 * table. The default value is "Press &lt;INS> to insert a new row."
-	 * 
-	 * @param newHint
-	 */
-	public void setInsertHint(String newHint) {
-		this.insertHint = newHint;
-      if (contentPane != null && numRowsInCollection < 1) {
-         contentPane.emptyTablePlaceholder.setMessage(newHint);
-      }
-	}
-
-	/**
-	 * Method getMaxRowsVisible. Returns the maximum number of rows that will be
-	 * permitted in the table at once. For example, setting this property to 1
-	 * will have the effect of creating a single editing area with a scroll bar
-	 * on the right allowing the user to scroll through all rows using either
-	 * the mouse or the PgUp/PgDn keys. The default value is Integer.MAX_VALUE.
-	 * 
-	 * @return the maximum number of rows that are permitted to be visible at
-	 *         one time, regardless of the control's size.
-	 */
-	public int getMaxRowsVisible() {
-		return maxRowsVisible;
-	}
-
-	/**
-	 * Method setMaxRowsVisible. Sets the maximum number of rows that will be
-	 * permitted in the table at once. For example, setting this property to 1
-	 * will have the effect of creating a single editing area with a scroll bar
-	 * on the right allowing the user to scroll through all rows using either
-	 * the mouse or the PgUp/PgDn keys. The default value is Integer.MAX_VALUE.
-	 * 
-	 * @param maxRowsVisible
-	 *            the maximum number of rows that are permitted to be visible at
-	 *            one time, regardless of the control's size.
-	 */
-	public void setMaxRowsVisible(int maxRowsVisible) {
-		this.maxRowsVisible = maxRowsVisible;
-		if (contentPane != null) {
-			contentPane.setMaxRowsVisible(maxRowsVisible);
-		}
-	}
-
-	private boolean fittingVertically = false;
-
-	/**
-	 * Method isFittingVertically. Returns if the CompositeTable control will
-	 * scale the height of all rows so that maxRowsVisible rows exactly fits
-	 * vertically in the available space.
-	 * 
-	 * @return true if the visible rows will be scaled; false otherwise.
-	 */
-	public boolean isFittingVertically() {
-		return fittingVertically;
-	}
-
-	/**
-	 * Method setFittingVertically. Sets if the CompositeTable will scale the
-	 * visible rows sot that maxRowsVisible rows will exactly fit vertically in
-	 * the available space.
-	 * 
-	 * @param fittingVertically
-	 *            true if the visible rows will be scaled; false otherwise.
-	 */
-	public void setFittingVertically(boolean fittingVertically) {
-		this.fittingVertically = fittingVertically;
-		if (contentPane != null) {
-			contentPane.setFittingVertically(fittingVertically);
-		}
-	}
-	
-	private boolean fittingHorizontally = true;
-	
-	/**
-	 * Method isFittingHorizontally.  Returns if the CompositeTable control
-	 * will scale the widths of all columns so that they all fit into the
-	 * available space.
-	 * 
-	 * @return Returns true if the table's actual width is set to equal the
-	 * visible width; false otherwise.
-	 */
-	public boolean isFittingHorizontally() {
-		return fittingHorizontally;
-	}
-	
-	/**
-	 * Method setFittingHorizontally. Sets if the CompositeTable control
-	 * will scale the widths of all columns so that they all fit into the
-	 * available space.
-	 * 
-	 * @param fittingHorizontally true if the table's actual width is set to 
-	 * equal the visible width; false otherwise.
-	 */
-	public void setFittingHorizontally(boolean fittingHorizontally) {
-		this.fittingHorizontally = fittingHorizontally;
-		if (contentPane != null) {
-			contentPane.setFittingHorizontally(fittingHorizontally);
-		}
-	}
-
-	/**
-	 * Method getNumRowsVisible. Returns the actual number of rows that are
-	 * currently visible. Normally CompositeTable displays as many rows as will
-	 * fit vertically given the control's size. This value can be clamped to a
-	 * maximum using the MaxRowsVisible property.
-	 * 
-	 * @return the actual number of rows that are currently visible.
-	 */
-	public int getNumRowsVisible() {
-		if (contentPane != null)
-			return contentPane.getNumRowsVisible();
-
-		return -1;
-	}
-
-	/**
-	 * Method getNumRowsInCollection. Returns the number of rows in the data
-	 * structure that is being edited.
-	 * 
-	 * @return the number of rows in the underlying data structure.
-	 */
-	public int getNumRowsInCollection() {
-		return numRowsInCollection;
-	}
-
-	/**
-	 * Method setNumRowsInCollection. Sets the number of rows in the data
-	 * structure that is being edited.
-	 * 
-	 * @param numRowsInCollection
-	 *            the number of rows represented by the underlying data
-	 *            structure.
-	 */
-	public void setNumRowsInCollection(int numRowsInCollection) {
-		if (rowControl == null) {
-			resizeAndRecordPrototypeRows();
-			if (contentPane != null) {
-				setRunTime(false);
-				setRunTime(true);
-			}
-		}
-		this.numRowsInCollection = numRowsInCollection;
-		if (contentPane != null) {
-			contentPane.setNumRowsInCollection(numRowsInCollection);
-		}
-	}
-
-	private int topRow = 0;
-
-	/**
-	 * Method getTopRow. Return the number of the line that is being displayed
-	 * in the top row of the CompositeTable editor (0-based).
-	 * 
-	 * @return the number of the top line.
-	 */
-	public int getTopRow() {
-		if (contentPane != null) {
-			return contentPane.getTopRow();
-		}
-		return topRow;
-	}
-
-	/**
-	 * Method setTopRow. Set the number of the line that is being displayed in
-	 * the top row of the CompositeTable editor (0-based). If the new top row is
-	 * not equal to the current top row, the table will automatically be
-	 * scrolled to the new position. This number must be greater than 0 and less
-	 * than NumRowsInCollection.
-	 * 
-	 * @param topRow
-	 *            the line number of the new top row.
-	 */
-	public void setTopRow(int topRow) {
-		this.topRow = topRow;
-		if (contentPane != null) {
-			contentPane.setTopRow(topRow);
-		}
-	}
-
-	/**
-	 * Makes sure that the focused row is visible
-	 * 
-	 * @return true if the display needed to be scrolled; false otherwise
-	 */
-	public boolean makeFocusedRowVisible() {
-		if (contentPane != null) {
-			return contentPane.makeFocusedRowVisible();
-		}
-		return false;
-	}
-	
-	/**
-	 * Method refreshAllRows. Refresh all visible rows in the CompositeTable
-	 * from the original data.
-	 */
-	public void refreshAllRows() {
-		if (contentPane != null) {
-			contentPane.updateVisibleRows();
-			contentPane.refreshAllRows();
-		}
-	}
-
-	/**
-	 * Method getCurrentColumn. Returns the column number of the
-	 * currently-focused column (0-based).
-	 * 
-	 * @return the column number of the currently-focused column.
-	 */
-	public int getCurrentColumn() {
-		if (contentPane == null) {
-			return -1;
-		}
-		return getSelection().x;
-	}
-
-	/**
-	 * Method setCurrentColumn. Sets the column number of the currently-focused
-	 * column (0-based).
-	 * 
-	 * @param column
-	 *            The new column to focus.
-	 */
-	public void setCurrentColumn(int column) {
-		setSelection(column, getCurrentRow());
-	}
-
-	/**
-	 * Method getCurrentRow. Returns the current row number as an offset from
-	 * the top of the table window. In order to get the current row in the
-	 * underlying data structure, compute getTopRow() + getCurrentRow().
-	 * 
-	 * @return the current row number as an offset from the top of the table
-	 *         window.
-	 */
-	public int getCurrentRow() {
-		if (contentPane == null) {
-			return -1;
-		}
-		return getSelection().y;
-	}
-
-	/**
-	 * Method setCurrentRow. Sets the current row number as an offset from the
-	 * top of the table window. In order to get the current row in the
-	 * underlying data structure, compute getTopRow() + getCurrentRow().
-	 * 
-	 * @param row
-	 *            the current row number as an offset from the top of the table
-	 *            window.
-	 */
-	public void setCurrentRow(int row) {
-		setSelection(getCurrentColumn(), row);
-	}
-
-	/**
-	 * Method getCurrentRowControl. Returns the SWT control that displays the
-	 * current row.
-	 * 
-	 * @return Control the current row control.
-	 */
-	public Control getCurrentRowControl() {
-		return contentPane.getCurrentRowControl();
-	}
-	
-	/**
-	 * Method getRowControls. Returns an array of SWT controls where each
-	 * control represents a row control in the CompositeTable's current scrolled
-	 * position. If CompositeTable is resized, scrolled, such that the rows that
-	 * the CompositeTable control is displaying change in any way, the array
-	 * that is returned by this method will become out of date and need to be
-	 * retrieved again.
-	 * 
-	 * @return Control[] An array of SWT Control objects, each representing an
-	 *         SWT row object.
-	 */
-	public Control[] getRowControls() {
-		return contentPane.getRowControls();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setMenu(org.eclipse.swt.widgets.Menu)
-	 */
-	public void setMenu(Menu menu) {
-		super.setMenu(menu);
-		if (contentPane != null) {
-			contentPane.setMenu(menu);
-		}
-	}
-	
-	/**
-	 * Method getControlRow.  Given a row control, returns its row number
-	 * relative to the topRow.
-	 * 
-	 * @param rowControl The row object to find
-	 * @return The row number of the rowControl relative to the topRow (0-based)
-	 * @throws IllegalArgumentException if rowControl is not currently visible
-	 */
-	public int getControlRow(Control rowControl) {
-		return contentPane.getControlRow(rowControl);
-	}
-
-	/**
-	 * Method getSelection. Returns the currently-selected (column, row) pair
-	 * where the row specifies the offset from the top of the table window. In
-	 * order to get the current row in the underlying data structure, use
-	 * getSelection().y + getTopRow().
-	 * 
-	 * @return the currently-selected (column, row) pair where the row specifies
-	 *         the offset from the top of the table window.
-	 */
-	public Point getSelection() {
-		if (contentPane == null) {
-			return null;
-		}
-		return contentPane.getSelection();
-	}
-
-	/**
-	 * Method setSelection. Sets the currently-selected (column, row) pair where
-	 * the row specifies the offset from the top of the table window. In order
-	 * to get the current row in the underlying data structure, use
-	 * getSelection().y + getCurrentRow().
-	 * 
-	 * @param selection
-	 *            the (column, row) to select
-	 */
-	public void setSelection(Point selection) {
-		setSelection(selection.x, selection.y);
-	}
-
-	/**
-	 * Method setSelection. Sets the currently-selected (column, row) pair where
-	 * the row specifies the offset from the top of the table window. In order
-	 * to get the current row in the underlying data structure, use
-	 * getSelection().y + getCurrentRow().
-	 * 
-	 * @param column
-	 *            the column to select
-	 * @param row
-	 *            the row to select as an offset from the top of the window
-	 */
-	public void setSelection(int column, int row) {
-		if (contentPane == null) {
-			return;
-		}
-		contentPane.setSelection(column, row);
-	}
-
-	/**
-	 * (non-API) Method getHeaderConstructor. Returns the Constructor object
-	 * used internally to construct the table's header or null if there is none.
-	 * 
-	 * @return the header's constructor.
-	 */
-	public Constructor getHeaderConstructor() {
-		return headerConstructor;
-	}
-
-	/**
-	 * (non-API) Method getRowConstructor. Returns the Constructor object used
-	 * internally to construct each row object.
-	 * 
-	 * @return the rows' constructor
-	 */
-	public Constructor getRowConstructor() {
-		return rowConstructor;
-	}
-
-	/**
-	 * (non-API) Method getHeaderControl. Returns the prototype header control.
-	 * 
-	 * @return the prototype header control.
-	 */
-	public Control getHeaderControl() {
-		return headerControl;
-	}
-
-	/**
-	 * (non-API) Method getRowControl. Returns the prototype row control.
-	 * 
-	 * @return the prototype row control.
-	 */
-	public Control getRowControl() {
-		return rowControl;
-	}
-
-	LinkedList contentProviders = new LinkedList();
-
-	/**
-	 * Method addRowContentProvider. Adds the specified content provider to the
-	 * list of content providers that will be called when a row needs to be
-	 * filled with data. Most of the time it only makes sense to add a single
-	 * one.
-	 * 
-	 * @param contentProvider
-	 *            The content provider to add.
-	 */
-	public void addRowContentProvider(IRowContentProvider contentProvider) {
-		contentProviders.add(contentProvider);
-	}
-
-	/**
-	 * Method removeRowContentProvider. Removes the specified content provider
-	 * from the list of content providers that will be called when a row needs
-	 * to be filled with data.
-	 * 
-	 * @param contentProvider
-	 *            The content provider to remove.
-	 */
-	public void removeRowContentProvider(IRowContentProvider contentProvider) {
-		contentProviders.remove(contentProvider);
-	}
-
-	LinkedList rowFocusListeners = new LinkedList();
-
-	/**
-	 * Method addRowListener. Adds the specified listener to the set of
-	 * listeners that will be notified when the user wishes to leave a row and
-	 * when the user has already left a row. If any listener vetos leaving a
-	 * row, the focus remains in the row.
-	 * 
-	 * @param rowListener
-	 *            The listener to add.
-	 */
-	public void addRowFocusListener(IRowFocusListener rowListener) {
-		rowFocusListeners.add(rowListener);
-	}
-
-	/**
-	 * Method removeRowListener. Removes the specified listener from the set of
-	 * listeners that will be notified when the user wishes to leave a row and
-	 * when the user has already left a row. If any listener vetos leaving a
-	 * row, the focus remains in the row.
-	 * 
-	 * @param listener
-	 *            The listener to remove.
-	 */
-	public void removeRowFocusListener(IRowFocusListener listener) {
-		rowFocusListeners.remove(listener);
-	}
-
-	LinkedList insertHandlers = new LinkedList();
-
-	/**
-	 * Method addInsertHandler. Adds the specified insertHandler to the set of
-	 * objects that will be used to handle insert requests.
-	 * 
-	 * @param insertHandler
-	 *            the insertHandler to add.
-	 */
-	public void addInsertHandler(IInsertHandler insertHandler) {
-		insertHandlers.add(insertHandler);
-	}
-
-	/**
-	 * Method removeInsertHandler. Removes the specified insertHandler from the
-	 * set of objects that will be used to handle insert requests.
-	 * 
-	 * @param insertHandler
-	 *            the insertHandler to remove.
-	 */
-	public void removeInsertHandler(IInsertHandler insertHandler) {
-		insertHandlers.remove(insertHandler);
-	}
-
-	LinkedList deleteHandlers = new LinkedList();
-
-	/**
-	 * Method addDeleteHandler. Adds the specified deleteHandler to the set of
-	 * objects that will be used to handle delete requests.
-	 * 
-	 * @param deleteHandler
-	 *            the deleteHandler to add.
-	 */
-	public void addDeleteHandler(IDeleteHandler deleteHandler) {
-		deleteHandlers.add(deleteHandler);
-	}
-
-	/**
-	 * Method removeDeleteHandler. Removes the specified deleteHandler from the
-	 * set of objects that will be used to handle delete requests.
-	 * 
-	 * @param deleteHandler
-	 *            the deleteHandler to remove.
-	 */
-	public void removeDeleteHandler(IDeleteHandler deleteHandler) {
-		deleteHandlers.remove(deleteHandler);
-	}
-
-	LinkedList rowConstructionListeners = new LinkedList();
-
-	/**
-	 * Method addRowConstructionListener. Adds the specified
-	 * rowConstructionListener to the set of objects that will be used to listen
-	 * to row construction events.
-	 * 
-	 * @param rowConstructionListener
-	 *            the rowConstructionListener to add.
-	 */
-	public void addRowConstructionListener(
-			RowConstructionListener rowConstructionListener) {
-		rowConstructionListeners.add(rowConstructionListener);
-	}
-
-	/**
-	 * Method removeRowConstructionListener. Removes the specified
-	 * rowConstructionListener from the set of objects that will be used to
-	 * listen to row construction events.
-	 * 
-	 * @param rowConstructionListener
-	 *            the rowConstructionListener to remove.
-	 */
-	public void removeRowConstructionListener(
-			RowConstructionListener rowConstructionListener) {
-		rowConstructionListeners.remove(rowConstructionListener);
-	}
-
-	boolean deleteEnabled = true;
-
-	/**
-	 * Method isDeleteEnabled. Returns if delete is enabled. Deletions are only
-	 * processed if the DeleteEnabled property is true and at least one delete
-	 * handler has been registered.
-	 * <p>
-	 * 
-	 * The default value is true.
-	 * 
-	 * @return true if delete is enabled. false otherwise.
-	 */
-	public boolean isDeleteEnabled() {
-		return deleteEnabled;
-	}
-
-	/**
-	 * Method setDeleteEnabled. Sets if delete is enabled. Deletions are only
-	 * processed if the DeleteEnabled property is true and at least one delete
-	 * handler has been registered.
-	 * <p>
-	 * 
-	 * The default value is true.
-	 * 
-	 * @param deleteEnabled
-	 *            true if delete should be enabled. false otherwise.
-	 */
-	public void setDeleteEnabled(boolean deleteEnabled) {
-		this.deleteEnabled = deleteEnabled;
-	}
-	
-	LinkedList scrollListeners = new LinkedList();
-	
-	/**
-	 * Method addScrollListener.  Adds the specified scroll listener to the
-	 * list of listeners that will be notified when this CompositeTable control
-	 * scrolls the top-visible row.  This event is not fired when the 
-	 * CompositeTable is resized.
-	 * 
-	 * @param scrollListener the ScrollListener to add.
-	 */
-	public void addScrollListener(ScrollListener scrollListener) {
-		scrollListeners.add(scrollListener);
-	}
-	
-	/**
-	 * Method removeScrollListener.  Removes the specified scroll listener from the
-	 * list of listeners that will be notified when this CompositeTable control
-	 * scrolls the top-visible row.
-	 * 
-	 * @param scrollListener the ScrollListener to remove.
-	 */
-	public void removeScrollListener(ScrollListener scrollListener) {
-		scrollListeners.remove(scrollListener);
-	}
-
-	private boolean traverseOnTabsEnabled = true;
-	
-	/**
-	 * Method isTraverseOnTabsEnabled. Returns true if Tab and Shift-tab cause
-	 * the focus to wrap from the end of the table back to the beginning and
-	 * Enter causes the focus to advance. Returns false otherwise.
-	 * <p>
-	 * This property defaults to true.
-	 * 
-	 * @return true if CompositeTable is handling Tab, Shift-tab, and Enter key
-	 *         behavior; false otherwise.
-	 */
-	public boolean isTraverseOnTabsEnabled() {
-		return traverseOnTabsEnabled;
-	}
-
-	/**
-	 * Method setTraverseOnTabsEnabled. Sets if Tab and Shift-tab cause
-	 * the focus to wrap from the end of the table back to the beginning and
-	 * Enter causes the focus to advance.
-	 * <p>
-	 * This property defaults to true.
-	 * 
-	 * @param enabled true if CompositeTable is handling Tab, Shift-tab, and Enter key
-	 *         behavior; false otherwise.
-	 */
-	public void setTraverseOnTabsEnabled(boolean enabled) {
-		this.traverseOnTabsEnabled = enabled;
-	}
-
-} // @jve:decl-index=0:visual-constraint="10,10"
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IDeleteHandler.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IDeleteHandler.java
deleted file mode 100644
index ec71880..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IDeleteHandler.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable;
-
-/**
- * Interface IDeleteHandler.  An interface for objects that can manage deletions on behalf of
- * a CompositeTable.
- */
-public interface IDeleteHandler {
-	/**
-	 * Method canDelete.  This method is called to determine if the specified row can
-	 * be successfully deleted.  The receiver may perform whatever validation that is required
-	 * If this is successful, the receiver should return true.  If the object cannot 
-	 * (or must not) be deleted, the receiver must return false.
-	 * 
-	 * @param rowInCollection The row under consideration for deletion.
-	 * @return true if the row can be deleted; false otherwise.
-	 */
-	public boolean canDelete(int rowInCollection);
-	
-	/**
-	 * Method deleteRow.  This method is called when the user has requested to delete the 
-	 * specified row.  
-	 * 
-	 * @param rowInCollection The row in the collection to delete (0-based).
-	 */
-	public void deleteRow(int rowInCollection);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IInsertHandler.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IInsertHandler.java
deleted file mode 100644
index ca2299a..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IInsertHandler.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable;
-
-/**
- * Interface IInsertHandler.  An interface for objects that can handle requests to insert a new
- * object into a collection being edited by a CompositeTable.
- * 
- * @author djo
- */
-public interface IInsertHandler {
-	/**
-	 * Method insert.  Requests that the receiver insert object(s) making up a new row at 
-	 * the specified position.  The receiver returns the actual position where the insert
-	 * occured (that doesn't have to be the same as the requested position).
-	 * 
-	 * @param positionHint The user's current position in the user interface relative to the 
-	 * beginning of the collection (0-based).
-	 * 
-	 * @return the actual position of the new object or -1 if a new object could
-	 * not be inserted.
-	 */
-	public int insert(int positionHint);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IRowContentProvider.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IRowContentProvider.java
deleted file mode 100644
index 5c251d1..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IRowContentProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable;
-
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Interface IRowContentProvider.  An interface for objects that are able to initialize an
- * arbitrary row control with values on demand.
- * @author djo
- */
-public interface IRowContentProvider {
-
-	/**
-	 * Method refresh.  Requests receiver to refresh the currentRowInTable with data
-	 * to edit.
-	 * 
-	 * @param sender The CompositeTable sending the message.
-	 * @param currentObjectOffset The 0-based row number that is offset in the data structure of 
-	 * the table's top row.
-	 * @param row The row control to fill with data.  This will be a copy of your prototype 
-	 * row object.
-	 */
-	void refresh(CompositeTable sender, int currentObjectOffset, Control row);
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IRowFocusListener.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IRowFocusListener.java
deleted file mode 100644
index 6409826..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/IRowFocusListener.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable;
-
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Interface IRowFocusListener. An interface for objects that want to listen to
- * and have the possibility of vetoing row change events on a CompositeTable.
- * This interface is not intended to be implemented except within the
- * CompositeTable implementation.  Extend RowFocusAdapter instead.
- * 
- * @author djo
- */
-public interface IRowFocusListener {
-
-	/**
-	 * Method requestRowChange.  Requests permission to change rows.  This method is
-	 * called immediately before a row change occurs.  Listeners must return true to
-	 * grant permission for the row change to occur or return false to veto it.  If
-	 * any listener returns false, the entire row change operation is aborted.<p>
-	 *  
-	 * @param sender The CompositeTable sending the event.
-	 * @param currentObjectOffset The offset of the current object in the data structure.
-	 * @param row The row control that is losing focus.
-	 * @return true to permit the row change to occur; false otherwise.
-	 */
-	boolean requestRowChange(CompositeTable sender, int currentObjectOffset, Control row);
-	
-	/**
-	 * Method depart.  Called after requstRowChange has been called to indicate that
-	 * the focus is departing the specified row.
-	 * 
-	 * @param sender
-	 * @param currentObjectOffset
-	 * @param row
-	 */
-	void depart(CompositeTable sender, int currentObjectOffset, Control row);
-
-	/**
-	 * Method arrive.  Notifies receiver that the current row has just been changed.
-	 * 
-	 * @param sender The CompositeTable sending the event.
-	 * @param currentObjectOffset The 0-based offset to the row that should be populated
-	 * @param newRow The actual SWT row object that needs to be populated with data
-	 */
-	void arrive(CompositeTable sender, int currentObjectOffset, Control newRow);
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/InternalCompositeTable.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/InternalCompositeTable.java
deleted file mode 100644
index 264adef..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/InternalCompositeTable.java
+++ /dev/null
@@ -1,2097 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable;
-
-import java.lang.reflect.Constructor;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.eclipse.jface.examples.databinding.compositetable.internal.EmptyTablePlaceholder;
-import org.eclipse.jface.examples.databinding.compositetable.internal.ISelectableRegionControl;
-import org.eclipse.jface.examples.databinding.compositetable.internal.TableRow;
-import org.eclipse.jface.examples.databinding.compositetable.reflect.DuckType;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyEvent;
-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.events.TraverseEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-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.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.Menu;
-import org.eclipse.swt.widgets.Slider;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * (non-API) Class InternalCompositeTable. This is the run-time
- * CompositeTableControl. It gets its prototype row and (optional) header
- * objects from its SWT parent, then uses them to implement an SWT virtual table
- * control.
- * 
- * @author djo
- */
-public class InternalCompositeTable extends Composite implements Listener {
-	// The internal UI controls that make up this control.
-	private Composite controlHolder = null;
-	private Composite vSliderHolder = null;
-	private Slider vSlider = null;
-	private Composite hScroller;
-	private Composite hSliderHolder = null;
-	private Slider hSlider = null;
-	EmptyTablePlaceholder emptyTablePlaceholder = null;
-
-	// My parent CompositeTable
-	private CompositeTable parent;
-
-	// Property fields
-	private int maxRowsVisible;
-	private boolean fittingVertically;
-	private boolean fittingHorizontally;
-	private int numRowsInDisplay;
-	private int numRowsInCollection;
-	private int topRow;
-	private int currentRow;
-	private int currentColumn;
-
-	// The visible/invisible row objects and bookeeping info about them
-	private int currentVisibleTopRow = 0;
-	private int numRowsVisible = 0;
-	private LinkedList rows = new LinkedList();
-	private LinkedList spareRows = new LinkedList();
-	int clientAreaHeight;
-
-	// The prototype header/row objects and Constructors so we can duplicate
-	// them
-	private Constructor headerConstructor;
-	private Constructor rowConstructor;
-	private Control headerControl;
-	private Control myHeader = null;
-	private Control rowControl;
-
-	/**
-	 * Constructor InternalCompositeTable. The usual SWT constructor. The same
-	 * style bits are allowed here as are allowed on Composite.
-	 * 
-	 * @param parentControl
-	 *            The SWT parent.
-	 * @param style
-	 *            Style bits.
-	 */
-	public InternalCompositeTable(Composite parentControl, int style) {
-		super(parentControl, style);
-		initialize();
-
-		this.parent = (CompositeTable) parentControl;
-
-		setBackground(parentControl.getBackground());
-		controlHolder.addListener(SWT.MouseWheel, this);
-
-		maxRowsVisible = parent.getMaxRowsVisible();
-		fittingVertically = parent.isFittingVertically();
-		fittingHorizontally = parent.isFittingHorizontally();
-		numRowsInCollection = parent.getNumRowsInCollection();
-		topRow = parent.getTopRow();
-
-		headerConstructor = parent.getHeaderConstructor();
-		rowConstructor = parent.getRowConstructor();
-		headerControl = parent.getHeaderControl();
-		rowControl = parent.getRowControl();
-		
-		setMenu(parent.getMenu());
-
-		currentVisibleTopRow = topRow;
-		showHeader();
-		updateVisibleRows();
-
-		if (numRowsVisible < 1) {
-			createEmptyTablePlaceholer();
-		}
-	}
-
-	public void setBackground(Color color) {
-		super.setBackground(color);
-		controlHolder.setBackground(color);
-	}
-
-	/**
-	 * Initialize the overall table UI.
-	 */
-	private void initialize() {
-		GridLayout gl = new GridLayout();
-		gl.numColumns = 2;
-		gl.verticalSpacing = 0;
-		gl.marginWidth = 0;
-		gl.marginHeight = 0;
-		gl.horizontalSpacing = 0;
-		this.setLayout(gl);
-		createControlHolder();
-		createVSliderHolder();
-		createHSliderHolder();
-	}
-
-	/**
-	 * Initialize the controlHolder, which is the holder Composite for the
-	 * header object (if applicable) and the row objects.
-	 */
-	private void createControlHolder() {
-		hScroller = new Composite(this, SWT.NULL);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.verticalAlignment = GridData.FILL;
-		hScroller.setLayoutData(gridData);
-		
-		controlHolder = new Composite(hScroller, SWT.NONE);
-		
-		controlHolder.setLayout(new Layout() {
-			protected Point computeSize(Composite composite, int wHint,
-					int hHint, boolean flushCache) {
-				if (rowControl != null) {
-					int height = 0;
-					int width = 0;
-					if (headerControl != null) {
-						Point headerSize = headerControl.getSize();
-						width = headerSize.x;
-						height = headerSize.y;
-					}
-					Point rowSize = rowControl.getSize();
-					height += rowSize.y * 2;
-					if (width < rowSize.x) {
-						width = rowSize.x;
-					}
-					return new Point(height, width);
-				}
-				return new Point(50, 50);
-			}
-
-			protected void layout(Composite composite, boolean flushCache) {
-				layoutControlHolder();
-			}
-		});
-		
-		hScroller.addControlListener(scrollerResizeHandler);
-	}
-	
-	ControlAdapter scrollerResizeHandler = new ControlAdapter() {
-		public void controlResized(ControlEvent e) {
-			Point size = hScroller.getSize();
-			
-			if (fittingHorizontally) {
-				controlHolder.setBounds(0, 0, size.x, size.y);
-            return;
-			}
-			
-			int preferredWidth = computePreferredWidth(size);
-			
-			if (preferredWidth > size.x && !isHSliderVisible()) {
-				setHSliderVisible(true);
-			}
-			if (preferredWidth <= size.x && isHSliderVisible()) {
-				setHSliderVisible(false);
-			}
-			
-         if (parent.isWidthWiderThanAllColumns()) {
-            controlHolder.setBounds(0, 0, size.x, size.y);
-            return;
-         }
-         
-			if (isHSliderVisible()) {
-				hSlider.setMaximum(preferredWidth);
-				hSlider.setPageIncrement(size.x);
-				hSlider.setThumb(preferredWidth - (preferredWidth-size.x));
-				int currentSelection = hSlider.getSelection();
-				if (preferredWidth-currentSelection < size.x) {
-					hSlider.setSelection(preferredWidth-size.x);
-				}
-			}
-			hSlider.notifyListeners(SWT.Selection, new Event());
-		}
-
-	};
-
-	protected int computePreferredWidth(Point size) {
-		int preferredWidth = size.x;
-		
-		Control[] children = controlHolder.getChildren();
-		if (children.length > 0) {
-			if (children[0] instanceof Composite) {
-				Composite child = (Composite) children[0];
-				// children instanceof Composite && programmer supplied a layout manager --> getPreferredSize()
-				if (child.getLayout() != null || child instanceof EmptyTablePlaceholder) {
-					preferredWidth = controlHolder.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x;
-				} else {
-					// children instanceof Composite && layout == null
-					int[] weights = parent.getWeights();
-					if (weights == null || weights.length != child.getChildren().length) {
-						throw new IllegalArgumentException("Number of weights != number of child controls");
-					}
-					preferredWidth = 0;
-					for (int i = 0; i < weights.length; i++) {
-						preferredWidth += weights[i]+4;
-					}
-				}
-			} else {
-				// children instanceof Control --> Use getPreferredSize()
-				preferredWidth = controlHolder.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x;
-			}
-		}
-		return preferredWidth;
-	}
-
-
-	/**
-	 * Initialize the sliderHolder and slider. The SliderHolder is a Composite
-	 * that is responsible for showing and hiding the vertical slider upon
-	 * request.
-	 */
-	private void createVSliderHolder() {
-		GridData gd = getVSliderGridData();
-		vSliderHolder = new Composite(this, SWT.NULL);
-		vSlider = new Slider(vSliderHolder, SWT.VERTICAL);
-		vSlider.addSelectionListener(sliderSelectionListener);
-		vSliderHolder.setLayout(new FillLayout());
-		vSliderHolder.setLayoutData(gd);
-		vSliderHolder.setTabList(new Control[] {});
-	}
-
-	/**
-	 * Initialize the sliderHolder and slider. The SliderHolder is a Composite
-	 * that is responsible for showing and hiding the vertical slider upon
-	 * request.
-	 */
-	private void createHSliderHolder() {
-		GridData gd = getHSliderGridData();
-		hSliderHolder = new Composite(this, SWT.NULL);
-		hSlider = new Slider(hSliderHolder, SWT.HORIZONTAL);
-		hSlider.setMinimum(0);
-		hSlider.setIncrement(20);
-		hSlider.addSelectionListener(sliderSelectionListener);
-		hSliderHolder.setLayout(new FillLayout());
-		hSliderHolder.setLayoutData(gd);
-		hSliderHolder.setTabList(new Control[] {});
-		hSlider.addSelectionListener(hSliderSelectionListener);
-	}
-
-	// Slider utility methods
-	// ---------------------------------------------------------------------
-
-	/**
-	 * Returns a GridData for the SliderHolder appropriate for if the slider is
-	 * visible or not.
-	 * 
-	 * @return A GridData with a widthHint of 0 if the slider is not visible or
-	 *         with a widthHint of SWT.DEFAULT otherwise.
-	 */
-	private GridData getVSliderGridData() {
-		GridData gd = new GridData();
-		gd.grabExcessVerticalSpace = true;
-		gd.verticalAlignment = GridData.FILL;
-		gd.verticalSpan = 1;
-		if (!vSliderVisible) {
-			gd.widthHint = 0;
-		}
-		return gd;
-	}
-
-	/**
-	 * Returns a GridData for the SliderHolder appropriate for if the slider is
-	 * visible or not.
-	 * 
-	 * @return A GridData with a heightHint of 0 if the slider is not visible or
-	 *         with a heightHint of SWT.DEFAULT otherwise.
-	 */
-	private GridData getHSliderGridData() {
-		GridData gd = new GridData();
-		gd.grabExcessHorizontalSpace = true;
-		gd.horizontalAlignment = GridData.FILL;
-		gd.horizontalSpan = 1;
-		if (!hSliderVisible) {
-			gd.heightHint = 0;
-		}
-		return gd;
-	}
-
-	private boolean vSliderVisible = false;
-
-	/**
-	 * Sets if the slider is visible or not.
-	 * 
-	 * @param visible
-	 *            true if the slider should be visible; false otherwise.
-	 */
-	public void setVSliderVisible(boolean visible) {
-		this.vSliderVisible = visible;
-		vSliderHolder.setLayoutData(getVSliderGridData());
-		if (visible) {
-			Display.getCurrent().addFilter(SWT.KeyDown, displayKeyDownFilter);
-		} else {
-			Display.getCurrent().removeFilter(SWT.KeyDown, displayKeyDownFilter);
-		}
-		Display.getCurrent().asyncExec(new Runnable() {
-			public void run() {
-				if (!InternalCompositeTable.this.isDisposed() &&
-						!vSliderHolder.isDisposed() &&
-						!vSliderHolder.getParent().isDisposed()) 
-				{
-					vSliderHolder.getParent().layout(true);
-					vSliderHolder.layout(true);
-					Point sliderHolderSize = vSliderHolder.getSize();
-					vSlider.setBounds(0, 0, sliderHolderSize.x, sliderHolderSize.y);
-				}
-			}
-		});
-	}
-
-	/**
-	 * Returns if the slider is visible.
-	 * 
-	 * @return true if the slider is visible; false otherwise.
-	 */
-	public boolean isVSliderVisible() {
-		return vSliderVisible;
-	}
-
-	private boolean hSliderVisible = false;
-
-	/**
-	 * Sets if the slider is visible or not.
-	 * 
-	 * @param visible
-	 *            true if the slider should be visible; false otherwise.
-	 */
-	public void setHSliderVisible(boolean visible) {
-		this.hSliderVisible = visible;
-		hSliderHolder.setLayoutData(getHSliderGridData());
-		Display.getCurrent().asyncExec(new Runnable() {
-			public void run() {
-				if (!InternalCompositeTable.this.isDisposed() &&
-						!hSliderHolder.isDisposed() &&
-						!hSliderHolder.getParent().isDisposed()) 
-				{
-					hSliderHolder.getParent().layout(true);
-					hSliderHolder.layout(true);
-					Point sliderHolderSize = hSliderHolder.getSize();
-					hSlider.setBounds(0, 0, sliderHolderSize.x, sliderHolderSize.y);
-				}
-			}
-		});
-	}
-
-	/**
-	 * Returns if the slider is visible.
-	 * 
-	 * @return true if the slider is visible; false otherwise.
-	 */
-	public boolean isHSliderVisible() {
-		return hSliderVisible;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Widget#dispose()
-	 */
-	public void dispose() {
-		disposeRows(rows);
-		disposeRows(spareRows);
-		super.dispose();
-	}
-
-	/**
-	 * Disposes all the row objects in the specified LinkedList.
-	 * 
-	 * @param rowsCollection
-	 *            The collection containing TableRow objects to dispose.
-	 */
-	private void disposeRows(LinkedList rowsCollection) {
-		for (Iterator rowsIter = rowsCollection.iterator(); rowsIter.hasNext();) {
-			TableRow row = (TableRow) rowsIter.next();
-			if (row instanceof IRowFocusListener) {
-				parent.removeRowFocusListener((IRowFocusListener) row);
-			}
-			if (row instanceof IRowContentProvider) {
-				parent.removeRowContentProvider((IRowContentProvider) row);
-			}
-			row.dispose();
-		}
-	}
-
-	// Row object layout
-	// --------------------------------------------------------------------------
-
-	/**
-	 * Layout the child controls within the controlHolder Composite.
-	 */
-	protected void layoutControlHolder() {
-		if (myHeader != null)
-			layoutChild(myHeader, true);
-		for (Iterator rowsIter = rows.iterator(); rowsIter.hasNext();) {
-			TableRow row = (TableRow) rowsIter.next();
-			layoutChild(row.getRowControl(), false);
-		}
-		updateVisibleRows();
-	}
-
-	/**
-	 * Layout a particular row or header control (child control of the
-	 * controlHolder). If the child control has a layout manager, we delegate to
-	 * that layout manager. Otherwise, we use the built in table layout manager.
-	 * 
-	 * @param child
-	 *            The row or header control to layout.
-	 * @param isHeader
-	 *            TODO
-	 * @return height of child
-	 */
-	private int layoutChild(Control child, boolean isHeader) {
-		if (child instanceof Composite) {
-			Composite composite = (Composite) child;
-			if (composite.getLayout() == null) {
-				return parent.layoutHeaderOrRow(composite, isHeader);
-			}
-			composite.layout(true);
-			return composite.getSize().y;
-		}
-		return child.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).y;
-	}
-
-	// Table control layout -- utility methods
-	// ----------------------------------------------------
-
-	/**
-	 * Construct a header or row object on demand. Logs an error and returns
-	 * null on failure.
-	 * 
-	 * @param parent
-	 *            The SWT parent.
-	 * @param constructor
-	 *            The header or row object's constructor.
-	 * @return The constructed control or null if none could be constructed.
-	 */
-	private Control createInternalControl(Composite parent,
-			Constructor constructor) {
-		Control result = null;
-		try {
-			result = (Control) constructor.newInstance(new Object[] { parent,
-					new Integer(SWT.NULL) });
-		} catch (Exception e) {
-			throw new IllegalArgumentException("Unable to construct control"); //$NON-NLS-1$
-		}
-		if (result instanceof IRowFocusListener) {
-			this.parent.addRowFocusListener((IRowFocusListener) result);
-		}
-		if (result instanceof IRowContentProvider) {
-			this.parent.addRowContentProvider((IRowContentProvider) result);
-		}
-		return result;
-	}
-
-	/**
-	 * If the header control hasn't been created yet, create and show it.
-	 */
-	private void showHeader() {
-		if (myHeader == null && headerConstructor != null) {
-			myHeader = createInternalControl(controlHolder, headerConstructor);
-			fireHeaderConstructionEvent(myHeader);
-			if (myHeader instanceof Composite) {
-				Composite headerComp = (Composite) myHeader;
-				if (headerComp.getLayout() == null) {
-					headerComp.addPaintListener(headerPaintListener);
-				}
-			}
-			layoutChild(myHeader, true);
-		}
-	}
-
-	// Table control layout -- main refresh algorithm
-	// ---------------------------------------------
-
-	/**
-	 * Main refresh algorithm entry point. This method refreshes everything in
-	 * the table:
-	 * 
-	 * <ul>
-	 * <li>Makes sure the correct number of rows are visible
-	 * <li>Makes sure each row has been refreshed with data from the underlying
-	 * model
-	 * </ul>
-	 */
-	void updateVisibleRows() {
-		// If we don't have our prototype row object yet, bail out
-		if (rowControl == null) {
-			return;
-		}
-		
-		clientAreaHeight = controlHolder.getSize().y;
-		if (clientAreaHeight <= 0) {
-			return;
-		}
-
-		int topPosition = 0;
-
-		int headerHeight = 0;
-		if (myHeader != null) {
-			headerHeight = headerControl.getSize().y + 3;
-			clientAreaHeight -= headerHeight;
-			topPosition += headerHeight;
-		}
-		numRowsInDisplay = clientAreaHeight / getRowHeight(clientAreaHeight);
-
-		// Make sure we have something to lay out to begin with
-		int userScrollDirection = 0;
-		if (numRowsInCollection > 0) {
-			numRowsVisible = numRowsInDisplay;
-
-			disposeEmptyTablePlaceholder();
-
-			int displayableRows = numRowsInCollection - topRow;
-			if (numRowsVisible > displayableRows) {
-				numRowsVisible = displayableRows;
-			}
-			if (numRowsVisible > maxRowsVisible) {
-				numRowsVisible = maxRowsVisible;
-			}
-			if (numRowsVisible < 1) {
-				numRowsVisible = 1;
-			}
-
-			// Keep track of if we're scrolling forwards or backwards
-			if (currentVisibleTopRow - topRow > 0) {
-				userScrollDirection = ScrollEvent.BACKWARD;
-			} else if (topRow - currentVisibleTopRow > 0) {
-				userScrollDirection = ScrollEvent.FORWARD;
-			}
-
-			// Scroll the view so that the right number of row
-			// objects are showing and they have the right data
-			if (rows.size() - Math.abs(currentVisibleTopRow - topRow) > 0) {
-//				if (currentRow >= numRowsVisible) {
-//					deleteRowAt(0);
-//					++currentVisibleTopRow;
-//					++topRow;
-//					--currentRow;
-//				}
-				scrollTop();
-				fixNumberOfRows();
-			} else {
-				currentVisibleTopRow = topRow;
-				fixNumberOfRows();
-				refreshAllRows();
-			}
-		} else {
-			numRowsVisible = 0;
-			topRow = 0;
-			currentRow = 0;
-			currentColumn = 0;
-			currentVisibleTopRow = 0;
-			numRowsVisible = 0;
-
-			if (emptyTablePlaceholder == null) {
-				fixNumberOfRows();
-				createEmptyTablePlaceholer();
-			}
-		}
-		
-		// Make sure that the currentRow is within the visible range
-		// (after PgDn, it could wind up outside the visible range)
-		if (currentRow >= numRowsVisible && getNumRowsVisible() < numRowsInDisplay) {
-			currentRow = numRowsVisible-1;
-		}
-
-		// Show, hide, reset the scroll bar
-		if (numRowsVisible < numRowsInCollection) {
-			int extra = numRowsInCollection - numRowsVisible;
-			int pageIncrement = numRowsVisible;
-			if (pageIncrement > extra)
-				pageIncrement = extra;
-
-			vSlider.setMaximum(numRowsInCollection);
-			vSlider.setMinimum(0);
-			vSlider.setIncrement(1);
-			vSlider.setPageIncrement(pageIncrement);
-			vSlider.setThumb(numRowsInCollection
-					- (numRowsInCollection - numRowsVisible));
-
-			vSlider.setSelection(topRow);
-
-			if (!isVSliderVisible()) {
-				setVSliderVisible(true);
-			}
-		} else {
-			setVSliderVisible(false);
-		}
-
-		// Lay out the header and rows correctly in the display
-		int width = controlHolder.getSize().x;
-
-		// First, the header...
-		if (myHeader != null) {
-			myHeader.setBounds(0, 0, width, headerHeight);
-		}
-
-		// Make sure we have rows to lay out...
-		if (numRowsInCollection < 1) {
-			return;
-		}
-
-		// Now the rows.
-		int rowHeight = getRowHeight(clientAreaHeight);
-
-		// We have to move the controls front-to-back if we're scrolling
-		// forwards and back-to-front if we're scrolling backwards to avoid ugly
-		// screen refresh artifacts.
-		if (userScrollDirection == ScrollEvent.FORWARD || userScrollDirection == ScrollEvent.NONE) {
-			for (Iterator rowsIter = rows.iterator(); rowsIter.hasNext();) {
-				TableRow row = (TableRow) rowsIter.next();
-				Control rowControl = row.getRowControl();
-				rowControl.setBounds(0, topPosition, width, rowHeight);
-				layoutChild(rowControl, false);
-				topPosition += rowHeight;
-			}
-		} else {
-			ListIterator rowsIter = rows.listIterator();
-			while (rowsIter.hasNext()) {
-				rowsIter.next();
-			}
-			topPosition += rowHeight * (rows.size() - 1);
-			while (rowsIter.hasPrevious()) {
-				TableRow row = (TableRow) rowsIter.previous();
-				Control rowControl = row.getRowControl();
-				rowControl.setBounds(0, topPosition, width, rowHeight);
-				layoutChild(rowControl, false);
-				topPosition -= rowHeight;
-			}
-		}
-		
-		// If we scrolled, tell clients about it
-		if (userScrollDirection != ScrollEvent.NONE) {
-			fireScrollEvent(new ScrollEvent(userScrollDirection, parent));
-		}
-	}
-
-	int getRowHeight(int clientAreaHeight) {
-		int rowControlHeight = rowControl.getSize().y;
-		if (maxRowsVisible == Integer.MAX_VALUE) {
-			return rowControlHeight;
-		}
-		if (fittingVertically) {
-			int fitControlHeight = clientAreaHeight / maxRowsVisible;
-			if (fitControlHeight < rowControlHeight) {
-				return rowControlHeight;
-			}
-			return fitControlHeight;
-		}
-		return rowControlHeight;
-	}
-
-	/**
-	 * Utility method: Makes sure that the currently visible top row is the same
-	 * as the top row specified in the TopRow property.
-	 */
-	private void scrollTop() {
-		while (currentVisibleTopRow < topRow) {
-			deleteRowAt(0);
-			++currentVisibleTopRow;
-		}
-		while (currentVisibleTopRow > topRow) {
-			--currentVisibleTopRow;
-			insertRowAt(0);
-		}
-	}
-
-	/**
-	 * Utility method: Makes sure that the number of rows that are visible
-	 * correspond with what should be visible given the table control's size,
-	 * where it is scrolled, and the number of rows in the underlying
-	 * collection.
-	 */
-	private void fixNumberOfRows() {
-		int numRows = rows.size();
-		while (numRows > numRowsVisible) {
-			deleteRowAt(numRows - 1);
-			numRows = rows.size();
-		}
-		while (numRows < numRowsVisible) {
-			insertRowAt(numRows);
-			numRows = rows.size();
-		}
-	}
-
-	/**
-	 * Fire the refresh event on all visible rows.
-	 */
-	void refreshAllRows() {
-		int row = 0;
-		for (Iterator rowsIter = rows.iterator(); rowsIter.hasNext();) {
-			TableRow rowControl = (TableRow) rowsIter.next();
-			fireRefreshEvent(topRow + row, rowControl.getRowControl());
-			++row;
-		}
-	}
-
-	/**
-	 * Insert a new row object at the specified 0-based position relatve to the
-	 * topmost row.
-	 * 
-	 * @param position
-	 *            The 0-based position relative to the topmost row.
-	 */
-	private void insertRowAt(int position) {
-		TableRow newRow = getNewRow();
-		if (position > rows.size()) {
-			position = rows.size();
-		}
-		rows.add(position, newRow);
-		fireRefreshEvent(currentVisibleTopRow + position, newRow
-				.getRowControl());
-	}
-
-	/**
-	 * Delete the row at the specified 0-based position relative to the topmost
-	 * row.
-	 * 
-	 * @param position
-	 *            The 0-based position relative to the topmost row.
-	 */
-	private void deleteRowAt(int position) {
-		TableRow row = (TableRow) rows.remove(position);
-		row.setVisible(false);
-		spareRows.addLast(row);
-	}
-
-	/**
-	 * Utility method: Creates a new row object or recycles one that had been
-	 * previously created but was no longer needed.
-	 * 
-	 * @return The new row object.
-	 */
-	private TableRow getNewRow() {
-		if (spareRows.size() > 0) {
-			TableRow recycledRow = (TableRow) spareRows.removeFirst();
-			recycledRow.setVisible(true);
-			return recycledRow;
-		}
-		Control newControl = createInternalControl(controlHolder,
-				rowConstructor);
-		if (menu != null) {
-			newControl.setMenu(menu);
-		}
-		fireRowConstructionEvent(newControl);
-		TableRow newRow = new TableRow(this, newControl);
-		if (newRow.getRowControl() instanceof Composite) {
-			Composite rowComp = (Composite) newRow.getRowControl();
-			if (rowComp.getLayout() == null) {
-				rowComp.setBackground(getBackground());
-				rowComp.addPaintListener(rowPaintListener);
-			}
-		}
-		return newRow;
-	}
-
-	// Property getters/setters
-	// --------------------------------------------------------------
-
-	/*
-	 * These are internal API. <p> Plese refer to the JavaDoc on CompositeTable
-	 * for detailed description of these property methods.
-	 */
-
-	/**
-	 * (non-API) Method getHeaderControl. Return the prototype control being
-	 * used as a header.
-	 * 
-	 * @return The header control
-	 */
-	public Control getHeaderControl() {
-		return headerControl;
-	}
-
-	/**
-	 * Method setMaxRowsVisible. Sets the maximum number of rows that will be
-	 * permitted in the table at once. For example, setting this property to 1
-	 * will have the effect of creating a single editing area with a scroll bar
-	 * on the right allowing the user to scroll through all rows using either
-	 * the mouse or the PgUp/PgDn keys. The default value is Integer.MAX_VALUE.
-	 * 
-	 * @param maxRowsVisible
-	 *            the maximum number of rows that are permitted to be visible at
-	 *            one time, regardless of the control's size.
-	 */
-	public void setMaxRowsVisible(int maxRowsVisible) {
-		this.maxRowsVisible = maxRowsVisible;
-		updateVisibleRows();
-	}
-
-	/**
-	 * @param fittingVertically
-	 */
-	public void setFittingVertically(boolean fittingVertically) {
-		this.fittingVertically = fittingVertically;
-		updateVisibleRows();
-	}
-	
-	/**
-	 * @param fittingHorizontally
-	 */
-	public void setFittingHorizontally(boolean fittingHorizontally) {
-		this.fittingHorizontally = fittingHorizontally;
-		this.layout(true);
-	}
-
-	/**
-	 * Method getNumRowsVisible. Returns the actual number of rows that are
-	 * currently visible. Normally CompositeTable displays as many rows as will
-	 * fit vertically given the control's size. This value can be clamped to a
-	 * maximum using the MaxRowsVisible property.
-	 * 
-	 * @return the actual number of rows that are currently visible.
-	 */
-	public int getNumRowsVisible() {
-		return rows.size();
-	}
-
-	/**
-	 * Method setNumRowsInCollection. Sets the number of rows in the data
-	 * structure that is being edited.
-	 * 
-	 * @param numRowsInCollection
-	 *            the number of rows represented by the underlying data
-	 *            structure.
-	 */
-	public void setNumRowsInCollection(int numRowsInCollection) {
-		this.topRow = 0;
-		if (topRow + currentRow > numRowsInCollection) {
-			if (topRow < numRowsInCollection) {
-				currentRow = numRowsInCollection - topRow;
-			} else {
-				topRow = numRowsInCollection - 1;
-				currentRow = 0;
-			}
-			deferredSetFocus(getCurrentRowControl(), false);
-		}
-		this.numRowsInCollection = numRowsInCollection;
-		updateVisibleRows();
-		refreshAllRows();
-	}
-
-	/**
-	 * Method setTopRow. Set the number of the line that is being displayed in
-	 * the top row of the CompositeTable editor (0-based). If the new top row is
-	 * not equal to the current top row, the table will automatically be
-	 * scrolled to the new position. This number must be greater than 0 and less
-	 * than NumRowsInCollection.
-	 * 
-	 * @param topRow
-	 *            the line number of the new top row.
-	 */
-	public void setTopRow(int topRow) {
-		fireRowDepartEvent();
-		this.topRow = topRow;
-		updateVisibleRows();
-		fireRowArriveEvent();
-	}
-
-	/**
-	 * Method getTopRow. Return the number of the line that is being displayed
-	 * in the top row of the CompositeTable editor (0-based).
-	 * 
-	 * @return the number of the top line.
-	 */
-	public int getTopRow() {
-		return topRow;
-	}
-
-	/**
-	 * Method getSelection. Returns the currently-selected (column, row) pair
-	 * where the row specifies the offset from the top of the table window. In
-	 * order to get the current row in the underlying data structure, use
-	 * getSelection().y + getCurrentRow().
-	 * 
-	 * @return the currently-selected (column, row) pair where the row specifies
-	 *         the offset from the top of the table window.
-	 */
-	public Point getSelection() {
-		return new Point(currentColumn, currentRow);
-	}
-
-	/**
-	 * Method setSelection. Sets the currently-selected (column, row) pair where
-	 * the row specifies the offset from the top of the table window. In order
-	 * to get the current row in the underlying data structure, use
-	 * getSelection().y + getCurrentRow().
-	 * 
-	 * @param column
-	 *            the column to select
-	 * @param row
-	 *            the row to select
-	 */
-	public void setSelection(int column, int row) {
-		int topRowDelta = computeTopRowDelta(row);
-		if (topRowDelta != 0) {
-			setTopRow(topRow + topRowDelta);
-			row += -1 * topRowDelta;
-			internalSetSelection(column, row, true);
-		} else {
-			if (row == currentRow)
-				internalSetSelection(column, row, false);
-			else {
-				if (fireRequestRowChangeEvent())
-					internalSetSelection(column, row, true);
-			}
-		}
-	}
-
-	/**
-	 * Method setWeights. Indicates that the column weights were just set and we
-	 * should re-layout the control holder object.
-	 */
-	public void setWeights() {
-		layoutControlHolder();
-	}
-
-	// Refresh Event API
-	// --------------------------------------------------------------------------
-
-	/**
-	 * Adds the specified listener to the set of listeners that will be notified
-	 * when a row refresh event occurs.
-	 * 
-	 * @param listener
-	 *            the listener to add.
-	 */
-	public void addRefreshContentProvider(IRowContentProvider listener) {
-		parent.contentProviders.add(listener);
-	}
-
-	/**
-	 * Remove the specified listener from the set of listeners that will be
-	 * notified when a row refresh event occurs.
-	 * 
-	 * @param listener
-	 *            the listener to remove.
-	 */
-	public void removeRefreshContentProvider(IRowContentProvider listener) {
-		parent.contentProviders.remove(listener);
-	}
-
-	private void fireRefreshEvent(int positionInCollection, Control rowControl) {
-		if (numRowsInCollection < 1) {
-			return;
-		}
-		for (Iterator refreshListenersIter = parent.contentProviders.iterator(); refreshListenersIter
-				.hasNext();) {
-			IRowContentProvider listener = (IRowContentProvider) refreshListenersIter
-					.next();
-			listener.refresh(parent, positionInCollection, rowControl);
-		}
-	}
-
-	// Empty table placeholder
-	// --------------------------------------------------------------------
-
-	private void createEmptyTablePlaceholer() {
-		emptyTablePlaceholder = new EmptyTablePlaceholder(controlHolder,
-				SWT.NULL);
-		if (rowControl != null)
-			emptyTablePlaceholder.setBackground(rowControl.getBackground());
-		emptyTablePlaceholder.setMessage(parent.getInsertHint());
-	}
-
-	private void disposeEmptyTablePlaceholder() {
-		if (emptyTablePlaceholder != null) {
-			emptyTablePlaceholder.dispose();
-			emptyTablePlaceholder = null;
-		}
-	}
-
-	// Event Handling
-	// -----------------------------------------------------------------------------
-
-	private boolean needToRequestRC = true;
-
-	private Listener displayKeyDownFilter = new Listener() {
-		public void handleEvent(Event event) {
-			if (rowControl.getClass().isAssignableFrom(event.widget.getClass())) {
-				makeFocusedRowVisible();
-			}
-		}
-	};
-	
-	/**
-	 * Handle a keyPressed event on any row control.
-	 * 
-	 * @param sender
-	 *            The row that is sending the event
-	 * @param e
-	 *            the actual KeyEvent
-	 */
-	public void keyPressed(TableRow sender, KeyEvent e) {
-		if (makeFocusedRowVisible()) return;
-		
-		if ((e.stateMask & SWT.CONTROL) != 0) {
-			switch (e.keyCode) {
-			case SWT.HOME:
-				if (topRow <= 0) {
-					return;
-				}
-
-				if (!fireRequestRowChangeEvent()) {
-					return;
-				}
-				needToRequestRC = false;
-
-				deselect(e.widget);
-
-				// If the focus is already in the top visible row, we will need
-				// to explicitly
-				// fire an arrive event.
-				boolean needToArrive = true;
-				if (currentRow > 0) {
-					needToArrive = false;
-				}
-
-				setTopRow(0);
-
-				if (needToArrive) {
-					internalSetSelection(currentColumn, 0, true);
-				} else {
-					internalSetSelection(currentColumn, 0, false);
-				}
-				return;
-			case SWT.END:
-				if (topRow + numRowsVisible < numRowsInCollection) {
-					if (!fireRequestRowChangeEvent()) {
-						return;
-					}
-					needToRequestRC = false;
-
-					deselect(e.widget);
-
-					// If the focus is already in the last visible row, we will
-					// need to explicitly
-					// fire an arrive event.
-					needToArrive = true;
-					if (currentRow < numRowsVisible - 1) {
-						needToArrive = false;
-					}
-
-					setTopRow(numRowsInCollection - numRowsVisible);
-
-					if (needToArrive) {
-						internalSetSelection(currentColumn, numRowsVisible - 1,
-								true);
-					} else {
-						internalSetSelection(currentColumn, numRowsVisible - 1,
-								false);
-					}
-				}
-				return;
-			case SWT.INSERT:
-				// If no insertHandler has been registered, bail out
-				if (parent.insertHandlers.size() < 1) {
-					return;
-				}
-
-				// Make sure we can leave the current row
-				if (!fireRequestRowChangeEvent()) {
-					return;
-				}
-				needToRequestRC = false;
-
-				// Insert the new object
-				int newRowPosition = fireInsertEvent();
-				if (newRowPosition < 0) {
-					// This should never happen, but...
-					return;
-				}
-
-				disposeEmptyTablePlaceholder();
-
-				// If the current widget has a selection, deselect it
-				deselect(e.widget);
-
-				// If the new row is in the visible space, refresh it
-				if (topRow <= newRowPosition
-						&& numRowsVisible > newRowPosition - topRow) {
-					insertRowAt(newRowPosition - topRow);
-					++numRowsInCollection;
-					updateVisibleRows();
-					int newRowNumber = newRowPosition - topRow;
-					if (newRowNumber != currentRow) {
-						internalSetSelection(currentColumn, newRowNumber, false);
-					} else {
-						internalSetSelection(currentColumn, newRowNumber, true);
-					}
-					return;
-				}
-
-				// else...
-
-				++numRowsInCollection;
-
-				// If the new row is above us, scroll up to it
-				if (newRowPosition < topRow + currentRow) {
-					setTopRow(newRowPosition);
-					Display.getDefault().asyncExec(new Runnable() {
-						public void run() {
-							updateVisibleRows();
-							if (currentRow != 0) {
-								internalSetSelection(currentColumn, 0, false);
-							} else {
-								internalSetSelection(currentColumn, 0, true);
-							}
-						}
-					});
-				} else {
-					// If we're appending
-					if (numRowsInDisplay > numRowsVisible) {
-						updateVisibleRows();
-						int newRowNumber = newRowPosition - topRow;
-						if (newRowNumber != currentRow) {
-							internalSetSelection(currentColumn, newRowNumber,
-									false);
-						} else {
-							internalSetSelection(currentColumn, newRowNumber,
-									true);
-						}
-					} else {
-						// It's somewhere in the middle below us; scroll down to
-						// it
-						setTopRow(newRowPosition - numRowsVisible + 1);
-						int newRowNumber = numRowsVisible - 1;
-						if (newRowNumber != currentRow) {
-							internalSetSelection(currentColumn, newRowNumber,
-									false);
-						} else {
-							internalSetSelection(currentColumn, newRowNumber,
-									true);
-						}
-					}
-				}
-				return;
-			case SWT.DEL:
-				if (fireDeleteEvent()) {
-					// We know the object is gone if we made it here, so now
-					// refresh the display...
-					--numRowsInCollection;
-
-					// If we deleted the last row in the list
-					if (currentRow >= numRowsVisible - 1) {
-						// If that wasn't the last row in the collection, move
-						// the focus
-						if (numRowsInCollection > 0) {
-
-							// If we're only displaying one row, scroll first
-							if (currentRow < 1) {
-								needToRequestRC = false;
-								deleteRowAt(currentRow);
-								setTopRow(topRow - 1);
-								internalSetSelection(currentColumn, currentRow,
-										true);
-							} else {
-								needToRequestRC = false;
-								internalSetSelection(currentColumn,
-										currentRow - 1, false);
-								Display.getCurrent().asyncExec(new Runnable() {
-									public void run() {
-										deleteRowAt(currentRow + 1);
-										updateVisibleRows();
-									}
-								});
-							}
-						} else {
-							// Otherwise, show the placeholder object and give
-							// it focus
-							deleteRowAt(currentRow);
-							--numRowsVisible;
-							createEmptyTablePlaceholer();
-							emptyTablePlaceholder.setFocus();
-						}
-					} else {
-						// else, keep the focus where it was
-						deleteRowAt(currentRow);
-						updateVisibleRows();
-						internalSetSelection(currentColumn, currentRow, true);
-					}
-				}
-				return;
-			default:
-				return;
-			}
-		}
-		switch (e.keyCode) {
-		case SWT.ARROW_UP:
-			if (maxRowsVisible <= 1)
-				return;
-
-			if (currentRow > 0) {
-				if (!fireRequestRowChangeEvent()) {
-					return;
-				}
-				needToRequestRC = false;
-
-				deselect(e.widget);
-
-				internalSetSelection(currentColumn, currentRow - 1, false);
-				return;
-			}
-			if (topRow > 0) {
-				if (!fireRequestRowChangeEvent()) {
-					return;
-				}
-				needToRequestRC = false;
-
-				deselect(e.widget);
-
-				setTopRow(topRow - 1);
-				internalSetSelection(currentColumn, currentRow, true);
-				return;
-			}
-			return;
-		case SWT.ARROW_DOWN:
-			if (maxRowsVisible <= 1)
-				return;
-
-			if (currentRow < numRowsVisible - 1) {
-				if (!fireRequestRowChangeEvent()) {
-					return;
-				}
-				needToRequestRC = false;
-
-				deselect(e.widget);
-
-				internalSetSelection(currentColumn, currentRow + 1, false);
-				return;
-			}
-			if (topRow + numRowsVisible < numRowsInCollection) {
-				if (!fireRequestRowChangeEvent()) {
-					return;
-				}
-				needToRequestRC = false;
-
-				deselect(e.widget);
-
-				setTopRow(topRow + 1);
-				internalSetSelection(currentColumn, currentRow, true);
-				return;
-			}
-			return;
-		case SWT.PAGE_UP:
-			if (topRow > 0) {
-				if (!fireRequestRowChangeEvent()) {
-					return;
-				}
-				needToRequestRC = false;
-
-				int newTopRow = topRow - numRowsInDisplay;
-				if (newTopRow < 0) {
-					newTopRow = 0;
-				}
-				setTopRow(newTopRow);
-				internalSetSelection(currentColumn, currentRow, true);
-			}
-			return;
-		case SWT.PAGE_DOWN:
-			if (topRow + numRowsVisible < numRowsInCollection) {
-				if (!fireRequestRowChangeEvent()) {
-					return;
-				}
-				needToRequestRC = false;
-
-				int newTopRow = topRow + numRowsVisible;
-				if (newTopRow >= numRowsInCollection - 1) {
-					newTopRow = numRowsInCollection - 1;
-				}
-				setTopRow(newTopRow);
-				internalSetSelection(currentColumn, currentRow, true);
-			}
-			return;
-		}
-	}
-	
-	/**
-	 * Handle the keyTraversed event on any child control in the table.
-	 * 
-	 * @param sender
-	 *            The row sending the event.
-	 * @param e
-	 *            The SWT TraverseEvent
-	 */
-	public void keyTraversed(TableRow sender, TraverseEvent e) {
-		if (makeFocusedRowVisible()) return;
-
-		if (parent.isTraverseOnTabsEnabled()) {
-			if (e.detail == SWT.TRAVERSE_TAB_NEXT) {
-				if (currentColumn >= sender.getNumColumns() - 1) {
-					e.detail = SWT.TRAVERSE_NONE;
-					handleNextRowNavigation();
-				}
-			} else if (e.detail == SWT.TRAVERSE_TAB_PREVIOUS) {
-				if (currentColumn == 0) {
-					e.detail = SWT.TRAVERSE_NONE;
-					handlePreviousRowNavigation(sender);
-				}
-			} else if (e.detail == SWT.TRAVERSE_RETURN) {
-				e.detail = SWT.TRAVERSE_NONE;
-				if (currentColumn >= sender.getNumColumns() - 1) {
-					handleNextRowNavigation();
-				} else {
-					deferredSetFocus(getControl(currentColumn + 1, currentRow),
-							false);
-				}
-			}
-		} else {
-			if (e.detail == SWT.TRAVERSE_TAB_NEXT) {
-				if (currentColumn >= sender.getNumColumns() - 1) {
-					e.detail = SWT.TRAVERSE_NONE;
-				}
-			} else if (e.detail == SWT.TRAVERSE_TAB_PREVIOUS) {
-				if (currentColumn == 0) {
-					e.detail = SWT.TRAVERSE_NONE;
-				}
-			}
-		}
-	}
-
-	/**
-	 * Makes sure that the focused row is visible
-	 * 
-	 * @return true if the display needed to be scrolled; false otherwise
-	 */
-	public boolean makeFocusedRowVisible() {
-		if (numRowsVisible < 1) {
-			return false;
-		}
-		int topRowDelta = computeTopRowDelta(currentRow);
-		if (topRowDelta == 0) {
-			return false;
-		}
-		currentRow += -1 * topRowDelta;
-		
-		setTopRow(topRow + topRowDelta);
-		Control control = getControl(currentColumn, currentRow);
-		if (control != null) {
-			control.setFocus(); // ?? Can I get away with avoiding asyncExec here ??
-		}
-		return true;
-	}
-	
-	private int computeTopRowDelta(int row) {
-		int topRowDelta;
-		if (row < 0) {
-			topRowDelta = row;
-		} else if (row >= getNumRowsVisible()) {
-			topRowDelta = row - getNumRowsVisible() + 1;
-		} else {
-			return 0;
-		}
-		return topRowDelta;
-	}
-	
-	/**
-	 * The SelectionListener for the table's vertical slider control.
-	 */
-	private SelectionListener sliderSelectionListener = new SelectionListener() {
-		public void widgetSelected(SelectionEvent e) {
-			if (vSlider.getSelection() == topRow) {
-				return;
-			}
-
-			if (!fireRequestRowChangeEvent()) {
-				vSlider.setSelection(topRow);
-				return;
-			}
-
-			deselectCurrentRowIfVisible();
-
-			int delta = topRow - vSlider.getSelection();
-			int oldCurrentRow = currentRow;
-			currentRow += delta;
-			
-			setTopRow(vSlider.getSelection());
-			
-			// If the focused row just became visible, show the focus
-			if (oldCurrentRow < 0 || oldCurrentRow >= getNumRowsVisible()) {
-				if (currentRow >= 0 && currentRow < getNumRowsVisible()) {
-					Control newFocusControl = getControl(currentColumn, currentRow);
-					if (newFocusControl == null) {
-						return;
-					}
-					if (newFocusControl.isFocusControl()) {
-						newFocusControl.notifyListeners(SWT.FocusIn, new Event());
-					} else {
-						deferredSetFocus(newFocusControl, true);
-					}
-				}
-			} else {
-				// If the new viewport doesn't overlap the old one, hide the focus
-				if (currentRow < 0 || currentRow >= getNumRowsVisible()) {
-					//					deleteRowAt(oldCurrentRow);
-//					getControl(currentColumn, oldCurrentRow).getParent().setVisible(false);
-//					getControl(currentColumn, oldCurrentRow).getParent().setVisible(true);
-					Control control = getControl(currentColumn, oldCurrentRow);
-					if (control != null) {
-						control.notifyListeners(SWT.FocusOut, new Event());
-					}
-				}
-			}
-		}
-
-		public void widgetDefaultSelected(SelectionEvent e) {
-			widgetSelected(e);
-		}
-	};
-	
-	private SelectionListener hSliderSelectionListener = new SelectionListener() {
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-		 */
-		public void widgetSelected(SelectionEvent e) {
-			Point scrollerSize = hScroller.getSize();
-			int preferredWidth = computePreferredWidth(scrollerSize);
-			Rectangle controlHolderBounds = new Rectangle(-1 * hSlider.getSelection(), 0, preferredWidth, scrollerSize.y);
-			controlHolder.setBounds(controlHolderBounds);
-		}
-		
-		public void widgetDefaultSelected(SelectionEvent e) {
-			widgetSelected(e);
-		}
-	};
-
-	/**
-	 * Scroll wheel event handling.
-	 */
-	public void handleEvent(Event event) {
-		if (event.count > 0) {
-			if (topRow > 0) {
-				if (!fireRequestRowChangeEvent()) {
-					return;
-				}
-				deselectCurrentRowIfVisible();
-				setTopRow(topRow - 1);
-				++currentRow;
-				if (currentRow == 0) {
-					deferredSetFocus(getControl(currentColumn, currentRow), true);
-				}
-			}
-		} else {
-			if (topRow < numRowsInCollection - numRowsVisible) {
-				if (!fireRequestRowChangeEvent()) {
-					return;
-				}
-				deselectCurrentRowIfVisible();
-				setTopRow(topRow + 1);
-				--currentRow;
-				if (currentRow == getNumRowsVisible()-1) {
-					deferredSetFocus(getControl(currentColumn, currentRow), true);
-				}
-			}
-		}
-	}
-
-	private void deselectCurrentRowIfVisible() {
-		if (currentRow >= 0 && currentRow < numRowsVisible) {
-			Control control = getControl(currentColumn, currentRow);
-			if (control != null) {
-				deselect(control);
-			}
-		}
-	}
-
-	/**
-	 * Handle focusLost events on any child control. This is not currently used.
-	 * 
-	 * @param sender
-	 *            The row containing the sending control.
-	 * @param e
-	 *            The SWT FocusEvent.
-	 */
-	public void focusLost(TableRow sender, FocusEvent e) {
-	}
-
-	/**
-	 * Handle focusGained events on any child control.
-	 * 
-	 * FIXME: Needs to automatically scroll horizontally if the newly-focused
-	 * control is fully or partially occluded.
-	 * 
-	 * @param sender
-	 *            The row containing the sending control.
-	 * @param e
-	 *            The SWT FocusEvent.
-	 */
-	public void focusGained(TableRow sender, FocusEvent e) {
-		boolean rowChanged = false;
-		int senderRowNumber = getRowNumber(sender);
-		if (senderRowNumber != currentRow) {
-			if (needToRequestRC) {
-				if (!fireRequestRowChangeEvent()) {
-					// Go back if we're not allowed to be here
-					deferredSetFocus(getControl(currentColumn, currentRow),
-							false);
-				}
-			} else {
-				needToRequestRC = true;
-			}
-			rowChanged = true;
-		}
-
-		currentRow = senderRowNumber;
-		currentColumn = sender.getColumnNumber((Control) e.widget);
-
-		if (rowChanged)
-			fireRowArriveEvent();
-	}
-
-	private PaintListener headerPaintListener = new PaintListener() {
-		public void paintControl(PaintEvent e) {
-			if (parent.linesVisible) {
-				drawGridLines(e, true);
-			}
-		}
-	};
-
-	private PaintListener rowPaintListener = new PaintListener() {
-		public void paintControl(PaintEvent e) {
-			if (parent.linesVisible) {
-				drawGridLines(e, false);
-			}
-		}
-	};
-
-	private void drawGridLines(PaintEvent e, boolean isHeader) {
-		Color oldColor = e.gc.getForeground();
-		try {
-			// Get the colors we need
-			Display display = Display.getCurrent();
-			Color lineColor = display
-					.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
-			Color secondaryColor = display
-					.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-			Color hilightColor = display
-					.getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
-			if (!isHeader) {
-				lineColor = display
-						.getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW);
-			}
-
-			// Get the control
-			Control toPaint = (Control) e.widget;
-			Point controlSize = toPaint.getSize();
-
-			// Draw the bottom line(s)
-			e.gc.setForeground(lineColor);
-			e.gc.drawLine(0, controlSize.y - 1, controlSize.x,
-					controlSize.y - 1);
-			if (isHeader) {
-				e.gc.setForeground(secondaryColor);
-				e.gc.drawLine(0, controlSize.y - 2, controlSize.x,
-						controlSize.y - 2);
-				e.gc.setForeground(hilightColor);
-				e.gc.drawLine(0, 1, controlSize.x, 1);
-			}
-
-			// Now draw lines around the child controls, if there are any
-			if (toPaint instanceof Composite) {
-				Composite row = (Composite) toPaint;
-				Control[] children = row.getChildren();
-				for (int i = 0; i < children.length; i++) {
-					Rectangle childBounds = children[i].getBounds();
-
-					// Paint the beginning lines
-					if (isHeader) {
-						e.gc.setForeground(hilightColor);
-						e.gc.drawLine(childBounds.x - 2, 1, childBounds.x - 2,
-								controlSize.y - 2);
-					}
-
-					// Paint the ending lines
-					e.gc.setForeground(lineColor);
-					int lineLeft = childBounds.x + childBounds.width + 1;
-					e.gc.drawLine(lineLeft, 0, lineLeft, controlSize.y);
-					if (isHeader) {
-						e.gc.setForeground(secondaryColor);
-						e.gc.drawLine(lineLeft - 1, 0, lineLeft - 1,
-								controlSize.y - 1);
-					}
-				}
-			}
-		} finally {
-			e.gc.setForeground(oldColor);
-		}
-	}
-
-	// Event Firing
-	// -------------------------------------------------------------------------------
-
-	/**
-	 * Fire the row construction event
-	 * 
-	 * @param newControl
-	 *            The new row's SWT control
-	 */
-	private void fireRowConstructionEvent(Control newControl) {
-		for (Iterator rowConstructionListenersIter = parent.rowConstructionListeners
-				.iterator(); rowConstructionListenersIter.hasNext();) {
-			RowConstructionListener listener = (RowConstructionListener) rowConstructionListenersIter
-					.next();
-			listener.rowConstructed(newControl);
-		}
-	}
-
-	/**
-	 * Fire the row construction event
-	 * 
-	 * @param newControl
-	 *            The new row's SWT control
-	 */
-	private void fireHeaderConstructionEvent(Control newControl) {
-		for (Iterator rowConstructionListenersIter = parent.rowConstructionListeners
-				.iterator(); rowConstructionListenersIter.hasNext();) {
-			RowConstructionListener listener = (RowConstructionListener) rowConstructionListenersIter
-					.next();
-			listener.headerConstructed(newControl);
-		}
-	}
-
-	/**
-	 * Indicate to listeners that the focus is arriving on the specified row
-	 */
-	private void fireRowArriveEvent() {
-		if (rows.size() < 1 || currentRow < 0) {
-			return;
-		}
-		for (Iterator rowChangeListenersIter = parent.rowFocusListeners
-				.iterator(); rowChangeListenersIter.hasNext();) {
-			IRowFocusListener listener = 
-				(IRowFocusListener) rowChangeListenersIter.next();
-			// currentRow() can be null if it's scrolled off the top or bottom
-			TableRow row = currentRow();
-			Control control = row != null ? row.getRowControl() : null;
-			listener.arrive(parent, topRow + currentRow, control);
-		}
-	}
-
-	/**
-	 * Request permission from all listeners to leave the current row.
-	 * 
-	 * @return true if all listeners permit the row change; false otherwise.
-	 */
-	private boolean fireRequestRowChangeEvent() {
-		if (rows.size() < 1 || currentRow < 1) {
-			return true;
-		}
-		if (currentRow > rows.size() - 1) {
-			// (if the other row is already gone)
-			return true;
-		}
-		for (Iterator rowChangeListenersIter = parent.rowFocusListeners
-				.iterator(); rowChangeListenersIter.hasNext();) {
-			IRowFocusListener listener = (IRowFocusListener) rowChangeListenersIter
-					.next();
-			// currentRow() can be null if it's scrolled off the top or bottom
-			TableRow row = currentRow();
-			Control control = row != null ? row.getRowControl() : null;
-			if (!listener.requestRowChange(parent, topRow + currentRow,
-					control)) {
-				return false;
-			}
-		}
-		fireRowDepartEvent();
-		return true;
-	}
-
-	/**
-	 * Indicate to listeners that the focus is about to leave the current row.
-	 */
-	private void fireRowDepartEvent() {
-		if (rows.size() < 1 || currentRow < 1) {
-			return;
-		}
-		for (Iterator rowChangeListenersIter = parent.rowFocusListeners
-				.iterator(); rowChangeListenersIter.hasNext();) {
-			IRowFocusListener listener = (IRowFocusListener) rowChangeListenersIter
-					.next();
-			// currentRow() can be null if it's scrolled off the top or bottom
-			TableRow row = currentRow();
-			Control control = row != null ? row.getRowControl() : null;
-			listener.depart(parent, topRow + currentRow, control);
-		}
-	}
-
-	/**
-	 * Request deletion of the current row from the underlying data structure.
-	 * 
-	 * @return true if the deletion was successful; false otherwise.
-	 */
-	private boolean fireDeleteEvent() {
-		if (parent.deleteHandlers.size() < 1) {
-			return false;
-		}
-
-		int absoluteRow = topRow + currentRow;
-		for (Iterator deleteHandlersIter = parent.deleteHandlers.iterator(); deleteHandlersIter
-				.hasNext();) {
-			IDeleteHandler handler = (IDeleteHandler) deleteHandlersIter.next();
-			if (!handler.canDelete(absoluteRow)) {
-				return false;
-			}
-		}
-		for (Iterator deleteHandlersIter = parent.deleteHandlers.iterator(); deleteHandlersIter
-				.hasNext();) {
-			IDeleteHandler handler = (IDeleteHandler) deleteHandlersIter.next();
-			handler.deleteRow(absoluteRow);
-		}
-		return true;
-	}
-
-	/**
-	 * Request that the model insert a new row into itself.
-	 * 
-	 * @return The 0-based offset of the new row from the start of the
-	 *         collection or -1 if a new row could not be inserted.
-	 */
-	private int fireInsertEvent() {
-		if (parent.insertHandlers.size() < 1) {
-			return -1;
-		}
-
-		for (Iterator insertHandlersIter = parent.insertHandlers.iterator(); insertHandlersIter
-				.hasNext();) {
-			IInsertHandler handler = (IInsertHandler) insertHandlersIter.next();
-			int resultRow = handler.insert(topRow + currentRow);
-			if (resultRow >= 0) {
-				return resultRow;
-			}
-		}
-
-		return -1;
-	}
-	
-	/**
-	 * Tell listeners that we just scrolled.
-	 * @param scrollEvent TODO
-	 */
-	private void fireScrollEvent(ScrollEvent scrollEvent) {
-		if (parent.scrollListeners.size() < 1) {
-			return;
-		}
-		
-		for (Iterator scrollListenersIter = parent.scrollListeners.iterator(); scrollListenersIter.hasNext();) {
-			ScrollListener scrollListener = (ScrollListener) scrollListenersIter.next();
-			scrollListener.tableScrolled(scrollEvent);
-		}
-	}
-
-	// Event Handling, utility methods
-	// ------------------------------------------------------------
-
-	/**
-	 * Set the widget's selection to an empty selection.
-	 * 
-	 * @param widget
-	 *            The widget to deselect
-	 */
-	private void deselect(Widget widget) {
-		if (DuckType.instanceOf(ISelectableRegionControl.class, widget)) {
-			ISelectableRegionControl control = (ISelectableRegionControl) DuckType
-					.implement(ISelectableRegionControl.class, widget);
-			control.setSelection(0, 0);
-		}
-	}
-
-	/**
-	 * Try to go to the next row in the collection.
-	 */
-	private void handleNextRowNavigation() {
-		if (currentRow < numRowsVisible - 1) {
-			if (!fireRequestRowChangeEvent()) {
-				return;
-			}
-			needToRequestRC = false;
-
-			deselect(getControl(currentColumn, currentRow));
-
-			deferredSetFocus(getControl(0, currentRow + 1), false);
-		} else {
-			if (topRow + numRowsVisible >= numRowsInCollection) {
-				// We're at the end; don't go anywhere
-				return;
-			}
-			// We have to scroll forwards
-			if (!fireRequestRowChangeEvent()) {
-				return;
-			}
-			needToRequestRC = false;
-
-			deselect(getControl(currentColumn, currentRow));
-
-			setTopRow(topRow + 1);
-			deferredSetFocus(getControl(0, currentRow), true);
-		}
-	}
-
-	/**
-	 * Try to go to the previous row in the collection.
-	 * 
-	 * @param row
-	 *            The current table row.
-	 */
-	private void handlePreviousRowNavigation(TableRow row) {
-		if (currentRow == 0) {
-			if (topRow == 0) {
-				// We're at the beginning of the table; don't go anywhere
-				return;
-			}
-			// We have to scroll backwards
-			if (!fireRequestRowChangeEvent()) {
-				return;
-			}
-			needToRequestRC = false;
-
-			deselect(getControl(currentColumn, currentRow));
-
-			setTopRow(topRow - 1);
-			deferredSetFocus(getControl(row.getNumColumns() - 1, 0), true);
-		} else {
-			if (!fireRequestRowChangeEvent()) {
-				return;
-			}
-			needToRequestRC = false;
-
-			deselect(getControl(currentColumn, currentRow));
-
-			deferredSetFocus(
-					getControl(row.getNumColumns() - 1, currentRow - 1), false);
-		}
-	}
-
-	/**
-	 * Gets the current TableRow.
-	 * 
-	 * @return the current TableRow
-	 */
-	private TableRow currentRow() {
-		if (currentRow > rows.size() - 1) {
-			return null;
-		}
-		return (TableRow) rows.get(currentRow);
-	}
-
-	/**
-	 * Returns the SWT control corresponding to the current row.
-	 * 
-	 * @return the current row control.
-	 */
-	public Control getCurrentRowControl() {
-		TableRow currentRow = currentRow();
-		if (currentRow == null) {
-			return null;
-		}
-		return currentRow().getRowControl();
-	}
-	
-	/**
-	 * Method getRowControls. Returns an array of SWT controls where each
-	 * control represents a row control in the CompositeTable's current scrolled
-	 * position. If CompositeTable is resized, scrolled, such that the rows that
-	 * the CompositeTable control is displaying change in any way, the array
-	 * that is returned by this method will become out of date and need to be
-	 * retrieved again.
-	 * 
-	 * @return Control[] An array of SWT Control objects, each representing an
-	 *         SWT row object.
-	 */
-	public Control[] getRowControls() {
-		Control[] rowControls = new Control[rows.size()];
-		for (int i = 0; i < rowControls.length; i++) {
-			rowControls[i] = getRowByNumber(i).getRowControl();
-		}
-		return rowControls;
-	}
-	
-	private Menu menu = null;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setMenu(org.eclipse.swt.widgets.Menu)
-	 */
-	public void setMenu(final Menu menu) {
-		this.menu = menu;
-		setMenuOnCollection(rows, menu);
-		setMenuOnCollection(spareRows, menu);
-	}
-
-	private void setMenuOnCollection(LinkedList collection, Menu menu) {
-		for (Iterator rowsIter = collection.iterator(); rowsIter.hasNext();) {
-			TableRow row = (TableRow) rowsIter.next();
-			row.getRowControl().setMenu(menu);
-		}
-	}
-	
-	
-
-	/**
-	 * Method getControlRow.  Given a row control, returns its row number
-	 * relative to the topRow.
-	 * 
-	 * @param rowControl The row object to find
-	 * @return The row number of the rowControl relative to the topRow (0-based)
-	 * @throws IllegalArgumentException if rowControl is not currently visible
-	 */
-	public int getControlRow(Control rowControl) {
-		for (int row = 0; row < rows.size(); row++) {
-			if (getRowByNumber(row).getRowControl() == rowControl) {
-				return row;
-			}
-		}
-		throw new IllegalArgumentException("getControlRow passed a control that is not visible inside CompositeTable");
-	}
-	
-	/**
-	 * Method getControlRowObject.  Given a row control, returns its row number
-	 * relative to the topRow.
-	 * 
-	 * @param rowControl The row object to find
-	 * @return The row object managing the rowControl
-	 * @throws IllegalArgumentException if rowControl is not currently visible
-	 */
-	public TableRow getControlRowObject(Control rowControl) {
-		for (Iterator rowsIter = rows.iterator(); rowsIter.hasNext();) {
-			TableRow row = (TableRow) rowsIter.next();
-			if (row.getRowControl() == rowControl) {
-				return row;
-			}
-		}
-		throw new IllegalArgumentException("getControlRowObject passed a control that is not visible inside CompositeTable");
-	}
-
-	/**
-	 * Returns the TableRow by the specified 0-based offset from the top visible
-	 * row.
-	 * 
-	 * @param rowNumber
-	 *            0-based offset of the requested fow starting from the top
-	 *            visible row.
-	 * @return The corresponding TableRow or null if there is none.
-	 */
-	private TableRow getRowByNumber(int rowNumber) {
-		if (rowNumber > rows.size() - 1 || rowNumber < 0) {
-			return null;
-		}
-		return (TableRow) rows.get(rowNumber);
-	}
-
-	/**
-	 * Return the SWT control at (column, row), where row is a 0-based number
-	 * starting from the top visible row.
-	 * 
-	 * @param column
-	 *            the 0-based column.
-	 * @param row
-	 *            the 0-based row starting from the top visible row.
-	 * @return the SWT control at (column, row)
-	 */
-	private Control getControl(int column, int row) {
-		TableRow rowObject = getRowByNumber(row);
-		if (rowObject == null) {
-			throw new IndexOutOfBoundsException("Request for a nonexistent row"); //$NON-NLS-1$
-		}
-		Control result = rowObject.getColumnControl(column);
-		return result;
-	}
-
-	/**
-	 * Return the 0-based row number corresponding to a particular TableRow
-	 * object.
-	 * 
-	 * @param row
-	 *            The TableRow to translate to row coordinates.
-	 * @return the 0-based row number or -1 if the specified TableRow is not
-	 *         visible.
-	 */
-	private int getRowNumber(TableRow row) {
-		int rowNumber = 0;
-		for (Iterator rowIter = rows.iterator(); rowIter.hasNext();) {
-			TableRow candidate = (TableRow) rowIter.next();
-			if (candidate == row) {
-				return rowNumber;
-			}
-			++rowNumber;
-		}
-		return -1;
-	}
-
-	/**
-	 * Set the focus to the specified (column, row). If rowChange is true, fire
-	 * a row change event, otherwise be silent.
-	 * 
-	 * @param column
-	 *            The 0-based column to focus
-	 * @param row
-	 *            The 0-based row to focus
-	 * @param rowChange
-	 *            true if a row change event should be fired; false otherwise.
-	 */
-	private void internalSetSelection(int column, int row, boolean rowChange) {
-		Control toFocus = getControl(column, row);
-		if (toFocus == null) {
-			return;
-		}
-		if (toFocus.isFocusControl()) {
-			toFocus.notifyListeners(SWT.FocusIn, new Event());
-		} else {
-			deferredSetFocus(toFocus, rowChange);
-		}
-	}
-
-	/**
-	 * Set the focus to the specified control after allowing all pending events
-	 * to complete first. If rowChange is true, fire a row arrive event after
-	 * the focus has been set.
-	 * 
-	 * @param toFocus
-	 *            The SWT Control to focus
-	 * @param rowChange
-	 *            true if the rowArrive event should be fired; false otherwise.
-	 */
-	private void deferredSetFocus(final Control toFocus, final boolean rowChange) {
-		if (toFocus == null) {
-			return;
-		}
-		Display.getCurrent().asyncExec(new Runnable() {
-			public void run() {
-				toFocus.setFocus();
-				if (rowChange) {
-					fireRowArriveEvent();
-				}
-			}
-		});
-	}
-
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/RowConstructionListener.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/RowConstructionListener.java
deleted file mode 100644
index 3f34aa0..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/RowConstructionListener.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable;
-
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Class RowConstructionListener. An "interface" for objects that need to
- * listen to row object construction events.
- * 
- * @author djo
- */
-public abstract class RowConstructionListener {
-	/**
-	 * Method rowConstructed. Called when the CompositeTable creates a new row
-	 * object. CompositeTable only creates a new row object when it needs on in
-	 * order to fill vacant space. During its life cycle, it never disposes a
-	 * row object, but rather caches unused row objects for later reuse if
-	 * needed. All row objects are disposed when the CompositeTable itself is
-	 * disposed.
-	 * 
-	 * @param newRow
-	 *            The new row object that was just constructed.
-	 */
-	public abstract void rowConstructed(Control newRow);
-
-	/**
-	 * Method headerConstructed. Called when the CompositeTable creates a new
-	 * header object. CompositeTable only creates a new header when the runTime
-	 * property is set to true. This method permits clients to modify the header
-	 * control that was created from the prototype header control as needed.
-	 * 
-	 * @param newHeader
-	 *            The new header object that was just constructed.
-	 */
-	public abstract void headerConstructed(Control newHeader);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/RowFocusAdapter.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/RowFocusAdapter.java
deleted file mode 100644
index fa340ca..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/RowFocusAdapter.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.examples.databinding.compositetable;
-
-import org.eclipse.swt.widgets.Control;
-
-/**
- * An interface for objects that want to listen to and have the
- * possibility of vetoing row change events on a CompositeTable.
- * 
- * @since 3.2
- */
-public class RowFocusAdapter implements IRowFocusListener {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.IRowFocusListener#arrive(org.eclipse.jface.examples.databinding.compositetable.CompositeTable, int, org.eclipse.swt.widgets.Control)
-	 */
-	public void arrive(CompositeTable sender, int currentObjectOffset,
-			Control newRow) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.IRowFocusListener#depart(org.eclipse.jface.examples.databinding.compositetable.CompositeTable, int, org.eclipse.swt.widgets.Control)
-	 */
-	public void depart(CompositeTable sender, int currentObjectOffset,
-			Control row) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.IRowFocusListener#requestRowChange(org.eclipse.jface.examples.databinding.compositetable.CompositeTable, int, org.eclipse.swt.widgets.Control)
-	 */
-	public boolean requestRowChange(CompositeTable sender,
-			int currentObjectOffset, Control row) {
-		return true;
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/ScrollEvent.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/ScrollEvent.java
deleted file mode 100644
index 509a1f5..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/ScrollEvent.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.jface.examples.databinding.compositetable;
-
-/**
- * An event that is fired whenever the user scrolls a CompositeTable control.
- * 
- * @since 3.2
- */
-public class ScrollEvent {
-	/**
-	 * Scroll direction == forward relative to the user's viewport.
-	 */
-	public static final int FORWARD = 1;
-	
-	/**
-	 * Scroll direction == none relative to the user's viewport.
-	 */
-	public static final int NONE = 0;
-	
-	/**
-	 * Scroll direction == backward relative to the user's viewport.
-	 */
-	public static final int BACKWARD = -1;
-	
-	/**
-	 * The direction that the user scrolled relative to the viewport.  One
-	 * of: {FORWARD, BACKWARD}.
-	 */
-	public final int userScrollDirection;
-	
-	/**
-	 * The CompositeTable that sent this event.
-	 */
-	public final CompositeTable sender;
-
-	/**
-	 * @param userScrollDirection
-	 * @param parent
-	 */
-	public ScrollEvent(int userScrollDirection, CompositeTable parent) {
-		this.userScrollDirection = userScrollDirection;
-		this.sender = parent;
-	}
-	
-	/* (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		if (userScrollDirection == FORWARD) {
-			return "FORWARD Scroll";
-		}
-		if (userScrollDirection == BACKWARD) {
-			return "BACKWARD Scroll";
-		}
-		return "no scroll";
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/ScrollListener.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/ScrollListener.java
deleted file mode 100644
index 34f4d0b..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/ScrollListener.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.examples.databinding.compositetable;
-
-/**
- * An "interface" for objects that need to listen to scrolling events on a
- * CompositeTable control.
- * 
- * @since 3.2
- */
-public abstract class ScrollListener {
-	/**
-	 * Method tableScrolled.  Called after the CompositeTable has scrolled the
-	 * visible range.
-	 * @param scrollEvent TODO
-	 */
-	public abstract void tableScrolled(ScrollEvent scrollEvent);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/binding/CompositeTableObservableLazyDataRequestor.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/binding/CompositeTableObservableLazyDataRequestor.java
deleted file mode 100644
index 4870791..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/binding/CompositeTableObservableLazyDataRequestor.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Coconut Palm Software, 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:
- *     Coconut Palm Software - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.binding;
-
-import org.eclipse.jface.databinding.observable.AbstractObservable;
-import org.eclipse.jface.examples.databinding.compositetable.CompositeTable;
-import org.eclipse.jface.examples.databinding.compositetable.IDeleteHandler;
-import org.eclipse.jface.examples.databinding.compositetable.IInsertHandler;
-import org.eclipse.jface.examples.databinding.compositetable.IRowContentProvider;
-import org.eclipse.jface.examples.databinding.compositetable.IRowFocusListener;
-import org.eclipse.jface.examples.databinding.compositetable.RowFocusAdapter;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyDeleteEvent;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertEvent;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * An ILazyDataRequestor implementation for CompositeTable.
- * 
- * @since 3.3
- */
-public class CompositeTableObservableLazyDataRequestor extends AbstractObservable implements ILazyDataRequestor {
-	private static final String DATABINDING_CONTEXT_KEY = "DATABINDING_CONTEXT";
-	private DataBindingContext parentContext;
-	private CompositeTable table;
-	private IRowBinder rowBinder;
-	
-	/**
-	 * Construct a CompositeTableLazyDataRequestor.
-	 * 
-	 * @param parentContext The parent data binding context.
-	 * @param table The CompositeTable to bind
-	 * @param rowBinder An IRowBinder that knows how to bind row objects in the CompositeTable
-	 */
-	public CompositeTableObservableLazyDataRequestor(DataBindingContext parentContext, CompositeTable table, IRowBinder rowBinder) {
-		this.parentContext = parentContext;
-		this.table = table;
-		this.rowBinder = rowBinder;
-		table.addRowContentProvider(contentProvider);
-		table.addRowFocusListener(rowListener);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.IObservable#dispose()
-	 */
-	public void dispose() {
-		table.removeRowContentProvider(contentProvider);
-		table.removeRowFocusListener(rowListener);
-		if (insertDeleteProvider != null) {
-			table.removeInsertHandler(insertHandler);
-			table.removeDeleteHandler(deleteHandler);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#setSize(int)
-	 */
-	public void setSize(int size) {
-		table.setNumRowsInCollection(size);
-	}
-
-	private ILazyListElementProvider elementProvider;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#addElementProvider(org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider)
-	 */
-	public void addElementProvider(ILazyListElementProvider p) {
-		this.elementProvider = p;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#removeElementProvider(org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider)
-	 */
-	public void removeElementProvider(ILazyListElementProvider p) {
-		p = null;
-	}
-	
-	private LazyInsertDeleteProvider insertDeleteProvider;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#addInsertDeleteProvider(org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider)
-	 */
-	public void addInsertDeleteProvider(LazyInsertDeleteProvider p) {
-		this.insertDeleteProvider = p;
-		table.addInsertHandler(insertHandler);
-		table.addDeleteHandler(deleteHandler);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#removeInsertDeleteProvider(org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider)
-	 */
-	public void removeInsertDeleteProvider(LazyInsertDeleteProvider p) {
-		insertDeleteProvider = null;
-		table.removeInsertHandler(insertHandler);
-		table.removeDeleteHandler(deleteHandler);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#add(int, java.lang.Object)
-	 */
-	public void add(int position, Object element) {
-		table.setNumRowsInCollection(table.getNumRowsInCollection()+1);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#remove(int)
-	 */
-	public void remove(int position) {
-		table.setNumRowsInCollection(table.getNumRowsInCollection()-1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.IObservable#isStale()
-	 */
-	public boolean isStale() {
-		// A CompositeTableLazyDataRequestor is never stale
-		return false;
-	}
-	
-	// Event handlers ----------------------------------------------------------
-
-	private IRowContentProvider contentProvider = new IRowContentProvider() {
-		public void refresh(CompositeTable sender, int currentObjectOffset, Control row) {
-			DataBindingContext bindings = (DataBindingContext) row.getData(DATABINDING_CONTEXT_KEY);
-			if (bindings != null) {
-				bindings.dispose();
-			}
-			
-			Object object = elementProvider.get(currentObjectOffset);
-			bindings = new DataBindingContext(parentContext);
-			row.setData(DATABINDING_CONTEXT_KEY, bindings);
-			
-			rowBinder.bindRow(bindings, row, object);
-		}
-	};
-
-	private IInsertHandler insertHandler = new IInsertHandler() {
-		public int insert(int positionHint) {
-			NewObject newObject = insertDeleteProvider.insertElementAt(new LazyInsertEvent(positionHint, null));
-			if (newObject == null) {
-				return -1;
-			}
-			return newObject.position;
-		}
-	};
-	
-	private IDeleteHandler deleteHandler = new IDeleteHandler() {
-		public boolean canDelete(int rowInCollection) {
-			return insertDeleteProvider.canDeleteElementAt(new LazyDeleteEvent(rowInCollection));
-		}
-
-		public void deleteRow(int rowInCollection) {
-			insertDeleteProvider.deleteElementAt(new LazyDeleteEvent(rowInCollection));
-		}
-	};
-	
-	/*
-	 * FIXME: Manage object-level commit / rollback here???
-	 * 
-	 * Yes.  Need to fire row validation events here?  Will user scrolling
-	 * using the scroll bar cause a problem here?
-	 */
-	private IRowFocusListener rowListener = new RowFocusAdapter();
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/binding/IRowBinder.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/binding/IRowBinder.java
deleted file mode 100644
index 9e4452a..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/binding/IRowBinder.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Coconut Palm Software, 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:
- *     Coconut Palm Software - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.binding;
-
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Defines an interface for objects that can bind a CompositeTable's row object
- * to an element of the collection to which the CompositeTable itself is bound.
- * @since 3.3
- */
-public interface IRowBinder {
-	/**
-	 * Bind the controls inside the specified row object to the specified
-	 * object using the supplied data binding context.
-	 * <p>
-	 * The sender will automatically dispose the bindings at the right time
-	 * by disposing the supplied data binding context.
-	 * 
-	 * @param context The data binding context
-	 * @param row The row Control to bind
-	 * @param object The business model object to bind
-	 */
-	void bindRow(DataBindingContext context, Control row, Object object);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/AbstractEventEditor.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/AbstractEventEditor.java
deleted file mode 100644
index 0fa02b2..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/AbstractEventEditor.java
+++ /dev/null
@@ -1,195 +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.examples.databinding.compositetable.day;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @since 3.2
- *
- */
-public abstract class AbstractEventEditor extends Composite {
-
-	private int defaultEventDuration;
-	private List insertHandlers = new ArrayList();
-
-	/**
-	 * @param parent Parent control
-	 * @param style SWT style bit
-	 * 
-	 */
-	public AbstractEventEditor(Composite parent, int style) {
-		super(parent, style);
-	}
-
-	/**
-	 * Tells the IEventEditor to refresh all days in its display.
-	 */
-	public abstract void refresh();
-	
-	/**
-	 * Requests that the event editor attempt to insert a new element by calling
-	 * its registered insert handlers
-	 * 
-	 * @param date
-	 *            The date/time on which to request the insert. The actual date
-	 *            on which the insert is performed may be different. This is a
-	 *            HINT.
-	 * 
-	 * @param allDayEvent
-	 *            Indicates if the new event should be an all-day event. This is
-	 *            a HINT; the actual event inserted may be a timed event.
-	 * 
-	 * @return NewEvent a NewEvent object describing the event that was
-	 *         inserted.
-	 */
-	public NewEvent fireInsert(Date date, boolean allDayEvent) {
-		checkWidget();
-		CalendarableItem item = new CalendarableItem(date);
-		item.setAllDayEvent(allDayEvent);
-		item.setStartTime(date);
-		item.setEndTime(incrementHour(date, getDefaultEventDuration()));
-		CalendarableItemEvent e = new CalendarableItemEvent();
-		e.calendarableItem = item;
-		if (fireEvents(e, insertHandlers)) {
-			// TODO: Only refresh the affected days
-			refresh();
-			return (NewEvent) e.result;
-		}
-		return null;
-	}
-
-	/**
-	 * Adds the handler to the collection of handlers who will be notified when
-	 * a CalendarableItem is inserted in the receiver, by sending it one of the
-	 * messages defined in the <code>CalendarableItemInsertHandler</code>
-	 * abstract class.
-	 * <p>
-	 * <code>itemInserted</code> is called when the CalendarableItem is
-	 * inserted.
-	 * </p>
-	 * 
-	 * @param handler
-	 *            the handler which should be notified
-	 * 
-	 * @exception IllegalArgumentException
-	 *                <ul>
-	 *                <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 *                </ul>
-	 * @exception SWTException
-	 *                <ul>
-	 *                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
-	 *                disposed</li>
-	 *                </ul>
-	 * 
-	 * @see CalendarableItemInsertHandler
-	 * @see #removeItemInsertHandler
-	 */
-	public void addItemInsertHandler(CalendarableItemEventHandler handler) {		
-		checkWidget();
-		if (handler == null) {
-			throw new IllegalArgumentException("The argument cannot be null");
-		}
-		if (isDisposed()) {
-			throw new SWTException("Widget is disposed");
-		}
-		insertHandlers.add(handler);
-	}
-
-	/**
-	 * Removes the handler from the collection of handlers who will
-	 * be notified when a CalendarableItem is inserted into the receiver, by sending
-	 * it one of the messages defined in the <code>CalendarableItemInsertHandler</code>
-	 * abstract class.
-	 * <p>
-	 * <code>itemInserted</code> is called when the CalendarableItem is inserted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemInsertHandler
-	 * @see #addItemInsertHandler
-	 */
-	public void removeItemInsertHandler(CalendarableItemEventHandler handler) {		
-		checkWidget();
-		if (handler == null) {
-			throw new IllegalArgumentException("The argument cannot be null");
-		}
-		if (isDisposed()) {
-			throw new SWTException("Widget is disposed");
-		}
-		insertHandlers.remove(handler);
-	}
-
-	/**
-	 * Returns the default duration of a new event, in hours.
-	 * 
-	 * @return int the number of hours a new event occupies by default.
-	 */
-	public int getDefaultEventDuration() {
-		checkWidget();
-		return defaultEventDuration;
-	}
-
-	/**
-	 * Sets the default duration of a new event, in hours.
-	 * 
-	 * @param defaultEventDuration
-	 *            int the number of hours a new event occupies by default.
-	 */
-	public void setDefaultEventDuration(int defaultEventDuration) {
-		checkWidget();
-		this.defaultEventDuration = defaultEventDuration;
-	}
-
-	protected boolean fireEvents(CalendarableItemEvent e, List handlers) {
-		for (Iterator i = handlers.iterator(); i.hasNext();) {
-			CalendarableItemEventHandler h = (CalendarableItemEventHandler) i.next();
-			h.handleRequest(e);
-			if (!e.doit) {
-				break;
-			}
-		}
-		for (Iterator i = handlers.iterator(); i.hasNext();) {
-			CalendarableItemEventHandler h = (CalendarableItemEventHandler) i.next();
-			h.requestHandled(e);
-			if (!e.doit) {
-				break;
-			}
-		}
-		return e.doit;
-	}
-
-	private Date incrementHour(Date date, int increment) {
-		Calendar c = Calendar.getInstance();
-		c.setTime(date);
-		c.add(Calendar.HOUR_OF_DAY, increment);
-		return c.getTime();
-	}
-
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableItemEvent.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableItemEvent.java
deleted file mode 100644
index 1bdcc40..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableItemEvent.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.jface.examples.databinding.compositetable.day;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-
-/**
- * Instances of this class are sent as a result of
- * events such insertion, deletion, or disposal of 
- * CalendarableItem objects.
-
- * @since 3.2
- *
- */
-public class CalendarableItemEvent {
-	/**
-	 * Set to true by default.  Setting this field to false aborts the 
-	 * requested operation, as appropriate.  For example, setting this field
-	 * to false in a deletion operation cancels the delete operation.
-	 */
-	public boolean doit = true;
-	
-	/**
-	 * The CalenderableItem that should be processed in this operation.
-	 */
-	public CalendarableItem calendarableItem;
-	
-	/**
-	 * Returns the result of the operation.  In the case of an edit operation,
-	 * this must contain (oldStartTime, oldEndTime, newStartTime, newEndTime)
-	 * if any of (startTime, endTime) have changed.
-	 */
-	public Object result = null;
-	
-	public String toString() {
-		return "calendarableItem = " + calendarableItem;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableItemEventHandler.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableItemEventHandler.java
deleted file mode 100644
index ef6feb9..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableItemEventHandler.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.examples.databinding.compositetable.day;
-
-
-/**
- * Abstract class CalendarableItemEventHandler.  An abstract class defining
- * the API for objects that implement strategy pattern services such as
- * insert, edit, and delete from a DayEditor object.
- * 
- * @since 3.2
- */
-public abstract class CalendarableItemEventHandler {
-	/**
-	 * Process this CalenderableItemEvent, please.
-	 * 
-	 * @param e
-	 *            The CalendarableItemEvent to process.
-	 */
-	public void handleRequest(CalendarableItemEvent e) {
-		// NOOP by default
-	}
-	
-	/**
-	 * This CalendarableItemEvent has been handled.
-	 * 
-	 * @param e
-	 *            The CalendarableItemEvent that was processed, including the
-	 *            results of processing the event.
-	 */
-	public void requestHandled(CalendarableItemEvent e) {
-		// NOOP by default
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableSelectionChangeListener.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableSelectionChangeListener.java
deleted file mode 100644
index 7af565e..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/CalendarableSelectionChangeListener.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.jface.examples.databinding.compositetable.day;
-
-
-/**
- * Classes which implement this interface provide methods
- * that deal with the events that are generated when selection
- * occurs in a control.
- * <p>
- * After creating an instance of a class that implements
- * this interface it can be added to a control using the
- * <code>addSelectionListener</code> method and removed using
- * the <code>removeSelectionListener</code> method. When
- * selection occurs in a control the appropriate method
- * will be invoked.
- *
- * @since 3.2
- */
-public abstract class CalendarableSelectionChangeListener {
-	/**
-	 * Sent when selection occurs in the control.
-	 *
-	 * @param e an event containing information about the selection
-	 */
-	public abstract void selectionChanged(SelectionChangeEvent e);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditor.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditor.java
deleted file mode 100644
index ce38338..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditor.java
+++ /dev/null
@@ -1,1411 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.examples.databinding.compositetable.day;
-
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.examples.databinding.compositetable.CompositeTable;
-import org.eclipse.jface.examples.databinding.compositetable.IRowContentProvider;
-import org.eclipse.jface.examples.databinding.compositetable.RowConstructionListener;
-import org.eclipse.jface.examples.databinding.compositetable.ScrollEvent;
-import org.eclipse.jface.examples.databinding.compositetable.ScrollListener;
-import org.eclipse.jface.examples.databinding.compositetable.day.internal.DayEditorCalendarableItemControl;
-import org.eclipse.jface.examples.databinding.compositetable.day.internal.EventLayoutComputer;
-import org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl;
-import org.eclipse.jface.examples.databinding.compositetable.day.internal.TimeSlice;
-import org.eclipse.jface.examples.databinding.compositetable.day.internal.TimeSlot;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableModel;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventContentProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventCountProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.FocusAdapter;
-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.KeyListener;
-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.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * A DayEditor is an SWT control that can display events on a time line that can
- * span one or more days.  This class is not intended to be subclassed.
- * 
- * @since 3.2
- */
-public class DayEditor extends AbstractEventEditor implements IEventEditor {
-	private CompositeTable compositeTable = null;
-	private CalendarableModel model = new CalendarableModel();
-	private List recycledCalendarableEventControls = new LinkedList();
-	protected TimeSlice daysHeader = null;
-	private final boolean headerDisabled;
-	/**
-	 * NO_HEADER constant.  A style bit constant to indicate that no header
-	 * should be displayed at the top of the editor window.
-	 */
-	public static final int NO_HEADER=SWT.NO_TRIM;
-	
-	/**
-	 * Constructor DayEditor.  Constructs a calendar control that can display
-	 * events on one or more days.
-	 * 
-	 * @param parent
-	 * @param style  DayEditor.NO_HEADER or SWT.NO_TRIM means not to display a header.
-	 */
-	public DayEditor(Composite parent, int style) {
-		super(parent, SWT.NULL);
-		if ((style & NO_HEADER) != 0) {
-			headerDisabled = true;
-		} else {
-			headerDisabled = false;
-		}
-		setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setTimeBreakdown(int, int)
-	 */
-	public void setTimeBreakdown(int numberOfDays, int numberOfDivisionsInHour) {
-		checkWidget();
-		model.setTimeBreakdown(numberOfDays, numberOfDivisionsInHour);
-		
-		if (compositeTable != null) {
-			compositeTable.dispose();
-		}
-		
-		createCompositeTable(numberOfDays, numberOfDivisionsInHour);
-	}
-
-	/**
-	 * This method initializes compositeTable
-	 * 
-	 * @param numberOfDays
-	 *            The number of day columns to display
-	 */
-	private void createCompositeTable(final int numberOfDays,
-			final int numberOfDivisionsInHour) {
-		
-		compositeTable = new CompositeTable(this, SWT.NONE);
-		if (background != null) {
-			compositeTable.setBackground(background);
-		}
-		compositeTable.setTraverseOnTabsEnabled(false);
-		
-		if (!headerDisabled) {
-			new TimeSlice(compositeTable, SWT.BORDER);		// The prototype header
-		}
-		new TimeSlice(compositeTable, SWT.NONE); // The prototype row
-		
-		compositeTable.setNumRowsInCollection(computeNumRowsInCollection(numberOfDivisionsInHour));
-		
-		compositeTable.addRowConstructionListener(new RowConstructionListener() {
-			public void headerConstructed(Control newHeader) {
-				daysHeader = (TimeSlice) newHeader;
-				daysHeader.setHeaderControl(true);
-				daysHeader.setNumberOfColumns(numberOfDays);
-				if (model.getStartDate() == null) {
-					return;
-				}
-				refreshColumnHeaders(daysHeader.getColumns());
-			}
-			
-			public void rowConstructed(Control newRow) {
-				TimeSlice timeSlice = (TimeSlice) newRow;
-				timeSlice.setNumberOfColumns(numberOfDays);
-				timeSlice.addCellFocusListener(cellFocusListener);
-				timeSlice.addKeyListener(keyListener);
-				timeSlice.addMouseListener(cellMouseListener);
-			}
-		});
-		compositeTable.addRowContentProvider(new IRowContentProvider() {
-			public void refresh(CompositeTable sender, int currentObjectOffset,
-					Control row) {
-				TimeSlice timeSlice = (TimeSlice) row;
-				refreshRow(currentObjectOffset, timeSlice);
-			}
-		});
-		compositeTable.addScrollListener(new ScrollListener() {
-			public void tableScrolled(ScrollEvent scrollEvent) {
-				layoutEventControls();
-			}
-		});
-		addControlListener(new ControlAdapter() {
-			public void controlResized(ControlEvent e) {
-				Rectangle bounds = DayEditor.this.getBounds();
-				compositeTable.setBounds(0, 0, bounds.width, bounds.height);
-				layoutEventControlsDeferred();
-			}
-		});
-		
-		compositeTable.setRunTime(true);
-	}
-	
-	private Menu menu = null;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setMenu(org.eclipse.swt.widgets.Menu)
-	 */
-	public void setMenu(final Menu menu) {
-		checkWidget();
-		Display.getCurrent().asyncExec(new Runnable() {
-			public void run() {
-				if (isDisposed()) return;
-				DayEditor.super.setMenu(menu);
-				DayEditor.this.menu = menu;
-				compositeTable.setMenu(menu);
-				setMenuOnCollection(recycledCalendarableEventControls, menu);
-				for (int day=0; day < model.getNumberOfDays(); ++day) {
-					List calendarablesForDay = model.getCalendarableItems(day);
-					setMenuOnCollection(calendarablesForDay, menu);
-				}
-			}
-		});
-	}
-	
-
-
-	private void setMenuOnCollection(List collection, Menu menu) {
-		for (Iterator controls = collection.iterator(); controls.hasNext();) {
-			ICalendarableItemControl control = (ICalendarableItemControl) controls.next();
-			control.setMenu(menu);
-		}
-	}
-	
-	private ArrayList keyListeners = new ArrayList();
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#addKeyListener(org.eclipse.swt.events.KeyListener)
-	 */
-	public void addKeyListener(KeyListener listener) {
-		checkWidget();
-		keyListeners.add(listener);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#removeKeyListener(org.eclipse.swt.events.KeyListener)
-	 */
-	public void removeKeyListener(KeyListener listener) {
-		checkWidget();
-		keyListeners.remove(listener);
-	}
-	
-	private KeyListener keyListener = new KeyAdapter() {
-		public void keyReleased(KeyEvent e) {
-			for (Iterator i = keyListeners.iterator(); i.hasNext();) {
-				KeyListener keyListener = (KeyListener) i.next();
-				keyListener.keyReleased(e);
-				if (!e.doit) return;
-			}
-		}
-		
-		public void keyPressed(KeyEvent e) {
-			for (Iterator i = keyListeners.iterator(); i.hasNext();) {
-				KeyListener keyListener = (KeyListener) i.next();
-				keyListener.keyPressed(e);
-				if (!e.doit) return;
-			}
-			CalendarableItem selection = selectedCalendarable;
-			int selectedRow;
-			int selectedDay;
-			boolean allDayEventRowSelected = false;
-			int compositeTableRow = compositeTable.getSelection().y + compositeTable.getTopRow();
-			if (compositeTableRow < numberOfAllDayEventRows) {
-				allDayEventRowSelected = true;
-			}
-			
-			if (selection == null) {
-				selectedRow = convertViewportRowToDayRow(compositeTable.getCurrentRow());
-				selectedDay = compositeTable.getCurrentColumn();
-			} else {
-				selectedDay = model.getDay(selection);
-				if (allDayEventRowSelected) {
-					selectedRow = compositeTableRow;
-				} else {
-					Point selectedCoordinates = selection.getUpperLeftPositionInDayRowCoordinates();
-					if (selectedCoordinates == null) {
-						return;
-					}
-					selectedRow = selectedCoordinates.y;
-				}
-			}
-			
-			switch (e.character) {
-			case SWT.TAB:
-				if ((e.stateMask & SWT.SHIFT) != 0) {
-					CalendarableItem newSelection = model.findPreviousCalendarable(selectedDay, selectedRow, selection, allDayEventRowSelected);
-					if (newSelection == null) {
-						// There was only 0 or one visible event--nothing to scroll to
-						return;
-					}
-					int newTopRow = computeNewTopRowBasedOnSelection(newSelection);
-					if (newTopRow != compositeTable.getTopRow()) {
-						compositeTable.setTopRow(newTopRow);
-					}
-					setSelection(newSelection);
-				} else {
-					CalendarableItem newSelection = model.findNextCalendarable(selectedDay, selectedRow, selection, allDayEventRowSelected);
-					if (newSelection == null) {
-						// There was only 0 or one visible event--nothing to scroll to
-						return;
-					}
-					int newTopRow = computeNewTopRowBasedOnSelection(newSelection);
-					if (newTopRow != compositeTable.getTopRow()) {
-						compositeTable.setTopRow(newTopRow);
-					}
-					setSelection(newSelection);
-				}
-			}
-		}
-	};
-	
-	private ArrayList mouseListeners = new ArrayList();
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#addMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-	public void addMouseListener(MouseListener listener) {
-		checkWidget();
-		mouseListeners.add(listener);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#removeMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-	public void removeMouseListener(MouseListener listener) {
-		checkWidget();
-		mouseListeners.remove(listener);
-	}
-	
-	private MouseListener cellMouseListener = new MouseListener() {
-		public void mouseDoubleClick(MouseEvent e) {
-			fireMouseDoubleClickEvent(e);
-		}
-		public void mouseDown(MouseEvent e) {
-			fireMouseDownEvent(e);
-		}
-		public void mouseUp(MouseEvent e) {
-			fireMouseUpEvent(e);
-		}
-	};
-	
-	protected void fireMouseDownEvent(MouseEvent e) {
-		for (Iterator i = mouseListeners.iterator(); i.hasNext();) {
-			MouseListener mouseListener = (MouseListener) i.next();
-			mouseListener.mouseDown(e);
-		}
-	}
-	
-	protected void fireMouseUpEvent(MouseEvent e) {
-		for (Iterator i = mouseListeners.iterator(); i.hasNext();) {
-			MouseListener mouseListener = (MouseListener) i.next();
-			mouseListener.mouseUp(e);
-		}
-	}
-	
-	protected void fireMouseDoubleClickEvent(MouseEvent e) {
-		for (Iterator i = mouseListeners.iterator(); i.hasNext();) {
-			MouseListener mouseListener = (MouseListener) i.next();
-			mouseListener.mouseDoubleClick(e);
-		}
-	}
-	
-	private int computeNewTopRowBasedOnSelection(CalendarableItem newSelection) {
-		int topRow = compositeTable.getTopRow();
-		int numberOfRowsInDisplay = compositeTable.getNumRowsVisible();
-		int newTopRow = topRow;
-		
-		Point endRowPoint = newSelection.getLowerRightPositionInDayRowCoordinates();
-		if (endRowPoint != null) {
-			int endRow = convertDayRowToViewportCoordinates(endRowPoint.y);
-			if (endRow >= newTopRow + numberOfRowsInDisplay) {
-				newTopRow += (endRow - (newTopRow + numberOfRowsInDisplay)) + 1;
-			}
-			int startRow = newSelection.getUpperLeftPositionInDayRowCoordinates().y;
-			startRow = convertDayRowToViewportCoordinates(startRow);
-			if (startRow < newTopRow) {
-				newTopRow = startRow;
-			}
-		}
-		return newTopRow;
-	}
-	
-	private boolean selectCalendarableControlOnSetFocus = true;
-	
-	private FocusListener cellFocusListener = new FocusAdapter() {
-		public void focusGained(FocusEvent e) {
-			TimeSlice sendingRow = (TimeSlice) ((Composite) e.widget).getParent();
-			int day = sendingRow.getControlColumn(e.widget);
-			int row = compositeTable.getControlRow(sendingRow);
-			if (selectCalendarableControlOnSetFocus) {
-				setSelectionByDayAndRow(day, row, null);
-			} else {
-				selectCalendarableControlOnSetFocus = true;
-			}
-		}
-	};
-	
-	private void setSelectionByDayAndRow(int day, int row, CalendarableItem aboutToSelect) {
-		int dayRow = convertViewportRowToDayRow(row);
-		if (aboutToSelect == null && dayRow >= 0)
-			aboutToSelect = getFirstCalendarableAt(day, dayRow);
-		if (aboutToSelect == null || dayRow < 0) {
-			aboutToSelect = getAllDayCalendarableAt(day, row + compositeTable.getTopRow());
-		}
-		selectCalenderableControl(aboutToSelect);
-		aboutToSelect = null;
-	}
-
-	/** (non-API)
-	 * Method getFirstCalendarableAt. Finds the calendarable event at the 
-	 * specified day/row in DayRow coordinates.  If no calendarable exists
-	 * at the specified coordinates, does nothing.
-	 * 
-	 * @param day The day offset
-	 * @param row The row offset in DayRow coordinates
-	 * @return the first Calendarable in the specified (day, row) or null if none.
-	 */
-	protected CalendarableItem getFirstCalendarableAt(int day, int row) {
-		CalendarableItem[][] eventLayout = model.getEventLayout(day);
-		CalendarableItem selectedCalendarable = null;
-		for (int column=0; column < eventLayout.length; ++column) {
-			CalendarableItem calendarable = eventLayout[column][row];
-			if (calendarable != null) {
-				if (selectedCalendarable == null) {
-					selectedCalendarable = calendarable;
-				} else if (calendarable.getStartTime().after(selectedCalendarable.getStartTime())) {
-					selectedCalendarable = calendarable;
-				}
-			}
-		}
-		return selectedCalendarable;
-	}
-	
-	/**
-	 * Find the all day event that is positioned at the specified day and row in viewport coordinates
-	 * 
-	 * @param day
-	 * @param row
-	 * @return The found Calendarable or null if none
-	 */
-	protected CalendarableItem getAllDayCalendarableAt(int day, int row) {
-		CalendarableItem[] allDayEvents = model.getAllDayCalendarables(day);
-		for (int allDayEventRow = 0; allDayEventRow < allDayEvents.length; allDayEventRow++) {
-			CalendarableItem candidate = allDayEvents[allDayEventRow];
-			if (allDayEventRow == row) {
-				return candidate;
-			}
-		}
-//		int allDayEventRow = 0;
-//		for (Iterator calendarablesIter = model.getCalendarableEvents(day).iterator(); calendarablesIter.hasNext();) {
-//			Calendarable candidate = (Calendarable) calendarablesIter.next();
-//			if (candidate.isAllDayEvent()) {
-//				if (allDayEventRow == row) {
-//					return candidate;
-//				}
-//				++allDayEventRow;
-//			}
-//		}
-		return null;
-	}
-
-	private CalendarableItem selectedCalendarable = null;
-	
-	/**
-	 * Method selectCalendarable.  Selects the specified Calendarable event.
-	 * 
-	 * @param newSelection The Calendarable to select.
-	 */
-	public void setSelection(CalendarableItem newSelection) {
-		checkWidget();
-		if (newSelection != null) {
-			int day = model.getDay(newSelection);
-			int row = computeRowForCalendarable(newSelection, day);
-			selectCalendarableControlOnSetFocus = false;
-			compositeTable.setSelection(day, row);
-			selectCalenderableControl(newSelection);
-		} else {
-			selectCalenderableControl(null);
-		}
-	}
-
-	private void selectCalenderableControl(CalendarableItem newSelection) {
-		if (selectedCalendarable == newSelection) {
-			return;
-		}
-		if (selectedCalendarable != null) {
-			// The control could be null if it just got scrolled off the screen top or bottom
-			if (selectedCalendarable.getControl() != null) {
-				selectedCalendarable.getControl().setSelected(false);
-			}
-		}
-		
-		CalendarableItem oldSelection = selectedCalendarable;
-		selectedCalendarable = newSelection;
-		
-		if (newSelection != null && newSelection.getControl() != null) {
-			newSelection.getControl().setSelected(true);
-		}
-		fireSelectionChangeEvent(oldSelection, newSelection);
-	}
-	
-	/**
-	 * Method getSelection.  Returns the selection.  This is computed as follows:
-	 * <ol>
-	 * <li>If a CalendarableItem is currently selected, it is returned.
-	 * <li>If the selection rectangle is in an all-day event row, null is returned.
-	 * <li>Otherwise, the date/time corresponding to the selection rectangle is returned as a java.util.Date.
-	 * </ol>
-	 * 
-	 * @return the current DayEditorSelection
-	 */
-	public DayEditorSelection getSelection() {
-		checkWidget();
-		DayEditorSelection selection = new DayEditorSelection();
-		Point compositeTableSelection = compositeTable.getSelection();
-		
-		int visibleAllDayEventRows = model.computeNumberOfAllDayEventRows();
-		visibleAllDayEventRows -= compositeTable.getTopRow();
-		
-		if (selectedCalendarable != null) {
-			selection.setSelectedCalendarable(selectedCalendarable);
-			if (selectedCalendarable.isAllDayEvent()) {
-				selection.setAllDay(true);
-			}
-		} else {
-			if (visibleAllDayEventRows > 0) {
-				if (compositeTableSelection.y < visibleAllDayEventRows) {
-					selection.setAllDay(true);
-				}
-			}
-		}
-		selection.setDateTime(computeDateTimeFromViewportCoordinates(
-				compositeTableSelection, visibleAllDayEventRows));
-		return selection;
-	}
-	
-	private List selectionChangeListeners = new ArrayList();
-
-	private void fireSelectionChangeEvent(CalendarableItem currentSelection, CalendarableItem newSelection) {
-		SelectionChangeEvent sce = new SelectionChangeEvent(currentSelection, newSelection);
-		for (Iterator listenersIter = selectionChangeListeners.iterator(); listenersIter.hasNext();) {
-			CalendarableSelectionChangeListener listener = (CalendarableSelectionChangeListener) listenersIter.next();
-			listener.selectionChanged(sce);
-		}
-	}
-	
-	/**
-	 * Adds the listener to the collection of listeners who will
-	 * be notified when the receiver's selection changes, by sending
-	 * it one of the messages defined in the <code>CalendarableSelectionChangeListener</code>
-	 * interface.
-	 * <p>
-	 * <code>selectionChanged</code> is called when the selection changes.
-	 * </p>
-	 *
-	 * @param listener the listener which should be notified
-	 *
-	 * @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>
-	 * </ul>
-	 *
-	 * @see CalendarableSelectionChangeListener
-	 * @see #removeSelectionChangeListener
-	 * @see SelectionChangeEvent
-	 */
-	public void addSelectionChangeListener(CalendarableSelectionChangeListener l) {
-		checkWidget();
-		if (l == null) {
-			throw new IllegalArgumentException("The argument cannot be null");
-		}
-		if (isDisposed()) {
-			throw new SWTException("Widget is disposed");
-		}
-		selectionChangeListeners.add(l);
-	}
-	
-	private boolean fireEvents(CalendarableItem calendarableItem, List handlers) {
-		CalendarableItemEvent e = new CalendarableItemEvent();
-		e.calendarableItem = calendarableItem;
-		for (Iterator iter = handlers.iterator(); iter.hasNext();) {
-			CalendarableItemEventHandler handler = (CalendarableItemEventHandler) iter.next();
-			handler.handleRequest(e);
-			if (!e.doit) {
-				break;
-			}
-		}
-		for (Iterator i = handlers.iterator(); i.hasNext();) {
-			CalendarableItemEventHandler h = (CalendarableItemEventHandler) i.next();
-			h.requestHandled(e);
-			if (!e.doit) {
-				break;
-			}
-		}
-		return e.doit;
-	}
-	
-	private List editHandlers = new ArrayList();
-	
-	/**
-	 * Fire the itemEdit event.
-	 * 
-	 * @param toEdit The CalendarableItem to edit.
-	 * @return true if the object represented by the CalendarableItem was changed; false otherwise.
-	 */
-	public boolean fireEdit(CalendarableItem toEdit) {
-		checkWidget();
-		CalendarableItemEvent e = new CalendarableItemEvent();
-		e.calendarableItem = toEdit;
-		boolean changed = fireEvents(e, editHandlers);
-		if (changed) {
-			// TODO: only refresh the days that are necessary
-	        refresh();
-		}
-		return changed;
-	}
-	
-	/**
-	 * Adds the handler to the collection of handlers who will hand editing of
-	 * calendarable events, by sending it one of the messages defined in the
-	 * <code>CalendarableItemInsertHandler</code> abstract class.
-	 * <p>
-	 * <code>itemInserted</code> is called when the CalendarableItem is
-	 * inserted.
-	 * </p>
-	 * 
-	 * @param handler
-	 *            the handler which should be notified
-	 * 
-	 * @exception IllegalArgumentException
-	 *                <ul>
-	 *                <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 *                </ul>
-	 * @exception SWTException
-	 *                <ul>
-	 *                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
-	 *                disposed</li>
-	 *                </ul>
-	 * 
-	 * @see CalendarableItemInsertHandler
-	 * @see #removeItemInsertHandler
-	 */
-	public void addItemEditHandler(CalendarableItemEventHandler handler) {		
-		checkWidget();
-		if (handler == null) {
-			throw new IllegalArgumentException("The argument cannot be null");
-		}
-		if (isDisposed()) {
-			throw new SWTException("Widget is disposed");
-		}
-		editHandlers.add(handler);
-	}
-	
-	/**
-	 * Removes the handler from the collection of handlers who will hand editing of
-	 * calendarable events, by sending it one of the messages defined in the
-	 * <code>CalendarableItemInsertHandler</code> abstract class.
-	 * <p>
-	 * <code>itemInserted</code> is called when the CalendarableItem is
-	 * inserted.
-	 * </p>
-	 * 
-	 * @param handler
-	 *            the handler which should be notified
-	 * 
-	 * @exception IllegalArgumentException
-	 *                <ul>
-	 *                <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 *                </ul>
-	 * @exception SWTException
-	 *                <ul>
-	 *                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
-	 *                disposed</li>
-	 *                </ul>
-	 * 
-	 * @see CalendarableItemInsertHandler
-	 * @see #removeItemInsertHandler
-	 */
-	public void removeItemEditHandler(CalendarableItemEventHandler handler) {		
-		checkWidget();
-		if (handler == null) {
-			throw new IllegalArgumentException("The argument cannot be null");
-		}
-		if (isDisposed()) {
-			throw new SWTException("Widget is disposed");
-		}
-		editHandlers.remove(handler);
-	}
-	
-	private List deleteHandlers = new ArrayList();
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#fireDelete(org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem)
-	 */
-	public boolean fireDelete(CalendarableItem item) {
-		checkWidget();
-		boolean result = fireEvents(item, deleteHandlers);
-		if (result) {
-			// TODO: Only refresh the affected days.
-			refresh();
-		}
-		return result;
-	}
-	
-	/**
-	 * Adds the handler to the collection of handlers who will
-	 * be notified when a CalendarableItem is deleted from the receiver, by sending
-	 * it one of the messages defined in the <code>CalendarableItemEventHandler</code>
-	 * abstract class.
-	 * <p>
-	 * <code>itemDeleted</code> is called when the CalendarableItem is deleted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemEventHandler
-	 * @see #removeDeleteItemHandler
-	 */
-	public void addItemDeleteHandler(CalendarableItemEventHandler handler) {
-		checkWidget();
-		if (handler == null) {
-			throw new IllegalArgumentException("The argument cannot be null");
-		}
-		if (isDisposed()) {
-			throw new SWTException("Widget is disposed");
-		}		
-		deleteHandlers.add(handler);
-	}
-	
-	/**
-	 * Removes the handler from the collection of handlers who will
-	 * be notified when a CalendarableItem is deleted from the receiver, by sending
-	 * it one of the messages defined in the <code>CalendarableItemEventHandler</code>
-	 * abstract class.
-	 * <p>
-	 * <code>itemDeleted</code> is called when the CalendarableItem is deleted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemEventHandler
-	 * @see #addDeleteItemHandler
-	 */
-	public void removeItemDeleteHandler(CalendarableItemEventHandler handler) {
-		checkWidget();
-		deleteHandlers.remove(handler);
-	}
-	
-	private List itemDisposeHandlers = new ArrayList();
-	
-	private boolean fireDisposeItemStrategy(CalendarableItem item) {
-		return fireEvents(item, itemDisposeHandlers);
-	}
-	
-	/**
-	 * Adds the handler to the collection of handler who will
-	 * be notified when a CalendarableItem's control is disposed, by sending
-	 * it one of the messages defined in the <code>CalendarableItemEventHandler</code>
-	 * abstract class.  This is normally used to remove any data bindings
-	 * that may be attached to the (now-unused) CalendarableItem.
-	 * <p>
-	 * <code>itemDeleted</code> is called when the CalendarableItem is deleted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemEventHandler
-	 * @see #removeCalendarableItemDisposeHandler
-	 */
-	public void addItemDisposeHandler(CalendarableItemEventHandler handler) {
-		checkWidget();
-		if (handler == null) {
-			throw new IllegalArgumentException("The argument cannot be null");
-		}
-		if (isDisposed()) {
-			throw new SWTException("Widget is disposed");
-		}		
-		itemDisposeHandlers.add(handler);
-	}
-	
-	/**
-	 * Removes the handler from the collection of handlers who will
-	 * be notified when a CalendarableItem is disposed, by sending
-	 * it one of the messages defined in the <code>CalendarableItemEventHandler</code>
-	 * abstract class.  This is normally used to remove any data bindings
-	 * that may be attached to the (now-unused) CalendarableItem.
-	 * <p>
-	 * <code>itemDeleted</code> is called when the CalendarableItem is deleted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemEventHandler
-	 * @see #removeDeleteListener
-	 */
-	public void removeItemDisposeHandler(CalendarableItemEventHandler handler) {
-		checkWidget();
-		itemDisposeHandlers.remove(handler);
-	}
-	
-	/**
-	 * Removes the listener from the collection of listeners who will
-	 * be notified when the receiver's selection changes, by sending
-	 * it one of the messages defined in the <code>CalendarableSelectionChangeListener</code>
-	 * interface.
-	 * <p>
-	 * <code>selectionChanged</code> is called when the selection changes.
-	 * </p>
-	 *
-	 * @param listener the listener which should no longer be notified
-	 *
-	 * @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>
-	 * </ul>
-	 *
-	 * @see CalendarableSelectionChangeListener
-	 * @see #addSelectionChangeListener
-	 * @see SelectionChangeEvent
-	 */
-	public void removeSelectionChangeListener(CalendarableSelectionChangeListener l) {
-		checkWidget();
-		if (l == null) {
-			throw new IllegalArgumentException("The argument cannot be null");
-		}
-		if (isDisposed()) {
-			throw new SWTException("Widget is disposed");
-		}
-		selectionChangeListeners.remove(l);
-	}
-
-	/**
-	 * @return Returns the defaultStartHour.
-	 */
-	public int getDefaultStartHour() {
-		return model.getDefaultStartHour();
-	}
-
-	/**
-	 * @param defaultStartHour The defaultStartHour to set.
-	 */
-	public void setDefaultStartHour(int defaultStartHour) {
-		checkWidget();
-		model.setDefaultStartHour(defaultStartHour);
-		updateVisibleRows();
-		layoutEventControls();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setDayEventCountProvider(org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventCountProvider)
-	 */
-	public void setEventCountProvider(EventCountProvider eventCountProvider) {
-		checkWidget();
-		model.setEventCountProvider(eventCountProvider);
-		updateVisibleRows();
-		Display.getCurrent().asyncExec(new Runnable() {
-			public void run() {
-				if (isDisposed()) return;
-				layoutEventControls();
-			}
-		});
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setEventContentProvider(org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventContentProvider)
-	 */
-	public void setEventContentProvider(EventContentProvider eventContentProvider) {
-		checkWidget();
-		model.setEventContentProvider(eventContentProvider);
-		updateVisibleRows();
-		Display.getCurrent().asyncExec(new Runnable() {
-			public void run() {
-				if (isDisposed()) return;
-				layoutEventControls();
-			}
-		});
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setStartDate(java.util.Date)
-	 */
-	public void setStartDate(Date startDate) {
-		checkWidget();
-		List removedDays = model.setStartDate(startDate);
-		computeEventRowsForNewDays();
-		if (daysHeader != null) {
-			refreshColumnHeaders(daysHeader.getColumns());
-		}
-		updateVisibleRows();
-		freeObsoleteCalendarableEventControls(removedDays);
-		if (compositeTable.getNumRowsVisible() > 0) {
-			layoutEventControls();
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#getStartDate()
-	 */
-	public Date getStartDate() {
-		checkWidget();
-		return model.getStartDate();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#refresh(java.util.Date)
-	 */
-	public void refresh(Date date) {
-		checkWidget();
-		computeLayoutFor(date);
-		layoutEventControls();
-	}
-
-	private void computeLayoutFor(Date date) {
-		List removedDays = model.refresh(date);
-		freeObsoleteCalendarableEventControls(removedDays);
-		updateVisibleRows();
-		computeEventRowsForDate(date);
-	}
-	
-	private boolean refreshing = false;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#refresh()
-	 */
-	public void refresh() {
-		checkWidget();
-		if (!refreshing) {
-			refreshing = true;
-			Display.getCurrent().asyncExec(new Runnable() {
-				public void run() {
-					if (isDisposed()) return;
-					Date dateToRefresh = getStartDate();
-					GregorianCalendar gc = new GregorianCalendar();
-					gc.setTime(dateToRefresh);
-					for (int i=0; i < getNumberOfDays(); ++i) {
-						computeLayoutFor(gc.getTime());
-						gc.add(Calendar.DATE, 1);
-					}
-					layoutEventControls();
-					refreshing = false;
-				}
-			});
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#getNumberOfDays()
-	 */
-	public int getNumberOfDays() {
-		checkWidget();
-		return model.getNumberOfDays();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#getNumberOfDivisionsInHour()
-	 */
-	public int getNumberOfDivisionsInHour() {
-		checkWidget();
-		return model.getNumberOfDivisionsInHour();
-	}
-	
-	// Display Refresh logic here ----------------------------------------------
-	
-	/*
-	 * There are four main coordinate systems the refresh algorithm has to
-	 * deal with:
-	 * 
-	 * 1) Rows starting from midnight (the way the DayModel computes the layout).  
-	 *    These are called Day Row coordinates.
-	 *    
-	 * 2) Rows starting from the top visible row, taking into account all-day 
-	 *    event rows.  These are called Viewport Row coordinates
-	 *    
-	 * 3) Pixel coordinates for each TimeSlot, relative to its parent TimeSlice
-	 *    (the CompositeTable row object) row.  This is relevant because these 
-	 *    are transformed into #4 in order to place CalendarableEventControls.
-	 *    
-	 * 4) Pixel coordinates relative to the top left (the origin) of the entire
-	 *    DayEditor control.
-	 */
-	
-	private int numberOfAllDayEventRows = 0;
-	Calendar calendar = new GregorianCalendar();
-
-	private int computeNumRowsInCollection(final int numberOfDivisionsInHour) {
-		numberOfAllDayEventRows = model.computeNumberOfAllDayEventRows();
-		return (DISPLAYED_HOURS-model.computeStartHour()) * numberOfDivisionsInHour+numberOfAllDayEventRows;
-	}
-	
-	private int convertViewportRowToDayRow(int row) {
-		int topRowOffset = compositeTable.getTopRow() - numberOfAllDayEventRows;
-		int startOfDayOffset = model.computeStartHour() * model.getNumberOfDivisionsInHour();
-		return row + topRowOffset + startOfDayOffset;
-	}
-
-	private int convertDayRowToViewportCoordinates(int row) {
-		row -= model.computeStartHour() * model.getNumberOfDivisionsInHour()
-			- numberOfAllDayEventRows;
-		return row;
-	}
-	
-	private Date computeDateTimeFromViewportCoordinates(Point viewportSelection, int visibleAllDayEventRows) {
-		Date startDate = model.calculateDate(getStartDate(), viewportSelection.x);
-		GregorianCalendar calendar = new GregorianCalendar();
-		calendar.setTime(startDate);
-		calendar.set(Calendar.HOUR_OF_DAY, 
-				model.computeHourFromRow(viewportSelection.y - visibleAllDayEventRows));
-		calendar.set(Calendar.MINUTE,
-				model.computeMinuteFromRow(viewportSelection.y - visibleAllDayEventRows));
-		calendar.set(Calendar.SECOND, 0);
-		calendar.set(Calendar.MILLISECOND, 0);
-		return calendar.getTime();
-	}
-
-	/**
-	 * @param calendarable
-	 * @param day
-	 * @return The row in DayRow coordinates
-	 */
-	private int computeRowForCalendarable(CalendarableItem calendarable, int day) {
-		int row = 0;
-		if (calendarable.isAllDayEvent()) {
-			CalendarableItem[] allDayEvents = model.getAllDayCalendarables(day);
-			for (int allDayEventRow = 0; allDayEventRow < allDayEvents.length; allDayEventRow++) {
-				if (allDayEvents[allDayEventRow] == calendarable) {
-					row = allDayEventRow - compositeTable.getTopRow();
-					break;
-				}
-			}
-		} else {
-			// Convert to viewport coordinates
-			Point upperLeft = calendarable.getUpperLeftPositionInDayRowCoordinates();
-			int topRowOffset = compositeTable.getTopRow() - numberOfAllDayEventRows;
-			int startOfDayOffset = model.computeStartHour() * model.getNumberOfDivisionsInHour();
-			row = upperLeft.y - topRowOffset - startOfDayOffset;
-			if (row < 0) {
-				row = 0;
-			}
-		}
-		return row;
-	}
-	
-	
-	/*
-	 * Update the number of rows that are displayed inside the CompositeTable control
-	 */
-	private void updateVisibleRows() {
-		compositeTable.setNumRowsInCollection(computeNumRowsInCollection(getNumberOfDivisionsInHour()));
-	}
-	
-	private void refreshRow(int currentObjectOffset, TimeSlice timeSlice) {
-		// Decrement currentObjectOffset for each all-day event line we need.
-		for (int allDayEventRow = 0; allDayEventRow < numberOfAllDayEventRows; ++allDayEventRow) {
-			--currentObjectOffset;
-		}
-		
-		if (currentObjectOffset < 0) {
-			timeSlice.setCurrentTime(null);
-		} else {
-			calendar.set(Calendar.HOUR_OF_DAY, 
-					model.computeHourFromRow(currentObjectOffset));
-			calendar.set(Calendar.MINUTE,
-					model.computeMinuteFromRow(currentObjectOffset));
-			timeSlice.setCurrentTime(calendar.getTime());
-		}
-	}
-
-	/**
-	 * (non-API) Method initializeColumnHeaders.  Called internally when the
-	 * column header text needs to be updated.
-	 * 
-	 * @param columns A LinkedList of CLabels representing the column objects
-	 */
-	protected void refreshColumnHeaders(LinkedList columns) {
-		Date startDate = getStartDate();
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(startDate);
-
-		SimpleDateFormat formatter = new SimpleDateFormat("EE, MMM d");
-		formatter.applyPattern(formatter.toLocalizedPattern());
-		
-		for (Iterator iter = columns.iterator(); iter.hasNext();) {
-			CLabel headerLabel = (CLabel) iter.next();
-			headerLabel.setText(formatter.format(gc.getTime()));
-			gc.add(Calendar.DATE, 1);
-		}
-	}
-	
-	private void freeObsoleteCalendarableEventControls(List removedCalendarables) {
-		for (Iterator removedCalendarablesIter = removedCalendarables.iterator(); removedCalendarablesIter.hasNext();) {
-			CalendarableItem toRemove = (CalendarableItem) removedCalendarablesIter.next();
-			if (selectedCalendarable == toRemove) {
-				setSelection(null);
-			}
-			freeCalendarableControl(toRemove);
-		}
-	}
-	
-	private void computeEventRowsForDate(Date date) {
-		GregorianCalendar targetDate = new GregorianCalendar();
-		targetDate.setTime(date);
-		GregorianCalendar target = new GregorianCalendar();
-		target.setTime(model.getStartDate());
-		EventLayoutComputer dayModel = new EventLayoutComputer(model.getNumberOfDivisionsInHour());
-		for (int dayOffset=0; dayOffset < model.getNumberOfDays(); ++dayOffset) {
-			if (target.get(Calendar.DATE) == targetDate.get(Calendar.DATE) &&
-				target.get(Calendar.MONTH) == targetDate.get(Calendar.MONTH) &&
-				target.get(Calendar.YEAR) == targetDate.get(Calendar.YEAR)) 
-			{
-				computeEventLayout(dayModel, dayOffset);
-				break;
-			}
-			target.add(Calendar.DATE, 1);
-		}
-	}
-	
-	private void computeEventRowsForNewDays() {
-		EventLayoutComputer dayModel = new EventLayoutComputer(model.getNumberOfDivisionsInHour());
-		for (int dayOffset=0; dayOffset < model.getNumberOfDays(); ++dayOffset) {
-			if (model.getNumberOfColumnsWithinDay(dayOffset) == -1) {
-				computeEventLayout(dayModel, dayOffset);
-			}
-		}
-	}
-
-	private void computeEventLayout(EventLayoutComputer dayModel, int dayOffset) {
-		List events = model.getCalendarableItems(dayOffset);
-		CalendarableItem[][] eventLayout = dayModel.computeEventLayout(events);
-		model.setEventLayout(dayOffset, eventLayout);
-	}
-
-	private void layoutEventControlsDeferred() {
-		if (getStartDate() == null) {
-			return;
-		}
-		refreshEventControlPositions.run();
-		Display.getCurrent().asyncExec(refreshEventControlPositions);
-	}
-	
-	private void layoutEventControls() {
-		if (getStartDate() == null) {
-			return;
-		}
-		refreshEventControlPositions.run();
-	}
-	
-	private Runnable refreshEventControlPositions = new Runnable() {
-		public void run() {
-			if (isDisposed()) return;
-			
-			Control[] gridRows = compositeTable.getRowControls();
-			
-			for (int day=0; day < model.getNumberOfDays(); ++day) {
-				int columnsWithinDay = model.getNumberOfColumnsWithinDay(day);
-				Point[] columnPositions = computeColumns(day, columnsWithinDay, gridRows);
-				
-				int allDayEventRow = 0;
-				
-				for (Iterator calendarablesIter = model.getCalendarableItems(day).iterator(); calendarablesIter.hasNext();) {
-					CalendarableItem calendarable = (CalendarableItem) calendarablesIter.next();
-					if (calendarable.isAllDayEvent()) {
-						layoutAllDayEvent(day, allDayEventRow, calendarable, gridRows);
-						++allDayEventRow;
-					} else {
-						layoutTimedEvent(day, columnPositions, calendarable, gridRows);
-					}
-				}
-			}
-		}
-	};
-	
-	protected Point[] computeColumns(int day, int numberOfColumns, Control[] gridRows) {
-		Point[] columns = new Point[numberOfColumns];
-		Rectangle timeSliceBounds = getTimeSliceBounds(day, compositeTable.getTopRow(), gridRows);
-		timeSliceBounds.x += TimeSlot.TIME_BAR_WIDTH + 1;
-		timeSliceBounds.width -= TimeSlot.TIME_BAR_WIDTH + 2;
-		
-		int baseWidth = timeSliceBounds.width / numberOfColumns;
-		int extraWidth = timeSliceBounds.width % numberOfColumns;
-		
-		int startingPosition = timeSliceBounds.x;
-		for (int column = 0; column < columns.length; column++) {
-			int columnStart = startingPosition;
-			int columnWidth = baseWidth;
-			if (extraWidth > 0) {
-				++columnWidth;
-				--extraWidth;
-			}
-			columns[column] = new Point(columnStart, columnWidth);
-			startingPosition += columnWidth;
-		}
-		return columns;
-	}
-	
-	
-
-	private void fillControlData(CalendarableItem calendarable, int clippingStyle) {
-		calendarable.getControl().setText(calendarable.getText());
-		calendarable.getControl().setToolTipText(calendarable.getToolTipText());
-		calendarable.getControl().setClipping(clippingStyle);
-	}
-
-	private DayEditorCalendarableItemControl getControl(CalendarableItem item) {
-		return (DayEditorCalendarableItemControl) item.getControl();
-	}
-	
-	private void layoutAllDayEvent(int day, int allDayEventRow, CalendarableItem calendarable, Control[] gridRows) {
-		if (eventRowIsVisible(allDayEventRow)) {
-			createCalendarableControl(calendarable);
-			fillControlData(calendarable, SWT.NULL);
-			
-			Rectangle timeSliceBounds = getTimeSliceBounds(day, allDayEventRow, gridRows);
-			int gutterWidth = TimeSlot.TIME_BAR_WIDTH + 1;
-			timeSliceBounds.x += gutterWidth;
-			timeSliceBounds.width -= gutterWidth;
-			getControl(calendarable).setBounds(timeSliceBounds);
-			getControl(calendarable).moveAbove(compositeTable);
-		} else {
-			freeCalendarableControl(calendarable);
-		}
-	}
-
-	private void layoutTimedEvent(int day, Point[] columnPositions, CalendarableItem calendarable, Control[] gridRows) {
-		int firstVisibleRow = model.computeStartHour() * model.getNumberOfDivisionsInHour();
-		
-		int scrolledRows = compositeTable.getTopRow() - numberOfAllDayEventRows;
-		int visibleAllDayEventRows = 0;
-		if (scrolledRows < 0) {
-			visibleAllDayEventRows = -1 * scrolledRows;
-			scrolledRows = 0;
-		}
-		firstVisibleRow += scrolledRows;
-		int lastVisibleRow = firstVisibleRow + compositeTable.getNumRowsVisible() - visibleAllDayEventRows - 1;
-		
-		int startRow = calendarable.getUpperLeftPositionInDayRowCoordinates().y;
-		int endRow = calendarable.getLowerRightPositionInDayRowCoordinates().y;
-		
-		if (timedEventIsVisible(firstVisibleRow, lastVisibleRow, startRow, endRow)) {
-			int clippingStyle = SWT.NULL;
-			
-			if (startRow < firstVisibleRow) {
-				startRow = firstVisibleRow;
-				clippingStyle |= SWT.TOP;
-			}
-			
-			if (endRow > lastVisibleRow) {
-				endRow = lastVisibleRow;
-				clippingStyle |= SWT.BOTTOM;
-			}
-			
-			startRow = convertDayRowToViewportCoordinates(startRow);
-			endRow = convertDayRowToViewportCoordinates(endRow);
-			
-			createCalendarableControl(calendarable);
-			fillControlData(calendarable, clippingStyle);
-			
-			Rectangle startRowBounds = getTimeSliceBounds(day, startRow, gridRows);
-			Rectangle endRowBounds = getTimeSliceBounds(day, endRow, gridRows);
-			
-			int leftmostColumn = calendarable.getUpperLeftPositionInDayRowCoordinates().x;
-			int rightmostColumn = calendarable.getLowerRightPositionInDayRowCoordinates().x;
-			
-			int left = columnPositions[leftmostColumn].x;
-			int top = startRowBounds.y + 1;
-			int width = columnPositions[rightmostColumn].x - columnPositions[leftmostColumn].x + columnPositions[rightmostColumn].y;
-			int height = endRowBounds.y - startRowBounds.y + endRowBounds.height - 1;
-			
-			Rectangle finalPosition = new Rectangle(left, top, width, height);
-			
-			getControl(calendarable).setBounds(finalPosition);
-			getControl(calendarable).moveAbove(compositeTable);
-		} else {
-			freeCalendarableControl(calendarable);
-		}
-	}
-
-	private boolean eventRowIsVisible(int eventRow) {
-		int topRow = compositeTable.getTopRow();
-		if (topRow <= eventRow) {
-			if (eventRow < compositeTable.getNumRowsVisible() - topRow) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	private boolean timedEventIsVisible(int firstVisibleRow, int lastVisibleRow, int startRow, int endRow) {
-		if (startRow < firstVisibleRow && endRow < firstVisibleRow)
-			return false;
-		
-		if (startRow > lastVisibleRow && endRow > lastVisibleRow)
-			return false;
-		
-		return true;
-	}
-
-	private void createCalendarableControl(CalendarableItem calendarable) {
-		if (calendarable.getControl() == null) {
-			calendarable.setControl(newCEC());
-			if (calendarable == selectedCalendarable) {
-				calendarable.getControl().setSelected(true);
-			}
-		}
-	}
-	
-	private Rectangle getTimeSliceBounds(int day, int eventRow, Control[] gridRows) {
-		int row = eventRow - compositeTable.getTopRow();
-		TimeSlice rowObject = (TimeSlice) gridRows[row];
-		Control slot = rowObject.getColumnControl(day);
-		return getBoundsInDayEditorCoordinates(slot);
-	}
-	
-	private void freeCalendarableControl(CalendarableItem calendarableItem) {
-		if (calendarableItem.getControl() != null) {
-			freeCEC(getControl(calendarableItem));
-			calendarableItem.setControl(null);
-			fireDisposeItemStrategy(calendarableItem);
-		}
-	}
-	
-	private Rectangle getBoundsInDayEditorCoordinates(Control slot) {
-		return Display.getCurrent().map(slot.getParent(), this, slot.getBounds());
-	}
-
-	// CalendarableItemControl construction/destruction here -----------------
-
-	MouseAdapter selectCompositeTableOnMouseDownAdapter = new MouseAdapter() {
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.events.MouseAdapter#mouseDown(org.eclipse.swt.events.MouseEvent)
-		 */
-		public void mouseDown(MouseEvent e) {
-			fireMouseDownEvent(e);
-			ICalendarableItemControl control = (ICalendarableItemControl) e.widget;
-			CalendarableItem aboutToSelect = control.getCalendarableItem();
-			setSelection(aboutToSelect);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.events.MouseAdapter#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
-		 */
-		public void mouseDoubleClick(MouseEvent e) {
-			fireMouseDoubleClickEvent(e);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.events.MouseAdapter#mouseUp(org.eclipse.swt.events.MouseEvent)
-		 */
-		public void mouseUp(MouseEvent e) {
-			fireMouseUpEvent(e);
-		}
-	};
-
-	private DayEditorCalendarableItemControl newCEC() {
-		if (recycledCalendarableEventControls.size() > 0) {
-			DayEditorCalendarableItemControl result = (DayEditorCalendarableItemControl) recycledCalendarableEventControls.remove(0);
-			result.setVisible(true);
-			return result;
-		}
-		DayEditorCalendarableItemControl dayEditorCalendarableItemControl = new DayEditorCalendarableItemControl(this, SWT.NULL);
-		if (menu != null) {
-			dayEditorCalendarableItemControl.setMenu(menu);
-		}
-		dayEditorCalendarableItemControl.addMouseListener(selectCompositeTableOnMouseDownAdapter);
-		return dayEditorCalendarableItemControl;
-	}
-	
-	private void freeCEC(DayEditorCalendarableItemControl control) {
-		control.setSelected(false);
-		control.setCalendarableItem(null);
-		control.setVisible(false);
-		recycledCalendarableEventControls.add(control);
-	}
-
-	private Color background = null;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setBackground(org.eclipse.swt.graphics.Color)
-	 */
-	public void setBackground(Color color) {
-		checkWidget();
-		super.setBackground(color);
-		this.background = color;
-		if (compositeTable != null) {
-			compositeTable.setBackground(color);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Composite#setFocus()
-	 */
-	public boolean setFocus() {
-		checkWidget();
-		if (!compositeTable.setFocus()) {
-			return super.setFocus();
-		}
-		return true;
-	}
-
-} // @jve:decl-index=0:visual-constraint="10,10"
-
-
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditorSelection.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditorSelection.java
deleted file mode 100644
index db4c781..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditorSelection.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.day;
-
-import java.util.Date;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-
-/**
- * Class DayEditorSelection.  Represents the current selection in a DayEditor
- * control.
- * 
- * @since 3.3
- */
-public class DayEditorSelection {
-
-	/**
-	 * Represents the selected CalendarableItem or null if none is selected.
-	 */
-	public CalendarableItem selectedCalendarable = null;
-	
-	/**
-	 * Sets the selectedCalendarable.
-	 * 
-	 * @param selectedCalendarable the CalendarableItem to select
-	 */
-	public void setSelectedCalendarable(CalendarableItem selectedCalendarable) {
-		this.selectedCalendarable = selectedCalendarable;
-	}
-
-	/**
-	 * Indicates if the current selection is in an all-day event row.
-	 */
-	public boolean allDay = false;
-	
-	/**
-	 * Sets the allDay flag.
-	 * 
-	 * @param allDay true if the selection is in an all-day event row or if
-	 * the selectedCalenderable represents an all-day event; false otherwise.
-	 */
-	public void setAllDay(boolean allDay) {
-		this.allDay = allDay;
-	}
-
-	/**
-	 * The date/time of the currently selected cell or null if selectedCalenderable != null
-	 */
-	public Date dateTime = null;
-	
-	/**
-	 * Sets the dateTime.
-	 * 
-	 * @param date the Date to set.
-	 */
-	public void setDateTime(Date date) {
-		this.dateTime = date;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditorTest.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditorTest.java
deleted file mode 100644
index 67915be..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/DayEditorTest.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.examples.databinding.compositetable.day;
-
-import java.text.DateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventContentProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventCountProvider;
-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.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- */
-public class DayEditorTest {
-
-	private Shell sShell = null; // @jve:decl-index=0:visual-constraint="10,10"
-	private Composite navBar = null;
-	private Button left = null;
-	private Button right = null;
-	private Label startDateLabel = null;
-	private DayEditor dayEditor = null;
-	
-	private static class Event {
-		public boolean allDay = false;
-		public Date startTime;
-		public Date endTime;
-		public String description;
-		
-		public Event(Date startTime, Date endTime, String description) {
-			this.startTime = startTime;
-			this.endTime = endTime;
-			this.description = description;
-		}
-
-		public Event(String description) {
-			this.allDay = true;
-			this.description = description;
-		}
-	}
-	
-	private Date time(int hour, int minutes) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(new Date());
-		gc.set(Calendar.HOUR_OF_DAY, hour);
-		gc.set(Calendar.MINUTE, minutes);
-		return gc.getTime();
-	}
-	
-	private Event[][] events = new Event[][] {
-			{new Event(time(5, 45), time(9, 45), "Stand-up meeting"),
-				new Event(time(11, 00), time(12, 15), "Meet with customer")},
-			{},
-			{},
-			{new Event("Nat. Conference"),
-				new Event(time(7, 50), time(9, 00), "Stand-up meeting"),
-				new Event(time(10, 15), time(12, 00), "Work on prototype")},
-			{new Event("Nat. Conference"),
-				new Event("Field trip to PC HQ"),
-				new Event(time(8, 30), time(9, 30), "Stand-up meeting"),
-				new Event(time(10, 00), time(13, 15), "Meet with customer"),
-				new Event(time(12, 45), time(14, 15), "RC1 due"),
-				new Event(time(13, 45), time(14, 15), "Way too much work"),
-				new Event(time(10, 00), time(13, 30), "Callisto meeting")},
-			{new Event("Nat. Conference")},
-			{new Event(time(8, 30), time(11, 30), "Stand-up meeting"),
-				new Event(time(10, 00), time(12, 15), "Meet with customer1"),
-				new Event(time(11, 45), time(12, 15), "Meet with customer2"),
-				new Event(time(11, 00), time(11, 15), "Meet with customer3")},
-			{},
-			{new Event(time(8, 50), time(9, 00), "Stand-up meeting"),
-				new Event(time(10, 15), time(12, 00), "Work on prototype")},
-			{new Event(time(8, 45), time(9, 45), "Stand-up meeting"),
-				new Event(time(11, 00), time(12, 15), "Meet with customer")},
-			{},
-			{},
-			{new Event(time(8, 12), time(9, 00), "Stand-up meeting"),
-				new Event(time(10, 15), time(12, 00), "Work on prototype")},
-			{},
-			{},
-			{new Event(time(8, 30), time(11, 30), "Stand-up meeting"),
-				new Event(time(10, 00), time(12, 15), "Meet with customer"),
-				new Event(time(11, 45), time(12, 15), "Meet with customer"),
-				new Event(time(11, 00), time(2, 45), "Meet with customer")},
-			{new Event(time(9, 50), time(9, 00), "Stand-up meeting"),
-				new Event(time(10, 15), time(12, 00), "Work on prototype")},
-			{},
-			{},
-			{},
-			{},
-			{},
-			{},
-			{},
-			{},
-			{},
-			{},
-	};
-
-	/**
-	 * This method initializes navBar
-	 */
-	private void createNavBar() {
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 3;
-		GridData gridData1 = new org.eclipse.swt.layout.GridData();
-		gridData1.horizontalAlignment = org.eclipse.swt.layout.GridData.CENTER;
-		gridData1.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
-		navBar = new Composite(sShell, SWT.NONE);
-		navBar.setLayoutData(gridData1);
-		navBar.setLayout(gridLayout);
-		left = new Button(navBar, SWT.LEFT | SWT.ARROW);
-		left.addSelectionListener(previous);
-		startDateLabel = new Label(navBar, SWT.NONE);
-		right = new Button(navBar, SWT.RIGHT | SWT.ARROW);
-		right.addSelectionListener(next);
-	}
-
-	/**
-	 * This method initializes dayEditor
-	 */
-	private void createDayEditor() {
-		GridData gridData = new org.eclipse.swt.layout.GridData();
-		gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
-		dayEditor = new DayEditor(sShell, SWT.NONE);
-		dayEditor.setTimeBreakdown(7, 4);
-		
-		dayEditor.setDefaultStartHour(8);
-		dayEditor.setEventCountProvider(eventCountProvider);
-		dayEditor.setEventContentProvider(eventContentProvider);
-		dayEditor.setLayoutData(gridData);
-		updateStartDate();
-	}
-
-	private Date startDate = new Date();
-
-	private void updateStartDate() {
-		startDateLabel.setText(DateFormat.getDateInstance(DateFormat.FULL).format(startDate));
-		startDateLabel.getParent().getParent().layout();
-		dayEditor.setStartDate(startDate);
-	}
-
-	private void mutateDayOfMonth(int offset) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(startDate);
-		gc.add(Calendar.DAY_OF_MONTH, offset);
-		startDate = gc.getTime();
-		updateStartDate();
-	}
-
-	private SelectionAdapter previous = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			mutateDayOfMonth(-1);
-		}
-	};
-	
-	private SelectionAdapter next = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			mutateDayOfMonth(1);
-		}
-	};
-	
-	private EventCountProvider eventCountProvider = new EventCountProvider() {
-		public int getNumberOfEventsInDay(Date day) {
-			return events[getOffset(day)].length;
-		}
-	};
-	
-	private EventContentProvider eventContentProvider = new EventContentProvider() {
-		public void refresh(Date day, CalendarableItem[] controls) {
-			int dayOffset = getOffset(day);
-			
-			for (int event=0; event < events[dayOffset].length; ++event) {
-				fillEvent(controls[event], events[dayOffset][event]);
-			}
-		}
-
-		private void fillEvent(CalendarableItem c, Event event) {
-			if (event.allDay) {
-				c.setAllDayEvent(true);
-			} else {
-				c.setStartTime(event.startTime);
-				c.setEndTime(event.endTime);
-			}
-			c.setData(event);
-			c.setText(event.description);
-		}
-	};
-
-	protected int getOffset(Date day) {
-		GregorianCalendar dateToFind = new GregorianCalendar();
-		dateToFind.setTime(day);
-		GregorianCalendar dateToTest = new GregorianCalendar();
-		dateToTest.setTime(new Date());
-		for (int i=0; i < events.length; ++i) {
-			if (dateToTest.get(Calendar.MONTH) == dateToFind.get(Calendar.MONTH) &&
-					dateToTest.get(Calendar.DAY_OF_MONTH) == dateToFind.get(Calendar.DAY_OF_MONTH) &&
-					dateToTest.get(Calendar.YEAR) == dateToFind.get(Calendar.YEAR)) 
-			{
-				return i;
-			}
-			dateToTest.add(Calendar.DAY_OF_MONTH, 1);
-		}
-		throw new IndexOutOfBoundsException(day + " does not have any data");
-	}
-
-	/**
-	 * This method initializes sShell
-	 */
-	private void createSShell() {
-		sShell = new Shell();
-		sShell.setText("Day Editor Test");
-		sShell.setLayout(new GridLayout());
-		createNavBar();
-		createDayEditor();
-		sShell.setSize(new org.eclipse.swt.graphics.Point(800, 592));
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = Display.getDefault();
-		DayEditorTest thisClass = new DayEditorTest();
-		thisClass.createSShell();
-		thisClass.sShell.open();
-		while (!thisClass.sShell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/NewEvent.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/NewEvent.java
deleted file mode 100644
index 133b8c1..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/NewEvent.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.day;
-
-import java.util.Date;
-
-/**
- * Encapsulates information about new events that have been added to the calendar.
- * 
- * @since 3.3
- */
-public class NewEvent {
-	
-	/**
-	 * The application's event object.  When an application returns a NewEvent,
-	 * normally it will create a domain model object that represents the event.
-	 * This field is for application use to pass that model object to listeners
-	 * who may have requested for the new event to be created.  Clients are free
-	 * to pass null if this is not applicable to them. 
-	 */
-	public final Object event;
-	
-	/**
-	 * The start date/time and end date/time of the new event.  A Date[2] 
-	 * containing the start date/time and the end date/time of the new event.
-	 * The IEventEditor will automatically refresh any days it is displaying
-	 * that overlap this date/time range. 
-	 */
-	public final Date[] startTimeEndTime;
-
-	/**
-	 * Construct a NewEvent.
-	 * 
-	 * @param event The application-defined event object or null if none.
-	 * @param startTimeEndTime A Date[2] containing the range of dates/times
-	 * 		this event spans.
-	 */
-	public NewEvent(final Object event, final Date[] startTimeEndTime) {
-		super();
-		this.event = event;
-		this.startTimeEndTime = startTimeEndTime;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/SelectionChangeEvent.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/SelectionChangeEvent.java
deleted file mode 100644
index a20a609..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/SelectionChangeEvent.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.jface.examples.databinding.compositetable.day;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-
-/**
- * A SelectionChangeEvent for selected Calendarables in a DayEditor.
- * 
- * @since 3.2
- */
-public class SelectionChangeEvent {
-	/**
-	 * The previously selected Calendarable or null if no selection
-	 */
-	public final CalendarableItem oldSelection;
-	
-	/**
-	 * The new selection or null if the selection is being cleared
-	 */
-	public final CalendarableItem newSelection;
-
-	/**
-	 * Constructor SelectionChangeEvent.  Construct a SelectionChangeEvent from
-	 * the Calendarable objects that represent the old and new selection.
-	 * 
-	 * @param oldSelection The previously selected Calendarable or null if no selection
-	 * @param newSelection The new selection or null if the selection is being cleared
-	 */
-	public SelectionChangeEvent(final CalendarableItem oldSelection, final CalendarableItem newSelection) {
-		this.oldSelection = oldSelection;
-		this.newSelection = newSelection;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/TODO.txt b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/TODO.txt
deleted file mode 100644
index 0a18eb6..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/TODO.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-Calendar binding tasks:
-=======================
-
- * Create a Hibernate mapping for a java.util.List Events that we can bind **DONE**
- * Add code to implement insert and deletion using the above listeners **DONE**
- * Change the new event dialog so that it inserts the event by adding it to
-   Hibernate's mapped collection, then calling flush() on the session. **DONE**
-   
- * Create a LazyInsertDeleteProvider that displays the new event dialog and 
-   initializes its values to the current date/time.
- * In the action that opens a dialog to create a new event, detect if an 
-   IEventEditor is open, and if it is,
-   call fireInsert to display the new event dialog and perform the insert 
-   operation.
- * When the user clicks OK in the new event dialog, detect if the calender is
-   open and if it is not open, open it.
- * Hook up UI gestures (double-click, insert keypress, delete keypress) to 
-   insert/delete events
-
-
-CalendarableItem(Control)? tasks:
- * Needs an event model (change listeners, etc)  **DONE**
- * Needs to update the control when the item is updated if the control is visible  **DONE**
- * Needs an in-place editor (DEFERRED)
- 
-DayEditor tasks:
- * Needs an event that is fired when a CalendarableItem is no longer visible 
-   (so bindings can be disposed)  **DONE**
- * Needs an addInsertHandler/removeInsertHandler, ...  **DONE**
- * Needs an addDeleteHandler/removeDeleteHandler, ...  **DONE**
- * Needs an addEditHandler/removeEditHandler, ...      **DONE**
-   
-DayEditor data binding tasks: **DONE**
-
-In-place editing tasks: (DEFERRED)
- * Show in-place editor when user clicks a CalendarableItemControl (or maybe use
-   an SWT Text to begin with)
- * Hook events on the editor and change the CalendarableItem's text property
-   as the CalendarableItemControl's text property changes
-   
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventDateTimeDiff.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventDateTimeDiff.java
deleted file mode 100644
index 0fd8f4e..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventDateTimeDiff.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.day.binding;
-
-import java.util.Date;
-
-import org.eclipse.jface.databinding.observable.IDiff;
-
-/**
- * When a multi-day calendarable event is edited, clients may need to know
- * about changes in the span of days covered.  This class encapsulates those
- * changes.
- * 
- * @since 3.3
- */
-public class EventDateTimeDiff implements IDiff {
-	private final Date oldStartDateTime;
-	private final Date oldEndDateTime;
-	private Date newStartDateTime;
-	private Date newEndDateTime;
-	
-	/**
-	 * @param oldStartDateTime
-	 * @param oldEndDateTime
-	 */
-	public EventDateTimeDiff(Date oldStartDateTime, Date oldEndDateTime) {
-		this.oldStartDateTime = oldStartDateTime;
-		this.oldEndDateTime = oldEndDateTime;
-	}
-
-	/**
-	 * @param oldStartDateTime
-	 * @param oldEndDateTime
-	 * @param newStartDateTime
-	 * @param newEndDateTime
-	 */
-	public EventDateTimeDiff(Date oldStartDateTime, Date oldEndDateTime, Date newStartDateTime, Date newEndDateTime) {
-		this.oldStartDateTime = oldStartDateTime;
-		this.oldEndDateTime = oldEndDateTime;
-		this.newStartDateTime = newStartDateTime;
-		this.newEndDateTime = newEndDateTime;
-	}
-
-	/**
-	 * @return Returns the newEndDateTime.
-	 */
-	public Date getNewEndDateTime() {
-		return newEndDateTime;
-	}
-
-	/**
-	 * @param newEndDateTime The newEndDateTime to set.
-	 */
-	public void setNewEndDateTime(Date newEndDateTime) {
-		this.newEndDateTime = newEndDateTime;
-	}
-
-	/**
-	 * @return Returns the newStartDateTime.
-	 */
-	public Date getNewStartDateTime() {
-		return newStartDateTime;
-	}
-
-	/**
-	 * @param newStartDateTime The newStartDateTime to set.
-	 */
-	public void setNewStartDateTime(Date newStartDateTime) {
-		this.newStartDateTime = newStartDateTime;
-	}
-
-	/**
-	 * @return Returns the oldEndDateTime.
-	 */
-	public Date getOldEndDateTime() {
-		return oldEndDateTime;
-	}
-
-	/**
-	 * @return Returns the oldStartDateTime.
-	 */
-	public Date getOldStartDateTime() {
-		return oldStartDateTime;
-	}
-
-	/**
-	 * @param startDateTime
-	 * @param endDateTime
-	 */
-	public void setNewDateTimes(Date startDateTime, Date endDateTime) {
-		setNewStartDateTime(startDateTime);
-		setNewEndDateTime(endDateTime);
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorBindingDescription.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorBindingDescription.java
deleted file mode 100644
index 001394d..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorBindingDescription.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.day.binding;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-
-/**
- * A binding description for an IEventEditor control.
- * 
- * @since 3.3
- */
-public class EventEditorBindingDescription {
-
-	/**
-	 * The IEventEditor to bind
-	 */
-	public final IEventEditor editor;
-	/**
-	 * A data binding context for binding CalendarableItems
-	 */
-	public final DataBindingContext dbc;
-	/**
-	 * The name of the model-side start time property
-	 */
-	public final String startTimePropertyName;
-	/**
-	 * The name of the model-side end time property
-	 */
-	public final String endTimePropertyName;
-	/**
-	 * The name of the model-side text property
-	 */
-	public final String textPropertyName;
-	/**
-	 * The name of the model-side tool tip text property
-	 */
-	public final String toolTipTextPropertyName;
-	/**
-	 * The name of the model-side image property
-	 */
-	public final String imagePropertyName;
-	/**
-	 * The name of the all-day event flag property
-	 */
-	public final String allDayEventPropertyName;
-	
-	/**
-	 * Construct a binding description for a particular IEventEditor
-	 * 
-	 * @param editor The IEventEditor to bind
-	 * @param dbc A data binding context for binding CalendarableItems
-	 * @param startTimePropertyName The name of the model-side start time property
-	 * @param endTimePropertyName The name of the model-side end time property
-	 * @param allDayEventPropertyName The name of the all-day event flag property
-	 * @param textPropertyName The name of the model-side text property
-	 * @param toolTipTextPropertyName The name of the model-side tool tip text property
-	 * @param imagePropertyName The name of the model-side image property
-	 */
-	public EventEditorBindingDescription(final IEventEditor editor, final DataBindingContext dbc, final String startTimePropertyName, final String endTimePropertyName, String allDayEventPropertyName, final String textPropertyName, final String toolTipTextPropertyName, final String imagePropertyName) {
-		this.editor = editor;
-		this.dbc = dbc;
-		this.startTimePropertyName = startTimePropertyName;
-		this.endTimePropertyName = endTimePropertyName;
-		this.allDayEventPropertyName = allDayEventPropertyName;
-		this.textPropertyName = textPropertyName;
-		this.toolTipTextPropertyName = toolTipTextPropertyName;
-		this.imagePropertyName = imagePropertyName;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorObservableLazyDataRequestor.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorObservableLazyDataRequestor.java
deleted file mode 100644
index bab3013..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorObservableLazyDataRequestor.java
+++ /dev/null
@@ -1,634 +0,0 @@
-/******************************************************************************* 
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.day.binding;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.eclipse.jface.databinding.observable.AbstractObservable;
-import org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEvent;
-import org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler;
-import org.eclipse.jface.examples.databinding.compositetable.day.CalendarableSelectionChangeListener;
-import org.eclipse.jface.examples.databinding.compositetable.day.NewEvent;
-import org.eclipse.jface.examples.databinding.compositetable.day.SelectionChangeEvent;
-import org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl;
-import org.eclipse.jface.examples.databinding.compositetable.reflect.ReflectedProperty;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventContentProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventCountProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor;
-import org.eclipse.jface.internal.databinding.provisional.BindSpec;
-import org.eclipse.jface.internal.databinding.provisional.Binding;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyDeleteEvent;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertEvent;
-import org.eclipse.swt.SWT;
-
-/**
- * An Observable for IEventEditor objects.
- * 
- * @since 3.2
- */
-public class EventEditorObservableLazyDataRequestor extends AbstractObservable implements ILazyDataRequestor {
-
-	private IEventEditor editor;
-	private MultiDayEventCalendar multiDayEventCalendar = new MultiDayEventCalendar();
-	protected int modelSize = 0;
-	
-	private DataBindingContext dbc;
-	private String startTimePropertyName;	// Required; rest are optional
-	private String endTimePropertyName = null;
-	private String textPropertyName = null;
-	private String toolTipTextPropertyName = null;
-	private String imagePropertyName = null;
-	private String allDayEventPropertyName = null;
-	
-	private class EventToCalendarableItem {
-		/**
-		 * a in the pair (a, b)
-		 */
-		public Object event;
-
-		/**
-		 * b in the pair (a, b)
-		 */
-		public CalendarableItem item;
-
-		/**
-		 * Construct a Pair(a, b)
-		 * 
-		 * @param a a in the pair (a, b)
-		 * @param b b in the pair (a, b)
-		 */
-		public EventToCalendarableItem(Object a, CalendarableItem  b) {
-			this.event = a;
-			this.item = b;
-		}
-
-		/* (non-Javadoc)
-		 * @see java.lang.Object#equals(java.lang.Object)
-		 */
-		public boolean equals(Object obj) {
-			if (obj.getClass() != EventToCalendarableItem.class) {
-				return false;
-			}
-			EventToCalendarableItem other = (EventToCalendarableItem) obj;
-			return event.equals(other.event) && item.equals(other.item);
-		}
-
-		/* (non-Javadoc)
-		 * @see java.lang.Object#hashCode()
-		 */
-		public int hashCode() {
-			return event.hashCode() + item.hashCode();
-		}
-	}
-	
-	
-	private class MultiDayEventCalendar {
-		private Map daysToEventsMap;
-		private List eventsList;
-		
-		public MultiDayEventCalendar() {
-			flush();
-		}
-		
-		public void flush() {
-			daysToEventsMap = new TreeMap();
-			eventsList = new LinkedList();
-			for (int i=0; i < modelSize; ++i) {
-				Object event = getModelElementAt(i);
-				add(event);
-			}
-		}
-		
-		public void add(Object event) {
-			eventsList.add(event);
-			addMultiDayEventToMap(event);
-		}
-
-		private void addMultiDayEventToMap(Object event) {
-			Date beginningDate = getBeginningDate(event);
-			Date endingDate = getEndingDate(event);
-			for (Date currentDate = beginningDate; 
-				currentDate.before(endingDate); 
-				currentDate = nextDay(currentDate)) 
-			{
-				addEventToMap(currentDate, event);
-			}
-		}
-
-		private void addEventToMap(Object date, Object event) {
-			List events = (List) daysToEventsMap.get(date);
-			if (events == null) {
-				events = new LinkedList();
-				daysToEventsMap.put(date, events);
-			}
-			EventToCalendarableItem eventToCalenderable = new EventToCalendarableItem(event, null);
-			events.add(eventToCalenderable);
-			daysToEventsMap.put(date, events);
-		}
-		
-		public Object remove(int position) {
-			Object toRemove = eventsList.remove(position);
-			Date beginningDate = getBeginningDate(toRemove);
-			Date endingDate = getEndingDate(toRemove);
-			for (Date currentDate = beginningDate; 
-				currentDate.before(endingDate); 
-				currentDate = nextDay(currentDate)) 
-			{
-				removeEventFromMap(currentDate, toRemove);
-			}
-			return toRemove;
-		}
-		
-		private void removeEventFromMap(Date date, Object event) {
-			List events = (List) daysToEventsMap.get(date);
-			if (events == null) {
-				// TODO: Log warning here?
-				return;
-			}
-			for (Iterator eventsIter = events.iterator(); eventsIter.hasNext();) {
-				EventToCalendarableItem eventToCalendarable = (EventToCalendarableItem) eventsIter.next();
-				if (eventToCalendarable.event.equals(event)) {
-					eventsIter.remove();
-					break;
-				}
-			}
-			events.remove(event);
-			if (events.size() < 1) {
-				daysToEventsMap.remove(date);
-			}
-		}
-		
-		public void update(EventDateTimeDiff diff, Object event) {
-			// Remove the event in the old position
-			Date oldStartDateTime = setToStartOfDay(diff.getOldStartDateTime());
-			Date oldEndDateTime = incrementDay(setToStartOfDay(diff.getOldEndDateTime()), 1);
-			for (Date currentDate = oldStartDateTime; 
-				currentDate.before(oldEndDateTime); 
-				currentDate = nextDay(currentDate)) 
-			{
-				removeEventFromMap(currentDate, event);
-			}
-			addMultiDayEventToMap(event);
-//			add(event);	Can't do this because it adds dupes to the eventsList
-		}
-
-		private List get(Date date) {
-			date = setToStartOfDay(date);
-			return (List) daysToEventsMap.get(date);
-		}
-		
-		public int indexOf(Object event) {
-			return eventsList.indexOf(event);
-		}
-		
-		public void setCalendarableSelection(Object event, boolean selected) {
-			Date beginningDate = getBeginningDate(event);
-			Date endingDate = getEndingDate(event);
-			
-			for (Date currentDate = beginningDate; 
-				currentDate.before(endingDate); 
-				currentDate = nextDay(currentDate)) 
-			{
-				List events = (List) daysToEventsMap.get(currentDate);
-				
-				if (events == null) {	// If we just deleted this event, return
-					return;
-				}
-				
-				for (Iterator eventsIter = events.iterator(); eventsIter.hasNext();) {
-					EventToCalendarableItem eventToCalendarable = (EventToCalendarableItem) eventsIter.next();
-					if (eventToCalendarable.event.equals(event)) {
-						if (eventToCalendarable.item != null) {
-							ICalendarableItemControl control = eventToCalendarable.item.getControl();
-							if (control != null) {
-								control.setSelected(selected);
-							}
-						}
-						break;
-					}
-				}
-			}
-		}
-		
-		public int getNumberOfEventsInDay(Date day) {
-			List dataForDate = multiDayEventCalendar.get(day);
-			if (dataForDate == null) {
-				return 0;
-			}
-			return dataForDate.size();
-		}
-
-		public void refresh(Date day, CalendarableItem[] items) {
-			List dataForDate = multiDayEventCalendar.get(day);
-			if (dataForDate == null) {
-				return;
-			}
-			
-			Iterator sourceEventIter = dataForDate.iterator();
-			for (int itemIndex = 0; itemIndex < items.length; itemIndex++) {
-				EventToCalendarableItem sourceEventPair = (EventToCalendarableItem) sourceEventIter.next();
-				sourceEventPair.item = items[itemIndex];
-				Object sourceEvent = sourceEventPair.event;
-				Date startDate = getBeginningDate(sourceEvent);
-				Date endDate = getEndingTime(sourceEvent);
-				int dayWithinEvent = differenceInDays(day, startDate);
-				int numberOfDaysInEvent = differenceInDays(endDate, startDate)+1;
-				bindCalendarableItemProperties(items[itemIndex], sourceEvent, dayWithinEvent, numberOfDaysInEvent);
-			}
-		}
-		
-		/**
-		 * Returns 11:59:999 PM of the ending date of the passed event.
-		 * 
-		 * @param it The event
-		 * @return The ending of the last day
-		 */
-		protected Date getEndingDate(Object it) {
-			ReflectedProperty property = new ReflectedProperty(it, endTimePropertyName);
-			Date endingDate = (Date) property.get();
-			Date endOfEndingDate = setToEndOfDay(endingDate);
-			return endOfEndingDate;
-		}
-
-		private int differenceInDays(Date date, Date daysToSubtract) {
-			long difference = date.getTime() - daysToSubtract.getTime();
-			difference /= (1000*60*60*24);
-			return (int) difference;
-		}
-		
-	}
-	
-	/**
-	 * @param d
-	 */
-	public EventEditorObservableLazyDataRequestor(EventEditorBindingDescription d) {
-		super();
-		this.editor = d.editor;
-		this.dbc = d.dbc;
-		if (d.startTimePropertyName == null) {
-			throw new IllegalArgumentException("Start time property description cannot be null");
-		}
-		this.startTimePropertyName = d.startTimePropertyName;
-		this.endTimePropertyName = d.endTimePropertyName;
-		this.allDayEventPropertyName = d.allDayEventPropertyName;
-		this.textPropertyName = d.textPropertyName;
-		this.toolTipTextPropertyName = d.toolTipTextPropertyName;
-		this.imagePropertyName = d.imagePropertyName;
-		
-		editor.setEventCountProvider(eventCountProvider);
-		editor.setEventContentProvider(eventContentProvider);
-		editor.addItemDisposeHandler(itemDisposeHandler);
-		editor.addItemInsertHandler(insertHandler);
-		editor.addItemDeleteHandler(deleteHandler);
-		editor.addItemEditHandler(editHandler);
-		editor.addSelectionChangeListener(selectionListener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.AbstractObservable#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		if (editor == null) {
-			return;
-		}
-		editor.removeItemInsertHandler(insertHandler);
-		editor.removeItemDeleteHandler(deleteHandler);
-		editor.removeItemDisposeHandler(itemDisposeHandler);
-		editor.removeItemEditHandler(editHandler);
-		editor.setEventCountProvider(null);
-		editor.setEventContentProvider(null);
-		editor = null;  // encourage the garbage collector to run... ;-)
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.IObservable#isStale()
-	 */
-	public boolean isStale() {
-		return false;
-	}
-	
-	private List elementProviders = new ArrayList();
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#addElementProvider(org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider)
-	 */
-	public void addElementProvider(ILazyListElementProvider p) {
-		elementProviders.add(p);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#removeElementProvider(org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider)
-	 */
-	public void removeElementProvider(ILazyListElementProvider p) {
-		elementProviders.remove(p);
-	}
-
-	private Object getModelElementAt(int index) {
-		for (Iterator epIter = elementProviders.iterator(); epIter.hasNext();) {
-			ILazyListElementProvider p = (ILazyListElementProvider) epIter.next();
-			Object result = p.get(index);
-			if (result != null) {
-				return result;
-			}
-		}
-		throw new IndexOutOfBoundsException("Request for a nonexistent element");
-	}
-	
-	private List insertDeleteProviders = new ArrayList();
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#addInsertDeleteProvider(org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider)
-	 */
-	public void addInsertDeleteProvider(LazyInsertDeleteProvider p) {
-		insertDeleteProviders.add(p);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#removeInsertDeleteProvider(org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider)
-	 */
-	public void removeInsertDeleteProvider(LazyInsertDeleteProvider p) {
-		insertDeleteProviders.remove(p);
-	}
-
-	private NewObject fireInsert(CalendarableItem initializationData) {
-		for (Iterator iter = insertDeleteProviders.iterator(); iter.hasNext();) {
-			LazyInsertDeleteProvider p = (LazyInsertDeleteProvider) iter.next();
-			NewObject result = p.insertElementAt(new LazyInsertEvent(0, initializationData));
-			if (result != null) {
-				return result;
-			}
-		}
-		return null;
-	}
-	
-	private boolean fireDelete(int position) {
-		for (Iterator iter = insertDeleteProviders.iterator(); iter.hasNext();) {
-			LazyInsertDeleteProvider p = (LazyInsertDeleteProvider) iter.next();
-			LazyDeleteEvent e = new LazyDeleteEvent(position);
-			boolean result = p.canDeleteElementAt(e);
-			if (result) {
-				p.deleteElementAt(e);
-				return true;
-			}
-		}
-		return false;
-	}
-		
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#setSize(int)
-	 */
-	public void setSize(int size) {
-		this.modelSize = size;
-		multiDayEventCalendar.flush();
-		editor.refresh();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#add(int, java.lang.Object)
-	 */
-	public void add(int position, Object element) {
-		multiDayEventCalendar.add(element);
-		modelSize++;
-		editor.refresh();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#remove(int)
-	 */
-	public void remove(int position) {
-		multiDayEventCalendar.remove(position);
-		modelSize--;
-		editor.refresh();
-	}
-	
-	// Utility methods here ---------------------------------------------------
-	
-    protected Date incrementDay(Date initialDate, int increment) {
-    	GregorianCalendar gc = new GregorianCalendar();
-    	gc.setTime(initialDate);
-    	gc.add(Calendar.DATE, increment);
-    	return gc.getTime();
-    }
-    
-    protected Date nextDay(Date initialDate) {
-    	return incrementDay(initialDate, 1);
-    }
-    
-	protected static Date setToStartOfDay(Date rawDate) {
-		GregorianCalendar gc = new GregorianCalendar();
-    	gc.setTime(rawDate);
-    	gc.set(Calendar.HOUR_OF_DAY, 0);
-    	gc.set(Calendar.MINUTE, 0);
-    	gc.set(Calendar.SECOND, 0);
-    	gc.set(Calendar.MILLISECOND, 0);
-    	return gc.getTime();
-	}
-
-	/**
-	 * Returns 12 AM of the beginning date of the passed event.
-	 * 
-	 * @param it The event
-	 * @return The beginning of the start day.
-	 */
-	protected Date getBeginningDate(Object it) {
-		ReflectedProperty property = new ReflectedProperty(it, startTimePropertyName);
-		Date date = setToStartOfDay((Date) property.get());
-		return date;
-	}
-	
-	protected static Date setToEndOfDay(Date date) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(date);
-		gc.set(Calendar.HOUR_OF_DAY, 23);
-		gc.set(Calendar.MINUTE, 59);
-		gc.set(Calendar.SECOND, 59);
-		gc.set(Calendar.MILLISECOND, 999);
-		Date time = gc.getTime();
-		return time;
-	}
-	
-	private Date getBeginningTime(Object it) {
-		ReflectedProperty property = new ReflectedProperty(it, startTimePropertyName);
-		return ((Date) property.get());
-	}
-		
-	private Date getEndingTime(Object it) {
-		if (endTimePropertyName == null) {
-			return getBeginningTime(it);
-		}
-		ReflectedProperty property = new ReflectedProperty(it, endTimePropertyName);
-		return (Date)property.get();
-	}
-	
-	// Event handlers here ----------------------------------------------------
-
-	protected void bindCalendarableItemProperties(
-			CalendarableItem item, 
-			Object sourceElement,
-			int eventPosition, 
-			int eventLength) {
-
-		// Optional bindings first...
-		if (allDayEventPropertyName != null) {
-			bindCalendarableItem(
-					item, CalendarableItem.PROP_ALL_DAY_EVENT, 
-					sourceElement, allDayEventPropertyName, null);
-		}
-		if (textPropertyName != null) {
-			bindCalendarableItem(
-					item, CalendarableItem.PROP_TEXT, 
-					sourceElement, textPropertyName, null);
-		}
-		if (toolTipTextPropertyName != null) {
-			bindCalendarableItem(
-					item, CalendarableItem.PROP_TOOL_TIP_TEXT, 
-					sourceElement, toolTipTextPropertyName, null);
-		}
-		if (imagePropertyName != null) {
-			bindCalendarableItem(
-					item, CalendarableItem.PROP_IMAGE, 
-					sourceElement, imagePropertyName, null);
-		}
-		
-		// Now the standard bindings...
-		item.setContinued(SWT.NULL);
-		if (eventLength == 1) {
-			item.setDate(getBeginningDate(sourceElement));
-			item.setStartTime(getBeginningTime(sourceElement));
-			item.setEndTime(getEndingTime(sourceElement));
-		} else { // multiday event
-			if (eventPosition == 0) { // first day of event
-				Date day = getBeginningDate(sourceElement);
-				item.setDate(day);
-				item.setStartTime(getBeginningTime(sourceElement));
-				item.setEndTime(setToEndOfDay(day));
-				if (!item.isAllDayEvent())
-					item.setContinued(SWT.BOTTOM);
-			} else if (eventPosition == eventLength - 1) { // last day of event
-				Date beginningOfEndDay = setToStartOfDay(getEndingTime(sourceElement));
-				item.setDate(beginningOfEndDay);
-				item.setStartTime(beginningOfEndDay);
-				item.setEndTime(getEndingTime(sourceElement));
-				if (!item.isAllDayEvent())
-					item.setContinued(SWT.TOP);
-			} else { // in between first and last day of event
-				Date day = incrementDay(getBeginningDate(sourceElement), eventPosition);
-				Date startOfDay = setToStartOfDay(day);
-				item.setDate(startOfDay);
-				item.setStartTime(startOfDay);
-				item.setEndTime(setToEndOfDay(day));
-				if (!item.isAllDayEvent())
-					item.setContinued(SWT.TOP | SWT.BOTTOM);
-			}
-		}
-		item.setData(CalendarableItem.DATA_KEY, sourceElement);	
-	}
-	
-	private void bindCalendarableItem(CalendarableItem item, String itemPropertyName, Object sourceElement, String sourcePropertyName, BindSpec bindSpec) {
-		Binding binding = dbc.bind(new Property(item, itemPropertyName), 
-				new Property(sourceElement, sourcePropertyName), bindSpec);
-		List bindingList = (List) item.getData(CalendarableItem.BINDING_KEY);
-		if (bindingList == null) {
-			bindingList = new ArrayList();
-			item.setData(CalendarableItem.BINDING_KEY, bindingList);
-		}
-		bindingList.add(binding);
-	}
-
-	private CalendarableItemEventHandler itemDisposeHandler = new CalendarableItemEventHandler() {
-		public void handleRequest(CalendarableItemEvent e) {
-			List bindings = (List)e.calendarableItem.getData(CalendarableItem.BINDING_KEY);
-			if (bindings != null) {
-				for (Iterator bindingIter = bindings.iterator(); bindingIter.hasNext();) {
-					Binding binding = (Binding) bindingIter.next();
-					binding.dispose();
-				}
-			}
-		}
-	};
-	
-	private EventCountProvider eventCountProvider = new EventCountProvider() {
-		public int getNumberOfEventsInDay(Date day) {
-			return multiDayEventCalendar.getNumberOfEventsInDay(day);
-		}
-	};
-	
-	private EventContentProvider eventContentProvider = new EventContentProvider() {
-		public void refresh(Date day, CalendarableItem[] items) {
-			multiDayEventCalendar.refresh(day, items);
-		}
-	};
-	
-	private CalendarableItemEventHandler insertHandler = new CalendarableItemEventHandler() {
-		public void handleRequest(CalendarableItemEvent e) {
-			NewObject newObject = fireInsert(e.calendarableItem);
-			if (newObject == null) {
-				e.doit = false;
-				return;
-			}
-			multiDayEventCalendar.add(newObject.it);
-			Date firstDayOfEvent = getBeginningTime(newObject.it);
-			Date lastDayOfEvent = getEndingTime(newObject.it);
-			e.result = new NewEvent(newObject.it, new Date[] {firstDayOfEvent, lastDayOfEvent});
-		}
-	};
-
-	private CalendarableItemEventHandler deleteHandler = new CalendarableItemEventHandler() {
-		public void handleRequest(CalendarableItemEvent e) {
-			int objectToDelete = multiDayEventCalendar.indexOf(e.calendarableItem.getData(CalendarableItem.DATA_KEY));
-			if (!fireDelete(objectToDelete)) {
-				e.doit = false;
-				return;
-			}
-			multiDayEventCalendar.remove(objectToDelete);
-		}
-	};
-
-	private CalendarableItemEventHandler editHandler = new CalendarableItemEventHandler() {
-		public void requestHandled(CalendarableItemEvent e) {
-			if (e.result != null && e.doit) {
-				multiDayEventCalendar.update((EventDateTimeDiff) e.result, 
-						e.calendarableItem.getData(CalendarableItem.DATA_KEY));
-			}
-		}
-	};
-	
-	private CalendarableSelectionChangeListener selectionListener = new CalendarableSelectionChangeListener() {
-		public void selectionChanged(SelectionChangeEvent e) {
-			if (e.oldSelection != null) {
-				multiDayEventCalendar.setCalendarableSelection(e.oldSelection.getData(CalendarableItem.DATA_KEY), false);
-			}
-			if (e.newSelection != null) {
-				multiDayEventCalendar.setCalendarableSelection(e.newSelection.getData(CalendarableItem.DATA_KEY), true);
-			}
-		}
-	};
-
-}
-
-
-
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorObservableLazyDataRequestorFactory.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorObservableLazyDataRequestorFactory.java
deleted file mode 100644
index 238605e..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/EventEditorObservableLazyDataRequestorFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.day.binding;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.internal.databinding.provisional.factories.IObservableFactory;
-
-/**
- * An observable factory for EventEditorObservableLazyDataRequestors
- * 
- * @since 3.3
- */
-public class EventEditorObservableLazyDataRequestorFactory implements
-		IObservableFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.factories.IObservableFactory#createObservable(java.lang.Object)
-	 */
-	public IObservable createObservable(Object description) {
-		if (description instanceof EventEditorBindingDescription) {
-			return new EventEditorObservableLazyDataRequestor(
-					(EventEditorBindingDescription) description);
-		}
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/calendar-day-mode-binding.svg b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/calendar-day-mode-binding.svg
deleted file mode 100644
index 3d05a8a..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/binding/calendar-day-mode-binding.svg
+++ /dev/null
@@ -1,479 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://web.resource.org/cc/"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="744.09448819"
-   height="1052.3622047"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.43"
-   sodipodi:docbase="C:\tpc\ipartner\org.eclipse.jface.examples.databinding\src\org\eclipse\jface\examples\databinding\compositetable\day\binding"
-   sodipodi:docname="calendar-day-mode-binding.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow2Mend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Mend"
-       style="overflow:visible;">
-      <path
-         id="path2352"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(0.6) rotate(180) translate(-5,0)" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1.4"
-     inkscape:cx="277.67367"
-     inkscape:cy="509.61646"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showguides="false"
-     inkscape:window-width="805"
-     inkscape:window-height="768"
-     inkscape:window-x="32"
-     inkscape:window-y="60" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <rect
-       style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:0.7170344;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect2198"
-       width="94.916832"
-       height="26.928858"
-       x="245.04158"
-       y="65.326324" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="262.14285"
-       y="82.362183"
-       id="text1307"><tspan
-         sodipodi:role="line"
-         id="tspan1309"
-         x="262.14285"
-         y="82.362183">DayEditor</tspan></text>
-    <rect
-       style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:1.79743409;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect1323"
-       width="290"
-       height="55.384613"
-       x="153.57143"
-       y="117.88416" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="198.57143"
-       y="133.6479"
-       id="text1311"><tspan
-         sodipodi:role="line"
-         id="tspan1313"
-         x="198.57143"
-         y="133.6479">Count Provider</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="305.00003"
-       y="133.6479"
-       id="text1315"><tspan
-         sodipodi:role="line"
-         id="tspan1317"
-         x="305.00003"
-         y="133.6479">Content Provider</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:15.60923672px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="203.02376"
-       y="131.83124"
-       id="text1319"
-       transform="scale(0.805401,1.241618)"><tspan
-         sodipodi:role="line"
-         id="tspan1321"
-         x="203.02376"
-         y="131.83124">EventEditorObservableLazyDataRequestor</tspan></text>
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
-       d="M 286.69252,84.858276 L 248.11338,124.53072"
-       id="path2200"
-       inkscape:connector-type="polyline"
-       inkscape:connection-start="#text1307"
-       inkscape:connection-end="#text1311" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
-       d="M 299.72266,84.858276 L 350.1687,124.53072"
-       id="path2204"
-       inkscape:connector-type="polyline"
-       inkscape:connection-start="#text1307"
-       inkscape:connection-end="#text1315" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="463.57144"
-       y="153.79076"
-       id="text2397"><tspan
-         sodipodi:role="line"
-         id="tspan2399"
-         x="463.57144"
-         y="153.79076">(ILazyDataRequestor)</tspan></text>
-    <rect
-       style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:1.79743409;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect2401"
-       width="290"
-       height="55.384613"
-       x="152.85715"
-       y="203.9556" />
-    <text
-       xml:space="preserve"
-       style="font-size:15.60926533px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="364.43457"
-       y="191.83397"
-       id="text2411"
-       transform="scale(0.805401,1.241618)"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan2413"
-         x="364.43457"
-         y="191.83397">LazyListBinding</tspan></text>
-    <rect
-       style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:1.79743409;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect2415"
-       width="290"
-       height="55.384613"
-       x="150.71428"
-       y="293.2413" />
-    <text
-       xml:space="preserve"
-       style="font-size:15.60925674px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="367.98193"
-       y="263.28452"
-       id="text2425"
-       transform="scale(0.805401,1.241618)"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan2427"
-         x="367.98193"
-         y="263.28452">JavaBeanObservableList</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="542.28571"
-       y="227.36218"
-       id="text2433"
-       sodipodi:linespacing="100%"><tspan
-         sodipodi:role="line"
-         id="tspan2435"
-         x="542.28571"
-         y="227.36218">(ILazyListElementProvider)</tspan><tspan
-         sodipodi:role="line"
-         x="542.28571"
-         y="239.36218"
-         id="tspan2437"
-         style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans">(extends IObservableList)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="540.00293"
-       y="321.84406"
-       id="text2439"
-       sodipodi:linespacing="100%"><tspan
-         sodipodi:role="line"
-         x="540.00293"
-         y="321.84406"
-         id="tspan2443"
-         style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans">(ILazyListElementProvider)</tspan></text>
-    <rect
-       style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:1.79743409;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect2445"
-       width="290"
-       height="55.384613"
-       x="150.71428"
-       y="383.2413" />
-    <text
-       xml:space="preserve"
-       style="font-size:15.60926819px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="367.98218"
-       y="335.77084"
-       id="text2447"
-       transform="scale(0.805401,1.241618)"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan2449"
-         x="367.98218"
-         y="335.77084">java.util.List</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="230.14285"
-       y="253.93361"
-       id="text2453"><tspan
-         sodipodi:role="line"
-         id="tspan2455"
-         x="230.14285"
-         y="253.93361">(sorted list of events)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="229.21498"
-       y="342.7012"
-       id="text2457"><tspan
-         sodipodi:role="line"
-         id="tspan2459"
-         x="229.21498"
-         y="342.7012">(sorted list of events)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="229.35783"
-       y="433.41547"
-       id="text2461"><tspan
-         sodipodi:role="line"
-         id="tspan2463"
-         x="229.35783"
-         y="433.41547">(sorted list of events)</tspan></text>
-    <rect
-       style="fill:#e9e9ff;fill-opacity:0.59259261;stroke:#010070;stroke-width:1.90017402;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.20987657"
-       id="rect3361"
-       width="229.60211"
-       height="78.179375"
-       x="189.8418"
-       y="509.98679" />
-    <rect
-       style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:1.0479157;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect1352"
-       width="197.00496"
-       height="27.711285"
-       x="203.99753"
-       y="517.36371" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="212.14285"
-       y="536.21936"
-       id="text1348"><tspan
-         sodipodi:role="line"
-         id="tspan1350"
-         x="212.14285"
-         y="536.21936">5/1  5/1  5/1  5/3  5/6  5/6  6/1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="217.85715"
-       y="557.64795"
-       id="text1354"><tspan
-         sodipodi:role="line"
-         id="tspan1356"
-         x="217.85715"
-         y="557.64795">0      1    2     3      4     5     6</tspan></text>
-    <g
-       id="g1373"
-       transform="translate(5,579.6718)">
-      <rect
-         y="85.438545"
-         x="263.61118"
-         height="26.928858"
-         width="94.916832"
-         id="rect2399"
-         style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:0.7170344;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <text
-         id="text2401"
-         y="102.4744"
-         x="280.71246"
-         style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           y="102.4744"
-           x="280.71246"
-           id="tspan2403"
-           sodipodi:role="line">DayEditor</tspan></text>
-    </g>
-    <rect
-       style="fill:#e9e9ff;fill-opacity:0.59259261;stroke:#010070;stroke-width:4.54238749;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.20987657"
-       id="rect2405"
-       width="506.37619"
-       height="202.57057"
-       x="80.740479"
-       y="712.53442" />
-    <rect
-       style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:0.7170344;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect2253"
-       width="94.916832"
-       height="26.928858"
-       x="142.68445"
-       y="729.14099" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="143.5696"
-       y="746.28912"
-       id="text2408"><tspan
-         sodipodi:role="line"
-         id="tspan2410"
-         x="143.5696"
-         y="746.28912">Count Provider</tspan></text>
-    <rect
-       style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:0.76857412;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect2262"
-       width="109.05227"
-       height="26.928858"
-       x="390.47388"
-       y="727.99817" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="394.99823"
-       y="744.14624"
-       id="text2413"><tspan
-         sodipodi:role="line"
-         id="tspan2415"
-         x="394.99823"
-         y="744.14624">Content Provider</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:43.58663559px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:0.17901234;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="169.62706"
-       y="442.75912"
-       id="text2434"
-       transform="scale(0.52606,1.900923)"><tspan
-         sodipodi:role="line"
-         id="tspan2436"
-         x="169.62706"
-         y="442.75912">EventEditorObservableLazyDataRequestor</tspan></text>
-    <g
-       id="g2280"
-       transform="translate(13.28572,518.2433)">
-      <rect
-         y="266.04062"
-         x="249.68443"
-         height="26.928858"
-         width="94.916832"
-         id="rect2266"
-         style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:0.7170344;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <rect
-         y="269.89774"
-         x="253.39873"
-         height="26.928858"
-         width="94.916832"
-         id="rect2268"
-         style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:0.7170344;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <rect
-         y="274.04059"
-         x="258.25589"
-         height="26.928858"
-         width="94.916832"
-         id="rect2270"
-         style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:0.7170344;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <rect
-         y="278.18347"
-         x="263.25589"
-         height="26.928858"
-         width="94.916832"
-         id="rect2272"
-         style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:0.7170344;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <text
-         id="text2276"
-         y="294.21933"
-         x="270.57144"
-         style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           y="294.21933"
-           x="270.57144"
-           id="tspan2278"
-           sodipodi:role="line">Calendarable</tspan></text>
-    </g>
-    <g
-       id="g2294"
-       transform="translate(-42.85714,406.1004)">
-      <rect
-         y="459.61206"
-         x="317.54156"
-         height="26.928858"
-         width="94.916832"
-         id="rect2288"
-         style="fill:#e9e9ff;fill-opacity:1;stroke:#010070;stroke-width:0.7170344;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <text
-         id="text2290"
-         y="476.76013"
-         x="318.42673"
-         style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-         xml:space="preserve"><tspan
-           y="476.76013"
-           x="318.42673"
-           id="tspan2292"
-           sodipodi:role="line">Event (domain)</tspan></text>
-    </g>
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-opacity:1"
-       d="M 314.2974,865.35394 L 292.14287,826.31972"
-       id="path2299"
-       inkscape:connector-type="polyline"
-       inkscape:connection-start="#g2294" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-opacity:1"
-       d="M 319.71449,865.35394 L 312.85715,826.31972"
-       id="path2301"
-       inkscape:connector-type="polyline"
-       inkscape:connection-start="#g2294" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-opacity:1"
-       d="M 324.758,865.35394 L 332.14287,826.31972"
-       id="path2303"
-       inkscape:connector-type="polyline"
-       inkscape:connection-start="#g2294" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-opacity:1"
-       d="M 329.8015,865.35394 L 351.42858,826.31972"
-       id="path2305"
-       inkscape:connector-type="polyline"
-       inkscape:connection-start="#g2294" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-opacity:1"
-       d="M 288.20681,692.39775 L 197.95594,737.17192"
-       id="path2307"
-       inkscape:connector-type="polyline"
-       inkscape:connection-end="#text1311"
-       inkscape:connection-start="#g1373" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-opacity:1"
-       d="M 344.40894,692.39775 L 416.60783,727.61386"
-       id="path2309"
-       inkscape:connector-type="polyline"
-       inkscape:connection-end="#rect2262"
-       inkscape:connection-start="#g1373" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="238.50069"
-       y="582.84406"
-       id="text3357"><tspan
-         sodipodi:role="line"
-         id="tspan3359"
-         x="238.50069"
-         y="582.84406">(sorted list of events)</tspan></text>
-  </g>
-</svg>
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/DayEditorCalendarableItemControl.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/DayEditorCalendarableItemControl.java
deleted file mode 100644
index 373de70..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/DayEditorCalendarableItemControl.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.day.internal;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-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.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Represents a graphical item inside a multi-day event editor.
- * 
- * @since 3.2
- */
-public class DayEditorCalendarableItemControl extends Canvas implements ICalendarableItemControl  {
-
-	private static final int MARGIN = 3;
-	private Label label = null;
-	private Color BORDER_COLOR;
-	private Color SELECTED_BORDER_COLOR;
-	private Color BACKGROUND_COLOR;
-	private Color SELECTED_BACKGROUND_COLOR;
-
-   /**
-	 * 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 composite control 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>
-	 *    <li>ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass</li>
-	 * </ul>
-	 *
-	 * @see Widget#checkSubclass
-	 * @see Widget#getStyle
-	 */
-	public DayEditorCalendarableItemControl(Composite parent, int style) {
-		super(parent, style);
-		Display display = parent.getDisplay();
-
-		BACKGROUND_COLOR = new Color(display, lighten(saturate(display.getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT).getRGB(), .08f), .3f));
-		BORDER_COLOR = new Color(display, lighten(saturate(display.getSystemColor(SWT.COLOR_TITLE_BACKGROUND).getRGB(), .18f), .1f));
-		SELECTED_BACKGROUND_COLOR = display.getSystemColor(SWT.COLOR_WHITE);
-		SELECTED_BORDER_COLOR = new Color(display, saturate(BORDER_COLOR.getRGB(), .4f));
-
-		initialize();
-	}
-	
-	/**
-	 * Sets the color's saturation to the specified value.
-	 * 
-	 * @param color The RGB of the color
-	 * @param saturation the new saturation (between 0 and 1)
-	 * @return a Color that is saturated by the specified amount
-	 */
-	private RGB saturate(RGB color, float saturation) {
-		float[] hsb = color.getHSB();
-		return new RGB(hsb[0], saturation, hsb[2]);
-	}
-	
-	/**
-	 * @param color The RGB of the color
-	 * @param amount The amount to lighten as a percentage expresssed as a float between -1 and 1.
-	 * @return The new RGB that is lightened by the specified amount
-	 */
-	private RGB lighten(RGB color, float amount) {
-		float[] hsb = color.getHSB();
-		float b = hsb[2] + hsb[2] * amount;
-		if (b < 0) b=0;
-		if (b > 1) b=1;
-		return new RGB(hsb[0], hsb[1], b);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		BORDER_COLOR.dispose();
-		BACKGROUND_COLOR.dispose();
-		SELECTED_BORDER_COLOR.dispose();
-//		SELECTED_BACKGROUND_COLOR.dispose();
-	}
-
-	/**
-	 * Create the event control's layout
-	 */
-	private void initialize() {
-		setBackground(BACKGROUND_COLOR);
-        label = new Label(this, SWT.WRAP);
-        label.setText("Label");
-        label.setBackground(BACKGROUND_COLOR);
-        FillLayout fillLayout = new FillLayout();
-        fillLayout.marginHeight = MARGIN;
-        fillLayout.marginWidth = MARGIN;
-        setBackground(BORDER_COLOR);
-        setLayout(fillLayout);
-        addPaintListener(paintListener);
-        label.addMouseListener(labelMouseListener);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setMenu(org.eclipse.swt.widgets.Menu)
-	 */
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setMenu(org.eclipse.swt.widgets.Menu)
-	 */
-	public void setMenu(Menu menu) {
-		super.setMenu(menu);
-		label.setMenu(menu);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setText(java.lang.String)
-	 */
-	public void setText(String text) {
-		if (text == null) {
-			text = "";
-			Exception e = new Exception();
-			Policy.getLog().log(
-					new Status(IStatus.WARNING, Policy.JFACE, IStatus.ERROR,
-							"setText(null) not permitted--changing to empty string", e));
-		}
-		label.setText(text);
-	}
-		
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setImage(org.eclipse.swt.graphics.Image)
-	 */
-	public void setImage(Image image) {
-		label.setImage(image);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setToolTipText(java.lang.String)
-	 */
-	public void setToolTipText(String text) {
-		super.setToolTipText(text);
-		label.setToolTipText(text);
-	}
-
-	private int clipping;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setClipping(int)
-	 */
-	public void setClipping(int clipping) {
-		this.clipping = clipping;
-		redraw();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#getClipping()
-	 */
-	public int getClipping() {
-		return clipping;
-	}
-	
-	private int continued;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setContinued(int)
-	 */
-	public void setContinued(int continued) {
-		this.continued = continued;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#getContinued()
-	 */
-	public int getContinued() {
-		return continued;
-	}
-	
-	private PaintListener paintListener = new PaintListener() {
-		public void paintControl(PaintEvent e) {
-			Rectangle bounds = getBounds();
-			Color savedForeground = e.gc.getForeground();
-			Color savedBackground = e.gc.getBackground();
-			if ((continued & SWT.TOP) != 0 && (clipping & SWT.TOP) == 0) {
-				e.gc.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));
-				e.gc.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));
-			} else {
-				e.gc.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY));
-				e.gc.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY));
-			}
-			if ((clipping & SWT.TOP) != 0 || (continued & SWT.TOP) != 0) {
-				for (int arrow = MARGIN; arrow < bounds.width - 2*MARGIN; arrow += 2*MARGIN + 3) {
-					int[] arrowPoints = new int[] {arrow, MARGIN-1, arrow + MARGIN, 0, arrow + 2 * MARGIN, MARGIN-1};
-					e.gc.fillPolygon(arrowPoints);
-					e.gc.drawPolygon(arrowPoints);
-				}
-			}
-			if ((continued & SWT.BOTTOM) != 0 && (clipping & SWT.BOTTOM) == 0) {
-				e.gc.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));
-				e.gc.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));
-			} else {
-				e.gc.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY));
-				e.gc.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY));
-			}
-			if ((clipping & SWT.BOTTOM) != 0 || (continued & SWT.BOTTOM) != 0) {
-				int bottom = bounds.height-1;
-				int marginBottom = bounds.height - MARGIN;
-				for (int arrow = MARGIN; arrow < bounds.width - 2*MARGIN; arrow += 2*MARGIN + 3) {
-					int[] arrowPoints = new int[] {arrow, marginBottom, arrow + MARGIN, bottom, arrow + 2 * MARGIN, marginBottom};
-					e.gc.fillPolygon(arrowPoints);
-					e.gc.drawPolygon(arrowPoints);
-				}
-			}
-			e.gc.setForeground(savedForeground);
-			e.gc.setBackground(savedBackground);
-		}
-	};
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setSelected(boolean)
-	 */
-	public void setSelected(boolean selected) {
-		if (selected) {
-			setBackground(SELECTED_BORDER_COLOR);
-			label.setBackground(SELECTED_BACKGROUND_COLOR);
-		} else {
-			setBackground(BORDER_COLOR);
-			label.setBackground(BACKGROUND_COLOR);
-		}
-	}
-	
-	private List mouseListeners = new LinkedList();
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#addMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#addMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-	public void addMouseListener(MouseListener listener) {
-		super.addMouseListener(listener);
-		mouseListeners.add(listener);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#removeMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#removeMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-	public void removeMouseListener(MouseListener listener) {
-		super.removeMouseListener(listener);
-		mouseListeners.remove(listener);
-	}
-	
-	private MouseListener labelMouseListener = new MouseListener() {
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
-		 */
-		public void mouseDoubleClick(MouseEvent e) {
-			e.widget = DayEditorCalendarableItemControl.this;
-			for (Iterator listenerIter = mouseListeners.iterator(); listenerIter.hasNext();) {
-				MouseListener l = (MouseListener) listenerIter.next();
-				l.mouseDoubleClick(e);
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.events.MouseListener#mouseDown(org.eclipse.swt.events.MouseEvent)
-		 */
-		public void mouseDown(MouseEvent e) {
-			e.widget = DayEditorCalendarableItemControl.this;
-			for (Iterator listenerIter = mouseListeners.iterator(); listenerIter.hasNext();) {
-				MouseListener l = (MouseListener) listenerIter.next();
-				l.mouseDown(e);
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.events.MouseListener#mouseUp(org.eclipse.swt.events.MouseEvent)
-		 */
-		public void mouseUp(MouseEvent e) {
-			e.widget = DayEditorCalendarableItemControl.this;
-			for (Iterator listenerIter = mouseListeners.iterator(); listenerIter.hasNext();) {
-				MouseListener l = (MouseListener) listenerIter.next();
-				l.mouseUp(e);
-			}
-		}
-	};
-
-	private CalendarableItem calendarable;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setCalendarableItem(org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem)
-	 */
-	public void setCalendarableItem(CalendarableItem calendarable) {
-		this.calendarable = calendarable;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#getCalendarableItem()
-	 */
-	public CalendarableItem getCalendarableItem() {
-		return calendarable;
-	}
-
-} // @jve:decl-index=0:visual-constraint="10,10"
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/EventLayoutComputer.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/EventLayoutComputer.java
deleted file mode 100644
index 2f05101..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/EventLayoutComputer.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.examples.databinding.compositetable.day.internal;
-
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * Represents a model of how the events are laid out in a particular day
- * 
- * @since 3.2
- */
-public class EventLayoutComputer {
-	
-	private static final int START = 0;
-	private static final int END = 1;
-	private final int numberOfDivisionsInHour;
-	
-	/**
-	 * Construct a DayModel for an IEventEditor.
-	 * TODO: We could make numberOfDivisionsInHour a parameter to getEventLayout()
-	 * 
-	 * @param numberOfDivisionsInHour 
-	 */
-	public EventLayoutComputer(int numberOfDivisionsInHour) {
-		this.numberOfDivisionsInHour = numberOfDivisionsInHour;
-	}
-	
-	private int computeBaseSlot(GregorianCalendar gc) {
-		return gc.get(Calendar.HOUR_OF_DAY) * numberOfDivisionsInHour;
-	}
-	
-	private float computeAdditionalSlots(GregorianCalendar gc) {
-		return ((float)gc.get(Calendar.MINUTE)) / 60 * numberOfDivisionsInHour;
-	}
-	
-	private int getSlotForStartTime(Date time) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(time);
-		return computeBaseSlot(gc) + ((int) computeAdditionalSlots(gc));
-	}
-
-	private int getSlotForEndTime(Date time) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(time);
-		
-		int baseSlot = computeBaseSlot(gc);
-		float additionalSlots = computeAdditionalSlots(gc);
-		
-		return keepExtraTimeIfEndTimePushesIntoNextTimeSlot(baseSlot, additionalSlots);
-	}
-
-	private int keepExtraTimeIfEndTimePushesIntoNextTimeSlot(int baseSlot, float additionalSlots) {
-		if(additionalSlots % (int)additionalSlots > 0) {
-			return baseSlot + (int)additionalSlots;
-		}
-		return baseSlot + (int)additionalSlots-1;
-	}
-
-	private int[] getSlotsForEvent(CalendarableItem event) {
-		int startTime = getSlotForStartTime(event.getStartTime());
-		int endTime = getSlotForEndTime(event.getEndTime());
-		if (endTime >= startTime) {
-			return new int[] {startTime, endTime};
-		}
-		return new int[] {startTime, startTime};
-	}
-	
-	private class EventLayout {
-		private CalendarableItem[][] eventLayout;
-		private final int timeSlotsInDay;
-
-		public EventLayout(int timeSlotsInDay) {
-			this.timeSlotsInDay = timeSlotsInDay;
-			eventLayout = new CalendarableItem[1][timeSlotsInDay];
-			initializeColumn(0, timeSlotsInDay);
-		}
-		
-		private void initializeColumn(int column, final int timeSlotsInDay) {
-			eventLayout[column] = new CalendarableItem[timeSlotsInDay];
-			for (int slot = 0; slot < eventLayout[column].length; slot++) {
-				eventLayout[column][slot] = null;
-			}
-		}
-		
-		public void addColumn() {
-			CalendarableItem[][] old = eventLayout;
-			eventLayout = new CalendarableItem[old.length+1][timeSlotsInDay];
-			for (int i = 0; i < old.length; i++) {
-				eventLayout[i] = old[i];
-			}
-			initializeColumn(eventLayout.length-1, timeSlotsInDay);
-		}
-		
-		public CalendarableItem[][] getLayout() {
-			return eventLayout;
-		}
-
-		public int getNumberOfColumns() {
-			return eventLayout.length;
-		}
-	}
-
-	/**
-	 * Given an unsorted list of Calendarables, each of which has a start and an
-	 * end time, this method will compute the day row coordinates for each 
-	 * Calendarable, set that information into each Calendarable, and will
-	 * return the number of columns that will be required to lay out the given
-	 * list of Calendarables.
-	 * 
-	 * @param calendarables
-	 *            A list of Calenderables
-	 * @return The number of columns required to lay out those Calendarables. 
-	 */
-	public CalendarableItem[][] computeEventLayout(List calendarables) {
-		Collections.sort(calendarables, CalendarableItem.comparator);
-		
-		final int timeSlotsInDay = IEventEditor.DISPLAYED_HOURS * numberOfDivisionsInHour;
-		
-		EventLayout eventLayout = new EventLayout(timeSlotsInDay);
-		
-		// Lay out events
-		for (Iterator eventsIter = calendarables.iterator(); eventsIter.hasNext();) {
-			CalendarableItem event = (CalendarableItem) eventsIter.next();
-			if (event.isAllDayEvent()) continue;
-			
-			int[] slotsEventSpans = getSlotsForEvent(event);
-			
-			int eventColumn = findColumnForEvent(eventLayout, slotsEventSpans);
-			placeEvent(event, eventLayout.getLayout(), eventColumn, slotsEventSpans);
-		}
-		
-		// Expand them horizontally if possible
-		for (Iterator eventsIter = calendarables.iterator(); eventsIter.hasNext();) {
-			CalendarableItem event = (CalendarableItem) eventsIter.next();
-			if (event.isAllDayEvent()) continue;
-
-			int[] slotsEventSpans = getSlotsForEvent(event);
-			int eventColumn = findEventColumn(event, eventLayout.getLayout(), slotsEventSpans);
-			
-			if (eventColumn < eventLayout.getNumberOfColumns()) {
-				for (int nextColumn = eventColumn+1; nextColumn < eventLayout.getNumberOfColumns(); ++nextColumn) {
-					if (columnIsAvailable(nextColumn, eventLayout.getLayout(), slotsEventSpans)) {
-						placeEvent(event, eventLayout.getLayout(), nextColumn, slotsEventSpans);
-					} else {
-						break;
-					}
-				}
-			}
-		}
-		
-		return eventLayout.getLayout();
-	}
-	
-	private int findEventColumn(CalendarableItem event, CalendarableItem[][] layout, int[] slotsEventSpans) {
-		for (int column = 0; column < layout.length; column++) {
-			if (layout[column][slotsEventSpans[START]] == event) {
-				return column;
-			}
-		}
-		throw new IndexOutOfBoundsException("Could not find event");
-	}
-
-	private int findColumnForEvent(EventLayout eventLayout, int[] slotsEventSpans) {
-		int currentColumn = 0;
-		while (true) {
-			CalendarableItem[][] layout = eventLayout.getLayout();
-			if (columnIsAvailable(currentColumn, layout, slotsEventSpans)) {
-				return currentColumn;
-			}
-			if (isNewColumnNeeded(currentColumn, layout)) {
-				eventLayout.addColumn();
-			}
-			++currentColumn;
-		}
-	}
-
-	private boolean columnIsAvailable(int column, CalendarableItem[][] layout, int[] slotsEventSpans) {
-		int currentSlot = slotsEventSpans[START];
-		while (currentSlot <= slotsEventSpans[END]) {
-			if (isSlotAlreadyOccupiedInColumn(currentSlot, layout, column)) {
-				return false;
-			}
-			++currentSlot;
-		}
-		return true;
-	}
-	
-	private void placeEvent(CalendarableItem event, CalendarableItem[][] eventLayout, int currentColumn, int[] slotsEventSpans) {
-		for (int slot = slotsEventSpans[START]; slot <= slotsEventSpans[END]; ++slot) {
-			eventLayout[currentColumn][slot] = event;
-			Point position = new Point(currentColumn, slot);
-			if (event.getUpperLeftPositionInDayRowCoordinates() == null) {
-				event.setUpperLeftPositionInDayRowCoordinates(position);
-			} else {
-				event.setLowerRightPositionInDayRowCoordinates(position);
-			}
-		}
-	}
-	
-	private boolean isSlotAlreadyOccupiedInColumn(int slot, CalendarableItem[][] layout, int currentColumn) {
-		return layout[currentColumn][slot] != null;
-	}
-
-	private boolean isNewColumnNeeded(int currentColumn, CalendarableItem[][] layout) {
-		return currentColumn >= layout.length-1;
-	}
-}
-
-
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/ICalendarableItemControl.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/ICalendarableItemControl.java
deleted file mode 100644
index fe941ec..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/ICalendarableItemControl.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.day.internal;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * @since 3.2
- *
- */
-public interface ICalendarableItemControl {
-
-	/* (non-Javadoc)
-	 * {@link org.eclipse.swt.widgets.Widget#dispose()}
-	 */
-	public void dispose();
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setMenu(org.eclipse.swt.widgets.Menu)
-	 */
-	public void setMenu(Menu menu);
-
-	/**
-	 * @param text
-	 */
-	public void setText(String text);
-
-	/**
-	 * @param image
-	 */
-	public void setImage(Image image);
-
-	public void setToolTipText(String text);
-
-	/**
-	 * Sets the clipping style bits
-	 * @param clipping  One of SWT.TOP or SWT.BOTTOM
-	 */
-	public void setClipping(int clipping);
-
-	/**
-	 * @return The clipping style bits
-	 */
-	public int getClipping();
-
-	/**
-	 * Sets the continued style bits
-	 * @param continued  One of SWT.TOP or SWT.BOTTOM
-	 */
-	public void setContinued(int continued);
-
-	/**
-	 * @return the continued style bits
-	 */
-	public int getContinued();
-
-	/**
-	 * Set or clear the selection indicator in the UI.
-	 * 
-	 * @param selected true if this control should appear selected; false otherwise.
-	 */
-	public void setSelected(boolean selected);
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#addMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-	public void addMouseListener(MouseListener listener);
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#removeMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-	public void removeMouseListener(MouseListener listener);
-
-	/**
-	 * Method setCalendarable. Sets the associated model.
-	 * @param calendarable
-	 */
-	public void setCalendarableItem(CalendarableItem calendarable);
-
-	/**
-	 * @return Returns the calendarable.
-	 */
-	public CalendarableItem getCalendarableItem();
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/TimeSlice.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/TimeSlice.java
deleted file mode 100644
index 3f01027..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/TimeSlice.java
+++ /dev/null
@@ -1,375 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.examples.databinding.compositetable.day.internal;
-
-import java.text.DateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Iterator;
-import java.util.LinkedList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.MouseListener;
-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.Layout;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Represents a time slice that is the same time but may span several days.
- * For example: 11:00 - 11:15 PM from Sunday through Saturday.
- * 
- * @since 3.2
- */
-public class TimeSlice extends Composite {
-
-	private final Image allDayImage = new Image(Display.getCurrent(), TimeSlice.class.getResourceAsStream("clock.png"));
-	
-	/**
-	 * The 0th control in the layout may have a java.lang.Integer LayoutData
-	 * indicating its preferred width. Otherwise, DaysLayout will ask the
-	 * control to compute its preferred size and will use the width returned by
-	 * that computation. All other controls will be equally allotted horizontal
-	 * width in the parent control.
-	 */
-	private static class TimeSliceAcrossTimeLayout extends Layout {
-		Point preferredSize = new Point(-1, -1);
-
-		protected Point computeSize(Composite composite, int wHint, int hHint,
-				boolean flushCache) {
-			if (preferredSize.x == -1 || flushCache) {
-				preferredSize.x = wHint;
-				preferredSize.y = -1; // NOTE: This assumes at least one child
-										// control
-				Control[] children = composite.getChildren();
-				for (int i = 0; i < children.length; i++) {
-					Control child = children[i];
-					preferredSize.y = Math.max(preferredSize.y, child
-							.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).y);
-				}
-			}
-			return preferredSize;
-		}
-
-		protected void layout(Composite composite, boolean flushCache) {
-			Point parentSize = composite.getSize();
-			Control[] children = composite.getChildren();
-
-			// layout 0th control
-			Integer preferredWidth = (Integer) children[0].getLayoutData();
-			if (preferredWidth == null) {
-				preferredWidth = new Integer(children[0].computeSize(
-						SWT.DEFAULT, SWT.DEFAULT).x);
-			}
-			children[0].setBounds(0, 0, preferredWidth.intValue(), parentSize.y);
-
-			// layout the rest of the controls
-			int controlWidth = 0;
-			int extraWidth = 0;
-			if (children.length >= 2) {
-				controlWidth = (parentSize.x - preferredWidth.intValue())
-						/ (children.length - 1);
-				extraWidth = (parentSize.x - preferredWidth.intValue())
-						% (children.length - 1);
-			}
-			int leftPosition = preferredWidth.intValue();
-
-			for (int i = 1; i < children.length; i++) {
-				Control control = children[i];
-				int width = controlWidth;
-				if (extraWidth > 0) {
-					++width;
-					--extraWidth;
-				}
-				control.setBounds(leftPosition, 0, width, parentSize.y);
-				leftPosition += width;
-			}
-		}
-	}
-
-	private CLabel timeLabel = null;
-
-	private LinkedList columns = new LinkedList();
-
-	/**
-	 * @return Returns the columns.
-	 */
-	public LinkedList getColumns() {
-		return columns;
-	}
-	
-	/**
-	 * Returns the control that implements the specified column.
-	 * 
-	 * @param column The column number.
-	 * @return Control the SWT control that implements this column.
-	 */
-	public Control getColumnControl(int column) {
-		return (Control) columns.get(column);
-	}
-	
-	/**
-	 * Return the column number of the specified widget.
-	 * 
-	 * @param widget the TimeSlot widget
-	 * @return the column number of the specified TimeSlot within this TimeSlice.
-	 */
-	public int getControlColumn(Widget widget) {
-		int columnNumber = 0;
-		for (Iterator columnsIter = columns.iterator(); columnsIter.hasNext();) {
-			if (columnsIter.next() == widget) {
-				return columnNumber;
-			}
-			++columnNumber;
-		}
-		throw new IllegalArgumentException("Unrecognized widget passed to getControlColumn");
-	}
-
-	/**
-	 * Constructor TimeSlice. Construct a TimeSlice control, passing the parent
-	 * and style bits.
-	 * 
-	 * @param parent
-	 *            The SWT parent object.
-	 * @param style
-	 *            The set of style bits this control accepts. Currently SWT.NONE.
-	 */
-	public TimeSlice(Composite parent, int style) {
-		super(parent, SWT.NULL);
-		initialize();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setMenu(org.eclipse.swt.widgets.Menu)
-	 */
-	public void setMenu(Menu menu) {
-		super.setMenu(menu);
-		for (Iterator columnsIter = columns.iterator(); columnsIter.hasNext();) {
-			TimeSlot cell = (TimeSlot) columnsIter.next();
-			cell.setMenu(menu);
-		}
-	}
-
-	/**
-	 * Initialize the control
-	 */
-	private void initialize() {
-		timeLabel = new CLabel(this, SWT.RIGHT);
-		timeLabel.setText("23:00 PM");
-		Integer preferredWidth = new Integer(timeLabel.computeSize(SWT.DEFAULT,
-				SWT.DEFAULT, false).x + 5);
-		timeLabel.setLayoutData(preferredWidth);
-		timeLabel.setText("");
-		setBackground(Display.getCurrent().getSystemColor(
-				SWT.COLOR_WIDGET_BACKGROUND));
-		setSize(new Point(537, 16));
-		setLayout(new TimeSliceAcrossTimeLayout());
-	}
-
-	private boolean headerControl = false;
-
-	/**
-	 * @return Returns the headerControl.
-	 */
-	public boolean isHeaderControl() {
-		return headerControl;
-	}
-
-	/**
-	 * @param headerControl The headerControl to set.
-	 */
-	public void setHeaderControl(boolean headerControl) {
-		this.headerControl = headerControl;
-	}
-
-	private int numberOfColumns = 1;
-
-	/**
-	 * Gets the number of columns that will be displayed in this row. The
-	 * default number of columns is 1.
-	 * 
-	 * @return numberOfColumns The number of days to display.
-	 */
-	public int getNumberOfColumns() {
-		return numberOfColumns;
-	}
-
-	/**
-	 * Sets the number of columns that will be displayed in this row. The
-	 * default number of columns is 1. This method may only be called *once* at
-	 * the beginning of the control's life cycle, and the value passed must be
-	 * >1.
-	 * <p>
-	 * Calling this method more than once results in undefined behavior.
-	 * 
-	 * @param numberOfColumns
-	 *            The number of days to display.
-	 */
-	public void setNumberOfColumns(int numberOfColumns) {
-		this.numberOfColumns = numberOfColumns;
-		Control[] tabStops = new Control[numberOfColumns];
-		for (int i = numberOfColumns; i > 0; --i) {
-			if (headerControl) {
-				CLabel control = new CLabel(this, SWT.SHADOW_OUT | SWT.BORDER | SWT.CENTER);
-				tabStops[numberOfColumns-i] = control;
-				columns.add(control);
-			} else {
-				TimeSlot control = new TimeSlot(this, SWT.NONE);
-				tabStops[numberOfColumns-i] = control;
-				columns.add(control);
-			}
-		}
-		setTabList(tabStops);
-	}
-
-	private Date currentTime = new Date();
-
-	/**
-	 * @return The current time set in this "days" row.
-	 */
-	public Date getCurrentTime() {
-		return currentTime;
-	}
-
-	/**
-	 * @param currentTime
-	 */
-	public void setCurrentTime(Date currentTime) {
-		// if currentTime is null, we are becoming an all-day event row
-		if (currentTime == null) {
-			timeLabel.setImage(allDayImage);
-			timeLabel.setText("");
-			setAllDayEventOnDays(true);
-			return;
-		}
-		
-		setAllDayEventOnDays(false);
-		timeLabel.setImage(null);
-		
-		setTimeOnDays(currentTime);
-		
-		this.currentTime = currentTime;
-		Calendar calendar = new GregorianCalendar();
-		calendar.setTime(currentTime);
-
-		// Only the hours will display in the label
-		if (calendar.get(Calendar.MINUTE) == 0) {
-			DateFormat df = DateFormat.getTimeInstance(DateFormat.SHORT);
-			String time = df.format(currentTime);
-			timeLabel.setText(time);
-		} else {
-			timeLabel.setText("");
-		}
-	}
-	
-	private void setTimeOnDays(Date currentTime) {
-		for (Iterator daysIter = columns.iterator(); daysIter.hasNext();) {
-			Object dayCandidate = daysIter.next();
-			if (dayCandidate instanceof TimeSlot) {
-				TimeSlot day = (TimeSlot) dayCandidate;
-				day.setTime(currentTime);
-			}
-		}
-	}
-
-	private void setAllDayEventOnDays(boolean isAllDayEvent) {
-		for (Iterator daysIter = columns.iterator(); daysIter.hasNext();) {
-			Object dayCandidate = daysIter.next();
-			if (dayCandidate instanceof TimeSlot) {
-				TimeSlot day = (TimeSlot) dayCandidate;
-				day.setAllDay(isAllDayEvent);
-			}
-		}
-	}
-
-	/**
-	 * @see org.eclipse.swt.widgets.Control#addFocusListener
-	 * 
-	 * @param listener
-	 */
-	public void addCellFocusListener(FocusListener listener) {
-		for (Iterator daysIter = columns.iterator(); daysIter.hasNext();) {
-			Object dayCandidate = daysIter.next();
-			if (dayCandidate instanceof TimeSlot) {
-				TimeSlot day = (TimeSlot) dayCandidate;
-				day.addFocusListener(listener);
-			}
-		}
-	}
-	
-	/**
-	 * @see org.eclipse.swt.widgets.Control#removeFocusListener
-	 * @param listener
-	 */
-	public void removeCellFocusListener(FocusListener listener) {
-		for (Iterator daysIter = columns.iterator(); daysIter.hasNext();) {
-			Object dayCandidate = daysIter.next();
-			if (dayCandidate instanceof TimeSlot) {
-				TimeSlot day = (TimeSlot) dayCandidate;
-				day.removeFocusListener(listener);
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#addKeyListener(org.eclipse.swt.events.KeyListener)
-	 */
-	public void addKeyListener(KeyListener listener) {
-		super.addKeyListener(listener);
-		for (Iterator columnsIter = columns.iterator(); columnsIter.hasNext();) {
-			TimeSlot cell = (TimeSlot) columnsIter.next();
-			cell.addKeyListener(listener);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#removeKeyListener(org.eclipse.swt.events.KeyListener)
-	 */
-	public void removeKeyListener(KeyListener listener) {
-		super.removeKeyListener(listener);
-		for (Iterator columnsIter = columns.iterator(); columnsIter.hasNext();) {
-			TimeSlot cell = (TimeSlot) columnsIter.next();
-			cell.removeKeyListener(listener);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#addKeyListener(org.eclipse.swt.events.KeyListener)
-	 */
-	public void addMouseListener(MouseListener listener) {
-		super.addMouseListener(listener);
-		for (Iterator columnsIter = columns.iterator(); columnsIter.hasNext();) {
-			TimeSlot cell = (TimeSlot) columnsIter.next();
-			cell.addMouseListener(listener);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#removeKeyListener(org.eclipse.swt.events.KeyListener)
-	 */
-	public void removeMouseListener(MouseListener listener) {
-		super.removeMouseListener(listener);
-		for (Iterator columnsIter = columns.iterator(); columnsIter.hasNext();) {
-			TimeSlot cell = (TimeSlot) columnsIter.next();
-			cell.removeMouseListener(listener);
-		}
-	}
-	
-} // @jve:decl-index=0:visual-constraint="10,10"
-
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/TimeSlot.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/TimeSlot.java
deleted file mode 100644
index 98eb35e..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/TimeSlot.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.examples.databinding.compositetable.day.internal;
-
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-
-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.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-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.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.RGB;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Represents a particular range in time in a single day.
- * 
- * @since 3.2
- */
-public class TimeSlot extends Canvas {
-
-	private static final int FOCUS_LINE_WIDTH = 2;
-
-	private boolean focusControl = false;
-
-	private final Color WHITE;
-	private final Color CELL_BACKGROUND_LIGHT;
-	private final Color CELL_BACKGROUND_WHITE;
-	private final Color CELL_BORDER_EMPHASIZED;
-	private final Color CELL_BORDER_LIGHT;
-	private final Color TIME_BAR_COLOR;
-	private final Color FOCUS_RUBBERBAND;
-
-	/**
-	 * Width of the bar between events
-	 */
-	public static final int TIME_BAR_WIDTH = 3;
-
-	/**
-	 * Constructor EmptyTablePlaceholder. Construct an EmptyTablePlaceholder
-	 * control.
-	 * 
-	 * @param parent
-	 *            The parent control
-	 * @param style
-	 *            Style bits. These are the same as what Canvas accepts.
-	 */
-	public TimeSlot(Composite parent, int style) {
-		super(parent, style);
-
-		addTraverseListener(traverseListener);
-		addFocusListener(focusListener);
-		addPaintListener(paintListener);
-		addDisposeListener(disposeListener);
-		addKeyListener(keyListener);
-		addMouseListener(mouseListener);
-
-		Display display = Display.getCurrent();
-
-		WHITE = display.getSystemColor(SWT.COLOR_WHITE);
-
-		CELL_BACKGROUND_WHITE = display.getSystemColor(SWT.COLOR_WHITE);
-		CELL_BORDER_EMPHASIZED = display.getSystemColor(SWT.COLOR_LIST_SELECTION);
-		CELL_BACKGROUND_LIGHT = new Color(display, new RGB(248, 248, 248));
-		CELL_BORDER_LIGHT = new Color(display, saturate(CELL_BORDER_EMPHASIZED.getRGB(), .2f));
-		TIME_BAR_COLOR = new Color(display, saturate(CELL_BORDER_EMPHASIZED.getRGB(), .1f));
-		FOCUS_RUBBERBAND = new Color(display, lighten(saturate(display.getSystemColor(SWT.COLOR_TITLE_BACKGROUND).getRGB(), .85f), -.333f));
-
-		setBackground(CELL_BACKGROUND_LIGHT);
-	}
-
-	/**
-	 * Sets the color's saturation to the specified value.
-	 * 
-	 * @param color The RGB of the color
-	 * @param saturation the new saturation (between 0 and 1)
-	 * @return a Color that is saturated by the specified amount
-	 */
-	private RGB saturate(RGB color, float saturation) {
-		float[] hsb = color.getHSB();
-		return new RGB(hsb[0], saturation, hsb[2]);
-	}
-	
-	/**
-	 * @param color The RGB of the color
-	 * @param amount The amount to lighten as a percentage expresssed as a float between -1 and 1.
-	 * @return The new RGB that is lightened by the specified amount
-	 */
-	private RGB lighten(RGB color, float amount) {
-		float[] hsb = color.getHSB();
-		float b = hsb[2] + hsb[2] * amount;
-		if (b < 0) b=0;
-		if (b > 1) b=1;
-		return new RGB(hsb[0], hsb[1], b);
-	}
-	
-
-	/**
-	 * Make sure we remove our listeners...
-	 */
-	private DisposeListener disposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			removeTraverseListener(traverseListener);
-			removeFocusListener(focusListener);
-			removePaintListener(paintListener);
-			removeMouseListener(mouseListener);
-			removeKeyListener(keyListener);
-			removeDisposeListener(disposeListener);
-
-			// Dispose colors here
-			CELL_BACKGROUND_LIGHT.dispose();
-			CELL_BORDER_LIGHT.dispose();
-			TIME_BAR_COLOR.dispose();
-			FOCUS_RUBBERBAND.dispose();
-		}
-	};
-	
-	private KeyListener keyListener = new KeyAdapter() {
-		public void keyPressed(KeyEvent e) {
-			switch (e.keyCode) {
-			case SWT.ARROW_LEFT:
-				traverse(SWT.TRAVERSE_TAB_PREVIOUS);
-				return;
-			case SWT.ARROW_RIGHT:
-				traverse(SWT.TRAVERSE_TAB_NEXT);
-				return;
-			}
-		}
-	};
-
-	private Point preferredSize = new Point(-1, -1);
-
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		if (preferredSize.x == -1 || changed) {
-			preferredSize.x = getSize().x;
-			Display display = Display.getCurrent();
-			GC gc = new GC(display);
-			try {
-				Font font = display.getSystemFont();
-				gc.setFont(font);
-				FontMetrics fm = gc.getFontMetrics();
-				preferredSize.y = fm.getHeight();
-			} finally {
-				gc.dispose();
-			}
-		}
-		return preferredSize;
-	}
-
-	/**
-	 * Paint the control.
-	 */
-	private PaintListener paintListener = new PaintListener() {
-		public void paintControl(PaintEvent e) {
-			GC gc = e.gc;
-			Color oldForeground = gc.getForeground();
-			Color oldBackground = gc.getBackground();
-			Point controlSize = getSize();
-
-			// Draw basic background here
-			try {
-				// Draw "time bar" on left side
-				gc.setBackground(WHITE);
-				gc.setForeground(WHITE);
-				gc.fillRectangle(0, 0, TIME_BAR_WIDTH, controlSize.y);
-				gc.setForeground(CELL_BORDER_LIGHT);
-				int lineStyle = gc.getLineStyle();
-				gc.setLineStyle(SWT.LINE_DOT);
-				gc.drawLine(TIME_BAR_WIDTH + 1, 0, TIME_BAR_WIDTH + 1,
-						controlSize.y);
-				gc.setLineStyle(lineStyle);
-				gc.setForeground(TIME_BAR_COLOR);
-				gc.drawLine(controlSize.x - 1, 0, controlSize.x - 1,
-						controlSize.y);
-				if (isMinutesAfterHour(0)) {
-					gc.setForeground(CELL_BORDER_EMPHASIZED);
-				} else {
-					gc.setForeground(CELL_BORDER_LIGHT);
-				}
-//				gc.drawLine(TIME_BAR_WIDTH + 2, 0, controlSize.x - 2, 0);
-				if (isMinutesAfterHour(0) || isMinutesAfterHour(30) && !isAllDay()) {
-					gc.drawLine(0, 0, controlSize.x, 0);
-				}
-			} finally {
-				gc.setBackground(oldBackground);
-				gc.setForeground(oldForeground);
-			}
-
-			// Draw focus rubberband if we're focused
-			int oldLineStyle = gc.getLineStyle();
-			int oldLineWidth = gc.getLineWidth();
-			try {
-				if (focusControl) {
-					gc.setLineStyle(SWT.LINE_DASH);
-					gc.setLineWidth(FOCUS_LINE_WIDTH);
-					gc.setForeground(FOCUS_RUBBERBAND);
-					Point parentSize = getSize();
-					gc.drawRectangle(FOCUS_LINE_WIDTH,
-							FOCUS_LINE_WIDTH, parentSize.x - 4,
-							parentSize.y - 3);
-				}
-
-				gc.setForeground(CELL_BACKGROUND_LIGHT);
-			} finally {
-				gc.setForeground(oldForeground);
-				gc.setLineStyle(oldLineStyle);
-				gc.setLineWidth(oldLineWidth);
-			}
-		}
-	};
-
-	/**
-	 * When we gain/lose focus, redraw ourselves appropriately
-	 */
-	private FocusListener focusListener = new FocusListener() {
-		public void focusGained(FocusEvent e) {
-			focusControl = true;
-			redraw();
-		}
-
-		public void focusLost(FocusEvent e) {
-			focusControl = false;
-			redraw();
-		}
-	};
-
-	/**
-	 * Permit focus events via keyboard.
-	 */
-	private TraverseListener traverseListener = new TraverseListener() {
-		public void keyTraversed(TraverseEvent e) {
-			// NOOP: this just lets us receive focus from SWT
-		}
-	};
-	
-	private MouseListener mouseListener = new MouseAdapter() {
-		public void mouseDown(MouseEvent e) {
-			setFocus();
-		}
-	};
-
-	/**
-	 * @param minute The minute to check
-	 *  
-	 * @return true if the time falls on the specified minute of the hour.
-	 * false otherwise.
-	 */
-	public boolean isMinutesAfterHour(int minute) {
-		Calendar calendar = new GregorianCalendar();
-		calendar.setTime(time);
-		return calendar.get(Calendar.MINUTE) == minute;
-	}
-	
-	private boolean allDay = false;
-	
-	/**
-	 * @param isAllDayEvent
-	 */
-	public void setAllDay(boolean isAllDayEvent) {
-		this.allDay = isAllDayEvent;
-		if (isAllDayEvent) {
-			setBackground(CELL_BACKGROUND_WHITE);
-		} else {
-			setBackground(CELL_BACKGROUND_LIGHT);
-		}
-	}
-	
-	/**
-	 * @return Returns the allDay.
-	 */
-	public boolean isAllDay() {
-		return allDay;
-	}
-	
-	private Date time = new Date();
-
-	/**
-	 * @param currentTime
-	 */
-	public void setTime(Date currentTime) {
-		this.time = currentTime;
-		redraw();
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/clock.png b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/clock.png
deleted file mode 100644
index d43f6ca..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/clock.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/clock.svg b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/clock.svg
deleted file mode 100644
index 557cbde..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/day/internal/clock.svg
+++ /dev/null
@@ -1,276 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://web.resource.org/cc/"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="744.09448819"
-   height="1052.3622047"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.43"
-   sodipodi:docbase="C:\Documents and Settings\dorme"
-   sodipodi:docname="clock.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow1Send"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Send"
-       style="overflow:visible;">
-      <path
-         id="path2364"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
-         transform="scale(0.2) rotate(180)" />
-    </marker>
-    <linearGradient
-       id="linearGradient2452">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2454" />
-      <stop
-         style="stop-color:#7373ee;stop-opacity:1;"
-         offset="1"
-         id="stop2456" />
-    </linearGradient>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Mend"
-       style="overflow:visible;">
-      <path
-         id="path2370"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
-         transform="scale(0.4) rotate(180)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Lend"
-       style="overflow:visible;">
-      <path
-         id="path2376"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
-         transform="scale(0.8) rotate(180)" />
-    </marker>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2452"
-       id="linearGradient2458"
-       x1="131.28571"
-       y1="372.36218"
-       x2="560.85712"
-       y2="667.36218"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2452"
-       id="linearGradient2485"
-       gradientUnits="userSpaceOnUse"
-       x1="131.28571"
-       y1="372.36218"
-       x2="560.85712"
-       y2="667.36218" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2452"
-       id="linearGradient2519"
-       gradientUnits="userSpaceOnUse"
-       x1="131.28571"
-       y1="372.36218"
-       x2="560.85712"
-       y2="667.36218" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2452"
-       id="linearGradient2521"
-       gradientUnits="userSpaceOnUse"
-       x1="131.28571"
-       y1="372.36218"
-       x2="560.85712"
-       y2="667.36218" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2452"
-       id="linearGradient2555"
-       gradientUnits="userSpaceOnUse"
-       x1="131.28571"
-       y1="372.36218"
-       x2="560.85712"
-       y2="667.36218" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2452"
-       id="linearGradient2557"
-       gradientUnits="userSpaceOnUse"
-       x1="131.28571"
-       y1="372.36218"
-       x2="560.85712"
-       y2="667.36218" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2452"
-       id="linearGradient2593"
-       gradientUnits="userSpaceOnUse"
-       x1="131.28571"
-       y1="372.36218"
-       x2="560.85712"
-       y2="667.36218" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2452"
-       id="linearGradient2614"
-       gradientUnits="userSpaceOnUse"
-       x1="131.28571"
-       y1="372.36218"
-       x2="560.85712"
-       y2="667.36218" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2452"
-       id="linearGradient2648"
-       gradientUnits="userSpaceOnUse"
-       x1="131.28571"
-       y1="372.36218"
-       x2="560.85712"
-       y2="667.36218" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2452"
-       id="linearGradient2666"
-       gradientUnits="userSpaceOnUse"
-       x1="131.28571"
-       y1="372.36218"
-       x2="560.85712"
-       y2="667.36218" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1.4"
-     inkscape:cx="409.08296"
-     inkscape:cy="647.0534"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     inkscape:window-width="1383"
-     inkscape:window-height="1276"
-     inkscape:window-x="50"
-     inkscape:window-y="58" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <g
-       id="g2460"
-       transform="translate(3.571429,-4.285714)">
-      <path
-         transform="translate(7.78572,-203.5715)"
-         d="M 612.14285 513.79077 A 257.85715 257.14285 0 1 1  96.428558,513.79077 A 257.85715 257.14285 0 1 1  612.14285 513.79077 z"
-         sodipodi:ry="257.14285"
-         sodipodi:rx="257.85715"
-         sodipodi:cy="513.79077"
-         sodipodi:cx="354.28571"
-         id="path1307"
-         style="fill:url(#linearGradient2666);fill-opacity:1;stroke:#030084;stroke-width:6;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="arc" />
-      <path
-         id="path2182"
-         d="M 362.07143,70.21925 L 362.07143,148.79068"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#030084;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         id="path2184"
-         d="M 362.07143,462.36211 L 362.07143,540.93354"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#030084;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         id="path2192"
-         d="M 597.42859,310.21924 L 518.85716,310.21924"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#030084;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         id="path2194"
-         d="M 205.28573,310.21924 L 126.7143,310.21924"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#030084;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path2204"
-         d="M 362.14286,313.79068 L 436.42857,153.0764"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path2386"
-         d="M 362.84711,313.15934 L 362.13282,411.73077"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    </g>
-    <g
-       id="g2657"
-       inkscape:export-filename="C:\Documents and Settings\dorme\clock.png"
-       inkscape:export-xdpi="9.6499996"
-       inkscape:export-ydpi="9.6499996">
-      <path
-         transform="matrix(0.224029,4.215227e-2,0,0.27196,357.7523,565.618)"
-         d="M 612.14285 513.79077 A 257.85715 257.14285 0 1 1  96.428558,513.79077 A 257.85715 257.14285 0 1 1  612.14285 513.79077 z"
-         sodipodi:ry="257.14285"
-         sodipodi:rx="257.85715"
-         sodipodi:cy="513.79077"
-         sodipodi:cx="354.28571"
-         id="path2634"
-         style="fill:url(#linearGradient2648);fill-opacity:1;stroke:#010070;stroke-width:22.98158073;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="arc" />
-      <path
-         id="path2636"
-         d="M 437.12272,655.01196 L 437.12272,676.38022"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#030084;stroke-width:3.24150491;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         id="path2638"
-         d="M 437.12272,761.659 L 437.12272,783.02726"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#030084;stroke-width:3.24150491;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         id="path2640"
-         d="M 489.84966,730.20312 L 472.24735,726.89114"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#030084;stroke-width:3.24150491;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         id="path2642"
-         d="M 401.9981,713.6734 L 384.39578,710.36144"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#030084;stroke-width:3.24150491;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path2644"
-         d="M 437.13872,721.25657 L 468.10597,686.27961"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path2646"
-         d="M 437.29649,721.11456 L 437.13647,754.72911"
-         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/EmptyTablePlaceholder.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/EmptyTablePlaceholder.java
deleted file mode 100644
index b95200c..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/EmptyTablePlaceholder.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.internal;
-
-import org.eclipse.jface.examples.databinding.compositetable.InternalCompositeTable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-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.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-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.Point;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Class EmptyTablePlaceholder.  An SWT control that is displayed in the table when
- * there are no rows to display.  It has four purposes:
- * 
- * <ul>
- * <li>Prompt the user to hit <INS> to insert a new (first) row.
- * <li>Indicate if the table has focus using a dashed line around the outside.
- * <li>Actually accept focus for the table when there are no other controls to do so.
- * <li>Forward the insert key event back to the table when the user needs to insert a row.
- * </ul>
- * 
- * @author djo
- */
-public class EmptyTablePlaceholder extends Canvas {
-
-	private boolean focusControl = false;
-	private InternalCompositeTable parentTable = null;
-	
-	private final Color RED;
-	
-	/**
-	 * Constructor EmptyTablePlaceholder.  Construct an EmptyTablePlaceholder control.
-	 * 
-	 * @param parent The parent control
-	 * @param style Style bits.  These are the same as what Canvas accepts.
-	 */
-	public EmptyTablePlaceholder(Composite parent, int style) {
-		super(parent, style);
-		parentTable = (InternalCompositeTable) parent.getParent().getParent();
-		
-		parent.addControlListener(controlListener);
-		
-		addTraverseListener(traverseListener);
-		addFocusListener(focusListener);
-		addKeyListener(keyListener);
-		addPaintListener(paintListener);
-		addDisposeListener(disposeListener);
-		
-		RED = Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-		setBackground(getParent().getBackground());
-		
-		resize();
-	}
-
-	/**
-	 * Make sure we remove our listeners...
-	 */
-	private DisposeListener disposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			removeTraverseListener(traverseListener);
-			removeFocusListener(focusListener);
-			removeKeyListener(keyListener);
-			removePaintListener(paintListener);
-			removeDisposeListener(disposeListener);
-			
-			getParent().removeControlListener(controlListener);
-		}
-	};
-	
-	/**
-	 * Handle resize events so we can redraw ourselves correctly.
-	 */
-	private ControlListener controlListener = new ControlAdapter() {
-		public void controlResized(ControlEvent e) {
-			resize();
-		}
-	};
-	
-	/**
-	 * Actually resize ourself.
-	 */
-	private void resize() {
-		Point headerSize = new Point(0, 0);
-		Control header = parentTable.getHeaderControl();
-		if (header != null) {
-			headerSize = header.getSize();
-		}
-		Point parentSize = getParent().getSize();
-		
-		setBounds(0, headerSize.y+2, parentSize.x-4, parentSize.y - headerSize.y-6);
-	}
-
-	
-	// The message property
-	private String message = ""; //$NON-NLS-1$
-	
-	/**
-	 * Return the prompt message that will be displayed to the user inside this control.
-	 * 
-	 * @return The message string.
-	 */
-	public String getMessage() {
-		return message;
-	}
-	
-	/**
-	 * Set the prompt message that will be displayed to the user inside this control.
-	 * 
-	 * @param message The message to display.
-	 */
-	public void setMessage(String message) {
-		this.message = message;
-		redraw();
-	}
-
-	/**
-	 * Paint the control.
-	 */
-	private PaintListener paintListener = new PaintListener() {
-		public void paintControl(PaintEvent e) {
-			Color oldColor = e.gc.getForeground();
-			int oldLineStyle = e.gc.getLineStyle();
-			int oldLineWidth = e.gc.getLineWidth();
-			try {
-				if (focusControl) {
-					e.gc.setLineStyle(SWT.LINE_DASH);
-					e.gc.setLineWidth(2);
-					Point parentSize = getSize();
-					e.gc.drawRectangle(1, 2, parentSize.x-2, parentSize.y-3);
-				}
-
-				e.gc.setForeground(RED);
-				e.gc.drawText(getMessage(), 3, 3);
-			} finally {
-				e.gc.setForeground(oldColor);
-				e.gc.setLineStyle(oldLineStyle);
-				e.gc.setLineWidth(oldLineWidth);
-			}
-		}
-	};
-	
-	/**
-	 * When we gain/lose focus, redraw ourselves appropriately
-	 */
-	private FocusListener focusListener = new FocusListener() {
-		public void focusGained(FocusEvent e) {
-			focusControl = true;
-			redraw();
-		}
-		public void focusLost(FocusEvent e) {
-			focusControl = false;
-			redraw();
-		}
-	};
-	
-	/**
-	 * Permit focus events via keyboard.
-	 */
-	private TraverseListener traverseListener = new TraverseListener() {
-		 public void keyTraversed(TraverseEvent e) {
-		}
-	};
-	
-	/**
-	 * Forward the insert key back to our parent for handling.
-	 */
-	private KeyListener keyListener = new KeyListener() {
-		public void keyPressed(KeyEvent e) {
-			if (e.keyCode == SWT.INSERT)
-				parentTable.keyPressed(null, e);
-		}
-		public void keyReleased(KeyEvent e) {
-		}
-	};
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/ISelectableRegionControl.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/ISelectableRegionControl.java
deleted file mode 100644
index f3b58e3..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/ISelectableRegionControl.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.internal;
-
-import org.eclipse.swt.SWTException;
-
-/**
- * A duck interface for controls that can select a specific range according to SWT 
- * range selection semantics.
- * 
- * @author djo
- */
-public interface ISelectableRegionControl {
-	/**
-	 * Sets the selection to the range specified
-	 * by the given start and end indices.
-	 * <p>
-	 * Indexing is zero based.  The range of
-	 * a selection is from 0..N where N is
-	 * the number of characters in the widget.
-	 * </p><p>
-	 * Text selections are specified in terms of
-	 * caret positions.  In a text widget that
-	 * contains N characters, there are N+1 caret
-	 * positions, ranging from 0..N.  This differs
-	 * from other functions that address character
-	 * position such as getText () that use the
-	 * usual array indexing rules.
-	 * </p>
-	 *
-	 * @param start the start of the range
-	 * @param end the end of the range
-	 *
-	 * @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 start, int end);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/TableRow.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/TableRow.java
deleted file mode 100644
index 197f40c..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/internal/TableRow.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.internal;
-
-import org.eclipse.jface.examples.databinding.compositetable.InternalCompositeTable;
-import org.eclipse.swt.events.FocusAdapter;
-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.KeyListener;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Class TableRow.  Encapsulates operations on a SWT row control.  Discovers the 
- * SWT controls inside the row control representing columns and exposes those for
- * operations by the CompositeTable.  Listens to SWT events on the column controls
- * and forwards them back to the table control for processing.
- * 
- * @author djo
- */
-public class TableRow {
-	private Control row;
-	private Control[] columns;
-	protected InternalCompositeTable parent;
-	
-	/**
-	 * Constructor TableRow.  Construct a TableRow object.
-	 * 
-	 * @param parent The table containing this row.
-	 * @param row The SWT control implementing this row.
-	 */
-	public TableRow(InternalCompositeTable parent, Control row) {
-		this.parent = parent;
-		this.row = row;
-		if (row instanceof Composite) {
-			Composite rowComposite = (Composite) row;
-			columns = rowComposite.getTabList();
-		} else {
-			columns = new Control[] {row};
-		}
-		
-		addListeners(row);
-		for (int i = 0; i < columns.length; i++) {
-			addListeners(columns[i]);
-		}
-	}
-	
-	/**
-	 * Remove all listeners from each control.
-	 */
-	public void dispose() {
-		removeListeners(row);
-		for (int i = 0; i < columns.length; i++) {
-			removeListeners(columns[i]);
-		}
-	}
-	
-	/**
-	 * Add listeners to each control.
-	 * 
-	 * @param control The control to listen to.
-	 */
-	private void addListeners(Control control) {
-		control.addKeyListener(keyListener);
-		control.addFocusListener(focusListener);
-		control.addTraverseListener(traverseListener);
-	}
-	
-	/**
-	 * Remove listeners from each control.
-	 * 
-	 * @param control The control to no longer listen to.
-	 */
-	private void removeListeners(Control control) {
-		control.removeKeyListener(keyListener);
-		control.removeFocusListener(focusListener);
-		control.removeTraverseListener(traverseListener);
-	}
-	
-	/**
-	 * Forward key presses to the parent control
-	 */
-	private KeyListener keyListener = new KeyAdapter() {
-		public void keyPressed(KeyEvent e) {
-			parent.keyPressed(TableRow.this, e);
-		}
-	};
-	
-	/**
-	 * Forward focuse events to the parent control
-	 */
-	private FocusListener focusListener = new FocusAdapter() {
-		public void focusLost(FocusEvent e) {
-			parent.focusLost(TableRow.this, e);
-		}
-		public void focusGained(FocusEvent e) {
-			parent.focusGained(TableRow.this, e);
-		}
-	};
-	
-	/**
-	 * Forward traverse events to the parent control
-	 */
-	private TraverseListener traverseListener = new TraverseListener() {
-		public void keyTraversed(TraverseEvent e) {
-			/*
-			 * FEATURE IN SWT: When SWT needs to resolve a mnemonic (accelerator)
-			 * character, it recursively calls the traverse event down all
-			 * controls in the containership hierarchy.  If e.doit is false,
-			 * no control has yet matched the mnemonic, and we don't have to
-			 * do anything since we don't do mnemonic matching and no mnemonic
-			 * has matched.
-			 */
-			if (e.doit) {
-				parent.keyTraversed(TableRow.this, e);
-			}
-		}
-	};
-
-	/**
-	 * Return the SWT control implementing the row's GUI.
-	 * 
-	 * @return The row's SWT control
-	 */
-	public Control getRowControl() {
-		return row;
-	}
-	
-	/**
-	 * Return the SWT control corresponding to a particular column within
-	 * this row.
-	 * 
-	 * @param i the 0-based offset of the column to return.
-	 * @return The corresponding control or null if there is no control at the
-	 * specified position.
-	 */
-	public Control getColumnControl(int i) {
-		if (i < 0) {
-			return row;
-		}
-		if (i < 1 && columns.length == 0) {
-			return row;
-		}
-		if (i < columns.length) {
-			return columns[i];
-		}
-		return null;
-	}
-	
-	/**
-	 * Return the column number of a specified SWT control or -1 if not found.
-	 * 
-	 * @param control The control to find.
-	 * @return control's column number or -1 if that column control is not in this row.
-	 */
-	public int getColumnNumber(Control control) {
-		for (int i = 0; i < columns.length; i++) {
-			if (columns[i] == control) {
-				return i;
-			}
-		}
-		return -1;
-	}
-	
-	/**
-	 * Return the number of columns in this row.
-	 * 
-	 * @return The number of columns in this row.
-	 */
-	public int getNumColumns() {
-		return columns.length;
-	}
-	
-	/**
-	 * Sets the visibility of this row.
-	 * 
-	 * @param visible true if the row should be visible; false otherwise.
-	 */
-	public void setVisible(boolean visible) {
-		row.setVisible(visible);
-	}
-	
-	/**
-	 * Returns if this row is visible.
-	 * 
-	 * @return true if the row is visible; false otherwise.
-	 */
-	public boolean getVisible() {
-		return row.getVisible();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendar.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendar.java
deleted file mode 100644
index 88a6b31..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendar.java
+++ /dev/null
@@ -1,751 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.examples.databinding.compositetable.month;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.examples.databinding.compositetable.day.AbstractEventEditor;
-import org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler;
-import org.eclipse.jface.examples.databinding.compositetable.day.CalendarableSelectionChangeListener;
-import org.eclipse.jface.examples.databinding.compositetable.month.internal.Day;
-import org.eclipse.jface.examples.databinding.compositetable.month.internal.Week;
-import org.eclipse.jface.examples.databinding.compositetable.month.internal.WeekHeader;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventContentProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventCountProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-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.KeyListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-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;
-
-/**
- * An IEventEditor implementing a month calendar.  This class is not intended
- * to be subclassed.
- */
-public class MonthCalendar extends AbstractEventEditor implements IEventEditor {
-
-	private Date startDate;
-    private WeekHeader weekHeader = null;
-    private Composite weeksHolder = null;
-	private Week[] weeks;
-    
-	/**
-	 * Constructor DayEditor.  Constructs a calendar control that can display
-	 * events on one or more days.
-	 * 
-	 * @param parent
-	 * @param style The same style bits as @see Composite
-	 */
-	public MonthCalendar(Composite parent, int style) {
-		super(parent, style);
-		initialize();
-		weeks = new Week[0];
-		setStartDate(new Date());
-	}
-
-	private void initialize() {
-        GridLayout gl = new GridLayout();
-        gl.horizontalSpacing = 0;
-        gl.marginWidth = 0;
-        gl.verticalSpacing = 0;
-        gl.marginHeight = 0;
-        createWeekHeader();
-        this.setLayout(gl);
-        createWeeksHolder();
-	}
-
-    /**
-	 * This method initializes weekHeader	
-	 *
-	 */
-	private void createWeekHeader() {
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.verticalAlignment = GridData.CENTER;
-		weekHeader = new WeekHeader(this, SWT.NONE);
-		weekHeader.setLayoutData(gridData);
-	}
-
-	/**
-	 * This method initializes composite	
-	 *
-	 */
-	private void createWeeksHolder() {
-		weeksHolder = new Composite(this, SWT.NONE);
-		
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.horizontalSpacing = 0;
-		gridLayout.marginWidth = 0;
-		gridLayout.verticalSpacing = 1;
-		gridLayout.marginHeight = 0;
-		weeksHolder.setLayout(gridLayout);
-		
-		GridData gd = new GridData();
-		gd.horizontalAlignment = GridData.FILL;
-		gd.grabExcessHorizontalSpace = true;
-		gd.grabExcessVerticalSpace = true;
-		gd.verticalAlignment = GridData.FILL;
-		weeksHolder.setLayoutData(gd);
-	}
-
-	/**
-	 * This method initializes week	
-	 */
-	private Week createWeek() {
-		GridData gd = new GridData();
-		gd.horizontalAlignment = GridData.FILL;
-		gd.grabExcessHorizontalSpace = true;
-		gd.grabExcessVerticalSpace = true;
-		gd.verticalAlignment = GridData.FILL;
-		Week week = new Week(weeksHolder, SWT.NONE);
-		week.setLayoutData(gd);
-		return week;
-	}
-	
-	/**
-	 * Sets the start date for this MonthCalendar.
-	 * <p>
-	 * The date is set to the first day of the specified month and the time part
-	 * of the Date object is set to midnight before storing. Calling
-	 * {@link #getStartDate()} will return this mutilated version instead of the
-	 * original.
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setStartDate(java.util.Date)
-	 */
-	public void setStartDate(Date startDate) {
-		checkWidget();
-		
-		Calendar c = new GregorianCalendar();
-		c.setTime(startDate);
-		c.set(Calendar.DAY_OF_MONTH, 1);
-		c.set(Calendar.HOUR_OF_DAY, 0);
-		c.set(Calendar.MINUTE, 0);
-		c.set(Calendar.SECOND, 0);
-		c.set(Calendar.MILLISECOND, 0);
-		this.startDate = c.getTime();
-		refresh();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#getStartDate()
-	 */
-	public Date getStartDate() {
-		checkWidget();
-		
-		return startDate;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#refresh(java.util.Date)
-	 */
-	public void refresh(Date date) {
-		checkWidget();
-		
-		if (date == null) {
-			refresh();
-			return;
-		}
-		
-		Calendar currentDay = new GregorianCalendar();
-		currentDay.setTime(startDate);
-		currentDay.set(Calendar.DAY_OF_MONTH, 1);
-		currentDay.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
-		
-		Calendar endDay = new GregorianCalendar();
-		endDay.setTime(date);
-		endDay.set(Calendar.HOUR_OF_DAY, 0);
-		endDay.set(Calendar.MINUTE, 0);
-		endDay.set(Calendar.SECOND, 0);
-		endDay.set(Calendar.MILLISECOND, 0);
-		Date targetDate = endDay.getTime();
-		
-		Day currentDayControl = null;
-		for (int week = 0; week < weeks.length; week++) {
-			for (int day = 0; day < 7; day++) {
-				currentDayControl = weeks[week].getDay(day);
-				
-				currentDay.add(Calendar.DAY_OF_MONTH, 1);
-				if (currentDay.getTime().after(targetDate)) {
-					refresh(date, currentDayControl);
-					return;
-				}
-			}
-		}
-	}
-	
-	private void refresh(Date date, Day dayControl) {
-		dayControl.setDate(date);
-		if (eventCountProvider == null || eventContentProvider == null) {
-			return;
-		}
-		int numberOfEventsInDay = eventCountProvider.getNumberOfEventsInDay(date);
-		CalendarableItem controls[] = new CalendarableItem[numberOfEventsInDay];
-		for (int i = 0; i < controls.length; i++) {
-			controls[i] = new CalendarableItem(date);
-		}
-		eventContentProvider.refresh(date, controls);
-		dayControl.setItems(controls);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#refresh()
-	 */
-	public void refresh() {
-		checkWidget();
-		
-		Calendar c = new GregorianCalendar();
-		c.setTime(startDate);
-		int currentMonth = c.get(Calendar.MONTH);
-		
-		Calendar nextMonthCalendar = new GregorianCalendar();
-		nextMonthCalendar.setTime(c.getTime());
-		nextMonthCalendar.add(Calendar.MONTH, 1);
-		Date nextMonth = nextMonthCalendar.getTime();
-		
-		c.set(Calendar.DAY_OF_MONTH, 1);
-		c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek());
-		
-		LinkedList newWeeksArray = new LinkedList();
-		
-		for (int week = 0; c.getTime().before(nextMonth); week++) {
-			if (weeks.length > week) {
-				newWeeksArray.addLast(weeks[week]);
-			} else {
-				Week newWeek = createWeek();
-				newWeeksArray.addLast(newWeek);
-				for (int day=0; day < 7; day++) {
-					Day newDay = newWeek.getDay(day);
-					newDay.setMonthPosition(new Point(day, week));
-					newDay.addKeyListener(dayKeyListener);
-					newDay.addMouseListener(dayMouseListener);
-					newDay.addFocusListener(dayFocusListener);
-				}
-			}
-			for (int day = 0; day < 7; day++) {
-				Day currentDay = ((Week)newWeeksArray.get(week)).getDay(day);
-				currentDay.setInCurrentMonth(c.get(Calendar.MONTH) == currentMonth);
-				currentDay.setDayNumber(c.get(Calendar.DAY_OF_MONTH));
-				refresh(c.getTime(), currentDay);
-				currentDay.layout(true);
-				c.add(Calendar.DAY_OF_MONTH, 1);
-			}
-		}
-		if (weeks.length > newWeeksArray.size()) {
-			for (int extraWeek=newWeeksArray.size(); extraWeek < weeks.length; ++extraWeek) {
-				weeks[extraWeek].dispose();
-			}
-		}
-		if (weeks.length != newWeeksArray.size()) {
-			weeksHolder.layout(true);
-		}
-		weeks = (Week[]) newWeeksArray.toArray(new Week[newWeeksArray.size()]);
-	}
-	
-	private EventContentProvider eventContentProvider = null;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setEventContentProvider(org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventContentProvider)
-	 */
-	public void setEventContentProvider(EventContentProvider eventContentProvider) {
-		checkWidget();
-		
-		this.eventContentProvider = eventContentProvider;
-	}
-	
-	private EventCountProvider eventCountProvider = null;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setEventCountProvider(org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventCountProvider)
-	 */
-	public void setEventCountProvider(EventCountProvider eventCountProvider) {
-		checkWidget();
-		
-		this.eventCountProvider = eventCountProvider;
-	}
-
-	/*
-	 * FIXME: To be used when we support full editing
-	 */
-//	private boolean fireEvents(CalendarableItem calendarableItem, List handlers) {
-//		CalendarableItemEvent e = new CalendarableItemEvent();
-//		e.calendarableItem = calendarableItem;
-//		for (Iterator iter = handlers.iterator(); iter.hasNext();) {
-//			CalendarableItemEventHandler handler = (CalendarableItemEventHandler) iter.next();
-//			handler.handleRequest(e);
-//			if (!e.doit) {
-//				break;
-//			}
-//		}
-//		for (Iterator i = handlers.iterator(); i.hasNext();) {
-//			CalendarableItemEventHandler h = (CalendarableItemEventHandler) i.next();
-//			h.requestHandled(e);
-//			if (!e.doit) {
-//				break;
-//			}
-//		}
-//		return e.doit;
-//	}
-	
-	private List deleteHandlers = new ArrayList();
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#addItemDeleteHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void addItemDeleteHandler(CalendarableItemEventHandler deleteHandler) {
-		checkWidget();
-		
-		deleteHandlers.add(deleteHandler);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#removeItemDeleteHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void removeItemDeleteHandler(CalendarableItemEventHandler deleteHandler) {
-		checkWidget();
-		
-		deleteHandlers.remove(deleteHandler);
-	}
-	
-	private List disposeHandlers = new ArrayList();
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#addItemDisposeHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void addItemDisposeHandler(CalendarableItemEventHandler itemDisposeHandler) {
-		checkWidget();
-		
-		disposeHandlers.add(itemDisposeHandler);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#removeItemDisposeHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void removeItemDisposeHandler(CalendarableItemEventHandler itemDisposeHandler) {
-		checkWidget();
-		
-		disposeHandlers.remove(itemDisposeHandler);
-	}
-	
-	private List itemEditHandlers = new ArrayList();
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#addItemEditHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void addItemEditHandler(CalendarableItemEventHandler handler) {
-		checkWidget();
-		
-		itemEditHandlers.add(handler);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#removeItemEditHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void removeItemEditHandler(CalendarableItemEventHandler handler) {
-		checkWidget();
-		
-		itemEditHandlers.remove(handler);
-	}
-	
-	private List selectionChangeListeners = new ArrayList();
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#addSelectionChangeListener(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableSelectionChangeListener)
-	 */
-	public void addSelectionChangeListener(CalendarableSelectionChangeListener l) {
-		checkWidget();
-		
-		selectionChangeListeners.add(l);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#removeSelectionChangeListener(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableSelectionChangeListener)
-	 */
-	public void removeSelectionChangeListener(CalendarableSelectionChangeListener l) {
-		checkWidget();
-		
-		selectionChangeListeners.remove(l);
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#fireDelete(org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem)
-	 */
-	public boolean fireDelete(CalendarableItem toDelete) {
-		checkWidget();
-		
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setTimeBreakdown(int,
-	 *      int)
-	 */
-	public void setTimeBreakdown(int numberOfDays, int numberOfDivisionsInHour) {
-		checkWidget();
-		// NOOP
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#getNumberOfDays()
-	 */
-	public int getNumberOfDays() {
-		checkWidget();
-		
-		// Return the number of days in the current month
-		Calendar c = new GregorianCalendar();
-		c.setTime(startDate);
-		return c.getActualMaximum(Calendar.DAY_OF_MONTH);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#getNumberOfDivisionsInHour()
-	 */
-	public int getNumberOfDivisionsInHour() {
-		checkWidget();
-		
-		// NOOP
-		return -1;
-	}
-	
-	private MonthCalendarSelectedDay selectedDay = null;
-	
-	/**
-	 * Method getSelectedDay.  Returns the currently-selected day.
-	 * 
-	 * @return The current MonthCalendarSelection which represents the currently-
-	 * selected day.
-	 */
-	public MonthCalendarSelectedDay getSelectedDay() {
-		checkWidget();
-		
-		return selectedDay;
-	}
-	
-	private List focusListeners = new ArrayList();
-	
-	/**
-	 * Adds the listener to the collection of listeners who will
-	 * be notified when the control gains or loses focus, by sending
-	 * it one of the messages defined in the <code>FocusListener</code>
-	 * interface.
-	 * <p>
-	 * In addition, e.data in the FocusEvent is the current MonthCalendarSelectedDay.
-	 *
-	 * @param listener the listener which should be notified
-	 *
-	 * @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 FocusListener
-	 * @see #removeFocusListener
-	 * @see org.eclipse.swt.widgets.Control#addFocusListener(org.eclipse.swt.events.FocusListener)
-	 */
-	public void addFocusListener(FocusListener listener) {
-		checkWidget();
-		
-		super.addFocusListener(listener);
-		focusListeners.add(listener);
-	}
-	
-	/**
-	 * Removes the listener from the collection of listeners who will
-	 * be notified when the control gains or loses focus.
-	 * <p>
-	 * In addition, e.data in the FocusEvent is the current MonthCalendarSelectedDay.
-	 *
-	 * @param listener the listener which should no longer be notified
-	 *
-	 * @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 FocusListener
-	 * @see #addFocusListener
-	 * @see org.eclipse.swt.widgets.Control#removeFocusListener(org.eclipse.swt.events.FocusListener)
-	 */
-	public void removeFocusListener(FocusListener listener) {
-		checkWidget();
-		
-		super.removeFocusListener(listener);
-		focusListeners.remove(listener);
-	}
-	
-	private FocusListener dayFocusListener = new FocusListener() {
-		public void focusGained(FocusEvent e) {
-			Day day = (Day) e.widget;
-			Point coordinates = day.getMonthPosition();
-			selectedDay = new MonthCalendarSelectedDay(day.getDate(), coordinates);
-			e.data = selectedDay;
-			
-			for (Iterator focusListenersIter = focusListeners.iterator(); focusListenersIter.hasNext();) {
-				FocusListener listener = (FocusListener) focusListenersIter.next();
-				listener.focusGained(e);
-			}
-		}
-
-		public void focusLost(FocusEvent e) {
-			Day day = (Day) e.widget;
-			Point coordinates = day.getMonthPosition();
-			e.data = new MonthCalendarSelectedDay(day.getDate(), coordinates);
-			
-			for (Iterator focusListenersIter = focusListeners.iterator(); focusListenersIter.hasNext();) {
-				FocusListener listener = (FocusListener) focusListenersIter.next();
-				listener.focusLost(e);
-			}
-		}
-	};
-	
-	private List mouseListeners = new ArrayList();
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#addMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-	public void addMouseListener(MouseListener listener) {
-		checkWidget();
-		
-		super.addMouseListener(listener);
-		mouseListeners.add(listener);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#removeMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-	public void removeMouseListener(MouseListener listener) {
-		checkWidget();
-		
-		super.removeMouseListener(listener);
-		mouseListeners.remove(listener);
-	}
-	
-	private MouseListener dayMouseListener = new MouseListener() {
-		private Day getDay(MouseEvent e) {
-			Control control = (Control) e.widget;
-			while (!(control instanceof Day)) {
-				control = control.getParent();
-			}
-			Day day = (Day) control;
-			return day;
-		}
-		public void mouseDown(MouseEvent e) {
-			Day day = getDay(e);
-			Point coordinates = day.getMonthPosition();
-			e.data = new MonthCalendarSelectedDay(day.getDate(), coordinates);
-
-			for (Iterator mouseListenersIter = mouseListeners.iterator(); mouseListenersIter.hasNext();) {
-				MouseListener listener = (MouseListener) mouseListenersIter.next();
-				listener.mouseDown(e);
-			}
-		}
-		public void mouseUp(MouseEvent e) {
-			Day day = getDay(e);
-			Point coordinates = day.getMonthPosition();
-			e.data = new MonthCalendarSelectedDay(day.getDate(), coordinates);
-			
-			for (Iterator mouseListenersIter = mouseListeners.iterator(); mouseListenersIter.hasNext();) {
-				MouseListener listener = (MouseListener) mouseListenersIter.next();
-				listener.mouseUp(e);
-			}
-		}
-		public void mouseDoubleClick(MouseEvent e) {
-			Day day = getDay(e);
-			Point coordinates = day.getMonthPosition();
-			e.data = new MonthCalendarSelectedDay(day.getDate(), coordinates);
-			
-			for (Iterator mouseListenersIter = mouseListeners.iterator(); mouseListenersIter.hasNext();) {
-				MouseListener listener = (MouseListener) mouseListenersIter.next();
-				listener.mouseDoubleClick(e);
-			}
-		}
-	};
-
-	private List keyListeners = new ArrayList();
-	
-	/**
-	 * Adds the listener to the collection of listeners who will
-	 * be notified when keys are pressed and released on the system keyboard, by 
-	 * sending it one of the messages defined in the <code>KeyListener</code>
-	 * interface.
-	 * <p>
-	 * In addition to the usual KeyListener contract, MonthCalendar will honor
-	 * e.doit and will not perform its usual key processing if any KeyListener
-	 * sets e.doit to false.
-	 * <p>
-	 * In addition to the usual KeyEvent fields, e.data is set to the current
-	 * MonthCalendarSelection.
-	 *
-	 * @param listener the listener which should be notified
-	 *
-	 * @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 org.eclipse.swt.widgets.Control#addKeyListener(org.eclipse.swt.events.KeyListener)
-	 */
-	public void addKeyListener(KeyListener listener) {
-		checkWidget();
-		
-		super.addKeyListener(listener);
-		keyListeners.add(listener);
-	}
-
-	/**
-	 * Removes the listener from the collection of listeners who will
-	 * be notified when keys are pressed and released on the system keyboard.
-	 *
-	 * @param listener the listener which should no longer be notified
-	 *
-	 * @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 KeyListener
-	 * @see #addKeyListener
-	 * @see org.eclipse.swt.widgets.Control#removeKeyListener(org.eclipse.swt.events.KeyListener)
-	 */
-	public void removeKeyListener(KeyListener listener) {
-		checkWidget();
-		
-		super.removeKeyListener(listener);
-		keyListeners.remove(listener);
-	}
-
-	private KeyListener dayKeyListener = new KeyAdapter() {
-		public void keyPressed(KeyEvent e) {
-			Day day = (Day) e.widget;
-			Point coordinates = day.getMonthPosition();
-			e.data = new MonthCalendarSelectedDay(day.getDate(), coordinates);
-			
-			for (Iterator keyListenersIter = keyListeners.iterator(); keyListenersIter.hasNext();) {
-				KeyListener listener = (KeyListener) keyListenersIter.next();
-				listener.keyPressed(e);
-			}
-
-			if (!e.doit) {
-				return;
-			}
-			
-			switch (e.keyCode) {
-			case SWT.ARROW_UP:
-				if (coordinates.y > 0) {
-					Day newDay = weeks[coordinates.y-1].getDay(coordinates.x);
-					newDay.setFocus();
-				}
-				return;
-			case SWT.ARROW_DOWN:
-				if (coordinates.y < weeks.length-1) {
-					Day newDay = weeks[coordinates.y+1].getDay(coordinates.x);
-					newDay.setFocus();
-				}
-				return;
-			}
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.events.KeyAdapter#keyReleased(org.eclipse.swt.events.KeyEvent)
-		 */
-		public void keyReleased(KeyEvent e) {
-			Day day = (Day) e.widget;
-			Point coordinates = day.getMonthPosition();
-			e.data = new MonthCalendarSelectedDay(day.getDate(), coordinates);
-			
-			for (Iterator keyListenersIter = keyListeners.iterator(); keyListenersIter.hasNext();) {
-				KeyListener listener = (KeyListener) keyListenersIter.next();
-				listener.keyReleased(e);
-			}
-
-			// No need for this logic here yet, but leaving it commented
-			// as a reminder...
-			
-			// if (!e.doit) return;
-		}
-	};
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Composite#setFocus()
-	 */
-	public boolean setFocus() {
-		checkWidget();
-		
-		Day newDay = weeks[0].getDay(0);
-		return newDay.setFocus();
-	}
-
-
-} // @jve:decl-index=0:visual-constraint="10,10"
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarSelectedDay.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarSelectedDay.java
deleted file mode 100644
index 5d53d3c..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarSelectedDay.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.month;
-
-import java.util.Date;
-
-import org.eclipse.swt.graphics.Point;
-
-/**
- * Represents the currrently-selected day in the month calendar.
- * 
- * @since 3.3
- */
-public class MonthCalendarSelectedDay {
-
-	/**
-	 * The selected Date
-	 */
-	public final Date date;
-	
-	/**
-	 * The coordinates (day, week) of the selected date in the current month
-	 * where day is a number 0-6 representing [Sunday .. Saturday] and week
-	 * is a 0-based offset representing the the week number of the selected
-	 * date's week within the month.
-	 */
-	public final Point coordinates;
-
-	/**
-	 * Constructor MonthCalendarSelection.  Construct a MonthCalendarSelection.
-	 * 
-	 * @param date The selected date.
-	 * @param coordinates The coordinates of the selected date.
-	 */
-	public MonthCalendarSelectedDay(Date date, Point coordinates) {
-		this.date = date;
-		this.coordinates = coordinates;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarTest.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarTest.java
deleted file mode 100644
index 1c13895..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.month;
-
-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 MonthCalendarTest {
-
-	private Shell sShell = null;  //  @jve:decl-index=0:visual-constraint="10,10"
-	
-	/**
-    * This method initializes monthCalendar	
-    *
-    */
-   private void createMonthCalendar() {
-      new MonthCalendar(sShell, SWT.NONE);
-   }
-
-   /**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = Display.getDefault();
-		MonthCalendarTest thisClass = new MonthCalendarTest();
-		thisClass.createSShell();
-		thisClass.sShell.open();
-
-		while (!thisClass.sShell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-
-	/**
-	 * This method initializes sShell
-	 */
-	private void createSShell() {
-		sShell = new Shell();
-		sShell.setText("Shell");
-		sShell.setLayout(new FillLayout());
-		createMonthCalendar();
-		sShell.setSize(new org.eclipse.swt.graphics.Point(624,578));
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarableItemControl.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarableItemControl.java
deleted file mode 100644
index 2250139..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/MonthCalendarableItemControl.java
+++ /dev/null
@@ -1,852 +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
- *     The Pampered Chef - Adapted for month calendar
- *******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.month;
-
-import org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-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.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.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.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 3.2
- */
-public class MonthCalendarableItemControl extends Canvas 
-	implements ICalendarableItemControl 
-{
-//	private CLabel label;
-	
-	/** Gap between icon and text */
-	private static final int GAP = 5;
-	/** Left and right margins */
-	private static final int INDENT = 3;
-	/** a string inserted in the middle of text that has been shortened */
-	private static final String ELLIPSIS = "..."; //$NON-NLS-1$ // could use the ellipsis glyph on some platforms "\u2026"
-	/** the alignment. Either CENTER, RIGHT, LEFT. Default is LEFT*/
-	private int align = SWT.LEFT;
-	private int hIndent = INDENT;
-	private int vIndent = INDENT;
-	/** the current text */
-	private String text;
-	/** the current icon */
-	private Image image;
-	// 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;
-	
-	private Image backgroundImage;
-	private Color[] gradientColors;
-	private int[] gradientPercents;
-	private boolean gradientVertical;
-	private Color background;
-	
-	private static int DRAW_FLAGS = SWT.DRAW_MNEMONIC | SWT.DRAW_TAB | SWT.DRAW_TRANSPARENT | SWT.DRAW_DELIMITER;
-	
-	/**
-	 * @param parent
-	 * @param style
-	 */
-	public MonthCalendarableItemControl(Composite parent, int style) {
-		super(parent, checkStyle(style));
-		if ((style & (SWT.CENTER | SWT.RIGHT)) == 0) style |= SWT.LEFT;
-		if ((style & SWT.CENTER) != 0) align = SWT.CENTER;
-		if ((style & SWT.RIGHT) != 0)  align = SWT.RIGHT;
-		if ((style & SWT.LEFT) != 0)   align = SWT.LEFT;
-		
-		addPaintListener(new PaintListener(){
-			public void paintControl(PaintEvent event) {
-				onPaint(event);
-			}
-		});
-		
-		addDisposeListener(new DisposeListener(){
-			public void widgetDisposed(DisposeEvent event) {
-				onDispose(event);
-			}
-		});
-
-		initAccessible();
-		
-		setBackground(parent.getBackground());
-	}
-	
-	private CalendarableItem calendarableItem = null;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#getCalendarableItem()
-	 */
-	public CalendarableItem getCalendarableItem() {
-		return calendarableItem;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setCalendarableItem(org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem)
-	 */
-	public void setCalendarableItem(CalendarableItem calendarable) {
-		this.calendarableItem = calendarable;
-	}
-
-	private int clipping = 0;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#getClipping()
-	 */
-	public int getClipping() {
-		return clipping;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setClipping(int)
-	 */
-	public void setClipping(int clipping) {
-		this.clipping = clipping;
-	}
-	
-	private int continued = 0;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#getContinued()
-	 */
-	public int getContinued() {
-		return continued;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setContinued(int)
-	 */
-	public void setContinued(int continued) {
-		this.continued = continued;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setSelected(boolean)
-	 */
-	public void setSelected(boolean selected) {
-		// noop
-		// We currently don't allow an item to be selected.
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setImage(org.eclipse.swt.graphics.Image)
-	 */
-//	public void setImage(Image image) {
-//		label.setImage(image);
-//	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl#setText(java.lang.String)
-	 */
-//	public void setText(String text) {
-//		label.setText(text);
-//	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setMenu(org.eclipse.swt.widgets.Menu)
-	 */
-//	public void setMenu(Menu menu) {
-//		super.setMenu(menu);
-//		label.setMenu(menu);
-//	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setToolTipText(java.lang.String)
-	 */
-//	public void setToolTipText(String string) {
-//		super.setToolTipText(string);
-//		label.setToolTipText(string);
-//	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#addMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-//	public void addMouseListener(MouseListener listener) {
-//		super.addMouseListener(listener);
-//		label.addMouseListener(listener);
-//	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#removeMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-//	public void removeMouseListener(MouseListener listener) {
-//		super.removeMouseListener(listener);
-//		label.removeMouseListener(listener);
-//	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setBackground(org.eclipse.swt.graphics.Color)
-	 */
-//	public void setBackground(Color color) {
-//		super.setBackground(color);
-//		label.setBackground(color);
-//	}
-
-	/**
-	 * Check the style bits to ensure that no invalid styles are applied.
-	 */
-	private static int checkStyle (int style) {
-		if ((style & SWT.BORDER) != 0) style |= SWT.SHADOW_IN;
-		int mask = SWT.SHADOW_IN | SWT.SHADOW_OUT | SWT.SHADOW_NONE | SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT;
-		style = style & mask;
-		return style |= SWT.NO_FOCUS | SWT.DOUBLE_BUFFERED;
-	}
-
-//	protected void checkSubclass () {
-//		String name = getClass().getName ();
-//		String validName = CLabel.class.getName();
-//		if (!validName.equals(name)) {
-//			SWT.error (SWT.ERROR_INVALID_SUBCLASS);
-//		}
-//	}
-
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		checkWidget();
-		Point e = getTotalSize(image, text);
-		if (wHint == SWT.DEFAULT){
-			e.x += 2*hIndent;
-		} else {
-			e.x = wHint;
-		}
-		if (hHint == SWT.DEFAULT) {
-			e.y += 2*vIndent;
-		} else {
-			e.y = hHint;
-		}
-		return e;
-	}
-	/**
-	 * Draw a rectangle in the given colors.
-	 */
-	private void drawBevelRect(GC gc, int x, int y, int w, int h, Color topleft, Color bottomright) {
-		gc.setForeground(bottomright);
-		gc.drawLine(x+w, y,   x+w, y+h);
-		gc.drawLine(x,   y+h, x+w, y+h);
-		
-		gc.setForeground(topleft);
-		gc.drawLine(x, y, x+w-1, y);
-		gc.drawLine(x, y, x,     y+h-1);
-	}
-	/*
-	 * Return the lowercase of the first non-'&' character following
-	 * an '&' character in the given string. If there are no '&'
-	 * characters in the given string, return '\0'.
-	 */
-	char _findMnemonic (String string) {
-		if (string == null) return '\0';
-		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 Character.toLowerCase (string.charAt (index));
-			index++;
-		} while (index < length);
-	 	return '\0';
-	}
-	/**
-	 * Returns the alignment.
-	 * The alignment style (LEFT, CENTER or RIGHT) is returned.
-	 * 
-	 * @return SWT.LEFT, SWT.RIGHT or SWT.CENTER
-	 */
-	public int getAlignment() {
-		//checkWidget();
-		return align;
-	}
-	/**
-	 * Return the CLabel's image or <code>null</code>.
-	 * 
-	 * @return the image of the label or null
-	 */
-	public Image getImage() {
-		//checkWidget();
-		return image;
-	}
-	/**
-	 * Compute the minimum size.
-	 */
-	private Point getTotalSize(Image image, String text) {
-		Point size = new Point(0, 0);
-
-		if (image != null) {
-			Rectangle r = image.getBounds();
-			size.x += r.width;
-			size.y += r.height;
-		}
-			
-		GC gc = new GC(this);
-		if (text != null && text.length() > 0) {
-			Point e = gc.textExtent(text, DRAW_FLAGS);
-			size.x += e.x;
-			size.y = Math.max(size.y, e.y);
-			if (image != null) size.x += GAP;
-		} else {
-			size.y = Math.max(size.y, gc.getFontMetrics().getHeight());
-		}
-		gc.dispose();
-		
-		return size;
-	}
-	public int getStyle () {
-		int style = super.getStyle();
-		switch (align) {
-			case SWT.RIGHT: style |= SWT.RIGHT; break;
-			case SWT.CENTER: style |= SWT.CENTER; break;
-			case SWT.LEFT: style |= SWT.LEFT; break;
-		}
-		return style;
-	}
-
-	/**
-	 * Return the Label's text.
-	 * 
-	 * @return the text of the label or null
-	 */
-	public String getText() {
-		//checkWidget();
-		return text;
-	}
-	public String getToolTipText () {
-		checkWidget();
-		return appToolTipText;
-	}
-	private void initAccessible() {
-		Accessible accessible = getAccessible();
-		accessible.addAccessibleListener(new AccessibleAdapter() {
-			public void getName(AccessibleEvent e) {
-				e.result = getText();
-			}
-			
-			public void getHelp(AccessibleEvent e) {
-				e.result = getToolTipText();
-			}
-			
-			public void getKeyboardShortcut(AccessibleEvent e) {
-				char mnemonic = _findMnemonic(MonthCalendarableItemControl.this.text);	
-				if (mnemonic != '\0') {
-					e.result = "Alt+"+mnemonic; //$NON-NLS-1$
-				}
-			}
-		});
-			
-		accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-			public void getChildAtPoint(AccessibleControlEvent e) {
-				e.childID = ACC.CHILDID_SELF;
-			}
-			
-			public void getLocation(AccessibleControlEvent e) {
-				Rectangle rect = getDisplay().map(getParent(), null, getBounds());
-				e.x = rect.x;
-				e.y = rect.y;
-				e.width = rect.width;
-				e.height = rect.height;
-			}
-			
-			public void getChildCount(AccessibleControlEvent e) {
-				e.detail = 0;
-			}
-			
-			public void getRole(AccessibleControlEvent e) {
-				e.detail = ACC.ROLE_LABEL;
-			}
-			
-			public void getState(AccessibleControlEvent e) {
-				e.detail = ACC.STATE_READONLY;
-			}
-		});
-	}
-	void onDispose(DisposeEvent event) {
-		gradientColors = null;
-		gradientPercents = null;
-		backgroundImage = null;
-		text = null;
-		image = null;
-		appToolTipText = null;
-	}
-
-	void onPaint(PaintEvent event) {
-		Rectangle rect = getClientArea();
-		if (rect.width == 0 || rect.height == 0) return;
-		
-		boolean shortenText = false;
-		String t = text;
-		Image img = image;
-		int availableWidth = Math.max(0, rect.width - 2*hIndent);
-		Point extent = getTotalSize(img, t);
-		if (extent.x > availableWidth) {
-			img = null;
-			extent = getTotalSize(img, t);
-			if (extent.x > availableWidth) {
-				shortenText = true;
-			}
-		}
-		
-		GC gc = event.gc;
-		String[] lines = text == null ? null : splitString(text); 
-		
-		// shorten the text
-		if (shortenText) {
-			extent.x = 0;
-		    for(int i = 0; i < lines.length; i++) {
-		    	Point e = gc.textExtent(lines[i], DRAW_FLAGS);
-		    	if (e.x > availableWidth) {
-		    		lines[i] = shortenText(gc, lines[i], availableWidth);
-		    		extent.x = Math.max(extent.x, getTotalSize(null, lines[i]).x);
-		    	} else {
-		    		extent.x = Math.max(extent.x, e.x);
-		    	}
-		    }
-			if (appToolTipText == null) {
-				super.setToolTipText(text);
-			}
-		} else {
-			super.setToolTipText(appToolTipText);
-		}
-			
-		// determine horizontal position
-		int x = rect.x + hIndent;
-		if (align == SWT.CENTER) {
-			x = (rect.width - extent.x)/2;
-		}
-		if (align == SWT.RIGHT) {
-			x = rect.width - hIndent - extent.x;
-		}
-		
-		// draw a background image behind the text
-		try {
-			if (backgroundImage != null) {
-				// draw a background image behind the text
-				Rectangle imageRect = backgroundImage.getBounds();
-				// tile image to fill space
-				gc.setBackground(getBackground());
-				gc.fillRectangle(rect);
-				int xPos = 0;
-				while (xPos < rect.width) {
-					int yPos = 0;
-					while (yPos < rect.height) {
-						gc.drawImage(backgroundImage, xPos, yPos);
-						yPos += imageRect.height;
-					}
-					xPos += imageRect.width;
-				}
-			} else if (gradientColors != null) {
-				// draw a gradient behind the text
-				final Color oldBackground = gc.getBackground();
-				if (gradientColors.length == 1) {
-					if (gradientColors[0] != null) gc.setBackground(gradientColors[0]);
-					gc.fillRectangle(0, 0, rect.width, rect.height);
-				} else {
-					final Color oldForeground = gc.getForeground();
-					Color lastColor = gradientColors[0];
-					if (lastColor == null) lastColor = oldBackground;
-					int pos = 0;
-					for (int i = 0; i < gradientPercents.length; ++i) {
-						gc.setForeground(lastColor);
-						lastColor = gradientColors[i + 1];
-						if (lastColor == null) lastColor = oldBackground;
-						gc.setBackground(lastColor);
-						if (gradientVertical) {
-							final int gradientHeight = (gradientPercents[i] * rect.height / 100) - pos;
-							gc.fillGradientRectangle(0, pos, rect.width, gradientHeight, true);
-							pos += gradientHeight;
-						} else {
-							final int gradientWidth = (gradientPercents[i] * rect.width / 100) - pos;
-							gc.fillGradientRectangle(pos, 0, gradientWidth, rect.height, false);
-							pos += gradientWidth;
-						}
-					}
-					if (gradientVertical && pos < rect.height) {
-						gc.setBackground(getBackground());
-						gc.fillRectangle(0, pos, rect.width, rect.height - pos);
-					}
-					if (!gradientVertical && pos < rect.width) {
-						gc.setBackground(getBackground());
-						gc.fillRectangle(pos, 0, rect.width - pos, rect.height);
-					}
-					gc.setForeground(oldForeground);
-				}
-				gc.setBackground(oldBackground);
-			} else {
-				if (background != null || (getStyle() & SWT.DOUBLE_BUFFERED) == 0) {
-					gc.setBackground(getBackground());
-					gc.fillRectangle(rect);
-				}
-			}
-		} catch (SWTException e) {
-			if ((getStyle() & SWT.DOUBLE_BUFFERED) == 0) {
-				gc.setBackground(getBackground());
-				gc.fillRectangle(rect);
-			}
-		}
-
-		// draw border
-		int style = getStyle();
-		if ((style & SWT.SHADOW_IN) != 0 || (style & SWT.SHADOW_OUT) != 0) {
-			paintBorder(gc, rect);
-		}
-
-		// draw the image
-		if (img != null) {
-			Rectangle imageRect = img.getBounds();
-			gc.drawImage(img, 0, 0, imageRect.width, imageRect.height, 
-			                x, (rect.height-imageRect.height)/2, imageRect.width, imageRect.height);
-			x +=  imageRect.width + GAP;
-			extent.x -= imageRect.width + GAP;
-		}
-		// draw the text
-		if (lines != null) {
-			int lineHeight = gc.getFontMetrics().getHeight();
-			int textHeight = lines.length * lineHeight;
-			int lineY = Math.max(vIndent, rect.y + (rect.height - textHeight) / 2);
-			gc.setForeground(getForeground());
-			for (int i = 0; i < lines.length; i++) {
-				int lineX = x;
-				if (lines.length > 1) {
-					if (align == SWT.CENTER) {
-						int lineWidth = gc.textExtent(lines[i], DRAW_FLAGS).x;
-						lineX = x + Math.max(0, (extent.x - lineWidth) / 2);
-					}
-					if (align == SWT.RIGHT) {
-						int lineWidth = gc.textExtent(lines[i], DRAW_FLAGS).x;
-						lineX = Math.max(x, rect.x + rect.width - hIndent - lineWidth);
-					}
-				}
-				gc.drawText(lines[i], lineX, lineY, DRAW_FLAGS);
-				lineY += lineHeight;
-			}
-		}
-	}
-	/**
-	 * Paint the Label's border.
-	 */
-	private void paintBorder(GC gc, Rectangle r) {
-		Display disp= getDisplay();
-
-		Color c1 = null;
-		Color c2 = null;
-		
-		int style = getStyle();
-		if ((style & SWT.SHADOW_IN) != 0) {
-			c1 = disp.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-			c2 = disp.getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
-		}
-		if ((style & SWT.SHADOW_OUT) != 0) {		
-			c1 = disp.getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW);
-			c2 = disp.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-		}
-			
-		if (c1 != null && c2 != null) {
-			gc.setLineWidth(1);
-			drawBevelRect(gc, r.x, r.y, r.width-1, r.height-1, c1, c2);
-		}
-	}
-	/**
-	 * Set the alignment of the CLabel.
-	 * Use the values LEFT, CENTER and RIGHT to align image and text within the available space.
-	 * 
-	 * @param align the alignment style of LEFT, RIGHT or CENTER
-	 * 
-	 * @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 value of align is not one of SWT.LEFT, SWT.RIGHT or SWT.CENTER</li>
-	 * </ul>
-	 */
-	public void setAlignment(int align) {
-		checkWidget();
-		if (align != SWT.LEFT && align != SWT.RIGHT && align != SWT.CENTER) {
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-		}
-		if (this.align != align) {
-			this.align = align;
-			redraw();
-		}
-	}
-
-	public void setBackground (Color color) {
-		super.setBackground (color);
-		// Are these settings the same as before?
-		if (backgroundImage == null && 
-			gradientColors == null && 
-			gradientPercents == null) {
-			if (color == null) {
-				if (background == null) return;
-			} else {
-				if (color.equals(background)) return;
-			}		
-		}
-		background = color;
-		backgroundImage = null;
-		gradientColors = null;
-		gradientPercents = null;
-		redraw ();
-	}
-
-	/**
-	 * Specify a gradient of colours to be drawn in the background of the CLabel.
-	 * <p>For example, to draw a gradient that varies from dark blue to blue and then to
-	 * white and stays white for the right half of the label, use the following call 
-	 * to setBackground:</p>
-	 * <pre>
-	 *	clabel.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 from 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 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 values of colors and percents are not consistent</li>
-	 * </ul>
-	 */
-	public void setBackground(Color[] colors, int[] percents) {
-		setBackground(colors, percents, false);
-	}
-	/**
-	 * Specify a gradient of colours to be drawn in the background of the CLabel.
-	 * <p>For example, to draw a gradient that varies from dark blue to white in the vertical,
-	 * direction use the following call 
-	 * to setBackground:</p>
-	 * <pre>
-	 *	clabel.setBackground(new Color[]{display.getSystemColor(SWT.COLOR_DARK_BLUE), 
-	 *		                           display.getSystemColor(SWT.COLOR_WHITE)},
-	 *		                 new int[] {100}, true);
-	 * </pre>
-	 *
-	 * @param colors an array of Color that specifies the colors to appear in the gradient 
-	 *               in order of appearance from left/top to right/bottom;  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/height 
-	 *                 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.
-	 * @param vertical indicate the direction of the gradient.  True is vertical and false is horizontal.
-	 * 
-	 * @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 values of colors and percents are not consistent</li>
-	 * </ul>
-	 * 
-	 * @since 3.0
-	 */
-	public void setBackground(Color[] colors, int[] percents, boolean vertical) {	
-		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[colors.length - 1]};
-				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?
-		final Color background = getBackground();
-		if (backgroundImage == null) {
-			if ((gradientColors != null) && (colors != null) && 
-				(gradientColors.length == colors.length)) {
-				boolean same = false;
-				for (int i = 0; i < gradientColors.length; i++) {
-					same = (gradientColors[i] == colors[i]) ||
-						((gradientColors[i] == null) && (colors[i] == background)) ||
-						((gradientColors[i] == background) && (colors[i] == null));
-					if (!same) break;
-				}
-				if (same) {
-					for (int i = 0; i < gradientPercents.length; i++) {
-						same = gradientPercents[i] == percents[i];
-						if (!same) break;
-					}
-				}
-				if (same && this.gradientVertical == vertical) return;
-			}
-		} else {
-			backgroundImage = null;
-		}
-		// Store the new settings
-		if (colors == null) {
-			gradientColors = null;
-			gradientPercents = null;
-			gradientVertical = false;
-		} else {
-			gradientColors = new Color[colors.length];
-			for (int i = 0; i < colors.length; ++i)
-				gradientColors[i] = (colors[i] != null) ? colors[i] : background;
-			gradientPercents = new int[percents.length];
-			for (int i = 0; i < percents.length; ++i)
-				gradientPercents[i] = percents[i];
-			gradientVertical = vertical;
-		}
-		// Refresh with the new settings
-		redraw();
-	}
-	/**
-	 * Set the image to be drawn in the background of the label.
-	 * 
-	 * @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 setBackground(Image image) {
-		checkWidget();
-		if (image == backgroundImage) return;
-		if (image != null) {
-			gradientColors = null;
-			gradientPercents = null;
-		}
-		backgroundImage = image;
-		redraw();
-		
-	}
-	public void setFont(Font font) {
-		super.setFont(font);
-		redraw();
-	}
-	/**
-	 * Set the label's Image.
-	 * The value <code>null</code> clears it.
-	 * 
-	 * @param image the image to be displayed in the label 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 setImage(Image image) {
-		checkWidget();
-		if (image != this.image) {
-			this.image = image;
-			redraw();
-		}
-	}
-	/**
-	 * Set the label's text.
-	 * The value <code>null</code> clears it.
-	 * 
-	 * @param text the text to be displayed in the label 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 setText(String text) {
-		checkWidget();
-		if (text == null) text = ""; //$NON-NLS-1$
-		if (! text.equals(this.text)) {
-			this.text = text;
-			redraw();
-		}
-	}
-	public void setToolTipText (String string) {
-		super.setToolTipText (string);
-		appToolTipText = super.getToolTipText();
-	}
-	/**
-	 * Shorten the given text <code>t</code> so that its length doesn't exceed
-	 * the given width. The default implementation replaces characters in the
-	 * center of the original string with an ellipsis ("...").
-	 * Override if you need a different strategy.
-	 * 
-	 * @param gc the gc to use for text measurement
-	 * @param t the text to shorten
-	 * @param width the width to shorten the text to, in pixels
-	 * @return the shortened text
-	 */
-	protected String shortenText(GC gc, String t, int width) {
-		if (t == null) return null;
-		int w = gc.textExtent(ELLIPSIS, DRAW_FLAGS).x;
-		int l = t.length();
-		int pivot = l/2;
-		int s = pivot;
-		int e = pivot+1;
-		while (s >= 0 && e < l) {
-			String s1 = t.substring(0, s);
-			String s2 = t.substring(e, l);
-			int l1 = gc.textExtent(s1, DRAW_FLAGS).x;
-			int l2 = gc.textExtent(s2, DRAW_FLAGS).x;
-			if (l1+w+l2 < width) {
-				t = s1 + ELLIPSIS + s2;
-				break;
-			}
-			s--;
-			e++;
-		}
-		return t;
-	}
-
-	private String[] splitString(String text) {
-	    String[] lines = new String[1];
-	    int start = 0, pos;
-	    do {
-	        pos = text.indexOf('\n', start);
-	        if (pos == -1) {
-	        	lines[lines.length - 1] = text.substring(start);
-	        } else {
-	            boolean crlf = (pos > 0) && (text.charAt(pos - 1) == '\r');
-	            lines[lines.length - 1] = text.substring(start, pos - (crlf ? 1 : 0));
-	            start = pos + 1;
-	            String[] newLines = new String[lines.length+1];
-	            System.arraycopy(lines, 0, newLines, 0, lines.length);
-	       		lines = newLines;
-	        }
-	    } while (pos != -1);
-	    return lines;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/Day.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/Day.java
deleted file mode 100644
index 3f26267..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/Day.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.examples.databinding.compositetable.month.internal;
-
-import java.util.Date;
-import java.util.Iterator;
-import java.util.LinkedList;
-
-import org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl;
-import org.eclipse.jface.examples.databinding.compositetable.month.MonthCalendarableItemControl;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-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.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.KeyListener;
-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.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-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.Display;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * An SWT custom control representing a single day in a month-mode calendar.
- */
-public class Day extends Canvas implements PaintListener, DisposeListener {
-	private final Color FOCUS_RUBBERBAND;
-	private Color CURRENT_MONTH;
-	private Color OTHER_MONTH;
-	private Color CELL_BACKGROUND_LIGHT;
-	
-	private static final int FOCUS_LINE_WIDTH = 2;
-	private boolean focusControl = false;
-
-	private static final int _SIZE_MULTIPLIER = 7;
-	private Label dayNumber = null;
-	private Label spacer = null;
-	private Point textBounds;
-
-	private Point monthPosition = null;
-	
-	/**
-	 * @param parent
-	 * @param style
-	 */
-	public Day(Composite parent, int style) {
-		super(parent, style);
-		
-		Display display = Display.getCurrent();
-		FOCUS_RUBBERBAND = new Color(display, lighten(saturate(display.getSystemColor(SWT.COLOR_TITLE_BACKGROUND).getRGB(), .85f), -.333f));
-		CURRENT_MONTH = display.getSystemColor(SWT.COLOR_WHITE);
-		OTHER_MONTH = new Color(display, new RGB(230, 230, 230));
-		CELL_BACKGROUND_LIGHT = new Color(display, new RGB(248, 248, 248));
-		
-		initialize();
-		
-		addTraverseListener(traverseListener);
-		addKeyListener(keyListener);
-		addMouseListener(mouseListener);
-		spacer.addMouseListener(mouseListener);
-		dayNumber.addMouseListener(mouseListener);
-		addFocusListener(focusListener);
-		addPaintListener(this);
-		addDisposeListener(this);
-	}
-	
-	/**
-	 * Sets the color's saturation to the specified value.
-	 * 
-	 * @param color The RGB of the color
-	 * @param saturation the new saturation (between 0 and 1)
-	 * @return a Color that is saturated by the specified amount
-	 */
-	private RGB saturate(RGB color, float saturation) {
-		float[] hsb = color.getHSB();
-		return new RGB(hsb[0], saturation, hsb[2]);
-	}
-	
-	/**
-	 * @param color The RGB of the color
-	 * @param amount The amount to lighten as a percentage expresssed as a float between -1 and 1.
-	 * @return The new RGB that is lightened by the specified amount
-	 */
-	private RGB lighten(RGB color, float amount) {
-		float[] hsb = color.getHSB();
-		float b = hsb[2] + hsb[2] * amount;
-		if (b < 0) b=0;
-		if (b > 1) b=1;
-		return new RGB(hsb[0], hsb[1], b);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
-	 */
-	public void widgetDisposed(DisposeEvent e) {
-		FOCUS_RUBBERBAND.dispose();
-		OTHER_MONTH.dispose();
-		CELL_BACKGROUND_LIGHT.dispose();
-		
-		removeTraverseListener(traverseListener);
-		removeKeyListener(keyListener);
-		removeMouseListener(mouseListener);
-		spacer.removeMouseListener(mouseListener);
-		dayNumber.removeMouseListener(mouseListener);
-		removeFocusListener(focusListener);
-		removePaintListener(this);
-		removeDisposeListener(this);
-	}
-
-	private void initialize() {
-		GridData gd = new GridData();
-		gd.horizontalSpan = 2;
-		gd.verticalAlignment = GridData.FILL;
-		gd.grabExcessVerticalSpace = true;
-		gd.grabExcessHorizontalSpace = true;
-		gd.horizontalAlignment = GridData.FILL;
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.verticalAlignment = GridData.CENTER;
-		spacer = new Label(this, SWT.NONE);
-		spacer.setLayoutData(gridData);
-		spacer.setBackground(Display.getCurrent().getSystemColor(
-				SWT.COLOR_LIST_BACKGROUND));
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 2;
-		gridLayout.verticalSpacing = 0;
-		dayNumber = new Label(this, SWT.NONE);
-		dayNumber.setFont(JFaceResources.getFontRegistry().get(
-				JFaceResources.BANNER_FONT));
-		dayNumber.setBackground(Display.getCurrent().getSystemColor(
-				SWT.COLOR_LIST_BACKGROUND));
-		dayNumber.setForeground(Display.getCurrent().getSystemColor(
-				SWT.COLOR_LIST_SELECTION));
-		dayNumber.setText("31");
-		textBounds = dayNumber.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-		this.setBackground(Display.getCurrent().getSystemColor(
-				SWT.COLOR_LIST_BACKGROUND));
-		this.setLayout(gridLayout);
-		setSize(new org.eclipse.swt.graphics.Point(106, 101));
-		setBackground(CELL_BACKGROUND_LIGHT);
-	}
-
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		Point size = new Point(0, 0);
-		size.x = textBounds.x * _SIZE_MULTIPLIER;
-		size.y = textBounds.y * _SIZE_MULTIPLIER / 2;
-		return size;
-	}
-
-	/**
-	 * @return The (day, week) of this day in the month.
-	 */
-	public Point getMonthPosition() {
-		return monthPosition;
-	}
-	
-	/**
-	 * @param monthPosition The (day, week) of this day in the month.
-	 */
-	public void setMonthPosition(Point monthPosition) {
-		this.monthPosition = monthPosition;
-	}
-	
-	/**
-	 * @return The day's number
-	 */
-	public int getDayNumber() {
-		return Integer.parseInt(dayNumber.getText());
-	}
-
-	/**
-	 * @param dayNum the day number to set
-	 */
-	public void setDayNumber(int dayNum) {
-		dayNumber.setText(Integer.toString(dayNum));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.events.PaintListener#paintControl(org.eclipse.swt.events.PaintEvent)
-	 */
-	public void paintControl(PaintEvent e) {
-		GC gc = e.gc;
-		
-		// Save stuff we're about to change so we can restore it later
-		int oldLineStyle = gc.getLineStyle();
-		int oldLineWidth = gc.getLineWidth();
-		
-		// Draw focus rubberband if we're focused
-		try {
-			if (focusControl) {
-				gc.setLineStyle(SWT.LINE_DASH);
-				gc.setLineWidth(FOCUS_LINE_WIDTH);
-				gc.setForeground(FOCUS_RUBBERBAND);
-				Point parentSize = getSize();
-				gc.drawRectangle(FOCUS_LINE_WIDTH,
-						FOCUS_LINE_WIDTH, parentSize.x - 4,
-						parentSize.y - 3);
-			}
-		} finally {
-			gc.setLineStyle(oldLineStyle);
-			gc.setLineWidth(oldLineWidth);
-		}
-	}
-	
-	private LinkedList mouseListeners = new LinkedList();
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#addMouseListener(org.eclipse.swt.events.MouseListener)
-	 */
-	public void addMouseListener(MouseListener listener) {
-		super.addMouseListener(listener);
-		if (listener != mouseListener) mouseListeners.add(listener);
-	}
-	
-	public void removeMouseListener(MouseListener listener) {
-		super.removeMouseListener(listener);
-		if (listener != mouseListener) mouseListeners.remove(listener);
-	}
-
-	private MouseListener mouseListener = new MouseListener() {
-		public void mouseDown(MouseEvent e) {
-			setFocus();
-			for (Iterator i = mouseListeners.iterator(); i.hasNext();) {
-				MouseListener listener = (MouseListener) i.next();
-				listener.mouseDown(e);
-			}
-		}
-		public void mouseUp(MouseEvent e) {
-			for (Iterator i = mouseListeners.iterator(); i.hasNext();) {
-				MouseListener listener = (MouseListener) i.next();
-				listener.mouseUp(e);
-			}
-		}
-		public void mouseDoubleClick(MouseEvent e) {
-			for (Iterator i = mouseListeners.iterator(); i.hasNext();) {
-				MouseListener listener = (MouseListener) i.next();
-				listener.mouseDoubleClick(e);
-			}
-		}
-	};
-
-	private KeyListener keyListener = new KeyAdapter() {
-		public void keyPressed(KeyEvent e) {
-			switch (e.keyCode) {
-			case SWT.ARROW_LEFT:
-				if (monthPosition.x > 0) {
-					traverse(SWT.TRAVERSE_TAB_PREVIOUS);
-				}
-				return;
-			case SWT.ARROW_RIGHT:
-				if (monthPosition.x < 6) {
-					traverse(SWT.TRAVERSE_TAB_NEXT);
-				}
-				return;
-			case SWT.TAB:
-				if ((e.stateMask & SWT.SHIFT) != 0) {
-					traverse(SWT.TRAVERSE_TAB_PREVIOUS);
-					return;
-				}
-				traverse(SWT.TRAVERSE_TAB_NEXT);
-				return;
-			}
-		}
-	};
-
-	/**
-	 * Permit focus events via keyboard.
-	 */
-	private TraverseListener traverseListener = new TraverseListener() {
-		public void keyTraversed(TraverseEvent e) {
-			// NOOP: this just lets us receive focus from SWT
-		}
-	};
-	
-	/**
-	 * When we gain/lose focus, redraw ourselves appropriately
-	 */
-	private FocusListener focusListener = new FocusListener() {
-		public void focusGained(FocusEvent e) {
-			focusControl = true;
-			Color background = getBackgroundTakingIntoAccountIfWeAreInTheCurrentMonth(true);
-			resetAllBackgrounds(Day.this, background);
-			redraw();
-		}
-
-		public void focusLost(FocusEvent e) {
-			focusControl = false;
-			Color background = getBackgroundTakingIntoAccountIfWeAreInTheCurrentMonth(false);
-			resetAllBackgrounds(Day.this, background);
-			redraw();
-		}
-	};
-	
-	private void resetAllBackgrounds(Composite composite, Color color) {
-		composite.setBackground(color);
-		Control[] children = composite.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			if (children[i] instanceof Composite) {
-				resetAllBackgrounds((Composite) children[i], color);
-			} else {
-				children[i].setBackground(color);
-			}
-		}
-	}
-	
-	private Color getBackgroundTakingIntoAccountIfWeAreInTheCurrentMonth(boolean focused) {
-		if (inCurrentMonth && focused) {
-			return CURRENT_MONTH;
-		}
-		if (inCurrentMonth) {
-			return CELL_BACKGROUND_LIGHT;
-		}
-		return OTHER_MONTH;
-	}
-	
-	private boolean inCurrentMonth = false;
-	
-	/**
-	 * @param inCurrentMonth
-	 */
-	public void setInCurrentMonth(boolean inCurrentMonth) {
-		this.inCurrentMonth = inCurrentMonth;
-		Color background = getBackgroundTakingIntoAccountIfWeAreInTheCurrentMonth(false);
-		resetAllBackgrounds(this, background);
-	}
-	
-	private CalendarableItem[] controls = null;
-
-	/**
-	 * @param controls
-	 */
-	public void setItems(CalendarableItem[] controls) {
-		if (this.controls != null) {
-			for (int i = 0; i < this.controls.length; i++) {
-				ICalendarableItemControl control = this.controls[i].getControl();
-				control.removeMouseListener(mouseListener);
-				control.dispose();
-			}
-		}
-		this.controls = controls;
-		for (int i = 0; i < this.controls.length; i++) {
-			MonthCalendarableItemControl control = new MonthCalendarableItemControl(this, SWT.NULL);
-			getBackgroundTakingIntoAccountIfWeAreInTheCurrentMonth(false);
-			control.setText(this.controls[i].getText());
-			Image image = this.controls[i].getImage();
-			if (image != null) {
-				control.setImage(image);
-			}
-			control.setToolTipText(this.controls[i].getToolTipText());
-			control.addMouseListener(mouseListener);
-			GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);
-			gd.horizontalSpan=2;
-			control.setLayoutData(gd);
-			this.controls[i].setControl(control);
-		}
-	}
-
-	private Date date;
-	
-	/**
-	 * Sets the Date represented by this Day.
-	 * 
-	 * @param date The date to set
-	 */
-	public void setDate(Date date) {
-		this.date = date;
-	}
-	
-	/**
-	 * Returns the Date represented by this Day.
-	 * 
-	 * @return This Day's date
-	 */
-	public Date getDate() {
-		return date;
-	}
-
-} // @jve:decl-index=0:visual-constraint="10,10"
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/Week.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/Week.java
deleted file mode 100644
index bde80a3..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/Week.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.month.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @since 3.2
- */
-public class Week extends Composite {
-
-    private final Day[] days;
-
-    /**
-     * @param parent
-     * @param style
-     */
-    public Week(Composite parent, int style) {
-		super(parent, style);
-		initialize();
-		this.days = new Day[] {createDay(), createDay(), createDay(), 
-				createDay(), createDay(), createDay(), createDay()};
-	}
-
-	private void initialize() {
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 7;
-		gridLayout.horizontalSpacing = 1;
-		gridLayout.verticalSpacing = 1;
-		gridLayout.marginHeight = 0;
-		gridLayout.marginWidth = 0;
-		gridLayout.makeColumnsEqualWidth = true;
-		this.setLayout(gridLayout);
-//		this.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND));
-		this.setSize(new Point(870, 158));
-	}
-
-   /**
-	 * This method initializes day	
-	 */
-	private Day createDay() {
-		GridData gd = new GridData();
-		gd.horizontalAlignment = GridData.FILL;
-		gd.grabExcessHorizontalSpace = true;
-		gd.verticalAlignment = GridData.FILL;
-		gd.grabExcessVerticalSpace = true;
-		Day day = new Day(this, SWT.NONE);
-		day.setLayoutData(gd);
-		return day;
-	}
-	
-	/**
-	 * Return a particular day in this week.
-	 * 
-	 * @param dayNumber 0-based day number
-	 * @return The day corresponding to dayNumber
-	 */
-	public Day getDay(int dayNumber) {
-		return days[dayNumber];
-	}
-
-}  //  @jve:decl-index=0:visual-constraint="8,13"
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/WeekHeader.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/WeekHeader.java
deleted file mode 100644
index ca9bd6a..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/month/internal/WeekHeader.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.month.internal;
-
-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.swt.layout.GridData;
-
-public class WeekHeader extends Composite {
-
-	private Label label = null;
-	private Label label1 = null;
-	private Label label2 = null;
-	private Label label3 = null;
-	private Label label4 = null;
-	private Label label5 = null;
-	private Label label6 = null;
-
-	public WeekHeader(Composite parent, int style) {
-		super(parent, style);
-		initialize();
-	}
-
-	/**
-	 * This method initializes this
-	 * 
-	 */
-	private void initialize() {
-		this.setSize(new org.eclipse.swt.graphics.Point(536, 54));
-		GridData gridData6 = new GridData();
-		gridData6.horizontalAlignment = GridData.FILL;
-		gridData6.grabExcessHorizontalSpace = true;
-		gridData6.verticalAlignment = GridData.CENTER;
-		GridData gridData5 = new GridData();
-		gridData5.horizontalAlignment = GridData.FILL;
-		gridData5.grabExcessHorizontalSpace = true;
-		gridData5.verticalAlignment = GridData.CENTER;
-		GridData gridData4 = new GridData();
-		gridData4.horizontalAlignment = GridData.FILL;
-		gridData4.grabExcessHorizontalSpace = true;
-		gridData4.verticalAlignment = GridData.CENTER;
-		GridData gridData3 = new GridData();
-		gridData3.horizontalAlignment = GridData.FILL;
-		gridData3.grabExcessHorizontalSpace = true;
-		gridData3.verticalAlignment = GridData.CENTER;
-		GridData gridData2 = new GridData();
-		gridData2.horizontalAlignment = GridData.FILL;
-		gridData2.grabExcessHorizontalSpace = true;
-		gridData2.verticalAlignment = GridData.CENTER;
-		GridData gridData1 = new GridData();
-		gridData1.horizontalAlignment = GridData.FILL;
-		gridData1.grabExcessHorizontalSpace = true;
-		gridData1.verticalAlignment = GridData.CENTER;
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.verticalAlignment = GridData.CENTER;
-		setLayout(new GridLayout(7, true));
-		label = new Label(this, SWT.CENTER);
-		label.setBounds(new org.eclipse.swt.graphics.Rectangle(23, 18, 53, 18));
-		label.setLayoutData(gridData6);
-		label.setText("Sunday");
-		label1 = new Label(this, SWT.CENTER);
-		label1
-				.setBounds(new org.eclipse.swt.graphics.Rectangle(98, 18, 79,
-						17));
-		label1.setLayoutData(gridData5);
-		label1.setText("Monday");
-		label2 = new Label(this, SWT.CENTER);
-		label2
-				.setBounds(new org.eclipse.swt.graphics.Rectangle(187, 18, 47,
-						17));
-		label2.setLayoutData(gridData4);
-		label2.setText("Tuesday");
-		label3 = new Label(this, SWT.CENTER);
-		label3
-				.setBounds(new org.eclipse.swt.graphics.Rectangle(256, 17, 67,
-						17));
-		label3.setLayoutData(gridData3);
-		label3.setText("Wednesday");
-		label4 = new Label(this, SWT.CENTER);
-		label4
-				.setBounds(new org.eclipse.swt.graphics.Rectangle(338, 17, 62,
-						20));
-		label4.setLayoutData(gridData2);
-		label4.setText("Thursday");
-		label5 = new Label(this, SWT.CENTER);
-		label5
-				.setBounds(new org.eclipse.swt.graphics.Rectangle(415, 16, 43,
-						21));
-		label5.setLayoutData(gridData1);
-		label5.setText("Friday");
-		label6 = new Label(this, SWT.CENTER);
-		label6
-				.setBounds(new org.eclipse.swt.graphics.Rectangle(469, 16, 61,
-						23));
-		label6.setLayoutData(gridData);
-		label6.setText("Saturday");
-
-	}
-
-} // @jve:decl-index=0:visual-constraint="11,16"
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/DuckType.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/DuckType.java
deleted file mode 100644
index 423f574..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/DuckType.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.reflect;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-
-/**
- * DuckType. Implements Duck Typing for Java.  ("If it walks like a duck, 
- * quacks like a duck, it...").  Essentially allows programs to treat
- * objects from separate hierarchies as if they were designed with common
- * interfaces as long as they adhere to common naming conventions.
- * <p>
- * This version is the strict DuckType.  All methods present in
- * interfaceToImplement must be present on the target object.
- *
- * @author djo
- */
-public class DuckType implements InvocationHandler {
-   
-   /**
-    * Interface DuckType#Wrapper.  An interface for DuckType proxies that
-    * allows clients to access the proxied value.  The value returned by
-    * calling DuckType#implement always implements this interface.
-    */
-   public static interface Wrapper {
-      /**
-       * Method duckType_GetWrappedValue.  Returns the proxied value.
-       * 
-       * @return The proxied value.
-       */
-      public Object duckType_GetWrappedValue();
-   }
-   
-	/**
-     * Causes object to implement the interfaceToImplement and returns
-     * an instance of the object implementing interfaceToImplement even
-     * if interfaceToImplement was not declared in object.getClass()'s 
-     * implements declaration.<p>
-     * 
-     * This works as long as all methods declared in interfaceToImplement
-     * are present on object.
-     * 
-	 * @param interfaceToImplement The Java class of the interface to implement
-	 * @param object The object to force to implement interfaceToImplement
-	 * @return object, but now implementing interfaceToImplement
-	 */
-	public static Object implement(Class interfaceToImplement, Object object) {
-		return Proxy.newProxyInstance(interfaceToImplement.getClassLoader(), 
-				new Class[] {interfaceToImplement, Wrapper.class}, new DuckType(object));
-	}
-    
-    /**
-     * Indicates if object is a (DuckType) instace of intrface.  That is,
-     * is every method in intrface present on object.
-     * 
-     * @param intrface The interface to implement
-     * @param object The object to test
-     * @return true if every method in intrface is present on object.  false otherwise
-     */
-    public static boolean instanceOf(Class intrface, Object object) {
-        final Method[] methods = intrface.getMethods();
-        Class candclass=object.getClass();
-        for (int methodidx = 0; methodidx < methods.length; methodidx++) {
-            Method method=methods[methodidx];
-            try {
-                candclass.getMethod(method.getName(), method.getParameterTypes());
-            } catch (NoSuchMethodException e) {
-                return false;
-            }
-        }
-        return true;
-    }
-	
-	protected DuckType(Object object) {
-		this.object = object;
-		this.objectClass = object.getClass();
-	}
-
-	protected Object object;
-	protected Class objectClass;
-	
-	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-      if (method.getName().equals("equals") && args != null && args.length == 1) {
-         return new Boolean(equals(args[0]));
-      }
-      if (method.getName().equals("hashCode") && args == null) {
-         return new Integer(hashCode());
-      }
-      if (method.getName().equals("duckType_GetWrappedValue") && args == null) {
-         return object;
-      }
-		Method realMethod = objectClass.getMethod(method.getName(), method.getParameterTypes());
-      if (!realMethod.isAccessible()) {
-         realMethod.setAccessible(true);
-      }
-		return realMethod.invoke(object, args);
-	}
-   
-   public boolean equals(Object obj) {
-      if (obj instanceof Wrapper) {
-         Wrapper proxy = (Wrapper) obj;
-         Object wrappedValue = proxy.duckType_GetWrappedValue();
-         return wrappedValue.equals(object);
-      }
-      return obj == this || super.equals(obj) || object.equals(obj);
-   }
-   
-   public int hashCode() {
-      return object.hashCode();
-   }
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/ReflectedMethod.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/ReflectedMethod.java
deleted file mode 100644
index 0e756b9..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/ReflectedMethod.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.reflect;
-
-import java.lang.reflect.Method;
-
-/**
- * ReflectedMethod.  Encapsulates a method that may or may not exist on 
- * some receiver.  Invocation policy is that if the method can be invoked,
- * it is.  On failure, returns null.
- *
- * @author djo
- */
-public class ReflectedMethod {
-    
-    private Object subject;
-    private Method method;
-    
-    /**
-     * Constructor ReflectedMethod.  Create a ReflectedMethod object.
-     * 
-     * @param subject The object on which the method lives.
-     * @param methodName The name of the method.
-     * @param paramTypes The method's parameter types.
-     */
-    public ReflectedMethod(Object subject, String methodName, Class[] paramTypes) {
-        this.subject = subject;
-        method = null;
-        try {
-        	method = subject.getClass().getMethod(methodName, paramTypes);
-        } catch (Exception e) {
-        	System.out.println(e);
-        }
-    }
-    
-    /**
-     * Method exists.  Returns true if the underlying method exists, false
-     * otherwise.
-     * 
-     * @return true if the underlying method exists, false otherwise.
-     */
-    public boolean exists() {
-        return method != null;
-    }
-    
-    /**
-     * Method invoke.  If possible, invoke the encapsulated method with the
-     * specified parameters.
-     * 
-     * @param params An Object[] containing the parameters to pass.
-     * @return any return value or null if there was no return value or an
-     * error occured.
-     */
-    public Object invoke(Object[] params) {
-        if (method == null)
-            return null;
-        try {
-        	if (!method.isAccessible()) {
-        		method.setAccessible(true);
-        	}
-        	return method.invoke(subject, params);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-	/**
-	 * Method getType.  Returns the return type of the method.
-	 * 
-	 * @return The return type or null if none.
-	 */
-	public Class getType() {
-		return method.getReturnType();
-	}
-}
-
-
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/ReflectedProperty.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/ReflectedProperty.java
deleted file mode 100644
index 901e0c7..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/ReflectedProperty.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.reflect;
-
-/**
- * Encapsulates a single JavaBeans-style property
- * 
- * @since 3.3
- */
-public class ReflectedProperty {
-	private String propertyName;
-	private ReflectedMethod getter;
-	private ReflectedMethod setter;
-
-	/**
-	 * Construct a ReflectedProperty on some object, given the property name.
-	 * 
-	 * @param object The object
-	 * @param propertyName The property name
-	 */
-	public ReflectedProperty(Object object, String propertyName) {
-		this.propertyName = propertyName;
-		getter = new ReflectedMethod(object, makeGetterName(propertyName), new Class[] {});
-		if (!getter.exists()) {
-			getter = new ReflectedMethod(object, makeBooleanGetterName(propertyName), new Class[] {});
-			if (!getter.exists()) {
-				throw new IllegalArgumentException("Cannot find getter for " + propertyName);
-			}
-		}
-		setter = new ReflectedMethod(object, makeSetterName(propertyName), new Class[] {getter.getType()});
-	}
-	
-	private String makeBooleanGetterName(String propertyName) {
-		return "is" + capitalize(propertyName);
-	}
-
-	private String makeSetterName(String propertyName) {
-		return "set" + capitalize(propertyName);
-	}
-
-	private String makeGetterName(String propertyName) {
-		return "get" + capitalize(propertyName);
-	}
-
-	private String capitalize(String string) {
-		return string.substring(0, 1).toUpperCase() + string.substring(1);
-	}
-
-	/**
-	 * Return the property's type.  This is the same as the type returned by
-	 * the getter.
-	 * 
-	 * @return The property's data type.
-	 */
-	public Class getType() {
-		return getter.getType();
-	}
-	
-	/**
-	 * Return the property's value.
-	 * 
-	 * @return The value in the property.
-	 */
-	public Object get() {
-		return getter.invoke(new Object[] {});
-	}
-	
-	/**
-	 * Set the property's value.  If the property is read-only, the request
-	 * is ignored.
-	 * 
-	 * @param newValue The value to set.
-	 */
-	public void set(Object newValue) {
-		setter.invoke(new Object[] {newValue});
-	}
-	
-	/**
-	 * Returns if the property is read-only.
-	 * 
-	 * @return false if the property has a setter; true otherwise.
-	 */
-	public boolean isReadOnly() {
-		return !setter.exists();
-	}
-
-	/**
-	 * Returns the property's name.
-	 * 
-	 * @return The property name.
-	 */
-	public String getPropertyName() {
-		return propertyName;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/RelaxedDuckType.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/RelaxedDuckType.java
deleted file mode 100644
index a5b03e5..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/reflect/RelaxedDuckType.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     db4objects - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.reflect;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.util.HashMap;
-
-/**
- * RelaxedDuckType. Implements Duck Typing for Java.  ("If it walks like a duck, 
- * quacks like a duck, it...").  Essentially allows programs to treat
- * objects from separate hierarchies as if they were designed with common
- * interfaces as long as they adhere to common naming conventions.
- * <p>
- * This version is the relaxed DuckType.  If a method in the interface is
- * not present on the underlying object, the proxy simply returns null.
- *
- * @author djo
- */
-public class RelaxedDuckType extends DuckType implements InvocationHandler {
-
-	public static Object implement(Class interfaceToImplement, Object object) {
-		return Proxy.newProxyInstance(interfaceToImplement.getClassLoader(), 
-				new Class[] {interfaceToImplement}, new RelaxedDuckType(object));
-	}
-    
-    public static boolean includes(Object object, String method, Class[] args) {
-        try {
-            object.getClass().getMethod(method, args);
-        } catch (NoSuchMethodException e) {
-            return false;
-        }
-        return true;
-    }
-    
-    private static final HashMap NULL_VALUES = new HashMap(); {
-        NULL_VALUES.put(Boolean.TYPE, Boolean.FALSE);
-        NULL_VALUES.put(Integer.TYPE, new Integer(0));
-        NULL_VALUES.put(Float.TYPE, new Float(0));
-        NULL_VALUES.put(Long.TYPE, new Long(0));
-        NULL_VALUES.put(Double.TYPE, new Double(0));
-        NULL_VALUES.put(Character.TYPE, new Character(' '));
-    }
-	
-	protected RelaxedDuckType(Object object) {
-		super(object);
-	}
-	
-	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-		try {
-			Method realMethod = objectClass.getMethod(method.getName(), method.getParameterTypes());
-            return realMethod.invoke(object, args);
-		} catch (NoSuchMethodException e) {
-			return NULL_VALUES.get(method.getReturnType());
-		} catch (Throwable t) {
-			throw t;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/CompositeTableTest.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/CompositeTableTest.java
deleted file mode 100644
index 75d255f..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/CompositeTableTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.test;
-
-import java.util.LinkedList;
-
-import org.eclipse.jface.examples.databinding.compositetable.CompositeTable;
-import org.eclipse.jface.examples.databinding.compositetable.IDeleteHandler;
-import org.eclipse.jface.examples.databinding.compositetable.IInsertHandler;
-import org.eclipse.jface.examples.databinding.compositetable.IRowContentProvider;
-import org.eclipse.jface.examples.databinding.compositetable.IRowFocusListener;
-import org.eclipse.jface.examples.databinding.compositetable.ScrollEvent;
-import org.eclipse.jface.examples.databinding.compositetable.ScrollListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- *
- */
-public class CompositeTableTest {
-
-	private Shell sShell = null;  //  @jve:decl-index=0:visual-constraint="10,10"
-	private CompositeTable table = null;
-	
-	private LinkedList personList = new LinkedList();
-	
-	/**
-	 * 
-	 */
-	public CompositeTableTest() {
-		personList.add(new Person("John", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Jane", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Frank", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Joe", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Chet", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Jane", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Frank", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Joe", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Chet", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Jane", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Frank", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Joe", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Chet", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Jane", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Frank", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Joe", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Chet", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Wilbur", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Elmo", "1234", "Wheaton", "IL"));
-	}
-
-	/**
-	 * This method initializes multiRowViewer	
-	 *
-	 */
-	private void createCompositeTable() {
-		table = new CompositeTable(sShell, SWT.NONE);
-		table.setRunTime(true);
-      table.setWeights(new int[] {100, 100, 80, 40});
-		table.setFittingHorizontally(false);
-//      table.setWeights(new int[] {30, 30, 30, 10});
-//      table.setFittingHorizontally(true);
-		table.addRowContentProvider(rowContentProvider);
-		table.addDeleteHandler(deleteHandler);
-		table.addInsertHandler(insertHandler);
-		table.addRowFocusListener(rowListener);
-		table.addScrollListener(scrollListener);
-		table.setNumRowsInCollection(personList.size());
-		createHeader();
-		createRow();
-	}
-	
-	private ScrollListener scrollListener = new ScrollListener() {
-		public void tableScrolled(ScrollEvent scrollEvent) {
-			System.out.println(scrollEvent);
-		}
-	};
-	
-	private IRowContentProvider rowContentProvider = new IRowContentProvider() {
-		public void refresh(CompositeTable table, int currentObjectOffset, Control row) {
-			Row rowObj = (Row) row;
-			Person person = (Person)personList.get(currentObjectOffset);
-			rowObj.name.setText(person.name);
-			rowObj.address.setText(person.address);
-			rowObj.city.setText(person.city);
-			rowObj.state.setText(person.state);
-		}
-	};
-
-	private IDeleteHandler deleteHandler = new IDeleteHandler() {
-		public boolean canDelete(int rowInCollection) {
-			return true;
-		}
-		public void deleteRow(int rowInCollection) {
-			personList.remove(rowInCollection);
-		}
-	};
-	
-	private IInsertHandler insertHandler = new IInsertHandler() {
-		public int insert(int positionHint) {
-			Person newPerson = new Person();
-			personList.add(positionHint, newPerson);
-			return positionHint;
-//			int newPosition = (int)(Math.random() * (personList.size()+1));
-//			personList.add(newPosition, newPerson);
-//			return newPosition;
-		}
-	};
-	
-	private IRowFocusListener rowListener = new IRowFocusListener() {
-		public boolean requestRowChange(CompositeTable sender, int currentObjectOffset, Control row) {
-			System.out.println("requestRC");
-			return true;
-		}
-		public void depart(CompositeTable sender, int currentObjectOffset, Control row) {
-			System.out.println("depart");
-			Person person = (Person)personList.get(currentObjectOffset);
-			Row rowObj = (Row) row;
-			person.name = rowObj.name.getText();
-			person.address = rowObj.address.getText();
-			person.city = rowObj.city.getText();
-			person.state = rowObj.state.getText();
-		}
-		public void arrive(CompositeTable sender, int currentObjectOffset, Control row) {
-			System.out.println("arrive");
-		}
-	};
-	
-	/**
-	 * This method initializes header	
-	 *
-	 */
-	private void createHeader() {
-		new Header(table, SWT.NONE);
-	}
-
-	/**
-	 * This method initializes row	
-	 *
-	 */
-	private void createRow() {
-		new Row(table, SWT.NONE);
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = Display.getDefault();
-		CompositeTableTest thisClass = new CompositeTableTest();
-		thisClass.createSShell();
-		thisClass.sShell.open();
-
-		while (!thisClass.sShell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-
-	/**
-	 * This method initializes sShell
-	 */
-	private void createSShell() {
-		sShell = new Shell();
-		sShell.setText("Shell");
-		sShell.setLayout(new FillLayout());
-		createCompositeTable();
-		sShell.setSize(new org.eclipse.swt.graphics.Point(445,243));
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/CompositeTableTestBinding.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/CompositeTableTestBinding.java
deleted file mode 100644
index 98622df..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/CompositeTableTestBinding.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.test;
-
-import java.util.List;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.list.WritableList;
-import org.eclipse.jface.examples.databinding.DataBindingFactory1;
-import org.eclipse.jface.examples.databinding.compositetable.CompositeTable;
-import org.eclipse.jface.examples.databinding.compositetable.binding.CompositeTableObservableLazyDataRequestor;
-import org.eclipse.jface.examples.databinding.compositetable.binding.IRowBinder;
-import org.eclipse.jface.internal.databinding.provisional.BindSpec;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyDeleteEvent;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertEvent;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor.NewObject;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- *
- */
-public class CompositeTableTestBinding {
-
-	private Shell sShell = null;  //  @jve:decl-index=0:visual-constraint="10,10"
-	private CompositeTable table = null;
-	
-	private List personList = new WritableList();
-	
-	/**
-	 * 
-	 */
-	public CompositeTableTestBinding() {
-		personList.add(new Person("John", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Jane", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Frank", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Joe", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Chet", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Jane", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Frank", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Joe", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Chet", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Jane", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Frank", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Joe", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Chet", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Jane", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Frank", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Joe", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Chet", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Wilbur", "1234", "Wheaton", "IL"));
-		personList.add(new Person("Elmo", "1234", "Wheaton", "IL"));
-	}
-
-	private void createSShell() {
-		sShell = new Shell();
-		sShell.setText("Shell");
-		sShell.setLayout(new FillLayout());
-		sShell.setSize(new Point(445,243));
-		table = new CompositeTable(sShell, SWT.NONE);
-		table.setRunTime(true);
-//		table.setWeights(new int[] {35, 35, 20, 10});
-		table.setWeights(new int[] {200, 200, 100, 50});
-		table.setFittingHorizontally(false);
-		table.setTraverseOnTabsEnabled(true);
-		new Header(table, SWT.NONE);
-		new Row(table, SWT.NONE);
-		bindGUI(sShell);
-	}
-
-	private void bindGUI(Shell shell) {
-		DataBindingContext bindingContext = new DataBindingFactory1().createContext(shell);
-		
-		LazyInsertDeleteProvider insertDeleteProvider = new LazyInsertDeleteProvider() {
-			public boolean canDeleteElementAt(LazyDeleteEvent e) {
-				return true;
-			}
-			
-			public void deleteElementAt(LazyDeleteEvent e) {
-				personList.remove(e.position);
-			}
-			
-			public NewObject insertElementAt(LazyInsertEvent e) {
-				Person newPerson = new Person();
-				personList.add(e.positionHint, newPerson);
-				return new NewObject(e.positionHint, newPerson);
-//				int newPosition = (int)(Math.random() * (personList.size()+1));
-//				personList.add(newPosition, newPerson);
-//				return newPosition;
-			}
-		};
-		
-		IRowBinder rowBinder = new IRowBinder() {
-			public void bindRow(DataBindingContext context, Control row, Object object) {
-				Row rowObj = (Row) row;
-				context.bind(rowObj.name, new Property(object, "name"), null);
-				context.bind(rowObj.address, new Property(object, "address"), null);
-				context.bind(rowObj.city, new Property(object, "city"), null);
-				context.bind(rowObj.state, new Property(object, "state"), null);
-			}
-		};
-		CompositeTableObservableLazyDataRequestor tableObservable = 
-			new CompositeTableObservableLazyDataRequestor(bindingContext, table, rowBinder);
-		
-		bindingContext.bind(tableObservable, (IObservable)personList,
-				new BindSpec().setLazyInsertDeleteProvider(insertDeleteProvider));
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = Display.getDefault();
-		CompositeTableTestBinding thisClass = new CompositeTableTestBinding();
-		thisClass.createSShell();
-		thisClass.sShell.open();
-
-		while (!thisClass.sShell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Header.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Header.java
deleted file mode 100644
index 505d5bf..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Header.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.test;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-public class Header extends Composite {
-
-	private Label label = null;
-	private Label label1 = null;
-	private Label label2 = null;
-	private Label label3 = null;
-
-	public Header(Composite parent, int style) {
-		super(parent, style);
-		initialize();
-	}
-
-	/**
-	 * This method initializes this
-	 * 
-	 */
-	private void initialize() {
-        this.setSize(new org.eclipse.swt.graphics.Point(313,54));
-        label = new Label(this, SWT.NONE);
-        label.setBounds(new org.eclipse.swt.graphics.Rectangle(23,18,53,18));
-        label.setText("Name");
-        label1 = new Label(this, SWT.NONE);
-        label1.setBounds(new org.eclipse.swt.graphics.Rectangle(98,18,79,17));
-        label1.setText("Address");
-        label2 = new Label(this, SWT.NONE);
-        label2.setBounds(new org.eclipse.swt.graphics.Rectangle(199,18,35,17));
-        label2.setText("City");
-        label3 = new Label(this, SWT.NONE);
-        label3.setBounds(new org.eclipse.swt.graphics.Rectangle(256,17,35,17));
-        label3.setText("State");
-			
-	}
-
-}  //  @jve:decl-index=0:visual-constraint="11,16"
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Model.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Model.java
deleted file mode 100644
index 8f92594..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Model.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.test;
-
-import java.util.LinkedList;
-
-import org.eclipse.jface.examples.databinding.compositetable.IDeleteHandler;
-import org.eclipse.jface.examples.databinding.compositetable.IInsertHandler;
-
-public class Model {
-	public Model() {
-		// Add some sample data to our personList...
-//		personList.add(new Person("John", "1234", "Wheaton", "IL"));
-//		personList.add(new Person("Jane", "1234", "Wheaton", "IL"));
-//		personList.add(new Person("Frank", "1234", "Wheaton", "IL"));
-//		personList.add(new Person("Joe", "1234", "Wheaton", "IL"));
-//		personList.add(new Person("Chet", "1234", "Wheaton", "IL"));
-//		personList.add(new Person("Wilbur", "1234", "Wheaton", "IL"));
-//		personList.add(new Person("Elmo", "1234", "Wheaton", "IL"));
-	}
-
-	// Now a PersonList property...
-	
-	LinkedList personList = new LinkedList();
-	
-	public LinkedList getPersonList() {
-		return personList;
-	}
-
-	public IDeleteHandler getPersonListDeleteHandler() {
-		return new IDeleteHandler() {
-			public boolean canDelete(int rowInCollection) {
-				return true;
-			}
-
-			public void deleteRow(int rowInCollection) {
-				personList.remove(rowInCollection);
-			}
-		};
-	}
-	
-	public IInsertHandler getPersonListInsertHandler() {
-		return new IInsertHandler() {
-			public int insert(int positionHint) {
-				Person newPerson = new Person();
-				personList.add(positionHint, newPerson);
-				return positionHint;
-				// int newPosition = (int)(Math.random() *
-				// (personList.size()+1));
-				// personList.add(newPosition, newPerson);
-				// return newPosition;
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Person.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Person.java
deleted file mode 100644
index 48615ec..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Person.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.test;
-
-public class Person {
-	
-	public String name = "";
-	public String address = "";
-	public String city = "Wheaton";
-	public String state = "IL";
-	
-	public Person(String name, String address, String city, String state) {
-		this.name = name;
-		this.address = address;
-		this.city = city;
-		this.state = state;
-	}
-	
-	public Person() {}
-
-	public String getAddress() {
-		return address;
-	}
-
-	public void setAddress(String address) {
-		this.address = address;
-	}
-
-	public String getCity() {
-		return city;
-	}
-
-	public void setCity(String city) {
-		this.city = city;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public String getState() {
-		return state;
-	}
-
-	public void setState(String state) {
-		this.state = state;
-	}
-	
-	
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Row.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Row.java
deleted file mode 100644
index 8913964..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Row.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.compositetable.test;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-
-public class Row extends Composite {
-
-	public Text name = null;
-	public Text address = null;
-	public Text city = null;
-	public Text state = null;
-
-	public Row(Composite parent, int style) {
-		super(parent, style);
-		initialize();
-	}
-
-	private void initialize() {
-		this.setSize(new org.eclipse.swt.graphics.Point(131,52));
-		name = new Text(this, SWT.NONE);
-		name.setBounds(new org.eclipse.swt.graphics.Rectangle(12,12,10,25));
-		address = new Text(this, SWT.NONE);
-		address.setBounds(new org.eclipse.swt.graphics.Rectangle(43,12,10,25));
-		city = new Text(this, SWT.NONE);
-		city.setBounds(new org.eclipse.swt.graphics.Rectangle(75,14,10,25));
-		state = new Text(this, SWT.NONE);
-		state.setBounds(new org.eclipse.swt.graphics.Rectangle(109,16,10,25));
-	}
-
-}  //  @jve:decl-index=0:visual-constraint="10,10"
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Snippet004CompositeTable.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Snippet004CompositeTable.java
deleted file mode 100644
index b3bf877..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/test/Snippet004CompositeTable.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef, 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:
- *     The Pampered Chef, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.test;
-
-import org.eclipse.jface.examples.databinding.DataBindingFactory1;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-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;
-
-/**
- * Hello, databinding.  Bind changes in a GUI to a Model object but don't worry 
- * about propogating changes from the Model to the GUI.
- * <p>
- * Illustrates the basic Model-ViewModel-Binding-View architecture typically 
- * used in data binding applications.
- */
-public class Snippet004CompositeTable {
-	public static void main(String[] args) {
-		ViewModel viewModel = new ViewModel();
-		Shell shell = new View(viewModel).createShell();
-		
-		// The SWT event loop
-		Display display = Display.getCurrent();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-		
-		// Print the results
-		System.out.println("person.getName() = " + viewModel.getPerson().getName());
-	}
-	
-	// The data model class.  This is normally a persistent class of some sort.
-	// 
-	// In this example, we only push changes from the GUI to the model, so we 
-	// don't worry about implementing JavaBeans bound properties.  If we need
-	// our GUI to automatically reflect changes in the Person object, the 
-	// Person object would need to implement the JavaBeans property change
-	// listener methods.
-	static class Person {
-		// A property...
-		String name = "HelloWorld";
-		
-		public String getName() {
-			return name;
-		}
-		
-		public void setName(String name) {
-			this.name = name;
-		}
-	}
-	
-	// The View's model--the root of our Model graph for this particular GUI.
-	//
-	// Typically each View class has a corresponding ViewModel class.  
-	// The ViewModel is responsible for getting the objects to edit from the 
-	// DAO.  Since this snippet doesn't have any persistent objects to 
-	// retrieve, this ViewModel just instantiates a model object to edit.
-	static class ViewModel {
-		// The model to bind
-		private Person person = new Person();
-		
-		public Person getPerson() {
-			return person;
-		}
-	}
-	
-	// The GUI view
-	static class View {
-		private ViewModel viewModel;
-
-		public View(ViewModel viewModel) {
-			this.viewModel = viewModel;
-		}
-		
-		public Shell createShell() {
-			// Build a UI
-			Shell shell = new Shell(Display.getCurrent());
-			shell.setLayout(new RowLayout(SWT.VERTICAL));
-			
-			Text name = new Text(shell, SWT.BORDER);
-			
-			// Bind it
-			DataBindingContext bindingContext = new DataBindingFactory1().createContext(shell);
-			
-			Person person = viewModel.getPerson();
-			bindingContext.bind(name, new Property(person, "name"), null);
-			
-			// Open and return the Shell
-			shell.pack();
-			shell.open();
-			return shell;
-		}
-	}
-	
-}
-
-
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/CalendarableItem.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/CalendarableItem.java
deleted file mode 100644
index 743d607..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/CalendarableItem.java
+++ /dev/null
@@ -1,536 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.timeeditor;
-
-import java.util.Calendar;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.examples.databinding.compositetable.day.internal.ICalendarableItemControl;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * This class represents an event that can be displayed on a calendar.
- * 
- * @since 3.2
- */
-public class CalendarableItem extends ModelObject {
-	
-	/**
-	 * 
-	 */
-	private static final String PROP_DATE = "date";
-
-	/**
-	 * A constant representing the name of the toolTipText property.
-	 */
-	public static final String PROP_TOOL_TIP_TEXT = "toolTipText";
-
-	/**
-	 * A constant representing the name of the data property.
-	 */
-	public static final String PROP_DATA = "data";
-
-	/**
-	 * A constant representing the name of the text property.
-	 */
-	public static final String PROP_TEXT = "text";
-
-	/**
-	 * A constant representing the name of the image property.
-	 */
-	public static final String PROP_IMAGE = "image";
-
-	/**
-	 * A constant representing the name of the endTime property.
-	 */
-	public static final String PROP_END_TIME = "endTime";
-
-	/**
-	 * A constant representing the name of the startTime property.
-	 */
-	public static final String PROP_START_TIME = "startTime";
-
-	/**
-	 * A constant representing the name of the allDayEvent property.
-	 */
-	public static final String PROP_ALL_DAY_EVENT = "allDayEvent";
-
-	/**
-	 * A constant representing the name of the continued property.
-	 */
-	public static final String PROP_CONTINUED = "continued";
-
-	/**
-	 * A comparator for CalendarableItem objects
-	 */
-	public static final Comparator comparator = new Comparator() {
-		public int compare(Object c1, Object c2) {
-			CalendarableItem cal1 = (CalendarableItem) c1;
-			CalendarableItem cal2 = (CalendarableItem) c2;
-			if (cal1.isAllDayEvent()) {
-				if (cal2.isAllDayEvent()) {
-					return 0;
-				}
-				return -1;
-			}
-			if (cal2.isAllDayEvent()) {
-				return 1;
-			}
-			return cal1.getStartTime().compareTo(cal2.getStartTime());
-		}
-	};
-	
-	public CalendarableItem(Date day) {
-		setDate(day);
-	}
-	
-	private boolean allDayEvent = false;
-	
-	/**
-	 * Returns if this Calenderable represents an all-day event.
-	 * 
-	 * @return true if this is an all-day event; false otherwise.
-	 */
-	public boolean isAllDayEvent() {
-		return allDayEvent;
-	}
-	
-	/**
-	 * Sets if this Calenderable represents an all-day event.
-	 * 
-	 * @param allDayEvent true if this is an all-day event; false otherwise.
-	 */
-	public void setAllDayEvent(boolean allDayEvent) {
-		boolean oldValue = this.allDayEvent;
-		this.allDayEvent = allDayEvent;
-		firePropertyChange(PROP_ALL_DAY_EVENT, oldValue, allDayEvent);
-	}
-	
-	/**
-	 * @return Returns the date on which the event falls.
-	 */
-	public Date getDate() {
-		return startTime;
-	}
-
-	/**
-	 * @param date Sets the date on which the event falls.  Ignores the time
-	 * component of the date that is passed in.
-	 */
-	public void setDate(Date date) {
-		Date oldValue = this.startTime;
-		this.startTime = setDateComponentOf(date, startTime);
-		this.endTime = setDateComponentOf(date, endTime);
-		firePropertyChange(PROP_DATE, oldValue, startTime);
-	}
-
-	/**
-	 * @param source
-	 * @param into 
-	 */
-	private Date setDateComponentOf(Date source, Date into) {
-		GregorianCalendar mergeSource = new GregorianCalendar();
-		mergeSource.setTime(source);
-		GregorianCalendar mergeTarget = new GregorianCalendar();
-		mergeTarget.setTime(into);
-		mergeTarget.set(Calendar.MONTH, mergeSource.get(Calendar.MONTH));
-		mergeTarget.set(Calendar.DAY_OF_MONTH, mergeSource.get(Calendar.DAY_OF_MONTH));
-		mergeTarget.set(Calendar.YEAR, mergeSource.get(Calendar.YEAR));
-		return mergeTarget.getTime();
-	}
-	
-	/**
-	 * @param source
-	 * @param into 
-	 */
-	private Date setTimeComponentOf(Date source, Date into) {
-		GregorianCalendar mergeSource = new GregorianCalendar();
-		mergeSource.setTime(source);
-		GregorianCalendar mergeTarget = new GregorianCalendar();
-		mergeTarget.setTime(into);
-		mergeTarget.set(Calendar.AM_PM, mergeSource.get(Calendar.AM_PM));
-		mergeTarget.set(Calendar.HOUR, mergeSource.get(Calendar.HOUR));
-		mergeTarget.set(Calendar.MINUTE, mergeSource.get(Calendar.MINUTE));
-		mergeTarget.set(Calendar.SECOND, mergeSource.get(Calendar.SECOND));
-		mergeTarget.set(Calendar.MILLISECOND, mergeSource.get(Calendar.MILLISECOND));
-		return mergeTarget.getTime();
-	}
-	
-	private Date startTime = new Date();
-	
-	/**
-	 * Gets the event's start time.  This value is ignored if this is an all-day event.
-	 * 
-	 * @return the start time for the event.
-	 */
-	public Date getStartTime() {
-		return startTime;
-	}
-
-	/**
-	 * Sets the event's start time.  This value is ignored if this is an all-day event.
-	 * 
-	 * @param startTime the event's start time.
-	 */
-	public void setStartTime(Date startTime) {
-		Date oldValue = this.startTime;
-		this.startTime = setTimeComponentOf(startTime, this.startTime);
-		firePropertyChange(PROP_START_TIME, oldValue, startTime);
-	}
-	
-	private Date endTime = new Date();
-
-	/**
-	 * Returns the event's end time.  This value is ignored if this is an all-day event.
-	 * 
-	 * @return the event's end time.  This value is ignored if this is an all-day event.
-	 */
-	public Date getEndTime() {
-		return endTime;
-	}
-
-	/**
-	 * Sets the event's end time.  This value is ignored if this is an all-day event.
-	 * 
-	 * @param endTime the event's end time.  This value is ignored if this is an all-day event.
-	 */
-	public void setEndTime(Date endTime) {
-		Date oldValue = this.endTime;
-		this.endTime = setTimeComponentOf(endTime, this.endTime);
-		firePropertyChange(PROP_END_TIME, oldValue, endTime);
-	}
-
-	private Image image;
-
-	/**
-	 * Return the IEvent's image or <code>null</code>.
-	 * 
-	 * @return the image of the label or null
-	 */
-	public Image getImage() {
-		return this.image;
-	}
-
-	/**
-	 * Set the IEvent's Image.
-	 * The value <code>null</code> clears it.
-	 * 
-	 * @param image the image to be displayed in the label 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 setImage(Image image) {
-		Image oldValue = this.image;
-		this.image = image;
-		if (control != null) {
-			control.setImage(image);
-		}
-		firePropertyChange(PROP_IMAGE, oldValue, image);
-	}
-
-	private String text = null;
-
-	/**
-	 * Returns the widget text.
-	 * <p>
-	 * The text for a text widget is the characters in the widget, or
-	 * an empty string if this has never been set.
-	 * </p>
-	 *
-	 * @return the widget 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 getText() {
-		return text;
-	}
-
-	/**
-	 * Sets the contents of the receiver to the given string. If the receiver has style
-	 * SINGLE and the argument contains multiple lines of text, the result of this
-	 * operation is undefined and may vary from platform to platform.
-	 *
-	 * @param string the new text
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the string 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) {
-		String oldValue = this.text;
-		this.text = string;
-		if (control != null) {
-			control.setText(string);
-		}
-		firePropertyChange(PROP_TEXT, oldValue, text);
-	}
-	
-	private String toolTipText;
-	
-	/**
-	 * 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_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-	 * </ul>
-	 */
-	public String getToolTipText() {
-		return toolTipText;
-	}
-
-	/**
-	 * 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_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-	 * </ul>
-	 */
-	public void setToolTipText(String string) {
-		String oldValue = this.toolTipText;
-		this.toolTipText = string;
-		if (control != null) {
-			control.setToolTipText(string);
-		}
-		firePropertyChange(PROP_TOOL_TIP_TEXT, oldValue, toolTipText);
-	}
-
-	
-	private Object data = null;
-	
-	/**
-	 * Returns the application defined widget data associated
-	 * with the receiver, or null if it has not been set. The
-	 * <em>widget data</em> is a single, unnamed field that is
-	 * stored with every widget. 
-	 * <p>
-	 * Applications may put arbitrary objects in this field. If
-	 * the object stored in the widget data needs to be notified
-	 * when the widget is disposed of, it is the application's
-	 * responsibility to hook the Dispose event on the widget and
-	 * do so.
-	 * </p>
-	 *
-	 * @return the widget data
-	 * @see #setData(Object)
-	 */
-	public Object getData() {
-		return data;
-	}
-
-	/**
-	 * Sets the application defined widget data associated
-	 * with the receiver to be the argument. The <em>widget
-	 * data</em> is a single, unnamed field that is stored
-	 * with every widget. 
-	 * <p>
-	 * Applications may put arbitrary objects in this field. If
-	 * the object stored in the widget data needs to be notified
-	 * when the widget is disposed of, it is the application's
-	 * responsibility to hook the Dispose event on the widget and
-	 * do so.
-	 * </p>
-	 *
-	 * @param data the widget data
-	 * @see #getData()
-	 */
-	public void setData(Object data) {
-		Object oldValue = this.data;
-		this.data = data;
-		firePropertyChange(PROP_DATA, oldValue, data);
-	}
-	
-	private Map dataMap = new HashMap();
-	
-	/**
-	 * Sets the application defined property of the receiver
-	 * with the specified name to the given value.
-	 * <p>
-	 * Applications may associate arbitrary objects with the
-	 * receiver in this fashion. 
-	 * </p>
-	 *
-	 * @param key the name of the property
-	 * @param value the new value for the property
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the key is null</li>
-	 * </ul>
-	 *
-	 * @see #getData(String)
-	 */
-	public void setData(String key, Object data) {
-		if (key == null) {
-			throw new IllegalArgumentException("key is null");
-		}
-		dataMap.put(key, data);
-	}
-	
-	/**
-	 * Returns the application defined property of the receiver
-	 * with the specified name, or null if it has not been set.
-	 * <p>
-	 * Applications may have associated arbitrary objects with the
-	 * receiver in this fashion.
-	 * </p>
-	 *
-	 * @param	key the name of the property
-	 * @return the value of the property or null if it has not been set
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the key is null</li>
-	 * </ul>
-	 *
-	 * @see #setData(String, Object)
-	 */
-	public Object getData(String key) {
-		if (key == null) {
-			throw new IllegalArgumentException("key is null");
-		}
-		return dataMap.get(key);
-	}
-	
-	private Point upperLeftPositionInDayRowCoordinates = null;
-	
-	/**
-	 * (non-API)
-	 * @return Returns the upperLeftPositionInDayRowCoordinates.
-	 */
-	public Point getUpperLeftPositionInDayRowCoordinates() {
-		return upperLeftPositionInDayRowCoordinates;
-	}
-
-	/**
-	 * (non-API)
-	 * Sets the upper left position of the bounding box and initializes the
-	 * lower right position to be the same as the upper left if the lower right
-	 * has not yet been set.  If the lower right has been set, it is left as it
-	 * is.
-	 * 
-	 * @param upperLeftPositionInDayRowCoordinates The upperLeftPositionInDayRowCoordinates to set.
-	 */
-	public void setUpperLeftPositionInDayRowCoordinates(
-			Point upperLeftPositionInDayRowCoordinates) {
-		this.upperLeftPositionInDayRowCoordinates = upperLeftPositionInDayRowCoordinates;
-
-		if (lowerRightPositionInDayRowCoordinates == null) {
-			this.lowerRightPositionInDayRowCoordinates = upperLeftPositionInDayRowCoordinates;
-		}
-	}
-	
-	private Point lowerRightPositionInDayRowCoordinates = null;
-
-	/**
-	 * (non-API)
-	 * @return Returns the lowerRightPositionInDayRowCoordinates.
-	 */
-	public Point getLowerRightPositionInDayRowCoordinates() {
-		return lowerRightPositionInDayRowCoordinates;
-	}
-
-	/**
-	 * (non-API)
-	 * Sets the lower right position of the bounding box.
-	 * 
-	 * @param lowerRightPositionInDayRowCoordinates The lowerRightPositionInDayRowCoordinates to set.
-	 */
-	public void setLowerRightPositionInDayRowCoordinates(
-			Point lowerRightPositionInDayRowCoordinates) {
-		this.lowerRightPositionInDayRowCoordinates = lowerRightPositionInDayRowCoordinates;
-	}
-
-	private ICalendarableItemControl control = null;
-	
-	/**
-	 * (non-API)
-	 * Returns the UI control for this CalendarableItem.
-	 * 
-	 * @return The UI control for this CalendarableItem or null if there is none.
-	 */
-	public ICalendarableItemControl getControl() {
-		return control;
-	}
-
-	/**
-	 * (non-API)
-	 * Set the UI control for this CalendarableItem.
-	 * 
-	 * @param control The control to set.
-	 */
-	public void setControl(ICalendarableItemControl control) {
-		if (control == null) {
-			this.control.setCalendarableItem(null);
-		}
-		this.control = control;
-		if (control != null) {
-			control.setCalendarableItem(this);
-			control.setContinued(continued);
-		}
-	}
-
-	private int continued;
-
-	/**
-	 * (Non-API)
-	 */
-	public static final String BINDING_KEY = "BindingBinding";
-
-	/**
-	 * (Non-API)
-	 */
-	public static final String DATA_KEY = "BindingData";
-	
-	/**
-	 * Sets the "To be continued..." bitmask indicating that this event is
-	 * continued on the next or previous days respectively.
-	 * 
-	 * @param continued One or both of SWT.TOP or SWT.BOTTOM
-	 */
-	public void setContinued(int continued) {
-		this.continued = continued;
-		if (control != null) {
-			control.setContinued(continued);
-		}
-	}
-	
-	/**
-	 * @return The continued bitmask; one or both of SWT.TOP or SWT.BOTTOM
-	 */
-	public int getContinued() {
-		return continued;
-	}
-
-}
-
-
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/CalendarableModel.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/CalendarableModel.java
deleted file mode 100644
index 41389d4..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/CalendarableModel.java
+++ /dev/null
@@ -1,741 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.timeeditor;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represents the model behind the calendar control.  This model manages three
- * concerns:
- *   1) Setting/maintaining the visible range of days (startDate, numberOfDays)
- *   2) Keeping the events for a particular day within the range of visible days
- *   3) Keeping track of the number of columns required to display the events
- *      in a given day from the set of visible days.
- * 
- * @since 3.2
- */
-public class CalendarableModel {
-
-	private static final int DEFAULT_START_HOUR = 8;
-	
-	private int numberOfDays = -1;
-	private int numberOfDivisionsInHour = -1;
-	private ArrayList[] dayColumns = null;
-	private CalendarableItem[][][] eventLayout = null;  // [day][column][row]
-
-	private int defaultStartHour = DEFAULT_START_HOUR;
-	
-	/**
-	 * @param dayOffset
-	 * @return the number of columns within the day or -1 if this has not been computed yet.
-	 */
-	public int getNumberOfColumnsWithinDay(int dayOffset) {
-		if (eventLayout == null) {
-			return -1;
-		}
-		if (eventLayout[dayOffset] == null) {
-			return -1;
-		}
-		return eventLayout[dayOffset].length;
-	}
-	
-	/**
-	 * Sets the eventLayout for a particular dayOffset
-	 * 
-	 * @param dayOffset
-	 * @param eventLayout
-	 */
-	public void setEventLayout(int dayOffset, CalendarableItem[][] eventLayout) {
-		this.eventLayout[dayOffset] = eventLayout;
-	}
-	
-	/**
-	 * Gets the eventLayout for a particular dayOffset
-	 * 
-	 * @param dayOffset
-	 * @return the eventLayout array for the specified day or null if none has been computed.
-	 */
-	public CalendarableItem[][] getEventLayout(int dayOffset) {
-		return eventLayout[dayOffset];
-	}
-	
-	/**
-	 * @param numberOfDays
-	 * @param numberOfDivisionsInHour
-	 */
-	public void setTimeBreakdown(int numberOfDays, int numberOfDivisionsInHour) {
-		if (numberOfDivisionsInHour < 1) {
-			throw new IllegalArgumentException("There must be at least one division in the hour");
-		}
-		
-		if (numberOfDays < 1) {
-			throw new IllegalArgumentException("There must be at least one day in the editor");
-		}
-
-		this.numberOfDays = numberOfDays;
-		this.numberOfDivisionsInHour = numberOfDivisionsInHour;
-		initializeDayArrays(numberOfDays);
-		
-		refresh();
-	}
-	
-	private void initializeDayArrays(int numberOfDays) {
-		dayColumns  = new ArrayList[numberOfDays]; 
-		for (int i=0; i < numberOfDays; ++i) {
-			dayColumns[i] = new ArrayList();
-		}
-		eventLayout = new CalendarableItem[numberOfDays][][];
-	}
-	
-	/**
-	 * @return The number of days to display
-	 */
-	public int getNumberOfDays() {
-		return numberOfDays;
-	}
-	
-	/**
-	 * @return Returns the numberOfDivisionsInHour.
-	 */
-	public int getNumberOfDivisionsInHour() {
-		return numberOfDivisionsInHour;
-	}
-
-	private Date startDate = null;
-	
-	/**
-	 * @param startDate The starting date to display
-	 * @return The obsolete Calendarable objects
-	 */
-	public List setStartDate(Date startDate) {
-		// If there's no overlap between the old and new date ranges
-		if (this.startDate == null || 
-				startDate.after(calculateDate(this.startDate, numberOfDays-1)) ||
-				calculateDate(startDate, numberOfDays-1).before(this.startDate))
-		{
-			this.startDate = startDate;
-			eventLayout = new CalendarableItem[numberOfDays][][];
-			return refresh();
-		}
-		
-		// There's an overlap
-		List obsoleteCalendarables = new LinkedList();
-		int overlap = -1;
-		
-		// If we're scrolling viewport to the left
-		if (startDate.before(this.startDate)) {
-			// Calculate the overlap
-			for (int day=0; day < numberOfDays; ++day) {
-				Date candidate = calculateDate(startDate, day);
-				if (candidate.equals(this.startDate))
-					overlap = day;
-			}
-			for (int day=numberOfDays-1; day >= 0; --day) {
-				if (numberOfDays - day <= overlap) {
-					// Shift the arrays; track obsolete calendarables
-					for (Iterator invalidated = dayColumns[day].iterator(); invalidated.hasNext();) {
-						obsoleteCalendarables.add(invalidated.next());
-					}
-					dayColumns[day] = dayColumns[day-overlap];
-					eventLayout[day] = eventLayout[day-overlap];
-				} if (day >= overlap) {
-					// Shift the arrays
-					dayColumns[day] = dayColumns[day-overlap];
-					eventLayout[day] = eventLayout[day-overlap];
-				} else {
-					// Recalculate new columns
-					dayColumns[day] = new ArrayList();
-					eventLayout[day] = null;
-					refresh(calculateDate(startDate, day), day, obsoleteCalendarables);
-				}
-			}
-		} else {
-			// We're scrolling the viewport to the right
-			for (int day=0; day < numberOfDays; ++day) {
-				Date candidate = calculateDate(this.startDate, day);
-				if (candidate.equals(startDate))
-					overlap = day;
-			}
-			for (int day=0; day < numberOfDays; ++day) {
-				if (day < overlap) {
-					// Shift the arrays; track obsolete calendarables
-					for (Iterator invalidated = dayColumns[day].iterator(); invalidated.hasNext();) {
-						obsoleteCalendarables.add(invalidated.next());
-					}
-					dayColumns[day] = dayColumns[day+overlap];
-					eventLayout[day] = eventLayout[day+overlap];
-				} if (day < numberOfDays - overlap) {
-					// Shift the arrays
-					dayColumns[day] = dayColumns[day+overlap];
-					eventLayout[day] = eventLayout[day+overlap];
-				} else {
-					// Recalculate new columns
-					dayColumns[day] = new ArrayList();
-					eventLayout[day] = null;
-					refresh(calculateDate(startDate, day), day, obsoleteCalendarables);
-				}
-			}
-		}
-		this.startDate = startDate;
-		return obsoleteCalendarables;
-	}
-
-	/**
-	 * @return The starting date to display
-	 */
-	public Date getStartDate() {
-		return startDate;
-	}
-
-	private EventCountProvider eventCountProvider = null;
-
-	/**
-	 * Sets a strategy pattern object that can return the number of events 
-	 * to display on a particulr day.
-	 * 
-	 * @param eventCountProvider
-	 */
-	public void setEventCountProvider(EventCountProvider eventCountProvider) {
-		this.eventCountProvider = eventCountProvider;
-		refresh();
-	}
-	
-	private EventContentProvider eventContentProvider = null;
-
-	/**
-	 * Sets a strategy pattern object that can set the data for the actual events for
-	 * a particular day.
-	 * 
-	 * @param eventContentProvider
-	 */
-	public void setEventContentProvider(EventContentProvider eventContentProvider) {
-		this.eventContentProvider = eventContentProvider;
-		refresh();
-	}
-	
-	/**
-	 * Refresh everything in the display.
-	 */
-	private List refresh() {
-		if (startDate == null) {
-			return new LinkedList();
-		}
-		LinkedList result = new LinkedList();
-		if(!isInitialized()) {
-			return result;
-		}
-		//refresh
-		Date dateToRefresh = null;
-		for (int i = 0; i < dayColumns.length; i++) {
-			dateToRefresh = calculateDate(startDate, i);
-			refresh(dateToRefresh, i, result);
-		}
-		return result;
-	}
-
-	/**
-	 * Returns the date that is the numberOfDaysFromStartDate.
-	 * 
-	 * @param startDate The start date 
-	 * @param numberOfDaysFromStartDate
-	 * @return Date
-	 */
-	public Date calculateDate(Date startDate, int numberOfDaysFromStartDate) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(startDate);
-		gc.add(Calendar.DATE, numberOfDaysFromStartDate);
-		return gc.getTime();
-	}
-
-	/**
-	 * Has all data been set for a refresh.
-	 * 
-	 */
-	private boolean isInitialized() {
-		return 
-			null != startDate &&
-			numberOfDays > 0 &&
-			numberOfDivisionsInHour > 0 &&
-			null != eventContentProvider &&
-			null != eventCountProvider;
-	}
-	
-	private void refresh(Date date, int column, List invalidatedElements) {
-		if (eventCountProvider == null || eventContentProvider == null) {
-			return;
-		}
-		
-		int numberOfEventsInDay = eventCountProvider.getNumberOfEventsInDay(date);
-
-		while (dayColumns[column].size() > 0) {
-			invalidatedElements.add(dayColumns[column].remove(0));
-		}
-		resizeList(date, dayColumns[column], numberOfEventsInDay);
-		
-		CalendarableItem[] tempEvents = (CalendarableItem[]) dayColumns[column]
-				.toArray(new CalendarableItem[numberOfEventsInDay]);
-
-		eventContentProvider.refresh(
-				date, 
-				tempEvents);
-	}
-
-	private void resizeList(Date date, ArrayList list, int numberOfEventsInDay) {
-		while (list.size() < numberOfEventsInDay) {
-			list.add(new CalendarableItem(date));
-		}
-		while (list.size() > numberOfEventsInDay) {
-			list.remove(0);
-		}
-	}
-
-	/**
-	 * Refresh the display for the specified Date.  If Date isn't being
-	 * displayed, this method ignores the request.
-	 * 
-	 * @param date the date to refresh.
-	 * @return List any Calendarables that were invalidated
-	 */
-	public List refresh(Date date) {
-		LinkedList invalidatedCalendarables = new LinkedList();
-		GregorianCalendar dateToRefresh = new GregorianCalendar();
-		dateToRefresh.setTime(date);
-		for (int offset=0; offset < numberOfDays; ++offset) {
-			Date refreshTarget = calculateDate(startDate, offset);
-			GregorianCalendar target = new GregorianCalendar();
-			target.setTime(refreshTarget);
-			
-			if (target.get(Calendar.DATE) == dateToRefresh.get(Calendar.DATE) &&
-				target.get(Calendar.MONTH) == dateToRefresh.get(Calendar.MONTH) &&
-				target.get(Calendar.YEAR) == dateToRefresh.get(Calendar.YEAR)) 
-			{
-				refresh(date, offset, invalidatedCalendarables);
-				break;
-			}
-		}
-		return invalidatedCalendarables;
-	}
-
-	/**
-	 * Return the events for a particular day offset.
-	 * 
-	 * @param dayOffset
-	 * @return A List of events.
-	 */
-	public List getCalendarableItems(int dayOffset) {
-		return dayColumns[dayOffset];
-	}
-
-	/**
-	 * Method computeNumberOfAllDayEventRows. 
-	 * 
-	 * @return int representing the max number of events in all visible days. 
-	 */
-	public int computeNumberOfAllDayEventRows() {
-		int maxAllDayEvents = 0;
-		for (int day = 0; day < dayColumns.length; day++) {
-			ArrayList calendarables = dayColumns[day];
-			int allDayEventsInCurrentDay = 0;
-			for (Iterator iter = calendarables.iterator(); iter.hasNext();) {
-				CalendarableItem event = (CalendarableItem) iter.next();
-				if (event.isAllDayEvent()) {
-					allDayEventsInCurrentDay++;
-				}
-			}
-			if (allDayEventsInCurrentDay > maxAllDayEvents) {
-				maxAllDayEvents = allDayEventsInCurrentDay;
-			}
-		}
-		return maxAllDayEvents;
-	}
-
-	/**
-	 * Method computeStartHour.  Computes the start hour of the day for all
-	 * days that are displayed.  If no events are before the defaultStartHour,
-	 * the defaultStartHour is returned.  If any day in the model has an event
-	 * beginning before defaultStartHour, the hour of the earliest event is
-	 * used instead.
-	 * 
-	 * @return int The start hour.
-	 */
-	public int computeStartHour() {
-		GregorianCalendar gc = new GregorianCalendar();
-		
-		int startHour = getDefaultStartHour();
-		for (int day = 0; day < dayColumns.length; day++) {
-			ArrayList calendarables = dayColumns[day];
-			for (Iterator iter = calendarables.iterator(); iter.hasNext();) {
-				CalendarableItem event = (CalendarableItem) iter.next();
-				if (event.isAllDayEvent()) {
-					continue;
-				}
-				gc.setTime(event.getStartTime());
-				int eventStartHour = gc.get(Calendar.HOUR_OF_DAY);
-				if (eventStartHour < startHour) {
-					startHour = eventStartHour;
-				}
-			}
-		}
-		return startHour;
-	}
-
-	/**
-	 * Method setDefaultStartHour.
-	 * 
-	 * @param defaultStartHour The first hour to be displayed by default.
-	 */
-	public void setDefaultStartHour(int defaultStartHour) {
-		this.defaultStartHour = defaultStartHour;
-	}
-
-	/**
-	 * Method getDefaultStartHour
-	 * 
-	 * @return int representing the first hour to be displayed by default.
-	 */
-	public int getDefaultStartHour() {
-		return defaultStartHour;
-	}
-	
-
-	/**
-	 * Method getDay.  Returns the day on which the specified Calendarable appers.
-	 * 
-	 * @param calendarable The calendarable to find
-	 * @return The day offset (0-based)
-	 * @throws IllegalArgumentException if Calendarable isn't found
-	 */
-	public int getDay(CalendarableItem calendarable) {
-		for (int day = 0; day < dayColumns.length; day++) {
-			for (Iterator calendarableIter = dayColumns[day].iterator(); calendarableIter.hasNext();) {
-				CalendarableItem event = (CalendarableItem) calendarableIter.next();
-				if (event == calendarable) {
-					return day;
-				}
-			}
-		}
-		throw new IllegalArgumentException("Invalid Calenderable passed");
-	}
-
-	/**
-	 * FIXME: Test me please
-	 * @param row The row starting from the beginning of the day
-	 * @return The hour portion of the time that this row represents
-	 */
-	public int computeHourFromRow(int row) {
-		return row / getNumberOfDivisionsInHour() + computeStartHour();
-	}
-
-	/**
-	 * FIXME: Test me please
-	 * @param row The row starting from the beginning of the day
-	 * @return The minute portion of the time that this row represents
-	 */
-	public int computeMinuteFromRow(int row) {
-		int numberOfDivisionsInHour = getNumberOfDivisionsInHour();
-		int minute = (int) ((double) row
-				% numberOfDivisionsInHour
-				/ numberOfDivisionsInHour * 60);
-		return minute;
-	}
-	
-	/**
-	 * @param day The day to return all day Calendarables for
-	 * @return All the all day Calendarables for the specified day, order maintained
-	 */
-	public CalendarableItem[] getAllDayCalendarables(int day) {
-		List allDays = new LinkedList();
-		for (Iterator calendarablesIter = getCalendarableItems(day).iterator(); calendarablesIter.hasNext();) {
-			CalendarableItem candidate = (CalendarableItem) calendarablesIter.next();
-			if (candidate.isAllDayEvent()) {
-				allDays.add(candidate);
-			}
-		}
-		return (CalendarableItem[]) allDays.toArray(new CalendarableItem[allDays.size()]);
-	}
-
-	/**
-	 * @param day The day to search
-	 * @param forward true if we're going forward; false if we're searching backward
-	 * @param selection The currently selected Calendarable or null if none
-	 * @return The next Calendarable in the specified direction where result != selection; null if none
-	 */
-	public CalendarableItem findAllDayCalendarable(int day, boolean forward, CalendarableItem selection) {
-		CalendarableItem[] calendarables = getAllDayCalendarables(day);
-		if (forward) {
-			if (calendarables.length < 1) {
-				return null;
-			}
-			if (selection == null) {
-				return null;
-			} else if (selection == calendarables[calendarables.length-1]) {
-				return null;
-			}
-			for (int selected = 0; selected < calendarables.length; selected++) {
-				if (calendarables[selected] == selection) {
-					return calendarables[selected+1];
-				}
-			}
-		} else {
-			if (calendarables.length < 1) {
-				return null;
-			}
-			if (selection == null) {
-				return calendarables[calendarables.length-1];
-			} else if (selection == calendarables[0]) {
-				return null;
-			}
-			for (int selected = 0; selected < calendarables.length; selected++) {
-				if (calendarables[selected] == selection) {
-					return calendarables[selected-1];
-				}
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * @param day The day to search
-	 * @param currentRow The first row to search
-	 * @param stopPosition The row to stop searching on or -1 to search to the first/last element 
-	 * @param forward true if we're going forward; false if we're searching backward
-	 * @param selection The Calendarable associated with currentRow or null if none
-	 * @return The next Calendarable in the specified direction where result != selection; null if none
-	 */
-	public CalendarableItem findTimedCalendarable(int day, int currentRow, int stopPosition, boolean forward, CalendarableItem selection) {
-		CalendarableItem[][] eventLayoutForDay = getEventLayout(day);
-		if (eventLayoutForDay == null) {
-			throw new IllegalArgumentException("Day " + day + " has no event data!!!");
-		}
-		
-		int startColumn = 0;
-		if (selection != null) {
-			startColumn = findCalendarable(selection, currentRow, eventLayoutForDay);
-			if (startColumn == -1) {
-				throw new IllegalArgumentException("day " + day + ", row " + currentRow + " does not contain the specified Calendarable");
-			}
-		}
-		
-		int currentColumn = startColumn;
-		if (forward) {
-			if (stopPosition == -1) {
-				stopPosition = eventLayoutForDay[0].length;
-			}
-			for (int row = currentRow; row < stopPosition; row++) {
-				while (true) {
-					CalendarableItem candidate = eventLayoutForDay[currentColumn][row];
-					if (candidate != null && candidate != selection) {
-						if (selection == null || 
-							candidate.getStartTime().after(selection.getStartTime()) || 
-							(currentColumn > startColumn && !candidate.getStartTime().before(selection.getStartTime()))) 
-						{
-							return candidate;
-						}
-					}
-					++currentColumn;
-					if (currentColumn >= eventLayoutForDay.length) {
-						currentColumn = 0;
-						break;
-					}
-				}
-			}
-		} else {
-			if (stopPosition == -1) {
-				stopPosition = 0;
-			}
-			for (int row = currentRow; row >= stopPosition; --row) {
-				while (true) {
-					CalendarableItem candidate = eventLayoutForDay[currentColumn][row];
-					if (candidate != null && candidate != selection && candidate.getUpperLeftPositionInDayRowCoordinates().y == row) {
-						if (selection == null || 
-							candidate.getStartTime().before(selection.getStartTime()) || 
-							(currentColumn < startColumn && !candidate.getStartTime().after(selection.getStartTime()))) 
-						{
-							if (selection == null && currentColumn > 0) {
-								// The candidate could have an earlier start time
-								// than some other column
-								for (int earlierColumn = currentColumn-1; earlierColumn >= 0; --earlierColumn) {
-									CalendarableItem newCandidate = eventLayoutForDay[earlierColumn][row];
-									if (newCandidate.getStartTime().after(candidate.getStartTime())) {
-										candidate = newCandidate;
-									}
-								}
-							}
-							return candidate;
-						}
-					}
-					--currentColumn;
-					if (currentColumn < 0) {
-						currentColumn = eventLayoutForDay.length-1;
-						break;
-					}
-				}
-			}
-		}
-		return null;
-	}
-
-	private int findCalendarable(CalendarableItem selection, int currentRow, CalendarableItem[][] eventLayoutForDay) {
-		for (int column = 0; column < eventLayoutForDay.length; column++) {
-			if (eventLayoutForDay[column][currentRow] == selection) {
-				return column;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * @param selectedDay
-	 * @param selectedRow
-	 * @param selection
-	 * @param isAllDayEventRow
-	 * @return
-	 */
-	public CalendarableItem findNextCalendarable(int selectedDay, int selectedRow, CalendarableItem selection, boolean isAllDayEventRow) {
-		// Search the rest of the selectedDay starting at selectedRow
-		CalendarableItem result = null;
-		if (isAllDayEventRow) {
-			result = findAllDayCalendarable(selectedDay, true, selection);
-			if (result != null)
-				return result;
-			result = findTimedCalendarable(selectedDay, 0, -1, true, null);
-			if (result != null)
-				return result;
-		} else {
-			result = findTimedCalendarable(selectedDay, selectedRow, -1, true, selection);
-			if (result != null) {
-				return result;
-			}
-		}
-		
-		// Search all days other than selectedDay
-		int currentDay = nextDay(selectedDay);
-		while (currentDay != selectedDay) {
-			// Is there an all-day event to select?
-			CalendarableItem[] allDayCalendarables = getAllDayCalendarables(currentDay);
-			if (allDayCalendarables.length > 0) {
-				return allDayCalendarables[0];
-			}
-			
-			// Nope, search for the first timed event
-			result = findTimedCalendarable(currentDay, 0, -1, true, null);
-			if (result != null) {
-				return result;
-			}
-			
-			currentDay = nextDay(currentDay);
-		}
-		
-		// Search selectedDay from 0 to selectedRow
-		CalendarableItem[] allDayCalendarables = getAllDayCalendarables(selectedDay);
-		if (allDayCalendarables.length > 0) {
-			return allDayCalendarables[0];
-		}
-		
-		// If we started in an all-day event row, we're done searching.
-		if (isAllDayEventRow) {
-			return null;
-		}
-		
-		// Search the last of the timed-events
-		result = findTimedCalendarable(selectedDay, 0, selectedRow-1, true, null);
-//		result = findTimedCalendarable(selectedDay, 0, selectedRow-1, true, selection);
-		if (result != null) {
-			return result;
-		}
-		
-		// Nothing more to search; give up.
-		return null;
-	}
-
-	private int nextDay(int selectedDay) {
-		++selectedDay;
-		if (selectedDay >= numberOfDays) {
-			selectedDay = 0;
-		}
-		return selectedDay;
-	}
-
-	/**
-	 * @param selectedDay
-	 * @param selectedRow
-	 * @param selection
-	 * @param isAllDayEventRow 
-	 * @return
-	 */
-	public CalendarableItem findPreviousCalendarable(int selectedDay, int selectedRow, CalendarableItem selection, boolean isAllDayEventRow) {
-		CalendarableItem result = null;
-		
-		// Search to the beginning of the current day
-		if (!isAllDayEventRow) {
-			// search timed events to the beginning of the day
-			result = findTimedCalendarable(selectedDay, selectedRow, -1, false, selection);
-			if (result != null)
-				return result;
-			
-			// Search all-day events
-			result = findAllDayCalendarable(selectedDay, false, null);
-			if (result != null)
-				return result;
-		} else {
-			result = findAllDayCalendarable(selectedDay, false, selection);
-			if (result != null)
-				return result;
-		}
-		
-		// Search all days other than selectedDay
-		int currentDay = previousDay(selectedDay);
-		while (currentDay != selectedDay) {
-			// Nope, search for the first timed event
-			result = findTimedCalendarable(currentDay, 
-					getEventLayout(selectedDay)[0].length-1, 
-					-1, false, null);
-			if (result != null) {
-				return result;
-			}
-			
-			// Is there an all-day event to select?
-			CalendarableItem[] allDayCalendarables = getAllDayCalendarables(currentDay);
-			if (allDayCalendarables.length > 0) {
-				return allDayCalendarables[allDayCalendarables.length-1];
-			}
-			
-			currentDay = previousDay(currentDay);
-		}
-		
-		// Search from the end of the current day to the current time
-		result = findTimedCalendarable(currentDay, 
-				getEventLayout(selectedDay)[0].length-1, 
-				selectedRow+1, false, null);
-		if (result != null) {
-			return result;
-		}
-
-		return null;
-	}
-
-	private int previousDay(int selectedDay) {
-		--selectedDay;
-		if (selectedDay < 0) {
-			selectedDay = numberOfDays-1;
-		}
-		return selectedDay;
-	}
-}
-
-
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/DisposeListener.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/DisposeListener.java
deleted file mode 100644
index eb8111d..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/DisposeListener.java
+++ /dev/null
@@ -1,30 +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.examples.databinding.compositetable.timeeditor;
-
-/**
- * A calendarable dispose listener because Calendarable objects don't have
- * any SWT parent.
- * 
- * @since 3.2
- */
-public interface DisposeListener {
-
-	/**
-	 * Called when the calendarable object is about to be removed from the
-	 * GUI.  GUI elements hooked up to the calenderable should then dispose
-	 * themselves.
-	 * 
-	 * @param sender The Calendarable being disposed.
-	 */
-	public void widgetDisposed(CalendarableItem sender);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/EventContentProvider.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/EventContentProvider.java
deleted file mode 100644
index b846871..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/EventContentProvider.java
+++ /dev/null
@@ -1,31 +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.examples.databinding.compositetable.timeeditor;
-
-import java.util.Date;
-
-/**
- * A strategy pattern object that can refresh all of the event controls
- * for a given day.
- * 
- * @since 3.2
- */
-public abstract class EventContentProvider {
-	/**
-	 * Refreshes the contents of the specified event controls for the specified
-	 * day.
-	 * 
-	 * @param day The day
-	 * @param controls The controls to refresh
-	 */
-	abstract public void refresh(Date day, CalendarableItem[] controls);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/EventCountProvider.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/EventCountProvider.java
deleted file mode 100644
index 277e515..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/EventCountProvider.java
+++ /dev/null
@@ -1,30 +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.examples.databinding.compositetable.timeeditor;
-
-import java.util.Date;
-
-/**
- * A strategy pattern object that returns the number of events to display for a 
- * specific time period.
- * 
- * @since 3.2
- */
-public abstract class EventCountProvider {
-	/**
-	 * Returns the number of events to display on a specific day.
-	 *  
-	 * @param day The day to query.
-	 * @return The number of events on the specified day.
-	 */
-	abstract public int getNumberOfEventsInDay(Date day);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/IEventEditor.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/IEventEditor.java
deleted file mode 100644
index 5ceacf0..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/IEventEditor.java
+++ /dev/null
@@ -1,393 +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.examples.databinding.compositetable.timeeditor;
-
-import java.util.Date;
-
-import org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler;
-import org.eclipse.jface.examples.databinding.compositetable.day.CalendarableSelectionChangeListener;
-import org.eclipse.jface.examples.databinding.compositetable.day.NewEvent;
-import org.eclipse.jface.examples.databinding.compositetable.day.SelectionChangeEvent;
-import org.eclipse.swt.SWTException;
-
-/**
- * Interface IEventEditor.  An interface for editors of time-based data that
- * can be visualized on various calendar-like controls.
- * 
- * @since 3.2
- */
-public interface IEventEditor {
-
-	/** 
-	 * The number of hours to display at a time.  Normally this is the number
-	 * of hours in a day.
-	 */
-	public static final int DISPLAYED_HOURS = 24;
-
-	/**
-	 * Method setTimeBreakdown. Call this method exactly once after constructing
-	 * the control in order to set the number of day columns to display.
-	 * <p>
-	 * This method may be executed exactly once. Executing more than once will
-	 * result in undefined behavior.
-	 * <p>
-	 * This method is a <b>hint</b>.  It may be ignored by specific 
-	 * implementations (ie: a month view).
-	 * 
-	 * @param numberOfDays
-	 *            The number of days to display.
-	 * @param numberOfDivisionsInHour
-	 *            1 == one line per hour; 2 == every 1/2 hour; 4 = every 1/4
-	 *            hour; etc...
-	 */
-	void setTimeBreakdown(int numberOfDays, int numberOfDivisionsInHour);
-	
-	/**
-	 * Method getNumberOfDays.  Returns the number of days being displayed
-	 * in this IEventEditor.
-	 * 
-	 * @return The number of days being displayed.
-	 */
-	int getNumberOfDays();
-	
-	/**
-	 * Returns the numberOfDivisionsInHour.  For example, to have a new
-	 * time slice every 1/4 hour, this value would be 4.
-	 * 
-	 * @return Returns the numberOfDivisionsInHour.
-	 */
-	int getNumberOfDivisionsInHour();
-
-	/**
-	 * Set the start date for this event editor.  How this is interpreted depends
-	 * on how time is being visualized.
-	 * <p>
-	 * For example, a month editor would only pay attention to the month portion
-	 * of the date.  A multi-day editor would make the date passed be the first
-	 * date edited in the set of days being visualized.
-	 *  
-	 * @param startDate The date representing what slice of time to visualize in the editor.  
-	 * null is not permitted.  Passing null will result in undefined behavior.
-	 */
-	void setStartDate(Date startDate);
-	
-	/**
-	 * Return the current start date for this event editor.  This is the date
-	 * that was set in setStartDate.
-	 * 
-	 * @return The start date, or <code>null</code> if no start date has been specified yet.
-	 */
-	Date getStartDate();
-	
-	/**
-	 * Set the strategy pattern object that can return how many events to
-	 * display for specific periods of time.
-	 * <p>
-	 * Note that having a separate event count provider and event content
-	 * provider assumes that the implementer is single-threaded and that the
-	 * count can't change between calling the count provider and the content
-	 * provider.
-	 * 
-	 * @param eventCountProvider
-	 *            The eventCountProvider to set.
-	 */
-	void setEventCountProvider(EventCountProvider eventCountProvider);
-	
-	/**
-	 * Sets the strategy pattern object that can set the properties of the event
-	 * objects in order to display the data associated with the specified event.
-	 * <p>
-	 * Note that having a separate event count provider and event content
-	 * provider assumes that the implementer is single-threaded and that the
-	 * count can't change between calling the count provider and the content
-	 * provider.
-	 * 
-	 * @param eventContentProvider
-	 *            The eventContentProvider to set.
-	 */
-	void setEventContentProvider(EventContentProvider eventContentProvider);
-	
-	/**
-	 * Tells the IEventEditor to refresh its display for the specified date.
-	 * If the specified date is not being displayed, the request will be ignored.
-	 * If null is passed as the date, the entire display is refreshed.
-	 * 
-	 * @param date The date to refresh or null to refresh everything.
-	 */
-	void refresh(Date date);
-	
-	/**
-	 * Tells the IEventEditor to refresh all days in its display.
-	 */
-	void refresh();
-
-	/**
-	 * Adds the handler to the collection of handlers who will
-	 * be notified when a CalendarableItem is inserted in the receiver, by sending
-	 * it one of the messages defined in the <code>CalendarableItemInsertHandler</code>
-	 * abstract class.
-	 * <p>
-	 * <code>itemInserted</code> is called when the CalendarableItem is inserted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemInsertHandler
-	 * @see #removeItemInsertHandler
-	 */
-	void addItemInsertHandler(CalendarableItemEventHandler insertHandler);
-
-	/**
-	 * Removes the handler from the collection of handlers who will
-	 * be notified when a CalendarableItem is inserted into the receiver, by sending
-	 * it one of the messages defined in the <code>CalendarableItemInsertHandler</code>
-	 * abstract class.
-	 * <p>
-	 * <code>itemInserted</code> is called when the CalendarableItem is inserted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemInsertHandler
-	 * @see #addItemInsertHandler
-	 */
-	void removeItemInsertHandler(CalendarableItemEventHandler insertHandler);
-
-	/**
-	 * Requests that the event editor attempt to insert a new element by calling
-	 * its registered insert handlers
-	 * 
-	 * @param date
-	 *            The date/time on which to request the insert. The actual date
-	 *            on which the insert is performed may be different. This is a
-	 *            HINT.
-	 * 
-	 * @param allDayEvent
-	 *            Indicates if the new event should be an all-day event. This is
-	 *            a HINT; the actual event inserted may be a timed event.
-	 * 
-	 * @return NewEvent a NewEvent object describing the event that was
-	 *         inserted.
-	 */
-	public NewEvent fireInsert(Date date, boolean allDayEvent);
-	
-	/**
-	 * Adds the handler to the collection of handlers who will
-	 * be notified when a CalendarableItem is deleted from the receiver, by sending
-	 * it one of the messages defined in the <code>CalendarableItemEventHandler</code>
-	 * abstract class.
-	 * <p>
-	 * <code>itemDeleted</code> is called when the CalendarableItem is deleted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemEventHandler
-	 * @see #removeDeleteItemHandler
-	 */
-	void addItemDeleteHandler(CalendarableItemEventHandler deleteHandler);
-
-	/**
-	 * Requests that the event editor delete the specified CalendarableItem's
-	 * data.
-	 *  
-	 * @param toDelete The CalendarableItem to delete.
-	 * @return true if successful; false otherwise.
-	 */
-	public boolean fireDelete(CalendarableItem toDelete);
-
-	/**
-	 * Removes the handler from the collection of handlers who will
-	 * be notified when a CalendarableItem is deleted from the receiver, by sending
-	 * it one of the messages defined in the <code>CalendarableItemEventHandler</code>
-	 * abstract class.
-	 * <p>
-	 * <code>itemDeleted</code> is called when the CalendarableItem is deleted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemEventHandler
-	 * @see #addDeleteItemHandler
-	 */
-	void removeItemDeleteHandler(CalendarableItemEventHandler deleteHandler);
-
-	/**
-	 * Adds the handler to the collection of handler who will
-	 * be notified when a CalendarableItem's control is disposed, by sending
-	 * it one of the messages defined in the <code>CalendarableItemEventHandler</code>
-	 * abstract class.  This is normally used to remove any data bindings
-	 * that may be attached to the (now-unused) CalendarableItem.
-	 * <p>
-	 * <code>itemDeleted</code> is called when the CalendarableItem is deleted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemEventHandler
-	 * @see #removeCalendarableItemDisposeHandler
-	 */
-	void addItemDisposeHandler(CalendarableItemEventHandler itemDisposeHandler);
-
-	/**
-	 * Removes the handler from the collection of handlers who will
-	 * be notified when a CalendarableItem is disposed, by sending
-	 * it one of the messages defined in the <code>CalendarableItemEventHandler</code>
-	 * abstract class.  This is normally used to remove any data bindings
-	 * that may be attached to the (now-unused) CalendarableItem.
-	 * <p>
-	 * <code>itemDeleted</code> is called when the CalendarableItem is deleted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemEventHandler
-	 * @see #removeDeleteListener
-	 */
-	void removeItemDisposeHandler(CalendarableItemEventHandler itemDisposeHandler);
-	
-	/**
-	 * Adds the handler to the collection of handlers who will
-	 * be notified when a CalendarableItem is inserted in the receiver, by sending
-	 * it one of the messages defined in the <code>CalendarableItemInsertHandler</code>
-	 * abstract class.
-	 * <p>
-	 * <code>itemInserted</code> is called when the CalendarableItem is inserted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemInsertHandler
-	 * @see #removeItemInsertHandler
-	 */
-	public void addItemEditHandler(CalendarableItemEventHandler handler);
-	
-	/**
-	 * Removes the handler from the collection of handlers who will
-	 * be notified when a CalendarableItem is inserted into the receiver, by sending
-	 * it one of the messages defined in the <code>CalendarableItemInsertHandler</code>
-	 * abstract class.
-	 * <p>
-	 * <code>itemInserted</code> is called when the CalendarableItem is inserted.
-	 * </p>
-	 *
-	 * @param handler the handler which should be notified
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the handler is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 *
-	 * @see CalendarableItemInsertHandler
-	 * @see #addItemInsertHandler
-	 */
-	public void removeItemEditHandler(CalendarableItemEventHandler handler);
-
-	/**
-	 * Adds the listener to the collection of listeners who will
-	 * be notified when the receiver's selection changes, by sending
-	 * it one of the messages defined in the <code>CalendarableSelectionChangeListener</code>
-	 * interface.
-	 * <p>
-	 * <code>selectionChanged</code> is called when the selection changes.
-	 * </p>
-	 *
-	 * @param listener the listener which should be notified
-	 *
-	 * @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>
-	 * </ul>
-	 *
-	 * @see CalendarableSelectionChangeListener
-	 * @see #removeSelectionChangeListener
-	 * @see SelectionChangeEvent
-	 */
-	public void addSelectionChangeListener(CalendarableSelectionChangeListener l);
-	
-	/**
-	 * Removes the listener from the collection of listeners who will
-	 * be notified when the receiver's selection changes, by sending
-	 * it one of the messages defined in the <code>CalendarableSelectionChangeListener</code>
-	 * interface.
-	 * <p>
-	 * <code>selectionChanged</code> is called when the selection changes.
-	 * </p>
-	 *
-	 * @param listener the listener which should no longer be notified
-	 *
-	 * @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>
-	 * </ul>
-	 *
-	 * @see CalendarableSelectionChangeListener
-	 * @see #addSelectionChangeListener
-	 * @see SelectionChangeEvent
-	 */
-	public void removeSelectionChangeListener(CalendarableSelectionChangeListener l);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/AsynchronousTestSet.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/AsynchronousTestSet.java
deleted file mode 100644
index 9390f10..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/AsynchronousTestSet.java
+++ /dev/null
@@ -1,163 +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.examples.databinding.contentprovider.test;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Random;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.set.ObservableSet;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Test set that simulates asynchronously computed elements. The elements of the
- * set are randomly generated Integers. Whenever the "recompute" method is
- * called, the set will spin off a job that sleeps for a period of time and then
- * randomly adds and removes elements from the set.
- * 
- * <p>
- * This simulates a set that wraps a database query or network communication.
- * These would follow the same pattern (report the set as "stale", perform some
- * slow operation, then make changes to the set).
- * </p>
- * 
- * @since 1.0
- */
-public class AsynchronousTestSet extends ObservableSet {
-
-	private static Random randomNumberGenerator = new Random();
-
-	private Display display;
-
-	private boolean stale = false;
-
-	/**
-	 * Average number of elements to add or remove
-	 */
-	private static final int AVERAGE_DELTA = 4;
-
-	/**
-	 * Average "computation" time -- time taken to do the simulated work (ms)
-	 */
-	private static final int AVERAGE_BUSY_TIME = 1000;
-
-	/**
-	 * List of all undisposed AsynchronousTestSet instances. Used for the
-	 * recomputeAll method.
-	 */
-	private static List allSets = new ArrayList();
-
-	public AsynchronousTestSet() {
-		super(new HashSet(), Object.class);
-		display = Display.getCurrent();
-		if (display == null) {
-			throw new IllegalStateException(
-					"This object can only be created in the UI thread"); //$NON-NLS-1$
-		}
-		recompute();
-	}
-
-	protected void firstListenerAdded() {
-		super.firstListenerAdded();
-		allSets.add(this);
-	}
-
-	protected void lastListenerRemoved() {
-		allSets.remove(this);
-		super.lastListenerRemoved();
-	}
-
-	public static void recomputeAll() {
-		for (Iterator iter = allSets.iterator(); iter.hasNext();) {
-			AsynchronousTestSet next = (AsynchronousTestSet) iter.next();
-
-			next.recompute();
-		}
-	}
-
-	public void remove(Collection toRemove) {
-		HashSet removed = new HashSet();
-		removed.addAll(toRemove);
-		removed.retainAll(wrappedSet);
-
-		wrappedSet.removeAll(removed);
-		fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removed));
-	}
-
-	public boolean isStale() {
-		return stale;
-	}
-
-	public void recompute() {
-		if (!isStale()) {
-			setStale(true);
-			final int sleepTime = (int) (randomNumberGenerator.nextDouble() * (double) (AVERAGE_BUSY_TIME * 2));
-			Thread newThread = new Thread(new Runnable() {
-				public void run() {
-
-					// Simulate work by sleeping
-					try {
-						Thread.sleep(sleepTime);
-					} catch (InterruptedException e) {
-					}
-
-					// Add and remove some elements -- important: fire all
-					// events in the UI thread
-					display.asyncExec(new Runnable() {
-						public void run() {
-							final HashSet toAdd = new HashSet();
-							final HashSet toRemove = new HashSet();
-
-							// Compute elements to add and remove (basically
-							// just fills the toAdd
-							// and toRemove sets with random elements)
-							int delta = (randomNumberGenerator
-									.nextInt(AVERAGE_DELTA * 4) - AVERAGE_DELTA * 2);
-							int extraAdds = randomNumberGenerator
-									.nextInt(AVERAGE_DELTA);
-							int addCount = delta + extraAdds;
-							int removeCount = -delta + extraAdds;
-
-							if (addCount > 0) {
-								for (int i = 0; i < addCount; i++) {
-									toAdd.add(new Integer(randomNumberGenerator
-											.nextInt(20)));
-								}
-							}
-
-							if (removeCount > 0) {
-								Iterator oldElements = wrappedSet.iterator();
-								for (int i = 0; i < removeCount
-										&& oldElements.hasNext(); i++) {
-									toRemove.add(oldElements.next());
-								}
-							}
-
-							toAdd.removeAll(wrappedSet);
-							wrappedSet.addAll(toAdd);
-							wrappedSet.removeAll(toRemove);
-
-							setStale(false);
-							fireSetChange(Diffs.createSetDiff(toAdd, toRemove));
-						}
-					});
-				}
-			});
-
-			newThread.start();
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/LabelProviderTest.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/LabelProviderTest.java
deleted file mode 100644
index 18aad9c..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/LabelProviderTest.java
+++ /dev/null
@@ -1,204 +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.examples.databinding.contentprovider.test;
-
-import java.util.Collections;
-
-import org.eclipse.jface.databinding.observable.set.WritableSet;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.databinding.viewers.ObservableSetContentProvider;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ListeningLabelProvider;
-import org.eclipse.jface.internal.databinding.provisional.viewers.SelectionObservableValue;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.layout.LayoutConstants;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.ViewerLabel;
-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.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.Shell;
-
-/**
- * Tests UpdatableTreeContentProvider and DirtyIndicationLabelProvider. Creates
- * a tree containing three randomly-generated sets of integers, and one node
- * that contains the union of the other sets.
- * 
- * @since 1.0
- */
-public class LabelProviderTest {
-
-	private Shell shell;
-
-	private ListViewer list;
-
-	private WritableSet setOfRenamables;
-
-	private Button addButton;
-
-	private Button removeButton;
-
-	private Button renameButton;
-
-	private SelectionListener buttonSelectionListener = new SelectionAdapter() {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-		 */
-		public void widgetSelected(SelectionEvent e) {
-			Button pressed = (Button) e.widget;
-			if (pressed == addButton) {
-				setOfRenamables.add(new RenamableItem());
-			} else if (pressed == removeButton) {
-				setOfRenamables.remove(getCurrentSelection());
-			} else if (pressed == renameButton) {
-				rename(getCurrentSelection());
-			}
-
-			super.widgetSelected(e);
-		}
-	};
-
-	private IObservableValue selectedRenamable;
-
-	/**
-	 * 
-	 */
-	public LabelProviderTest() {
-
-		// Create shell
-		shell = new Shell(Display.getCurrent());
-		{ // Initialize shell
-			setOfRenamables = new WritableSet();
-
-			list = new ListViewer(shell);
-			ObservableSetContentProvider contentProvider = new ObservableSetContentProvider();
-			list.setContentProvider(contentProvider);
-			list.setLabelProvider(new ListeningLabelProvider(contentProvider
-					.getKnownElements()) {
-				RenamableItem.Listener listener = new RenamableItem.Listener() {
-					public void handleChanged(RenamableItem item) {
-						fireChangeEvent(Collections.singleton(item));
-					}
-				};
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.jface.databinding.viewers.ViewerLabelProvider#updateLabel(org.eclipse.jface.viewers.ViewerLabel,
-				 *      java.lang.Object)
-				 */
-				public void updateLabel(ViewerLabel label, Object element) {
-					if (element instanceof RenamableItem) {
-						RenamableItem item = (RenamableItem) element;
-
-						label.setText(item.getName());
-					}
-				}
-
-				protected void addListenerTo(Object next) {
-					RenamableItem item = (RenamableItem) next;
-
-					item.addListener(listener);
-				}
-
-				protected void removeListenerFrom(Object next) {
-					RenamableItem item = (RenamableItem) next;
-
-					item.removeListener(listener);
-				}
-			});
-			list.setInput(setOfRenamables);
-
-			selectedRenamable = new SelectionObservableValue(list);
-
-			Composite buttonBar = new Composite(shell, SWT.NONE);
-			{ // Initialize buttonBar
-				addButton = new Button(buttonBar, SWT.PUSH);
-				addButton.setText("Add"); //$NON-NLS-1$
-				addButton.addSelectionListener(buttonSelectionListener);
-				removeButton = new Button(buttonBar, SWT.PUSH);
-				removeButton.addSelectionListener(buttonSelectionListener);
-				removeButton.setText("Remove"); //$NON-NLS-1$
-				renameButton = new Button(buttonBar, SWT.PUSH);
-				renameButton.addSelectionListener(buttonSelectionListener);
-				renameButton.setText("Rename"); //$NON-NLS-1$
-
-				selectedRenamable
-						.addValueChangeListener(new IValueChangeListener() {
-							public void handleValueChange(
-									IObservableValue source, ValueDiff diff) {
-								boolean shouldEnable = selectedRenamable
-										.getValue() != null;
-								removeButton.setEnabled(shouldEnable);
-								renameButton.setEnabled(shouldEnable);
-							}
-						});
-				removeButton.setEnabled(false);
-				renameButton.setEnabled(false);
-
-				GridLayoutFactory.fillDefaults().generateLayout(buttonBar);
-			}
-
-		}
-		GridLayoutFactory.fillDefaults().numColumns(2).margins(
-				LayoutConstants.getMargins()).generateLayout(shell);
-	}
-
-	/**
-	 * @param currentSelection
-	 */
-	protected void rename(final RenamableItem currentSelection) {
-		InputDialog inputDialog = new InputDialog(
-				shell,
-				"Edit name", "Enter the new item name", currentSelection.getName(), null); //$NON-NLS-1$ //$NON-NLS-2$
-		if (Window.OK == inputDialog.open()) {
-			currentSelection.setName(inputDialog.getValue());
-		}
-	}
-
-	/**
-	 * @return
-	 */
-	protected RenamableItem getCurrentSelection() {
-		return (RenamableItem) selectedRenamable.getValue();
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = Display.getDefault();
-		LabelProviderTest test = new LabelProviderTest();
-		Shell s = test.getShell();
-		s.pack();
-		s.setVisible(true);
-
-		while (!s.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-
-	private Shell getShell() {
-		return shell;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/LabelProviderTest2.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/LabelProviderTest2.java
deleted file mode 100644
index 08d8a88..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/LabelProviderTest2.java
+++ /dev/null
@@ -1,204 +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.examples.databinding.contentprovider.test;
-
-import java.util.Collections;
-
-import org.eclipse.jface.databinding.observable.list.WritableList;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ListeningLabelProvider;
-import org.eclipse.jface.internal.databinding.provisional.viewers.SelectionObservableValue;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.layout.LayoutConstants;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.ViewerLabel;
-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.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.Shell;
-
-/**
- * Tests UpdatableTreeContentProvider and DirtyIndicationLabelProvider. Creates
- * a tree containing three randomly-generated sets of integers, and one node
- * that contains the union of the other sets.
- * 
- * @since 1.0
- */
-public class LabelProviderTest2 {
-
-	private Shell shell;
-
-	private ListViewer list;
-
-	private WritableList listOfRenamables;
-
-	private Button addButton;
-
-	private Button removeButton;
-
-	private Button renameButton;
-
-	private SelectionListener buttonSelectionListener = new SelectionAdapter() {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-		 */
-		public void widgetSelected(SelectionEvent e) {
-			Button pressed = (Button) e.widget;
-			if (pressed == addButton) {
-				listOfRenamables.add(new RenamableItem());
-			} else if (pressed == removeButton) {
-				listOfRenamables.remove(getCurrentSelection());
-			} else if (pressed == renameButton) {
-				rename(getCurrentSelection());
-			}
-
-			super.widgetSelected(e);
-		}
-	};
-
-	private IObservableValue selectedRenamable;
-
-	/**
-	 * 
-	 */
-	public LabelProviderTest2() {
-
-		// Create shell
-		shell = new Shell(Display.getCurrent());
-		{ // Initialize shell
-			listOfRenamables = new WritableList();
-
-			list = new ListViewer(shell);
-			ObservableListContentProvider contentProvider = new ObservableListContentProvider();
-			list.setContentProvider(contentProvider);
-			list.setLabelProvider(new ListeningLabelProvider(contentProvider
-					.getKnownElements()) {
-				RenamableItem.Listener listener = new RenamableItem.Listener() {
-					public void handleChanged(RenamableItem item) {
-						fireChangeEvent(Collections.singleton(item));
-					}
-				};
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.jface.databinding.viewers.ViewerLabelProvider#updateLabel(org.eclipse.jface.viewers.ViewerLabel,
-				 *      java.lang.Object)
-				 */
-				public void updateLabel(ViewerLabel label, Object element) {
-					if (element instanceof RenamableItem) {
-						RenamableItem item = (RenamableItem) element;
-
-						label.setText(item.getName());
-					}
-				}
-
-				protected void addListenerTo(Object next) {
-					RenamableItem item = (RenamableItem) next;
-
-					item.addListener(listener);
-				}
-
-				protected void removeListenerFrom(Object next) {
-					RenamableItem item = (RenamableItem) next;
-
-					item.removeListener(listener);
-				}
-			});
-			list.setInput(listOfRenamables);
-
-			selectedRenamable = new SelectionObservableValue(list);
-
-			Composite buttonBar = new Composite(shell, SWT.NONE);
-			{ // Initialize buttonBar
-				addButton = new Button(buttonBar, SWT.PUSH);
-				addButton.setText("Add"); //$NON-NLS-1$
-				addButton.addSelectionListener(buttonSelectionListener);
-				removeButton = new Button(buttonBar, SWT.PUSH);
-				removeButton.addSelectionListener(buttonSelectionListener);
-				removeButton.setText("Remove"); //$NON-NLS-1$
-				renameButton = new Button(buttonBar, SWT.PUSH);
-				renameButton.addSelectionListener(buttonSelectionListener);
-				renameButton.setText("Rename"); //$NON-NLS-1$
-
-				selectedRenamable
-						.addValueChangeListener(new IValueChangeListener() {
-							public void handleValueChange(
-									IObservableValue source, ValueDiff diff) {
-								boolean shouldEnable = selectedRenamable
-										.getValue() != null;
-								removeButton.setEnabled(shouldEnable);
-								renameButton.setEnabled(shouldEnable);
-							}
-						});
-				removeButton.setEnabled(false);
-				renameButton.setEnabled(false);
-
-				GridLayoutFactory.fillDefaults().generateLayout(buttonBar);
-			}
-
-		}
-		GridLayoutFactory.fillDefaults().numColumns(2).margins(
-				LayoutConstants.getMargins()).generateLayout(shell);
-	}
-
-	/**
-	 * @param currentSelection
-	 */
-	protected void rename(final RenamableItem currentSelection) {
-		InputDialog inputDialog = new InputDialog(
-				shell,
-				"Edit name", "Enter the new item name", currentSelection.getName(), null); //$NON-NLS-1$ //$NON-NLS-2$
-		if (Window.OK == inputDialog.open()) {
-			currentSelection.setName(inputDialog.getValue());
-		}
-	}
-
-	/**
-	 * @return
-	 */
-	protected RenamableItem getCurrentSelection() {
-		return (RenamableItem) selectedRenamable.getValue();
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = Display.getDefault();
-		LabelProviderTest2 test = new LabelProviderTest2();
-		Shell s = test.getShell();
-		s.pack();
-		s.setVisible(true);
-
-		while (!s.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-
-	private Shell getShell() {
-		return shell;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/RenamableItem.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/RenamableItem.java
deleted file mode 100644
index a6d7151..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/RenamableItem.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.jface.examples.databinding.contentprovider.test;
-
-import java.util.ArrayList;
-
-/**
- * @since 1.0
- *
- */
-public class RenamableItem {
-	
-	public static interface Listener {
-		public void handleChanged(RenamableItem item);
-	};
-	
-	private String name;
-	private ArrayList listeners = new ArrayList();
-
-	public RenamableItem() {
-		name = "RenamableItem"; //$NON-NLS-1$
-	}
-	
-	public void addListener(Listener listener) {
-		listeners.add(listener);
-	}
-	
-	public void removeListener(Listener toRemove) {
-		listeners.remove(toRemove);
-	}
-	
-	public void setName(String newName) {
-		this.name = newName;
-		
-		Listener[] l = (Listener[]) listeners.toArray(new Listener[listeners.size()]);
-		for (int i = 0; i < l.length; i++) {
-			l[i].handleChanged(this);
-		}
-	}
-	
-	public String getName() {
-		return name;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/SimpleNode.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/SimpleNode.java
deleted file mode 100644
index 3001241..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/SimpleNode.java
+++ /dev/null
@@ -1,39 +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.examples.databinding.contentprovider.test;
-
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-
-
-/**
- * This object will be given randomly-generated children
- *  
- * @since 1.0
- */
-public class SimpleNode {
-	private String nodeName;
-	private IObservableSet children;
-
-	public SimpleNode(String nodeName, IObservableSet children) {
-		super();
-		this.nodeName = nodeName;
-		this.children = children;
-	}
-
-	public String getNodeName() {
-		return nodeName;
-	}
-
-	public IObservableSet getChildren() {
-		return children;
-	}
-	
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/SomeMathFunction.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/SomeMathFunction.java
deleted file mode 100644
index 4a78d9a..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/SomeMathFunction.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.jface.examples.databinding.contentprovider.test;
-
-import java.util.Set;
-
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.internal.databinding.provisional.observable.mapping.MappingDiff;
-import org.eclipse.jface.internal.databinding.provisional.observable.mapping.ObservableMappingWithDomain;
-
-/**
- * Simple function that performs one of three operations on Doubles:
- * <ul>
- * <li>Multiply by two</li>
- * <li>Round to nearest integer</li>
- * <li>Do nothing</li>
- * </ul>
- * 
- * @since 1.0
- */
-public class SomeMathFunction extends ObservableMappingWithDomain {
-
-	/**
-	 * 
-	 */
-	public static final int OP_IDENTITY = 0;
-
-	/**
-	 * 
-	 */
-	public static final int OP_MULTIPLY = 1;
-
-	/**
-	 * 
-	 */
-	public static final int OP_ROUND = 2;
-
-	private int op = OP_ROUND;
-
-	/**
-	 * @param domain
-	 */
-	public SomeMathFunction(IObservableSet domain) {
-		super();
-		initDomain(domain);
-	}
-
-	/**
-	 * @param operation
-	 */
-	public void setOperation(final int operation) {
-		final int oldOp = this.op;
-		this.op = operation;
-
-		// Fire a change event. Changing the operation is going to affect every
-		// answer returned by
-		// this function, so include every element in the function domain in the
-		// event.
-		// If this was a change that would only affect a subset of elements, we
-		// would include
-		// the subset of affected elements rather than using
-		// domain.toCollection()
-		final int[] indices = new int[] { 0 };
-		fireMappingValueChange(new MappingDiff() {
-			public Set getElements() {
-				return getDomain();
-			}
-
-			public int[] getAffectedIndices() {
-				return indices;
-			}
-
-			public Object[] getOldMappingValues(Object element, int[] indices) {
-				return new Object[] { doComputeResult(element, oldOp) };
-			}
-
-			public Object[] getNewMappingValues(Object element, int[] indices) {
-				return new Object[] { doComputeResult(element, operation) };
-			}
-		});
-	}
-
-	protected Object doGetMappingValue(Object element) {
-		return doComputeResult(element, this.op);
-	}
-
-	private Object doComputeResult(Object element, int op) {
-		switch (op) {
-		case OP_IDENTITY:
-			return element;
-		case OP_MULTIPLY:
-			return new Double((((Double) element).doubleValue() * 2.0));
-		case OP_ROUND:
-			return new Double(Math.floor((((Double) element).doubleValue())));
-		}
-		return element;
-	}
-
-	protected void addListenerTo(Object domainElement) {
-		// ignore, no need to listen to immutable Double objects
-	}
-
-	protected void removeListenerFrom(Object domainElement) {
-		// ignore, no need to listen to immutable Double objects
-	}
-
-	public Object getValueType() {
-		return Double.class;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/StructuredContentProviderTest.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/StructuredContentProviderTest.java
deleted file mode 100644
index 0aab1a4..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/StructuredContentProviderTest.java
+++ /dev/null
@@ -1,393 +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.examples.databinding.contentprovider.test;
-
-import java.util.Iterator;
-import java.util.Random;
-
-import org.eclipse.jface.databinding.observable.set.MappedSet;
-import org.eclipse.jface.databinding.observable.set.WritableSet;
-import org.eclipse.jface.databinding.observable.value.ComputedValue;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.viewers.ObservableSetContentProvider;
-import org.eclipse.jface.internal.databinding.provisional.swt.ControlUpdater;
-import org.eclipse.jface.internal.databinding.provisional.viewers.SelectionObservableValue;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewerLabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-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.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Tests UpdatableSetContentProvider, ComputableValue, ControlUpdator,
- * UpdatableFunction, and ConvertingSet.
- * 
- * <p>
- * This test displays a dialog with user-editable list of Doubles. It allows the
- * user to select a math function to apply to the set, and displays the result
- * in a new list. A line of text along the bottom of the dialog displays the sum
- * of the elements from the transformed set. Although this dialog is rather
- * silly, it is a good example of a dialog where a lot of things can change from
- * many directions.
- * </p>
- * 
- * <p>
- * An UpdatableSetContentProvider is used to supply the contents each
- * ListViewer. ControlUpdators
- * 
- * </p>
- * 
- * @since 1.0
- */
-public class StructuredContentProviderTest {
-
-	/**
-	 * Top-level shell for the dialog
-	 */
-	private Shell shell;
-
-	/**
-	 * Random number stream. Used for the "add" button.
-	 */
-	protected Random random = new Random();
-
-	// Data model ////////////////////////////////////////////////////////
-
-	/**
-	 * inputSet stores a set of Doubles. The user is allowed to add and remove
-	 * Doubles from this set.
-	 */
-	private WritableSet inputSet;
-
-	/**
-	 * currentFunction is an Integer, set to one of the SomeMathFunction.OP_*
-	 * constants. It identifies which function will be applied to inputSet.
-	 */
-	private WritableValue currentFunction;
-
-	/**
-	 * mathFunction is the transformation. It can multiply by 2, round down to
-	 * the nearest integer, or do nothing (identity)
-	 */
-	private SomeMathFunction mathFunction;
-
-	/**
-	 * Set of Doubles. Holds the result of applying mathFunction to the
-	 * inputSet.
-	 */
-	private MappedSet outputSet;
-
-	/**
-	 * A Double. Stores the sum of the Doubles in outputSet
-	 */
-	private IObservableValue sumOfOutputSet;
-
-	/**
-	 * Creates the test dialog as a top-level shell.
-	 */
-	public StructuredContentProviderTest() {
-
-		// Initialize the data model
-		createDataModel();
-
-		shell = new Shell(Display.getCurrent(), SWT.SHELL_TRIM);
-		{ // Initialize shell
-			final Label someDoubles = new Label(shell, SWT.NONE);
-			someDoubles.setText("A list of random Doubles"); //$NON-NLS-1$
-			someDoubles.setLayoutData(new GridData(
-					GridData.HORIZONTAL_ALIGN_FILL
-							| GridData.VERTICAL_ALIGN_FILL));
-
-			Control addRemoveComposite = createInputControl(shell, inputSet);
-
-			GridData addRemoveData = new GridData(GridData.FILL_BOTH);
-			addRemoveData.minimumHeight = 1;
-			addRemoveData.minimumWidth = 1;
-
-			addRemoveComposite.setLayoutData(addRemoveData);
-
-			Group operation = new Group(shell, SWT.NONE);
-			{ // Initialize operation group
-				operation.setText("Select transformation"); //$NON-NLS-1$
-
-				createRadioButton(operation, currentFunction, "f(x) = x", //$NON-NLS-1$
-						new Integer(SomeMathFunction.OP_IDENTITY));
-				createRadioButton(operation, currentFunction, "f(x) = 2 * x", //$NON-NLS-1$
-						new Integer(SomeMathFunction.OP_MULTIPLY));
-				createRadioButton(operation, currentFunction,
-						"f(x) = floor(x)", new Integer( //$NON-NLS-1$
-								SomeMathFunction.OP_ROUND));
-
-				GridLayout layout = new GridLayout();
-				layout.numColumns = 1;
-				operation.setLayout(layout);
-			}
-			operation.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
-					| GridData.VERTICAL_ALIGN_FILL));
-
-			Control outputControl = createOutputComposite(shell);
-			GridData outputData = new GridData(GridData.FILL_BOTH);
-			outputData.minimumHeight = 1;
-			outputData.minimumWidth = 1;
-			outputData.widthHint = 300;
-			outputData.heightHint = 150;
-
-			outputControl.setLayoutData(outputData);
-
-			final Label sumLabel = new Label(shell, SWT.NONE);
-			new ControlUpdater(sumLabel) {
-				protected void updateControl() {
-					double sum = ((Double) sumOfOutputSet.getValue())
-							.doubleValue();
-					int size = outputSet.size();
-
-					sumLabel.setText("The sum of the above " + size //$NON-NLS-1$
-							+ " doubles is " + sum); //$NON-NLS-1$
-				}
-			};
-			sumLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
-					| GridData.VERTICAL_ALIGN_FILL));
-
-			GridLayout layout = new GridLayout();
-			layout.numColumns = 1;
-			shell.setLayout(layout);
-		}
-
-	}
-
-	/**
-	 * Create the updatables for this dialog
-	 */
-	private void createDataModel() {
-		// Initialize data model. We will create a user-editable set of Doubles.
-		// The user can run
-		// a transformation on this set and view the result in a list viewer.
-
-		// inputSet will be a writable set of doubles. The user will add and
-		// remove entries from this set
-		// through the UI.
-		inputSet = new WritableSet();
-
-		// currentFunction holds the ID currently selected function to apply to
-		// elements in the inputSet.
-		// We will allow the user to change the current function through a set
-		// of radio buttons
-		currentFunction = new WritableValue(new Integer(
-				SomeMathFunction.OP_MULTIPLY));
-
-		// mathFunction implements the selected function
-		mathFunction = new SomeMathFunction(inputSet);
-		currentFunction.addValueChangeListener(new IValueChangeListener() {
-			public void handleValueChange(IObservableValue source,
-					ValueDiff diff) {
-				mathFunction
-						.setOperation(((Integer) currentFunction.getValue())
-								.intValue());
-			}
-		});
-		mathFunction.setOperation(((Integer) currentFunction.getValue())
-				.intValue());
-
-		// outputSet holds the result. It displays the result of applying the
-		// currently-selected
-		// function on all the elements in the input set.
-		outputSet = new MappedSet(inputSet, mathFunction);
-
-		// sumOfOutputSet stores the current sum of the the Doubles in the
-		// output set
-		sumOfOutputSet = new ComputedValue() {
-			protected Object calculate() {
-				double sum = 0.0;
-				for (Iterator iter = outputSet.iterator(); iter.hasNext();) {
-					Double next = (Double) iter.next();
-
-					sum += next.doubleValue();
-				}
-				return new Double(sum);
-			}
-		};
-	}
-
-	/**
-	 * Creates a radio button in the given parent composite. When selected, the
-	 * button will change the given SettableValue to the given value.
-	 * 
-	 * @param parent
-	 *            parent composite
-	 * @param model
-	 *            SettableValue that will hold the value of the
-	 *            currently-selected radio button
-	 * @param string
-	 *            text to appear in the radio button
-	 * @param value
-	 *            value of this radio button (SettableValue will hold this value
-	 *            when the radio button is selected)
-	 */
-	private void createRadioButton(Composite parent, final WritableValue model,
-			String string, final Object value) {
-		final Button button = new Button(parent, SWT.RADIO);
-		button.setText(string);
-		button.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				model.setValue(value);
-				super.widgetSelected(e);
-			}
-		});
-		new ControlUpdater(button) {
-			protected void updateControl() {
-				button.setSelection(model.getValue().equals(value));
-			}
-		};
-		button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
-				| GridData.VERTICAL_ALIGN_FILL));
-	}
-
-	private Control createOutputComposite(Composite parent) {
-		ListViewer listOfInts = new ListViewer(parent, SWT.BORDER
-				| SWT.V_SCROLL | SWT.H_SCROLL);
-
-		listOfInts.setContentProvider(new ObservableSetContentProvider());
-		listOfInts.setLabelProvider(new ViewerLabelProvider());
-		listOfInts.setInput(outputSet);
-		return listOfInts.getControl();
-	}
-
-	/**
-	 * Creates and returns a control that will allow the user to add and remove
-	 * Doubles from the given input set.
-	 * 
-	 * @param parent
-	 *            parent control
-	 * @param inputSet
-	 *            input set
-	 * @return a newly created SWT control that displays Doubles from the input
-	 *         set and allows the user to add and remove entries
-	 */
-	private Control createInputControl(Composite parent,
-			final WritableSet inputSet) {
-		Composite addRemoveComposite = new Composite(parent, SWT.NONE);
-		{ // Initialize addRemoveComposite
-			ListViewer listOfInts = new ListViewer(addRemoveComposite,
-					SWT.BORDER);
-
-			listOfInts.setContentProvider(new ObservableSetContentProvider());
-			listOfInts.setLabelProvider(new ViewerLabelProvider());
-			listOfInts.setInput(inputSet);
-
-			final IObservableValue selectedInt = new SelectionObservableValue(
-					listOfInts);
-
-			GridData listData = new GridData(GridData.FILL_BOTH);
-			listData.minimumHeight = 1;
-			listData.minimumWidth = 1;
-			listData.widthHint = 150;
-			listData.heightHint = 150;
-			listOfInts.getControl().setLayoutData(listData);
-
-			Composite buttonBar = new Composite(addRemoveComposite, SWT.NONE);
-			{ // Initialize button bar
-
-				Button add = new Button(buttonBar, SWT.PUSH);
-				add.setText("Add"); //$NON-NLS-1$
-				add.addSelectionListener(new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						inputSet.add(new Double(random.nextDouble() * 100.0));
-						super.widgetSelected(e);
-					}
-				});
-				add.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
-						| GridData.VERTICAL_ALIGN_FILL));
-
-				final Button remove = new Button(buttonBar, SWT.PUSH);
-				remove.setText("Remove"); //$NON-NLS-1$
-				// Enable the Remove button if and only if there is currently an
-				// element selected.
-				new ControlUpdater(remove) {
-					protected void updateControl() {
-						// This block demonstrates auto-listening.
-						// When updateControl is running, the framework
-						// remembers each
-						// updatable that gets touched. Since we're calling
-						// selectedInt.getValue()
-						// here, this updator will be flagged as dependant on
-						// selectedInt. This
-						// means that whenever selectedInt changes, this block
-						// of code will re-run
-						// itself.
-
-						// The result is that the remove button will recompute
-						// its enablement
-						// whenever the selection in the listbox changes, and it
-						// was not necessary
-						// to attach any listeners.
-						remove.setEnabled(selectedInt.getValue() != null);
-					}
-				};
-
-				remove.addSelectionListener(new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						inputSet.remove(selectedInt.getValue());
-						super.widgetSelected(e);
-					}
-				});
-				remove.setLayoutData(new GridData(
-						GridData.HORIZONTAL_ALIGN_FILL
-								| GridData.VERTICAL_ALIGN_FILL));
-
-				GridLayout buttonLayout = new GridLayout();
-				buttonLayout.numColumns = 1;
-				buttonBar.setLayout(buttonLayout);
-
-			} // End button bar
-			buttonBar.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
-					| GridData.VERTICAL_ALIGN_BEGINNING));
-
-			GridLayout addRemoveLayout = new GridLayout();
-			addRemoveLayout.numColumns = 2;
-			addRemoveComposite.setLayout(addRemoveLayout);
-		}
-		return addRemoveComposite;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = Display.getDefault();
-		StructuredContentProviderTest test = new StructuredContentProviderTest();
-		Shell s = test.getShell();
-		s.pack();
-		s.setVisible(true);
-
-		while (!s.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-
-	private Shell getShell() {
-		return shell;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/TreeContentProviderTest.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/TreeContentProviderTest.java
deleted file mode 100644
index 37a06ba..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/TreeContentProviderTest.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.examples.databinding.contentprovider.test;
-
-import org.eclipse.jface.databinding.observable.Observables;
-import org.eclipse.jface.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.observable.set.UnionSet;
-import org.eclipse.jface.databinding.observable.set.WritableSet;
-import org.eclipse.jface.databinding.viewers.IUnorderedTreeProvider;
-import org.eclipse.jface.databinding.viewers.UnorderedTreeContentProvider;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewerLabelProvider;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.layout.LayoutConstants;
-import org.eclipse.jface.viewers.IViewerLabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerLabel;
-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.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;
-
-/**
- * Tests UpdatableTreeContentProvider and DirtyIndicationLabelProvider.
- * Creates a tree containing three randomly-generated sets of integers,
- * and one node that contains the union of the other sets.
- * 
- * @since 3.2
- */
-public class TreeContentProviderTest {
-	
-	private Shell shell;
-	private TreeViewer tree;
-	
-	// Three randomly-generated sets of doubles
-	private AsynchronousTestSet set1;
-	private AsynchronousTestSet set2;
-	private AsynchronousTestSet set3;
-	
-	// The union of the above three sets
-	private UnionSet union;
-	private Button randomize;
-	public TreeContentProviderTest() {
-		
-		// Create the data model
-		set1 = new AsynchronousTestSet();
-		set2 = new AsynchronousTestSet();
-		set3 = new AsynchronousTestSet();
-		
-		// A union of the above sets
-		union = new UnionSet(new IObservableSet[] {set1, set2, set3});
-		
-		// Create shell
-		shell = new Shell(Display.getCurrent());
-		
-		createTree();
-		
-		Composite buttonBar = new Composite(shell, SWT.NONE);
-		{
-			buttonBar.setLayout(new FillLayout(SWT.HORIZONTAL));
-			randomize = new Button(buttonBar, SWT.PUSH);
-			randomize.setText("Randomize");
-			randomize.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					AsynchronousTestSet.recomputeAll();
-					super.widgetSelected(e);
-				}
-			});
-			
-			GridLayoutFactory.fillDefaults().generateLayout(buttonBar);
-		}
-		
-		GridLayoutFactory.fillDefaults().margins(LayoutConstants.getMargins()).generateLayout(shell);
-		
-		shell.addDisposeListener(new DisposeListener() {
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
-			 */
-			public void widgetDisposed(DisposeEvent e) {
-				dispose();
-			}
-		});
-	}
-
-	/**
-	 * 
-	 */
-	protected void dispose() {
-		set1.dispose();
-		set2.dispose();
-		set3.dispose();
-		union.dispose();
-	}
-
-	private void createTree() {
-		// Create the tree provider. This provides the structure of the tree. This tree will
-		// have an instance of RootNode as the root (which is really a placeholder), several
-		// SimpleNodes as top-level nodes, and sets of randomly generated Doubles below each
-		// SimpleNode.
-		IUnorderedTreeProvider treeProvider = new IUnorderedTreeProvider() {
-			public IObservableSet createChildSet(Object element) {
-				// If the parent is the root node, return the union of some randomly-generated
-				// nodes and some hardcoded nodes
-				if (element == tree.getInput()) {
-					// Set of hardcoded nodes
-					WritableSet topElements = new WritableSet();
-					topElements.add(new SimpleNode("Random Set 1", set1));
-					topElements.add(new SimpleNode("Random Set 2", set2));
-					topElements.add(new SimpleNode("Random Set 3", set3));
-					topElements.add(new SimpleNode("Union of the other sets", union));
-					return topElements;
-				}
-				
-				// If the parent is a RandomChildrenNode, return a randomly-generated
-				// set of Doubles for its children
-				if (element instanceof SimpleNode) {
-					// We return a new DelegatingObservableSet in order to prevent the 
-					// original from being disposed.
-					return Observables.proxyObservableSet(((SimpleNode)element).getChildren());
-				}
-				
-				// Otherwise the node is a Double, which will have no children  
-				return null;
-			}
-		};
-		
-		// Label provider for the tree
-		IViewerLabelProvider labelProvider = new ViewerLabelProvider() {
-			public void updateLabel(ViewerLabel label, Object element) {
-				if (element instanceof SimpleNode) {
-					SimpleNode node = (SimpleNode) element;
-					
-					label.setText(node.getNodeName());
-				}
-				
-				if (element instanceof Integer) {
-					Integer node = (Integer) element;
-					
-					label.setText("Integer " + node);
-				}
-			}
-		};
-		
-		// Create tree viewer
-		tree = new TreeViewer(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		
-		// UpdatableTreeContentProvider converts an ITreeProvider into a standard JFace content provider
-		UnorderedTreeContentProvider contentProvider = new UnorderedTreeContentProvider(treeProvider,
-				"pending...");
-		
-		tree.setContentProvider(contentProvider);
-		tree.setLabelProvider(labelProvider);
-		
-		// For the ITreeProvider above, it doesn't matter what we select as the input.
-		tree.setInput(new Object());
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = Display.getDefault();
-		TreeContentProviderTest test = new TreeContentProviderTest();
-		Shell s = test.getShell();
-		s.pack();
-		s.setVisible(true);
-
-		while (!s.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-
-	private Shell getShell() {
-		return shell;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMask.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMask.java
deleted file mode 100644
index 8bbcdc9..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMask.java
+++ /dev/null
@@ -1,446 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.mask;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-import org.eclipse.jface.examples.databinding.mask.internal.EditMaskParser;
-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.VerifyEvent;
-import org.eclipse.swt.events.VerifyListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Ensures text widget has the format specified by the edit mask.  Edit masks
- * are currently defined as follows:
- * 
- * The following characters are reserved words that match specific kinds of 
- * characters:
- * 
- * # - digits 0-9
- * A - uppercase A-Z
- * a - upper or lowercase a-z, A-Z
- * n - alphanumeric 0-9, a-z, A-Z
- *
- * All other characters are literals.  The above characters may be turned into
- * literals by preceeding them with a backslash.  Use two backslashes to
- * denote a backslash.
- * 
- * Examples:
- * 
- * (###) ###-####  U.S. phone number 
- * ###-##-####     U.S. Social Security number
- * \\\###          A literal backslash followed by a literal pound symbol followed by two digits
- * 
- * Ideas for future expansion:
- * 
- * Quantifiers as postfix modifiers to a token.  ie:
- * 
- * #{1, 2}/#{1,2}/####   MM/DD/YYYY date format allowing 1 or 2 digit month or day
- * 
- * Literals may only be quantified as {0,1} which means that they only appear
- * if placeholders on both sides of the literal have data.  This will be used
- * along with:
- * 
- * Right-to-left support for numeric entry.  When digits are being entered and
- * a decimal point is present in the mask, digits to the left of the decimal
- * are entered right-to-left but digits to the right of the decimal left-to-right.
- * This might need to be a separate type of edit mask. (NumericMask, maybe?)
- * 
- * Example:
- * 
- * $#{0,3},{0,1}#{0,3}.#{0,2}  ie: $123,456.12 or $12.12 or $1,234.12 or $123.12
- *
- * 
- * Here's the basic idea of how the current implementation works (the actual 
- * implementation is slightly more abstracted and complicated than this):
- * 
- * We always let the verify event pass if the user typed a new character or selected/deleted anything.
- * During the verify event, we post an async runnable.
- * Inside that async runnable, we:
- *   - Remember the selection position
- *   - getText(), then
- *   - Strip out all literal characters from text
- *   - Truncate the resulting string to raw length of edit mask without literals
- *   - Insert literal characters back in the correct positions
- *   - setText() the resulting string
- *   - reset the selection to the correct location
- *   
- * @since 3.3
- */
-public class EditMask {
-	
-	public static final String FIELD_TEXT = "text";
-	public static final String FIELD_RAW_TEXT = "rawText";
-	public static final String FIELD_COMPLETE = "complete";
-	protected Text text;
-	protected EditMaskParser editMaskParser;
-	private boolean fireChangeOnKeystroke = true;
-	private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
-	
-	protected String oldValidRawText = "";
-	protected String oldValidText = ""; 
-	
-	/**
-	 * Creates an instance that wraps around a text widget and manages its<br>
-	 * formatting.
-	 * 
-	 * @param text
-	 * @param editMask
-	 */
-	public EditMask(Text text) {
-		this.text = text;
-	}
-	
-	/**
-	 * @return the underlying Text control used by EditMask
-	 */
-	public Text getControl() {
-		return this.text;
-	}
-	
-	/**
-	 * Set the edit mask string on the edit mask control.
-	 * 
-	 * @param editMask The edit mask string
-	 */
-	public void setMask(String editMask) {
-		editMaskParser = new EditMaskParser(editMask);
-		text.addVerifyListener(verifyListener);
-		text.addFocusListener(focusListener);
-		text.addDisposeListener(disposeListener);
-		updateTextField.run();
-		oldValidText = text.getText();
-		oldValidRawText = editMaskParser.getRawResult();
-	}
-
-    /**
-     * @param string Sets the text string in the receiver
-     */
-    public void setText(String string) {
-    	String oldValue = text.getText();
-    	if (editMaskParser != null) {
-			editMaskParser.setInput(string);
-			String formattedResult = editMaskParser.getFormattedResult();
-			text.setText(formattedResult);
-			firePropertyChange(FIELD_TEXT, oldValue, formattedResult);
-    	} else {
-    		text.setText(string);
-			firePropertyChange(FIELD_TEXT, oldValue, string);
-    	}
-		oldValidText = text.getText();
-		oldValidRawText = editMaskParser.getRawResult();
-	}
-
-	/**
-	 * @return the actual (formatted) text
-	 */
-	public String getText() {
-		if (editMaskParser != null) {
-			return editMaskParser.getFormattedResult();
-		}
-		return text.getText();
-	}
-	
-	/**
-	 * setRawText takes raw text as a parameter but formats it before
-	 * setting the text in the Text control.
-	 * 
-	 * @param string the raw (unformatted) text
-	 */
-	public void setRawText(String string)  {
-		if (string == null) {
-			string = "";
-		}
-		if (editMaskParser != null) {
-			String oldValue = editMaskParser.getRawResult();
-			editMaskParser.setInput(string);
-			text.setText(editMaskParser.getFormattedResult());
-			firePropertyChange(FIELD_RAW_TEXT, oldValue, string);
-		} else {
-	    	String oldValue = text.getText();
-    		text.setText(string);
-			firePropertyChange(FIELD_RAW_TEXT, oldValue, string);
-		}
-		oldValidText = text.getText();
-		oldValidRawText = editMaskParser.getRawResult();
-	}
-
-	/**
-	 * @return The input text with literals removed
-	 */
-	public String getRawText() {
-		if (editMaskParser != null) {
-			return editMaskParser.getRawResult();
-		}
-		return text.getText();
-	}
-	
-	/**
-	 * @return true if the field is complete according to the mask; false otherwise
-	 */
-	public boolean isComplete() {
-		if (editMaskParser == null) {
-			return true;
-		}
-		return editMaskParser.isComplete();
-	}
-	
-	/**
-	 * Returns the placeholder character.  The placeholder 
-	 * character must be a different character than any character that is 
-	 * allowed as input anywhere in the edit mask.  For example, if the edit
-	 * mask permits spaces to be used as input anywhere, the placeholder 
-	 * character must be something other than a space character.
-	 * <p>
-	 * The space character is the default placeholder character.
-	 * 
-	 * @return the placeholder character
-	 */
-	public char getPlaceholder() {
-		if (editMaskParser == null) {
-			throw new IllegalArgumentException("Have to set an edit mask first");
-		}
-		return editMaskParser.getPlaceholder();
-	}
-	
-	/**
-	 * Sets the placeholder character for the edit mask.  The placeholder 
-	 * character must be a different character than any character that is 
-	 * allowed as input anywhere in the edit mask.  For example, if the edit
-	 * mask permits spaces to be used as input anywhere, the placeholder 
-	 * character must be something other than a space character.
-	 * <p>
-	 * The space character is the default placeholder character.
-	 * 
-	 * @param placeholder The character to use as a placeholder
-	 */
-	public void setPlaceholder(char placeholder) {
-		if (editMaskParser == null) {
-			throw new IllegalArgumentException("Have to set an edit mask first");
-		}
-		editMaskParser.setPlaceholder(placeholder);
-		updateTextField.run();
-		oldValidText = text.getText();
-	}
-
-	/**
-	 * Indicates if change notifications will be fired after every keystroke
-	 * that affects the value of the rawText or only when the value is either
-	 * complete or empty.
-	 * 
-	 * @return true if every change (including changes from one invalid state to
-	 *         another) triggers a change event; false if only empty or valid
-	 *         values trigger a change event.  Defaults to false.
-	 */
-	public boolean isFireChangeOnKeystroke() {
-		return fireChangeOnKeystroke;
-	}
-
-	/**
-	 * Sets if change notifications will be fired after every keystroke that
-	 * affects the value of the rawText or only when the value is either
-	 * complete or empty.
-	 * 
-	 * @param fireChangeOnKeystroke
-	 *            true if every change (including changes from one invalid state
-	 *            to another) triggers a change event; false if only empty or
-	 *            valid values trigger a change event.  Defaults to false.
-	 */
-	public void setFireChangeOnKeystroke(boolean fireChangeOnKeystroke) {
-		this.fireChangeOnKeystroke = fireChangeOnKeystroke;
-	}
-
-	/**
-	 * JavaBeans boilerplate code...
-	 * 
-	 * @param listener
-	 */
-	public void addPropertyChangeListener(PropertyChangeListener listener) {
-		propertyChangeSupport.addPropertyChangeListener(listener);
-	}
-
-	/**
-	 * JavaBeans boilerplate code...
-	 * 
-	 * @param propertyName
-	 * @param listener
-	 */
-	public void addPropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
-	}
-
-	/**
-	 * JavaBeans boilerplate code...
-	 * 
-	 * @param listener
-	 */
-	public void removePropertyChangeListener(PropertyChangeListener listener) {
-		propertyChangeSupport.removePropertyChangeListener(listener);
-	}
-
-	/**
-	 * JavaBeans boilerplate code...
-	 * 
-	 * @param propertyName
-	 * @param listener
-	 */
-	public void removePropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		propertyChangeSupport.removePropertyChangeListener(propertyName,
-				listener);
-	}
-
-	private boolean isEitherValueNotNull(Object oldValue, Object newValue) {
-		return oldValue != null || newValue != null;
-	}
-
-	private void firePropertyChange(String propertyName, Object oldValue,
-			Object newValue) {
-		if (isEitherValueNotNull(oldValue, newValue)) {
-			propertyChangeSupport.firePropertyChange(propertyName,
-					oldValue, newValue);
-		}
-	}
-
-	protected boolean updating = false;
-
-	protected int oldSelection = 0;
-	protected int selection = 0;
-	protected String oldRawText = "";
-   protected boolean replacedSelectedText = false;
-	
-	private VerifyListener verifyListener = new VerifyListener() {
-		public void verifyText(VerifyEvent e) {
-         // If the edit mask is already full, don't let the user type
-         // any new characters
-         if (editMaskParser.isComplete() && // should eventually be .isFull() to account for optional characters
-               e.start == e.end && 
-               e.text.length() > 0) 
-         {
-            e.doit=false;
-            return;
-         }
-         
-			oldSelection = selection;
-			Point selectionRange = text.getSelection();
-         selection = selectionRange.x;
-         
-			if (!updating) {
-   			replacedSelectedText = false;
-   			if (selectionRange.y - selectionRange.x > 0 && e.text.length() > 0) {
-   			   replacedSelectedText = true;
-   			}
-				Display.getCurrent().asyncExec(updateTextField);
-         }
-		}
-	};
-
-	private Runnable updateTextField = new Runnable() {
-		public void run() {
-			updating = true;
-			try {
-				if (!text.isDisposed()) {
-					Boolean oldIsComplete = new Boolean(editMaskParser.isComplete());
-				
-					editMaskParser.setInput(text.getText());
-					text.setText(editMaskParser.getFormattedResult());
-					String newRawText = editMaskParser.getRawResult();
-				
-					updateSelectionPosition(newRawText);
-					firePropertyChangeEvents(oldIsComplete, newRawText);
-				}
-			} finally {
-				updating = false;
-			}
-		}
-
-		private void updateSelectionPosition(String newRawText) {
-
-         // Adjust the selection
-         if (isInsertingNewCharacter(newRawText) || replacedSelectedText) {
-            // Find the position after where the new character was actually inserted
-            int selectionDelta = 
-               editMaskParser.getNextInputPosition(oldSelection)
-               - oldSelection;
-            if (selectionDelta == 0) {
-               selectionDelta = editMaskParser.getNextInputPosition(selection)
-               - selection;
-            }
-            selection += selectionDelta;
-         }
-         
-			// Did we just type something that was accepted by the mask?
-			if (!newRawText.equals(oldRawText)) { // yep
-            
-            // If the user hits <end>, bounce them back to the end of their actual input
-				int firstIncompletePosition = editMaskParser.getFirstIncompleteInputPosition();
-				if (firstIncompletePosition > 0 && selection > firstIncompletePosition)
-					selection = firstIncompletePosition;
-				text.setSelection(new Point(selection, selection));
-            
-			} else { // nothing was accepted by the mask
-            
-				// Either we backspaced over a literal or we typed an illegal character
-				if (selection > oldSelection) { // typed an illegal character; backup
-					text.setSelection(new Point(selection-1, selection-1));
-				} else { // backspaced over a literal; don't interfere with selection position
-					text.setSelection(new Point(selection, selection));
-				}
-			}
-			oldRawText = newRawText;
-		}
-
-		private boolean isInsertingNewCharacter(String newRawText) {
-			return newRawText.length() > oldRawText.length();
-		}
-
-		private void firePropertyChangeEvents(Boolean oldIsComplete, String newRawText) {
-			Boolean newIsComplete = new Boolean(editMaskParser.isComplete());
-			if (!oldIsComplete.equals(newIsComplete)) {
-				firePropertyChange(FIELD_COMPLETE, oldIsComplete, newIsComplete);
-			}
-			if (!newRawText.equals(oldValidRawText)) {
-				if ( newIsComplete.booleanValue() || "".equals(newRawText) || fireChangeOnKeystroke) {
-					firePropertyChange(FIELD_RAW_TEXT, oldValidRawText, newRawText);
-					firePropertyChange(FIELD_TEXT, oldValidText, text.getText());
-					oldValidText = text.getText();
-					oldValidRawText = newRawText;
-				}
-			}
-		}
-	};
-	
-	private FocusListener focusListener = new FocusAdapter() {
-		public void focusGained(FocusEvent e) {
-			selection = editMaskParser.getFirstIncompleteInputPosition();
-			text.setSelection(selection, selection);
-		}
-	};
-	
-	private DisposeListener disposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			text.removeVerifyListener(verifyListener);
-			text.removeFocusListener(focusListener);
-			text.removeDisposeListener(disposeListener);
-		}
-	};
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMaskParseException.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMaskParseException.java
deleted file mode 100644
index f2b6aec..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMaskParseException.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.mask;
-
-/**
- * Indicates a parse error while parsing an edit mask.
- * 
- * @since 3.3
- */
-public class EditMaskParseException extends RuntimeException {
-
-	private static final long serialVersionUID = 8142999683999681500L;
-
-	/**
-	 * Construct a MaskParseException
-	 */
-	public EditMaskParseException() {
-		super();
-	}
-
-	/**
-	 * @param message
-	 * @param cause
-	 */
-	public EditMaskParseException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	/**
-	 * @param message
-	 */
-	public EditMaskParseException(String message) {
-		super(message);
-	}
-
-	/**
-	 * @param cause
-	 */
-	public EditMaskParseException(Throwable cause) {
-		super(cause);
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMaskTest.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMaskTest.java
deleted file mode 100644
index f5d7139..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMaskTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.eclipse.jface.examples.databinding.mask;
-
-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;
-
-public class EditMaskTest {
-
-   public static void main(String[] args) {
-      Display display = new Display();
-      Shell shell = new Shell(display);
-
-      Text text = new Text(shell, SWT.BORDER);
-      text.setText("XXXXXXXXXXXXX");// Put some X's in there to pad out the field's default size
-      
-      Text text2 = new Text(shell, SWT.BORDER);
-      text2.setText("630XXXXXXXXXX");
-      
-      shell.setLayout(new RowLayout(SWT.VERTICAL));
-      shell.setSize(800, 600);
-      
-      new EditMask(text).setMask("(###) ###-####");
-      new EditMask(text2).setMask("(###) ###-####");
-      
-      shell.open();
-      while (!shell.isDisposed()) {
-         if (!display.readAndDispatch()) {
-            display.sleep();
-         }
-      }
-   }
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/EditMaskLexerAndToken.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/EditMaskLexerAndToken.java
deleted file mode 100644
index d9c61b4..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/EditMaskLexerAndToken.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.mask.internal;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.examples.databinding.mask.EditMaskParseException;
-
-/**
- * Lexical analyzer and token for an input mask.  Since input masks have exactly
- * one token type, we use the same class to be the recognizer and the token 
- * itself.
- * 
- * @since 3.3
- */
-public class EditMaskLexerAndToken {
-
-	/*
-	 * First the literals that represent the types of characters
-	 */
-	private static ArrayList reservedWords = new ArrayList();{
-		reservedWords.add("#");
-		reservedWords.add("A");
-		reservedWords.add("a");
-		reservedWords.add("n");
-	}
-	
-	/*
-	 * ...and their corresponding regular expressions
-	 */
-	private static ArrayList inputRegexes = new ArrayList();{
-		inputRegexes.add("^[0-9]$");
-		inputRegexes.add("^[A-Z]$");
-		inputRegexes.add("^[a-zA-Z]$");
-		inputRegexes.add("^[0-9a-zA-Z]$");
-	}
-	
-	private String charRegex = null;	// A regex for matching input characters or null
-	private String literal = null;		// The literal character if charRegex is null
-	private boolean readOnly;
-	private String input = null;		// The user's input
-	
-	private boolean recognizeReservedWord(String inputMask, int position) {
-		String input = inputMask.substring(position, position+1);
-		for (int reservedWord = 0; reservedWord < reservedWords.size(); reservedWord++) {
-			if (input.equals(reservedWords.get(reservedWord))) {
-				charRegex = (String) inputRegexes.get(reservedWord);
-				literal = null;
-				input = null;
-				readOnly = false;
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private boolean recognizeBackslashLiteral(String inputMask, int position) throws EditMaskParseException {
-		String input = inputMask.substring(position, position+1);
-		if (input.equals("\\")) {
-			try {
-				input = inputMask.substring(position+1, position+2);
-				charRegex = null;
-				this.input = input;
-				literal = input;
-				readOnly = true;
-				return true;
-			} catch (Throwable t) {
-				throw new EditMaskParseException("Found a \\ without a character after it: " + inputMask);
-			}
-		}
-		return false;
-	}
-
-	private boolean recognizeLiteral(String inputMask, int position) {
-		literal = inputMask.substring(position, position+1);
-		this.input = literal;
-		charRegex = null;
-		readOnly = true;
-		return true;
-	}
-
-	/**
-	 * Initializes itself based on characters in edit mask starting at position; 
-	 * returns number of chars consumed
-	 * 
-	 * @param inputMask The entire edit mask
-	 * @param position The position to begin parsing
-	 * @return The number of characters consumed
-	 * @throws EditMaskParseException If it encountered a syntax error during the parse
-	 */
-	public int initializeEditMask(String inputMask, int position) throws EditMaskParseException {
-		clear();
-		if (recognizeReservedWord(inputMask, position)) {
-			return 1;
-		}
-		if (recognizeBackslashLiteral(inputMask, position)) {
-			return 2;
-		}
-		if (!recognizeLiteral(inputMask, position)) {
-			throw new EditMaskParseException("Should never see this error in this implementation!");
-		}
-		readOnly = true;
-		return 1;
-	}
-
-	/**
-	 * ignores invalid input; stores valid input
-	 * @param inputCharacter 
-	 * @return 
-	 */
-	public boolean accept(String inputCharacter) {
-		if (readOnly) {
-			return false;
-		}
-		if (literal != null) {
-			return false;
-		}
-		if (!canAcceptMoreCharacters()) {
-			return false;
-		}
-		if (inputCharacter.matches(charRegex)) {
-			this.input = inputCharacter;
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * @return Returns the characters it has accepted.  In the current implementation,
-	 * this is exactly one character.  Once quantifiers are implemented, this could
-	 * be many characters.  If no characters have been accepted, returns null.
-	 */
-	public String getInput() {
-		return input;
-	}
-	
-	/**
-	 * Clear any accepted input
-	 */
-	public void clear() {
-		if (!isReadOnly())
-			input = null;
-	}
-
-	/**
-	 * @return true if it's a literal; false if it's a placeholder
-	 */
-	public boolean isReadOnly() {
-		return readOnly;
-	}
-
-	/**
-	 * @return true if it is a literal or if it has accepted the minimum 
-	 * required number of characters
-	 */
-	public boolean isComplete() {
-		if (input != null) {
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * @return A position may be complete and yet able to accept more characters if
-	 * the position includes optional characters via a quantifier of some type.
-	 * Not implemented right now.
-	 */
-	public boolean canAcceptMoreCharacters() {
-		return !isComplete();
-	}
-
-	/**
-	 * @return the minimum number of characters this RegexLexer must accept 
-	 * in order to be complete.  Because we don't yet support quantifiers, this
-	 * is currently always 1.
-	 */
-	public int getMinimumLength() {
-		return 1;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/EditMaskParser.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/EditMaskParser.java
deleted file mode 100644
index fc87f9e..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/EditMaskParser.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.mask.internal;
-
-import java.util.LinkedList;
-
-import org.eclipse.jface.examples.databinding.mask.EditMaskParseException;
-
-/**
- * @since 3.3
- */
-public class EditMaskParser {
-	private EditMaskLexerAndToken[] expectedTokens;
-	private char placeholder = ' ';
-	
-	/**
-	 * @param editMask The complete edit mask 
-	 * @throws EditMaskParseException
-	 */
-	public EditMaskParser(String editMask) throws EditMaskParseException {
-		LinkedList tokens = new LinkedList();
-		int position = 0;
-		while (position < editMask.length()) {
-			EditMaskLexerAndToken token = new EditMaskLexerAndToken();
-			position += token.initializeEditMask(editMask, position);
-			tokens.add(token);
-		}
-		expectedTokens = (EditMaskLexerAndToken[]) tokens.toArray(new EditMaskLexerAndToken[tokens.size()]);
-	}
-	
-	/**
-	 * @param input the user input which may or may not be in valid format
-	 */
-	public void setInput(String input) {
-		for (int i = 0; i < expectedTokens.length; i++) {
-			expectedTokens[i].clear();
-		}
-		int tokenPosition = 0;
-		int inputPosition = 0;
-		while (inputPosition < input.length() && tokenPosition < expectedTokens.length) {
-			while (tokenPosition < expectedTokens.length &&
-					(expectedTokens[tokenPosition].isComplete() || 
-					 expectedTokens[tokenPosition].isReadOnly())) 
-			{
-				++tokenPosition;
-			}
-			if (tokenPosition < expectedTokens.length) {
-				while (inputPosition < input.length() && !expectedTokens[tokenPosition].isComplete()) {
-					String inputChar = input.substring(inputPosition, inputPosition+1);
-					expectedTokens[tokenPosition].accept(inputChar);
-					++inputPosition;
-				}
-			}
-		}
-	}
-	
-	/**
-	 * @return the formatted version of the user input
-	 */
-	public String getFormattedResult() {
-		StringBuffer result = new StringBuffer();
-		for (int i = 0; i < expectedTokens.length; i++) {
-			String outputChar = expectedTokens[i].getInput();
-			if (outputChar == null) {
-				outputChar = "" + placeholder;
-			}
-			result.append(outputChar);
-		}
-		return result.toString();
-	}
-	
-	/**
-	 * @return the user input with all literals removed
-	 */
-	public String getRawResult() {
-		StringBuffer result = new StringBuffer();
-		for (int i = 0; i < expectedTokens.length; i++) {
-			if (expectedTokens[i].isReadOnly()) {
-				continue;
-			}
-			String outputChar = expectedTokens[i].getInput();
-			if (outputChar == null) {
-				outputChar = "";
-			}
-			result.append(outputChar);
-		}
-		return result.toString();
-	}
-
-	/**
-	 * @return true if the current input is a valid input
-	 */
-	public boolean isComplete() {
-		for (int i = 0; i < expectedTokens.length; i++) {
-			if (!expectedTokens[i].isComplete()) {
-				return false;
-			}
-		}
-		return true;
-	}
-	
-	/**
-	 * @param startingAt The current index within the user input string
-	 * @return The first non-read-only index greater than or equal to startingAt
-	 */
-	public int getNextInputPosition(int startingAt) {
-		while (startingAt < expectedTokens.length-1 && expectedTokens[startingAt].isReadOnly()) {
-			++startingAt;
-		}
-		return startingAt;
-	}
-	
-	/**
-	 * @return the first input position whose token is not marked as complete.  Returns -1 if all are complete
-	 */
-	public int getFirstIncompleteInputPosition() {
-		for (int position = 0; position < expectedTokens.length; position++) {
-			if (!expectedTokens[position].isComplete()) {
-				return position;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * @return Returns the placeholder.
-	 */
-	public char getPlaceholder() {
-		return placeholder;
-	}
-
-	/**
-	 * @param placeholder The placeholder to set.
-	 */
-	public void setPlaceholder(char placeholder) {
-		this.placeholder = placeholder;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Account.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Account.java
deleted file mode 100644
index 7509d64..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Account.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.examples.databinding.model;
-
-import java.util.Date;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-
-public class Account extends ModelObject {
-
-	private String country;
-	private String firstName;
-	private String lastName;
-	private String state;
-	private String phone;	
-	private Date expiryDate;
-
-	public void setFirstName(String string) {
-		String oldValue = firstName;
-		firstName = string;
-		firePropertyChange("firstName", oldValue, string);		
-	}
-
-	public void setLastName(String string) {
-		String oldValue = lastName;
-		lastName = string;
-		firePropertyChange("lastName", oldValue, string);				
-	}
-
-	public void setState(String string) {
-		String oldValue = state;
-		state = string;
-		firePropertyChange("state", oldValue, string);		
-	}
-
-	public void setPhone(String string) {
-		String oldValue = phone;
-		phone = string;
-		firePropertyChange("phone", oldValue, phone);		
-	}
-
-	public void setCountry(String string) {
-		Object oldValue = country;
-		country = string;
-		firePropertyChange("country", oldValue, string);
-	}
-
-	public String getCountry() {
-		return country;
-	}
-
-	public String getFirstName() {
-		return firstName;
-	}
-
-	public String getLastName() {
-		return lastName;
-	}
-
-	public String getState() {
-		return state;
-	}
-
-	public String getPhone() {
-		return phone;
-	}
-
-	public Date getExpiryDate() {
-		return expiryDate;
-	}
-
-	public void setExpiryDate(Date expiryDate) {
-		firePropertyChange("expiryDate", this.expiryDate,
-				this.expiryDate = expiryDate);
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Adventure.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Adventure.java
deleted file mode 100644
index 1d75ae8..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Adventure.java
+++ /dev/null
@@ -1,113 +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.examples.databinding.model;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.internal.databinding.provisional.validation.IDomainValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-public class Adventure extends ModelObject {
-
-	private boolean petsAllowed;
-
-	private double price;
-
-	private Lodging defaultLodging;
-
-	private String name;
-
-	private String description;
-
-	private String location;
-	
-	private int maxNumberOfPeople;
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String string) {
-		Object oldValue = name;
-		name = string;
-		firePropertyChange("name", oldValue, name);
-	}
-	
-	public int getMaxNumberOfPeople(){
-		return maxNumberOfPeople;
-	}
-	
-	public void setMaxNumberOfPeople(int anInt) {
-		int oldValue = maxNumberOfPeople;
-		maxNumberOfPeople = anInt;
-		firePropertyChange("maxNumberOfPeople", oldValue, maxNumberOfPeople);
-	}
-	
-	public IDomainValidator getMaxNumberOfPeopleDomainValidator() {
-		return new IDomainValidator() {
-			public ValidationError isValid(Object value) {
-				int intValue = ((Integer)value).intValue();
-				if (intValue < 1 || intValue > 20) {
-					return ValidationError
-							.error("Max number of people must be between 1 and 20 inclusive");
-				}
-				return null;
-			}
-		};
-	}
-
-	public Lodging getDefaultLodging() {
-		return defaultLodging;
-	}
-
-	public void setDefaultLodging(Lodging lodging) {
-		Object oldValue = defaultLodging;
-		defaultLodging = lodging;
-		firePropertyChange("defaultLodging", oldValue, defaultLodging);
-	}
-
-	public void setPrice(double d) {
-		double oldValue = price;
-		price = d;
-		firePropertyChange("price", new Double(oldValue), new Double(price));
-	}
-
-	public double getPrice() {
-		return price;
-	}
-
-	public void setPetsAllowed(boolean b) {
-		boolean oldValue = petsAllowed;
-		petsAllowed = b;
-		firePropertyChange("petsAllowed", new Boolean(oldValue), new Boolean(
-				petsAllowed));
-	}
-
-	public boolean isPetsAllowed() {
-		return petsAllowed;
-	}
-
-	public void setDescription(String string) {
-		Object oldValue = description;
-		description = string;
-		firePropertyChange("description", oldValue, description);
-	}
-
-	public void setLocation(String string) {
-		Object oldValue = location;
-		location = string;
-		firePropertyChange("location", oldValue, location);
-	}
-
-	public String getDescription() {
-		return description;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/AdventureFactory.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/AdventureFactory.java
deleted file mode 100644
index 2b95e13..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/AdventureFactory.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.jface.examples.databinding.model;
-
-public class AdventureFactory {
-
-	public Catalog createCatalog() {
-		return new Catalog();
-	}
-
-	public Category createCategory() {
-		return new Category();
-	}
-
-	public Adventure createAdventure() {
-		return new Adventure();
-	}
-
-	public Lodging createLodging() {
-		return new Lodging();
-	}
-
-	public Transportation createTransportation() {
-		return new Transportation();
-	}
-
-	public Account createAccount() {
-		return new Account();
-	}
-
-	public Cart createCart() {
-		return new Cart();
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/AggregateObservableValue.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/AggregateObservableValue.java
deleted file mode 100644
index 08e6cc0..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/AggregateObservableValue.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.examples.databinding.model;
-
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-
-/**
- * @since 3.2
- *
- */
-public class AggregateObservableValue extends AbstractObservableValue {
-
-	private IObservableValue[] observableValues;
-
-	private String delimiter;
-
-	private boolean updating = false;
-
-	private String currentValue;
-
-	private IValueChangeListener listener = new IValueChangeListener() {
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			if (!updating) {
-				fireValueChange(Diffs.createValueDiff(currentValue,
-						doGetValue()));
-			}
-		}
-	};
-
-	/**
-	 * @param observableValues
-	 * @param delimiter
-	 */
-	public AggregateObservableValue(IObservableValue[] observableValues,
-			String delimiter) {
-		this.observableValues = observableValues;
-		this.delimiter = delimiter;
-		for (int i = 0; i < observableValues.length; i++) {
-			observableValues[i].addValueChangeListener(listener);
-		}
-		doGetValue();
-	}
-
-	public void setValue(Object value) {
-		Object oldValue = doGetValue();
-		StringTokenizer tokenizer = new StringTokenizer((String) value,
-				delimiter);
-		try {
-			updating = true;
-			for (int i = 0; i < observableValues.length; i++) {
-				if (tokenizer.hasMoreElements()) {
-					observableValues[i].setValue(tokenizer.nextElement());
-				} else {
-					observableValues[i].setValue(null);
-				}
-			}
-		} finally {
-			updating = false;
-		}
-		doGetValue();
-		fireValueChange(Diffs.createValueDiff(oldValue, value));
-	}
-
-	public Object doGetValue() {
-		StringBuffer result = new StringBuffer();
-		for (int i = 0; i < observableValues.length; i++) {
-			if (i > 0 & i < observableValues.length) {
-				result.append(delimiter);
-			}
-			result.append(observableValues[i].getValue());
-		}
-		currentValue = result.toString();
-		return currentValue;
-	}
-
-	public Object getValueType() {
-		return String.class;
-	}
-
-	public void dispose() {
-		for (int i = 0; i < observableValues.length; i++) {
-			observableValues[i].removeValueChangeListener(listener);
-		}
-		super.dispose();
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Cart.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Cart.java
deleted file mode 100644
index b82f45e..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Cart.java
+++ /dev/null
@@ -1,25 +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.examples.databinding.model;
-
-public class Cart {
-
-	public void setAdventureDays(int i) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public int getLodgingDays() {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Catalog.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Catalog.java
deleted file mode 100644
index ee0273a..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Catalog.java
+++ /dev/null
@@ -1,89 +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.examples.databinding.model;
-
-import java.util.*;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-
-public class Catalog extends ModelObject {
-
-	private Category[] categories = new Category[0];
-
-	private Lodging[] lodgings = new Lodging[0];
-
-	private Transportation[] transportations = new Transportation[0];
-
-	private Account[] accounts = new Account[0];
-	
-	private List signons = new ArrayList();
-	
-	public List getSignons(){
-		return signons;
-	}
-	
-	public void addSignon(Signon aSignon){
-		signons.add(aSignon);
-		firePropertyChange("signons",null,null);
-	}
-	
-	public void removeSignon(Signon aSignon){
-		signons.remove(aSignon);
-		firePropertyChange("signons",null,null);
-	}	
-
-	public Category[] getCategories() {
-		return categories;
-	}
-
-	public void addCategory(Category category) {
-		categories = (Category[]) append(categories, category);
-		firePropertyChange("categories", null, null);
-	}
-
-	public void addLodging(Lodging lodging) {
-		lodgings = (Lodging[]) append(lodgings, lodging);
-		firePropertyChange("lodgings", null, null);
-	}
-
-	public void addTransportation(Transportation transportation) {
-		transportations = (Transportation[]) append(transportations, transportation);
-		firePropertyChange("transportations", null, null);
-	}
-
-	public void addAccount(Account account) {
-		accounts = (Account[]) append(accounts, account);
-		firePropertyChange("accounts", null, null);
-	}
-
-	public Lodging[] getLodgings() {
-		return lodgings;
-	}
-
-	public void removeLodging(Lodging lodging) {
-		lodgings = (Lodging[]) remove(lodgings, lodging);
-		firePropertyChange("lodgings", null, null);
-	}
-	
-	public void removeAccount(Account anAccount) {
-		accounts = (Account[]) remove(accounts, anAccount);
-		firePropertyChange("accounts", null, null);
-	}	
-
-	public Account[] getAccounts() {
-		return accounts;
-	}
-	
-	public Transportation[] getTransporations(){
-		return transportations;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Category.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Category.java
deleted file mode 100644
index f4a1431..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Category.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.examples.databinding.model;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-
-public class Category extends ModelObject {
-
-	private String name;
-
-	private Adventure[] adventures = new Adventure[0];
-
-	public void setName(String string) {
-		Object oldValue = name;
-		name = string;
-		firePropertyChange("name", oldValue, name);
-	}
-
-	public void addAdventure(Adventure adventure) {
-		adventures = (Adventure[]) append(adventures, adventure);
-		firePropertyChange("adventures", null, null);
-	}
-
-	public Adventure[] getAdventures() {
-		return adventures;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Lodging.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Lodging.java
deleted file mode 100644
index 642bb1a..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Lodging.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.examples.databinding.model;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-
-public class Lodging extends ModelObject {
-
-	private String name;
-	private String description;
-
-	public String getDescription() {
-		return description;
-	}
-
-	public void setDescription(String string) {
-		Object oldValue = description;
-		description = string;
-		firePropertyChange("description",oldValue,description);
-	}
-
-	public void setName(String string) {
-		Object oldValue = name;
-		name = string;
-		firePropertyChange("name",oldValue,name);
-	}
-	
-	public String getName() {
-		return name;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/PriceModelObject.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/PriceModelObject.java
deleted file mode 100644
index d15f9dd..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/PriceModelObject.java
+++ /dev/null
@@ -1,61 +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.examples.databinding.model;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-
-
-public class PriceModelObject extends ModelObject {
-	
-	private double price;
-	
-	public double getDouble(){
-		return price;
-	}
-	public void setPrice(double aPrice){
-		int oldDollars = getDollars();
-		int oldCents = getCents();
-		double oldValue = price;
-		price = aPrice;
-		firePropertyChange("dollars",oldDollars,getDollars());
-		firePropertyChange("cents",oldCents,getCents());
-		firePropertyChange("price",new Double(oldValue), new Double(price));
-	}
-	
-	public double getPrice(){
-		return price;
-	}
-
-	public int getCents(){
-		return (int) (100*price - 100*Math.floor(price));
-	}
-	
-	public void setCents(int cents){
-		double oldPrice = getPrice();
-		int oldCents = getCents();
-		price = getDollars() + cents *.01;
-		firePropertyChange("cents",oldCents,getCents());
-		firePropertyChange("price", new Double(oldPrice), new Double(price));
-	}
-	
-	public int getDollars(){
-		return new Double(price).intValue();
-	}
-	
-	public void setDollars(int dollars){
-		double oldPrice = getPrice();
-		int oldDollars = getDollars();
-		price = dollars + getCents() *.01;
-		firePropertyChange("dollars",oldDollars,getDollars());
-		firePropertyChange("price", new Double(oldPrice), new Double(price));
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SampleData.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SampleData.java
deleted file mode 100644
index daaf2f5..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SampleData.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.jface.examples.databinding.model;
-
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.NestedObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-
-public class SampleData {
-
-	public static Category WINTER_CATEGORY;
-
-	public static Category SUMMER_CATEGORY;
-
-	public static Adventure BEACH_HOLIDAY;
-
-	public static Adventure RAFTING_HOLIDAY;
-
-	public static Adventure WINTER_HOLIDAY;
-
-	public static Adventure ICE_FISHING;
-
-	public static Lodging FIVE_STAR_HOTEL;
-
-	public static Lodging YOUTH_HOSTEL;
-
-	public static Lodging CAMP_GROUND;
-
-	public static Catalog CATALOG_2005;
-
-	public static Transportation GREYHOUND_BUS;
-
-	public static Transportation EXECUTIVE_JET;
-
-	public static Account PRESIDENT;
-
-	public static Account DENTIST;
-
-	public static Account SANTA_CLAUS;
-
-	public static Cart CART;
-
-	public static AdventureFactory FACTORY;
-
-	// public static ITree CATALOG_TREE;
-	//	
-	// public static ITree CATEGORY_TREE;
-
-	public static Signon SIGNON_ADMINISTRATOR;
-
-	public static Signon SIGNON_JOEBLOGGS;
-
-	private static SWTObservableFactory swtObservableFactory = new SWTObservableFactory();
-
-	private static ViewersObservableFactory viewersObservableFactory = new ViewersObservableFactory();
-
-	static {
-		initializeData();
-	}
-
-	public static void initializeData() {
-
-		FACTORY = new AdventureFactory();
-
-		CATALOG_2005 = FACTORY.createCatalog();
-
-		// Categories
-		WINTER_CATEGORY = FACTORY.createCategory();
-		WINTER_CATEGORY.setName("Freeze Adventures");
-		WINTER_CATEGORY.setId("100");
-		CATALOG_2005.addCategory(WINTER_CATEGORY);
-
-		SUMMER_CATEGORY = FACTORY.createCategory();
-		SUMMER_CATEGORY.setName("Hot Adventures");
-		SUMMER_CATEGORY.setId("200");
-		CATALOG_2005.addCategory(SUMMER_CATEGORY);
-
-		// Adventures
-		WINTER_HOLIDAY = FACTORY.createAdventure();
-		WINTER_HOLIDAY.setDescription("Winter holiday in France");
-		WINTER_HOLIDAY.setName("Ski Alps");
-		WINTER_HOLIDAY.setLocation("Chamonix");
-		WINTER_HOLIDAY.setPrice(4000.52d);
-		WINTER_HOLIDAY.setId("150");
-		WINTER_HOLIDAY.setMaxNumberOfPeople(3);
-		WINTER_CATEGORY.addAdventure(WINTER_HOLIDAY);
-
-		ICE_FISHING = FACTORY.createAdventure();
-		ICE_FISHING.setDescription("Ice Fishing in Helsinki");
-		ICE_FISHING.setName("Ice Fishing");
-		ICE_FISHING.setLocation("Finland");
-		ICE_FISHING.setPrice(375.55d);
-		WINTER_CATEGORY.addAdventure(ICE_FISHING);
-
-		BEACH_HOLIDAY = FACTORY.createAdventure();
-		BEACH_HOLIDAY.setDescription("Beach holiday in Spain");
-		BEACH_HOLIDAY.setName("Playa");
-		BEACH_HOLIDAY.setLocation("Lloret de Mar");
-		BEACH_HOLIDAY.setPrice(2000.52d);
-		BEACH_HOLIDAY.setId("250");
-		SUMMER_CATEGORY.addAdventure(BEACH_HOLIDAY);
-
-		RAFTING_HOLIDAY = FACTORY.createAdventure();
-		RAFTING_HOLIDAY
-				.setDescription("White water rafting on the Ottawa river");
-		RAFTING_HOLIDAY.setName("Whitewater");
-		RAFTING_HOLIDAY.setLocation("Ottawa");
-		RAFTING_HOLIDAY.setPrice(8000.52d);
-		RAFTING_HOLIDAY.setId("270");
-		SUMMER_CATEGORY.addAdventure(RAFTING_HOLIDAY);
-
-		// Lodgings
-		FIVE_STAR_HOTEL = FACTORY.createLodging();
-		FIVE_STAR_HOTEL.setDescription("Deluxe palace");
-		FIVE_STAR_HOTEL.setName("Flashy");
-		YOUTH_HOSTEL = FACTORY.createLodging();
-		YOUTH_HOSTEL.setDescription("Youth Hostel");
-		YOUTH_HOSTEL.setName("Basic");
-		CAMP_GROUND = FACTORY.createLodging();
-		CAMP_GROUND.setDescription("Camp ground");
-		CAMP_GROUND.setName("WetAndCold");
-		CATALOG_2005.addLodging(FIVE_STAR_HOTEL);
-		CATALOG_2005.addLodging(YOUTH_HOSTEL);
-		CATALOG_2005.addLodging(CAMP_GROUND);
-		WINTER_HOLIDAY.setDefaultLodging(YOUTH_HOSTEL);
-
-		// Transporation
-		GREYHOUND_BUS = FACTORY.createTransportation();
-		GREYHOUND_BUS.setArrivalTime("14:30");
-		GREYHOUND_BUS.setPrice(25.50);
-		CATALOG_2005.addTransportation(GREYHOUND_BUS);
-		EXECUTIVE_JET = FACTORY.createTransportation();
-		EXECUTIVE_JET.setArrivalTime("11:10");
-		EXECUTIVE_JET.setPrice(1500.99);
-		CATALOG_2005.addTransportation(EXECUTIVE_JET);
-
-		// Accounts
-		PRESIDENT = FACTORY.createAccount();
-		PRESIDENT.setFirstName("George");
-		PRESIDENT.setLastName("Bush");
-		PRESIDENT.setState("TX");
-		PRESIDENT.setPhone("1112223333");
-		PRESIDENT.setCountry("U.S.A");
-		DENTIST = FACTORY.createAccount();
-		DENTIST.setFirstName("Tooth");
-		DENTIST.setLastName("Fairy");
-		DENTIST.setState("CA");
-		DENTIST.setPhone("4543219876");
-		DENTIST.setCountry("PainLand");
-		SANTA_CLAUS = FACTORY.createAccount();
-		SANTA_CLAUS.setFirstName("Chris");
-		SANTA_CLAUS.setLastName("Chringle");
-		SANTA_CLAUS.setState("WI");
-		SANTA_CLAUS.setPhone("8617429856");
-		SANTA_CLAUS.setCountry("NorthPole");
-		CATALOG_2005.addAccount(PRESIDENT);
-		CATALOG_2005.addAccount(DENTIST);
-		CATALOG_2005.addAccount(SANTA_CLAUS);
-
-		// Signons
-		SIGNON_ADMINISTRATOR = new Signon("Administrator", "Foo123Bar");
-		SIGNON_JOEBLOGGS = new Signon("JoeBloggs", "Harry5Potter");
-		CATALOG_2005.addSignon(SIGNON_ADMINISTRATOR);
-		CATALOG_2005.addSignon(SIGNON_JOEBLOGGS);
-
-		CART = FACTORY.createCart();
-
-		// initTrees();
-	}
-
-	/**
-	 * @param aControl
-	 * @return
-	 */
-	public static DataBindingContext getDatabindingContext(Control aControl) {
-		final DataBindingContext context = new DataBindingContext();
-		context.addObservableFactory(new DefaultObservableFactory(context));
-		context.addObservableFactory(new BeanObservableFactory(context, null, new Class[]{Widget.class}));
-		context.addObservableFactory(new NestedObservableFactory(context));
-		context.addObservableFactory(swtObservableFactory);
-		context.addObservableFactory(viewersObservableFactory);
-		context.addBindingFactory(new DefaultBindingFactory());
-		context.addBindingFactory(new ViewersBindingFactory());
-		context.addBindSupportFactory(new DefaultBindSupportFactory());
-		aControl.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				context.dispose();
-			}
-		});
-		return context;
-	}
-
-	public static SWTObservableFactory getSWTObservableFactory() {
-		return swtObservableFactory;
-	}
-
-	public static ViewersObservableFactory getViewersObservableFactory() {
-		return viewersObservableFactory;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Signon.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Signon.java
deleted file mode 100644
index 69cd381..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Signon.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.jface.examples.databinding.model;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-
-public class Signon extends ModelObject {
-	
-	String userId;
-	String password;
-	
-	public Signon(String aUserId, String aPassword) {
-		userId = aUserId;
-		password = aPassword;
-	}
-	public String getPassword() {
-		return password;
-	}
-	public void setPassword(String aPassword) {
-		String oldValue = password;
-		password = aPassword;
-		firePropertyChange("password",oldValue,password);
-	}
-	public String getUserId() {
-		return userId;
-	}
-	public void setUserId(String aUserId) {
-		String oldValue = userId;
-		userId = aUserId;
-		firePropertyChange("userId",oldValue,userId);
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimpleModel.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimpleModel.java
deleted file mode 100644
index cec1927..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimpleModel.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- */
-package org.eclipse.jface.examples.databinding.model;
-
-import java.util.LinkedList;
-
-
-public class SimpleModel {
-	public SimpleModel() {
-		// Add some sample data to our personList...
-		personList.add(new SimplePerson("John", "1234", "Wheaton", "IL"));
-		personList.add(new SimplePerson("Jane", "1234", "Glen Ellyn", "IL"));
-		personList.add(new SimplePerson("Frank", "1234", "Lombard", "IL"));
-		personList.add(new SimplePerson("Joe", "1234", "Elmhurst", "IL"));
-		personList.add(new SimplePerson("Chet", "1234", "Oak Lawn", "IL"));
-		personList.add(new SimplePerson("Wilbur", "1234", "Austin", "IL"));
-		personList.add(new SimplePerson("Elmo", "1234", "Chicago", "IL"));
-	}
-
-	// Now a PersonList property...
-	
-	LinkedList personList = new LinkedList();
-	
-	public LinkedList getPersonList() {
-		return personList;
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimpleOrder.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimpleOrder.java
deleted file mode 100644
index 99a68fc..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimpleOrder.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.model;
-
-import java.util.Date;
-
-/**
- * @since 1.0
- *
- */
-public class SimpleOrder {
-
-	private int orderNumber;
-	private Date date;
-
-	/**
-	 * @return Returns the date.
-	 */
-	public Date getDate() {
-		return date;
-	}
-
-	/**
-	 * @param date The date to set.
-	 */
-	public void setDate(Date date) {
-		this.date = date;
-	}
-
-	/**
-	 * @return Returns the orderNumber.
-	 */
-	public int getOrderNumber() {
-		return orderNumber;
-	}
-
-	/**
-	 * @param orderNumber The orderNumber to set.
-	 */
-	public void setOrderNumber(int orderNumber) {
-		this.orderNumber = orderNumber;
-	}
-
-	/**
-	 * @param i
-	 * @param date
-	 */
-	public SimpleOrder(int i, Date date) {
-		this.orderNumber = i;
-		this.date = date;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimplePerson.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimplePerson.java
deleted file mode 100644
index 63ba02e..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimplePerson.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2005 David Orme <djo@coconut-palm-software.com>
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     David Orme     - Initial API and implementation
- *     Brad Reynolds (bug 139407)
- */
-package org.eclipse.jface.examples.databinding.model;
-
-import java.util.Date;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-
-public class SimplePerson extends ModelObject {
-	
-	private String name = "";
-	private String address = "";
-	private String city = "";
-	private String state = "";
-	
-	private List orders = new LinkedList();
-	
-	public SimplePerson(String name, String address, String city, String state) {
-		this.name = name;
-		this.address = address;
-		this.city = city;
-		this.state = state;
-		
-		int numOrders = (int) (Math.random() * 5);
-		for (int i=0; i < numOrders; ++i) {
-			orders.add(new SimpleOrder(i, new Date()));
-		}
-	}
-	
-	public SimplePerson() {}
-
-	/**
-	 * @return Returns the address.
-	 */
-	public String getAddress() {
-		return address;
-	}
-
-	/**
-	 * @param address The address to set.
-	 */
-	public void setAddress(String address) {
-		String old = this.address;
-		this.address = address;
-		firePropertyChange("address", old, address);
-	}
-
-	/**
-	 * @return Returns the city.
-	 */
-	public String getCity() {
-		return city;
-	}
-
-	/**
-	 * @param city The city to set.
-	 */
-	public void setCity(String city) {
-		String old = this.city;
-		firePropertyChange("city", old, this.city = city);
-	}
-
-	/**
-	 * @return Returns the name.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * @param name The name to set.
-	 */
-	public void setName(String name) {
-		firePropertyChange("name", this.name, this.name = name);
-	}
-
-	/**
-	 * @return Returns the state.
-	 */
-	public String getState() {
-		return state;
-	}
-
-	/**
-	 * @param state The state to set.
-	 */
-	public void setState(String state) {
-		firePropertyChange("state", this.state, this.state = state); //$NON-NLS-1$
-	}
-	
-	/**
-	 * @return Returns the orders.
-	 */
-	public List getOrders() {
-		return orders;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Transportation.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Transportation.java
deleted file mode 100644
index d4f0b4d..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Transportation.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.examples.databinding.model;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-
-public class Transportation extends ModelObject {
-
-	private String arrivalTime;
-	private double price;
-
-	public void setArrivalTime(String string) {
-		String oldValue = arrivalTime;
-		arrivalTime = string;
-		firePropertyChange("arrivaltime",oldValue,string);
-	}
-	
-	public String getArrivalTime(){
-		return arrivalTime;
-	}
-
-	public double getPrice() {
-		return price;
-	}
-
-	public void setPrice(double aPrice) {
-		double oldPrice = price;
-		price = aPrice;
-		firePropertyChange("price",new Double(oldPrice),new Double(price));
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/nestedselection/BindingFactory.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/nestedselection/BindingFactory.java
deleted file mode 100644
index 6aee0a8..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/nestedselection/BindingFactory.java
+++ /dev/null
@@ -1,98 +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.examples.databinding.nestedselection;
-
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.IObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.NestedObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * An example application-level data binding factory implementation. This should
- * be copied into your application and be modified to include the specific
- * updatable factories your application needs in the order it needs them.
- * <p>
- * Note that the search order for IObservableFactory implementations is last to
- * first.
- * </p>
- * 
- * @since 1.0
- */
-public class BindingFactory {
-
-	/**
-	 * Creates a data binding context whose lifecycle is bound to an SWT
-	 * control, and which supports binding to SWT controls, JFace viewers, and
-	 * POJO model objects with JavaBeans-style notification.
-	 * <p>
-	 * This method is a convenience method; its implementation is equivalent to
-	 * calling
-	 * {@link DataBindingContext#createContext(Control, IObservableFactory[]) }
-	 * where the array of factories consists of a
-	 * {@link NestedObservableFactory}, a {@link BeanObservableFactory}
-	 * instance, a {@link SWTObservableFactory}, and a
-	 * {@link ViewersObservableFactory}.
-	 * </p>
-	 * 
-	 * @param control
-	 * @return a data binding context
-	 */
-	public static DataBindingContext createContext(Control control) {
-		final DataBindingContext context = createContext();
-		control.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				context.dispose();
-			}
-		});
-		return context;
-	}
-
-	/**
-	 * Creates a data binding context which supports binding to SWT controls,
-	 * JFace viewers, and POJO model objects with JavaBeans-style notification.
-	 * This data binding context's life cycle is not bound to the dispose event
-	 * of any SWT control. Consequently, the programmer is responsible to
-	 * manually dispose any IObservables created using this data binding context
-	 * as necessary.
-	 * <p>
-	 * This method is a convenience method; its implementation is equivalent to
-	 * calling
-	 * {@link DataBindingContext#createContext(Control, IObservableFactory[]) }
-	 * where the array of factories consists of a
-	 * {@link NestedObservableFactory}, a {@link BeanObservableFactory}
-	 * instance, a {@link SWTObservableFactory}, and a
-	 * {@link ViewersObservableFactory}.
-	 * </p>
-	 * 
-	 * @return a data binding context
-	 */
-	public static DataBindingContext createContext() {
-		DataBindingContext context = new DataBindingContext();
-		context.addObservableFactory(new NestedObservableFactory(context));
-		context.addObservableFactory(new BeanObservableFactory(context, null,
-				new Class[] { Widget.class }));
-		context.addObservableFactory(new SWTObservableFactory());
-		context.addObservableFactory(new ViewersObservableFactory());
-		context.addBindSupportFactory(new DefaultBindSupportFactory());
-		context.addBindingFactory(new DefaultBindingFactory());
-		context.addBindingFactory(new ViewersBindingFactory());
-		return context;
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/nestedselection/TestMasterDetail.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/nestedselection/TestMasterDetail.java
deleted file mode 100644
index 79573d7..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/nestedselection/TestMasterDetail.java
+++ /dev/null
@@ -1,224 +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.examples.databinding.nestedselection;
-
-import java.util.Date;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.examples.databinding.model.SimpleOrder;
-import org.eclipse.jface.examples.databinding.model.SimplePerson;
-import org.eclipse.jface.examples.databinding.model.SimpleModel;
-import org.eclipse.jface.internal.databinding.provisional.BindSpec;
-import org.eclipse.jface.internal.databinding.provisional.Binding;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.description.TableModelDescription;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersProperties;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-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.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @since 1.0
- * 
- */
-public class TestMasterDetail {
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		new TestMasterDetail().run();
-	}
-
-	private Shell shell = null; // @jve:decl-index=0:visual-constraint="10,10"
-
-	private Table personsTable = null;
-
-	private Label label1 = null;
-
-	private Text name = null;
-
-	private Label label2 = null;
-
-	private Text address = null;
-
-	private Label label3 = null;
-
-	private Text city = null;
-
-	private Label label4 = null;
-
-	private Text state = null;
-
-	private Table ordersTable = null;
-
-	private Label label5;
-
-	private Text orderDate;
-
-	private Label validationError;
-
-	/**
-	 * This method initializes table
-	 * 
-	 */
-	private void createTable() {
-		GridData gridData = new org.eclipse.swt.layout.GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
-		gridData.horizontalSpan = 2;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
-		personsTable = new Table(shell, SWT.FULL_SELECTION);
-		personsTable.setHeaderVisible(true);
-		personsTable.setLayoutData(gridData);
-		personsTable.setLinesVisible(true);
-		TableColumn tableColumn = new TableColumn(personsTable, SWT.NONE);
-		tableColumn.setWidth(60);
-		tableColumn.setText("Name");
-		TableColumn tableColumn1 = new TableColumn(personsTable, SWT.NONE);
-		tableColumn1.setWidth(60);
-		tableColumn1.setText("State");
-	}
-
-	/**
-	 * This method initializes table1
-	 * 
-	 */
-	private void createTable1() {
-		GridData gridData5 = new org.eclipse.swt.layout.GridData();
-		gridData5.horizontalSpan = 2;
-		gridData5.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
-		gridData5.grabExcessHorizontalSpace = true;
-		gridData5.grabExcessVerticalSpace = true;
-		gridData5.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
-		ordersTable = new Table(shell, SWT.FULL_SELECTION);
-		ordersTable.setHeaderVisible(true);
-		ordersTable.setLayoutData(gridData5);
-		ordersTable.setLinesVisible(true);
-		TableColumn tableColumn2 = new TableColumn(ordersTable, SWT.NONE);
-		tableColumn2.setWidth(60);
-		tableColumn2.setText("Order No");
-		TableColumn tableColumn3 = new TableColumn(ordersTable, SWT.NONE);
-		tableColumn3.setWidth(60);
-		tableColumn3.setText("Date");
-	}
-
-	/**
-	 * This method initializes sShell
-	 */
-	private void createShell() {
-		GridData gridData5 = new org.eclipse.swt.layout.GridData();
-		gridData5.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
-		gridData5.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
-		GridData gridData4 = new org.eclipse.swt.layout.GridData();
-		gridData4.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
-		gridData4.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
-		GridData gridData3 = new org.eclipse.swt.layout.GridData();
-		gridData3.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
-		gridData3.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
-		GridData gridData2 = new org.eclipse.swt.layout.GridData();
-		gridData2.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
-		gridData2.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
-		GridData gridData1 = new org.eclipse.swt.layout.GridData();
-		gridData1.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
-		gridData1.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 2;
-		shell = new Shell();
-		shell.setText("Shell");
-		createTable();
-		shell.setLayout(gridLayout);
-		shell.setSize(new org.eclipse.swt.graphics.Point(495, 357));
-		label1 = new Label(shell, SWT.NONE);
-		label1.setText("Name");
-		name = new Text(shell, SWT.BORDER);
-		name.setLayoutData(gridData1);
-		label2 = new Label(shell, SWT.NONE);
-		label2.setText("Address");
-		address = new Text(shell, SWT.BORDER);
-		address.setLayoutData(gridData2);
-		label3 = new Label(shell, SWT.NONE);
-		label3.setText("City");
-		city = new Text(shell, SWT.BORDER);
-		city.setLayoutData(gridData4);
-		label4 = new Label(shell, SWT.NONE);
-		label4.setText("State");
-		state = new Text(shell, SWT.BORDER);
-		state.setLayoutData(gridData3);
-		createTable1();
-		label5 = new Label(shell, SWT.NONE);
-		label5.setText("Order Date");
-		orderDate = new Text(shell, SWT.BORDER);
-		orderDate.setLayoutData(gridData5);
-		validationError = new Label(shell, SWT.NONE);
-		validationError.setLayoutData(new GridData(SWT.LEFT,SWT.TOP,true,false,2,1));
-	}
-
-	private void run() {
-		Display display = new Display();
-
-		createShell();
-		bind(shell);
-
-		shell.setSize(600, 600);
-		shell.open();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-
-	SimpleModel model = new SimpleModel();
-
-	private void bind(Control parent) {
-		DataBindingContext dbc = BindingFactory.createContext(parent);
-		TableViewer peopleViewer = new TableViewer(personsTable);
-		dbc.bind(peopleViewer, new TableModelDescription(new Property(model,
-				"personList", SimplePerson.class, Boolean.TRUE), new Object[] {
-				"name", "state" }), null);
-
-		IObservable selectedPerson = dbc.createObservable(new Property(
-				peopleViewer, ViewersProperties.SINGLE_SELECTION));
-
-		dbc.bind(name, new Property(selectedPerson, "name", String.class,
-				Boolean.FALSE), null);
-		dbc.bind(address, new Property(selectedPerson, "address", String.class,
-				Boolean.FALSE), null);
-		dbc.bind(city, new Property(selectedPerson, "city", String.class,
-				Boolean.FALSE), null);
-		dbc.bind(state, new Property(selectedPerson, "state", String.class,
-				Boolean.FALSE), null);
-
-		TableViewer ordersViewer = new TableViewer(ordersTable);
-		dbc.bind(ordersViewer, new TableModelDescription(new Property(
-				selectedPerson, "orders", SimpleOrder.class, Boolean.TRUE),
-				new Object[] { "orderNumber", "date" }), null);
-		
-		IObservable selectedOrder = dbc.createObservable(new Property(ordersViewer, ViewersProperties.SINGLE_SELECTION));
-		
-		Binding b = dbc.bind(orderDate, new Property(selectedOrder, "date", Date.class,
-				Boolean.FALSE), null);
-		dbc.bind(validationError, b.getValidationError(),
-				new BindSpec().setUpdateModel(false));
-
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/radioGroup/RadioGroup.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/radioGroup/RadioGroup.java
deleted file mode 100644
index 6917213..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/radioGroup/RadioGroup.java
+++ /dev/null
@@ -1,549 +0,0 @@
-package org.eclipse.jface.examples.databinding.radioGroup;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.examples.databinding.compositetable.reflect.DuckType;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-
-/** 
- * This object decorates a bunch of SWT.RADIO buttons and provides saner 
- * selection semantics than you get by default with those radio buttons.
- * <p>
- * Its API is basically the same API as List, but with unnecessary methods
- * removed.
- */
-public class RadioGroup {
-   
-   private final IRadioButton[] buttons;
-   private final Object[] values;
-   IRadioButton oldSelection = null;
-   IRadioButton selectedButton = null;
-   IRadioButton potentialNewSelection = null;
-
-   /** (Non-API)
-    * Interface IRadioButton.  A duck interface that is used internally by RadioGroup
-    * and by RadioGroup's unit tests.
-    */
-   public static interface IRadioButton {
-      void setData(String string, Object object);
-      void addSelectionListener(SelectionListener selectionListener);
-      void setSelection(boolean b);
-      boolean getSelection();
-      boolean isFocusControl();
-      String getText();
-      void setText(String string);
-      void notifyListeners(int eventType, Event object);
-   }
-   
-   /**
-    * Constructs an instance of this widget given an array of Button objects to wrap.
-    * The Button objects must have been created with the SWT.RADIO style bit set,
-    * and they must all be in the same Composite.
-    * 
-    * @param radioButtons Object[] an array of radio buttons to wrap.
-    * @param values Object[] an array of objects corresponding to the value of each radio button.
-    */
-   public RadioGroup(Object[] radioButtons, Object[] values) {
-      IRadioButton[] buttons = new IRadioButton[radioButtons.length];
-      if (buttons.length < 1) {
-         throw new IllegalArgumentException("A RadioGroup must manage at least one Button");
-      }
-      for (int i = 0; i < buttons.length; i++) {
-         if (!DuckType.instanceOf(IRadioButton.class, radioButtons[i])) {
-            throw new IllegalArgumentException("A radio button was not passed");
-         }
-         buttons[i] = (IRadioButton) DuckType.implement(IRadioButton.class, radioButtons[i]);
-         buttons[i].setData(Integer.toString(i), new Integer(i));
-         buttons[i].addSelectionListener(selectionListener);
-      }
-      this.buttons = buttons;
-      this.values = values;
-   }
-   
-   /**
-    * Returns the object corresponding to the currently-selected radio button
-    * or null if no radio button is selected.
-    * 
-    * @return the object corresponding to the currently-selected radio button
-    * or null if no radio button is selected.
-    */
-   public Object getSelection() {
-      int selectionIndex = getSelectionIndex();
-      if (selectionIndex < 0)
-         return "";
-      return values[selectionIndex];
-   }
-   
-   /**
-    * Sets the selected radio button to the radio button whose model object
-    * equals() the object specified by newSelection.  If !newSelection.equals()
-    * any model object managed by this radio group, deselects all radio buttons.
-    * 
-    * @param newSelection A model object corresponding to one of the model
-    * objects associated with one of the radio buttons.
-    */
-   public void setSelection(Object newSelection) {
-      deselectAll();
-      for (int i = 0; i < values.length; i++) {
-         if (values[i].equals(newSelection)) {
-            setSelection(i);
-            return;
-         }
-      }
-   }
-   
-   private SelectionListener selectionListener = new SelectionListener() {
-      public void widgetDefaultSelected(SelectionEvent e) {
-         widgetSelected(e);
-      }
-      
-      public void widgetSelected(SelectionEvent e) {
-         potentialNewSelection = getButton(e);
-         if (! potentialNewSelection.getSelection()) {
-            return;
-         }
-         if (potentialNewSelection.equals(selectedButton)) {
-            return;
-         }
-         
-         if (fireWidgetChangeSelectionEvent(e)) {
-            oldSelection = selectedButton;
-            selectedButton = potentialNewSelection;
-            if (oldSelection == null) {
-               oldSelection = selectedButton;
-            }
-   
-            fireWidgetSelectedEvent(e);
-         }
-      }
-
-      private IRadioButton getButton(SelectionEvent e) {
-         // If the actual IRadioButton is a test fixture, then the test fixture can't
-         // set e.widget, so the button object will be in e.data instead and a dummy 
-         // Widget will be in e.widget.
-         if (e.data != null) {
-            return (IRadioButton) e.data;
-         }
-         return (IRadioButton) DuckType.implement(IRadioButton.class, e.widget);
-      }
-   };
-   
-   private List widgetChangeListeners = new LinkedList();
-   
-   protected boolean fireWidgetChangeSelectionEvent(SelectionEvent e) {
-      for (Iterator listenersIter = widgetChangeListeners.iterator(); listenersIter.hasNext();) {
-         VetoableSelectionListener listener = (VetoableSelectionListener) listenersIter.next();
-         listener.canWidgetChangeSelection(e);
-         if (!e.doit) {
-            rollbackSelection();
-            return false;
-         }
-      }
-      return true;
-   }
-
-   private void rollbackSelection() {
-      Display.getCurrent().asyncExec(new Runnable() {
-         public void run() {
-            potentialNewSelection.setSelection(false);
-            selectedButton.setSelection(true);
-//            selectedButton.notifyListeners(SWT.Selection, null);
-         }
-      });
-   }
-
-
-   /**
-    * Adds the listener to the collection of listeners who will
-    * be notified when the receiver's selection is about to change, by sending
-    * it one of the messages defined in the <code>VetoableSelectionListener</code>
-    * interface.
-    * <p>
-    * <code>widgetSelected</code> is called when the selection changes.
-    * <code>widgetDefaultSelected</code> is typically called when an item is double-clicked.
-    * </p>
-    *
-    * @param listener the listener which should be notified
-    *
-    * @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 VetoableSelectionListener
-    * @see #removeVetoableSelectionListener
-    * @see SelectionEvent
-    */
-   public void addVetoableSelectionListener(VetoableSelectionListener listener) {
-      widgetChangeListeners.add(listener);
-   }
-
-   /**
-    * Removes the listener from the collection of listeners who will
-    * be notified when the receiver's selection is about to change.
-    *
-    * @param listener the listener which should no longer be notified
-    *
-    * @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 VetoableSelectionListener
-    * @see #addVetoableSelectionListener
-    */
-   public void removeVetoableSelectionListener(VetoableSelectionListener listener) {
-      widgetChangeListeners.remove(listener);
-   }
-   
-
-   private List widgetSelectedListeners = new ArrayList();
-   
-   protected void fireWidgetSelectedEvent(SelectionEvent e) {
-      for (Iterator listenersIter = widgetSelectedListeners.iterator(); listenersIter.hasNext();) {
-         SelectionListener listener = (SelectionListener) listenersIter.next();
-         listener.widgetSelected(e);
-      }
-   }
-
-   protected void fireWidgetDefaultSelectedEvent(SelectionEvent e) {
-      fireWidgetSelectedEvent(e);
-   }
-   
-   /**
-    * Adds the listener to the collection of listeners who will
-    * be notified when the receiver's selection changes, by sending
-    * it one of the messages defined in the <code>SelectionListener</code>
-    * interface.
-    * <p>
-    * <code>widgetSelected</code> is called when the selection changes.
-    * <code>widgetDefaultSelected</code> is typically called when an item is double-clicked.
-    * </p>
-    *
-    * @param listener the listener which should be notified
-    *
-    * @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 SelectionListener
-    * @see #removeSelectionListener
-    * @see SelectionEvent
-    */
-   public void addSelectionListener(SelectionListener listener) {
-      widgetSelectedListeners.add(listener);
-   }
-
-   /**
-    * Removes the listener from the collection of listeners who will
-    * be notified when the receiver's selection changes.
-    *
-    * @param listener the listener which should no longer be notified
-    *
-    * @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 SelectionListener
-    * @see #addSelectionListener
-    */
-   public void removeSelectionListener(SelectionListener listener) {
-      widgetSelectedListeners.remove(listener);
-   }
-   
-   /**
-    * Deselects the item at the given zero-relative index in the receiver.
-    * If the item at the index was already deselected, it remains
-    * deselected. Indices that are out of range are ignored.
-    *
-    * @param index the index of the item to deselect
-    *
-    * @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 deselect (int index) {
-      if (index < 0 || index >= buttons.length)
-         return;
-      buttons[index].setSelection(false);
-   }
-   
-   /**
-    * Deselects all selected items in the receiver.
-    *
-    * @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 deselectAll () {
-      for (int i = 0; i < buttons.length; i++)
-         buttons[i].setSelection(false);
-   }   
-
-   /**
-    * Returns the zero-relative index of the item which currently
-    * has the focus in the receiver, or -1 if no item has focus.
-    *
-    * @return the index of the selected 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 int getFocusIndex () {
-      for (int i = 0; i < buttons.length; i++) {
-         if (buttons[i].isFocusControl()) {
-            return i;
-         }
-      }
-      return -1;
-   }
-
-   /**
-    * 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 <ul>
-    *    <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</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>
-    * 
-    * FIXME: tck - this should be renamed to getItemText()
-    */
-   public String getItem (int index) {
-      if (index < 0 || index >= buttons.length)
-         SWT.error(SWT.ERROR_INVALID_RANGE, null, "getItem for a nonexistant item");
-      return buttons[index].getText();
-   }
-
-   /**
-    * Returns the number of items contained in the receiver.
-    *
-    * @return the number of items
-    *
-    * @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 int getItemCount () {
-      return buttons.length;
-   }
-
-   /**
-    * Returns a (possibly empty) array of <code>String</code>s which
-    * are the items in the receiver. 
-    * <p>
-    * Note: This is not the actual structure used by the receiver
-    * to maintain its list of items, so modifying the array will
-    * not affect the receiver. 
-    * </p>
-    *
-    * @return the items in the receiver's list
-    *
-    * @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 [] getItems () {
-      List itemStrings = new ArrayList();
-      for (int i = 0; i < buttons.length; i++) {
-         itemStrings.add(buttons[i].getText());
-      }
-      return (String[]) itemStrings.toArray(new String[itemStrings.size()]);
-   }
-   
-   public Object[] getButtons() {
-      return buttons;
-   }
-
-   /**
-    * 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 or -1
-    *
-    * @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 int getSelectionIndex () {
-      for (int i = 0; i < buttons.length; i++) {
-         if (buttons[i].getSelection() == true) {
-            return i;
-         }
-      }
-      return -1;
-   }
-
-  /**
-    * Gets the index of an item.
-    * <p>
-    * The list is searched starting at 0 until an
-    * item is found that is equal to the search item.
-    * If no item is found, -1 is returned.  Indexing
-    * is zero based.
-    *
-    * @param string the search item
-    * @return the index of the item
-    *
-    * @exception IllegalArgumentException <ul>
-    *    <li>ERROR_NULL_ARGUMENT - if the string 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 int indexOf (String string) {
-      for (int i = 0; i < buttons.length; i++) {
-         if (buttons[i].getText().equals(string)) {
-            return i;
-         }
-      }
-      return -1;
-   }
-
-   /**
-    * Searches the receiver's list starting at the given, 
-    * zero-relative index until an item is found that is equal
-    * to the argument, and returns the index of that item. If
-    * no item is found or the starting index is out of range,
-    * returns -1.
-    *
-    * @param string the search item
-    * @param start the zero-relative index at which to start the search
-    * @return the index of the item
-    *
-    * @exception IllegalArgumentException <ul>
-    *    <li>ERROR_NULL_ARGUMENT - if the string 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 int indexOf (String string, int start) {
-      for (int i = start; i < buttons.length; i++) {
-         if (buttons[i].getText().equals(string)) {
-            return i;
-         }
-      }
-      return -1;
-   }
-
-   /**
-    * Returns <code>true</code> if the item is selected,
-    * and <code>false</code> otherwise.  Indices out of
-    * range are ignored.
-    *
-    * @param index the index of the item
-    * @return the visibility state of the item at the index
-    *
-    * @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 boolean isSelected (int index) {
-      return buttons[index].getSelection();
-   }
-
-   /**
-    * Selects the item at the given zero-relative index in the receiver's 
-    * list.  If the item at the index was already selected, it remains
-    * selected. Indices that are out of range are ignored.
-    *
-    * @param index the index of the item to select
-    *
-    * @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 select (int index) {
-      if (index < 0 || index >= buttons.length)
-         return;
-      buttons[index].setSelection(true);
-   }
-
-   /**
-    * Sets the text of the item in the receiver's list at the given
-    * zero-relative index to the string argument. This is equivalent
-    * to <code>remove</code>'ing the old item at the index, and then
-    * <code>add</code>'ing the new item at that index.
-    *
-    * @param index the index for the item
-    * @param string the new text for the item
-    *
-    * @exception IllegalArgumentException <ul>
-    *    <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</li>
-    *    <li>ERROR_NULL_ARGUMENT - if the string 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 setItem (int index, String string) {
-      if (index < 0 || index >= buttons.length)
-         SWT.error(SWT.ERROR_INVALID_RANGE, null, "setItem for a nonexistant item");
-      buttons[index].setText(string);
-   }
-
-   /**
-    * Selects the item at the given zero-relative index in the receiver. 
-    * If the item at the index was already selected, it remains selected.
-    * The current selection is first cleared, then the new item is selected.
-    * Indices that are out of range are ignored.
-    *
-    * @param index the index of the item to select
-    *
-    * @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 List#deselectAll()
-    * @see List#select(int)
-    */
-   public void setSelection (int index) {
-      if (index < 0 || index > buttons.length - 1) {
-         return;
-      }
-      buttons[index].setSelection(true);
-   }
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/radioGroup/VetoableSelectionListener.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/radioGroup/VetoableSelectionListener.java
deleted file mode 100644
index 949346a..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/radioGroup/VetoableSelectionListener.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.eclipse.jface.examples.databinding.radioGroup;
-
-import org.eclipse.swt.events.SelectionEvent;
-
-/**
- * Interface VetoableSelectionListener.  An interface for SelectionListeners
- * that permit the new selection to be vetoed before widgetSelected or
- * widgetDefaultSelected is called.
- */
-public interface VetoableSelectionListener {
-   /**
-    * Method widgetCanChangeSelection.  Indicates that the selection is
-    * about to be changed.  Setting e.doit to false will prevent the 
-    * selection from changing.
-    * 
-    * @param e The SelectionEvent that is being processed.
-    */
-   public void canWidgetChangeSelection(SelectionEvent e);
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet000HelloWorld.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet000HelloWorld.java
deleted file mode 100644
index 1b3d857..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet000HelloWorld.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef, 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:
- *     The Pampered Chef, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import org.eclipse.jface.databinding.DataBindingContext;
-import org.eclipse.jface.databinding.beans.BeansObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-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;
-
-/**
- * Hello, databinding. Bind changes in a GUI to a Model object but don't worry
- * about propogating changes from the Model to the GUI.
- * <p>
- * Illustrates the basic Model-ViewModel-Binding-View architecture typically
- * used in data binding applications.
- */
-public class Snippet000HelloWorld {
-	public static void main(String[] args) {
-		ViewModel viewModel = new ViewModel();
-		Shell shell = new View(viewModel).createShell();
-
-		// The SWT event loop
-		Display display = Display.getCurrent();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-
-		// Print the results
-		System.out.println("person.getName() = "
-				+ viewModel.getPerson().getName());
-	}
-
-	// The data model class. This is normally a persistent class of some sort.
-	// 
-	// In this example, we only push changes from the GUI to the model, so we
-	// don't worry about implementing JavaBeans bound properties. If we need
-	// our GUI to automatically reflect changes in the Person object, the
-	// Person object would need to implement the JavaBeans property change
-	// listener methods.
-	static class Person {
-		// A property...
-		String name = "HelloWorld";
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String name) {
-			this.name = name;
-		}
-	}
-
-	// The View's model--the root of our Model graph for this particular GUI.
-	//
-	// Typically each View class has a corresponding ViewModel class.
-	// The ViewModel is responsible for getting the objects to edit from the
-	// DAO. Since this snippet doesn't have any persistent objects to
-	// retrieve, this ViewModel just instantiates a model object to edit.
-	static class ViewModel {
-		// The model to bind
-		private Person person = new Person();
-
-		public Person getPerson() {
-			return person;
-		}
-	}
-
-	// The GUI view
-	static class View {
-		private ViewModel viewModel;
-
-		public View(ViewModel viewModel) {
-			this.viewModel = viewModel;
-		}
-
-		public Shell createShell() {
-			// Build a UI
-			Shell shell = new Shell(Display.getCurrent());
-			shell.setLayout(new RowLayout(SWT.VERTICAL));
-
-			Text name = new Text(shell, SWT.BORDER);
-
-			// Bind it
-			DataBindingContext bindingContext = new DataBindingContext();
-
-			Person person = viewModel.getPerson();
-			bindingContext.bindValue(SWTObservables.getText(name, SWT.Modify),
-					BeansObservables.getAttribute(person, "name"), null);
-
-			// Open and return the Shell
-			shell.pack();
-			shell.open();
-			return shell;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet001NestedSelectionWithCombo.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet001NestedSelectionWithCombo.java
deleted file mode 100644
index a0bbd2c..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet001NestedSelectionWithCombo.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef, 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:
- *     The Pampered Chef, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.ArrayList;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.examples.databinding.DataBindingFactory1;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.ListModelDescription;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersProperties;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Demonstrates nested selection.<br>
- * At the first level, user may select a person.<br>
- * At the second level, user may select a city to associate with the selected<br>
- * person or edit the person's name.
- */
-public class Snippet001NestedSelectionWithCombo {
-	public static void main(String[] args) {
-		ViewModel viewModel = new ViewModel();
-		Shell shell = new View(viewModel).createShell();
-		
-		// The SWT event loop
-		Display display = Display.getCurrent();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-	}
-	
-	// Minimal JavaBeans support
-	static abstract class AbstractModelObject {
-		private PropertyChangeSupport propertyChangeSupport = 
-			new PropertyChangeSupport(this);
-		
-		public void addPropertyChangeListener(PropertyChangeListener listener) {
-			propertyChangeSupport.addPropertyChangeListener(listener);
-		}
-
-		public void addPropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
-		}
-
-		public void removePropertyChangeListener(PropertyChangeListener listener) {
-			propertyChangeSupport.removePropertyChangeListener(listener);
-		}
-
-		public void removePropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			propertyChangeSupport.removePropertyChangeListener(propertyName,
-					listener);
-		}
-
-		protected void firePropertyChange(String propertyName, Object oldValue,
-				Object newValue) {
-			propertyChangeSupport.firePropertyChange(propertyName, oldValue,
-					newValue);
-		}
-	}
-	
-	// The data model class.  This is normally a persistent class of some sort.
-	// 
-	// This example implements full JavaBeans bound properties so that changes
-	// to instances of this class will automatically be propogated to the UI.
-	static class Person extends AbstractModelObject {
-		// Constructor
-		public Person(String name, String city) {
-			this.name = name;
-			this.city = city;
-		}
-
-		// Some JavaBean bound properties...
-		String name;
-		String city;
-		
-		public String getName() {
-			return name;
-		}
-		
-		public void setName(String name) {
-			String oldValue = this.name;
-			this.name = name;
-			firePropertyChange("name", oldValue, name);
-		}
-		
-		public String getCity() {
-			return city;
-		}
-		
-		public void setCity(String city) {
-			String oldValue = this.city;
-			this.city = city;
-			firePropertyChange("city", oldValue, city);
-		}
-	}
-	
-	// The View's model--the root of our GUI's Model graph
-	//
-	// Typically each View class has a corresponding ViewModel class.  
-	// The ViewModel is responsible for getting the objects to edit from the 
-	// DAO.  Since this snippet doesn't have any persistent objects to 
-	// retrieve, this ViewModel just instantiates some objects to edit.
-	// 
-	// This ViewModel also implements JavaBean bound properties.
-	static class ViewModel extends AbstractModelObject {
-		// The model to bind
-		private ArrayList people = new ArrayList(); {
-			people.add(new Person("Wile E. Coyote", "Tucson"));
-			people.add(new Person("Road Runner", "Lost Horse"));
-			people.add(new Person("Bugs Bunny", "Forrest"));
-		}
-		
-		// Choice of cities for the Combo
-		private ArrayList cities = new ArrayList(); {
-			cities.add("Tucson");
-			cities.add("AcmeTown");
-			cities.add("Lost Horse");
-			cities.add("Forrest");
-			cities.add("Lost Mine");
-		}
-		
-		public ArrayList getPeople() {
-			return people;
-		}
-		
-		public ArrayList getCities() {
-			return cities;
-		}
-	}
-	
-	// The GUI view
-	static class View {
-		private ViewModel viewModel;
-
-		public View(ViewModel viewModel) {
-			this.viewModel = viewModel;
-		}
-		
-		public Shell createShell() {
-			// Build a UI
-			Shell shell = new Shell(Display.getCurrent());
-			shell.setLayout(new RowLayout(SWT.VERTICAL));
-			
-			List peopleList = new List(shell, SWT.BORDER);
-			Text name = new Text(shell, SWT.BORDER);
-			Combo city = new Combo(shell, SWT.BORDER | SWT.READ_ONLY);
-			
-			// Bind it
-			DataBindingContext bindingContext = new DataBindingFactory1().createContext(shell);
-			
-			ListViewer peopleListViewer = new ListViewer(peopleList);
-			ComboViewer cityViewer = new ComboViewer(city);
-
-			bindingContext.bind(peopleListViewer, 
-					new ListModelDescription(
-							new Property(viewModel, 
-									"people", 
-									Person.class, 
-									Boolean.TRUE), "name"),
-							null);
-			
-			IObservable selectedObservable = bindingContext.createObservable(
-					new Property(peopleListViewer, 
-									ViewersProperties.SINGLE_SELECTION,
-									Person.class,
-									Boolean.FALSE));
-			
-			bindingContext.bind(name, 
-					new Property(selectedObservable, 
-							"name", 
-							String.class, 
-							Boolean.FALSE), 
-					null);
-			
-			bindingContext.bind(new Property(cityViewer, ViewersProperties.CONTENT),
-					new Property(viewModel, "cities"),
-					null);
-			
-			bindingContext.bind(new Property(cityViewer, ViewersProperties.SINGLE_SELECTION),
-					new Property(selectedObservable, 
-							"city", 
-							String.class, 
-							Boolean.FALSE),
-					null);
-
-			// Open and return the Shell
-			shell.pack();
-			shell.open();
-			return shell;
-		}
-	}
-	
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet002UpdateComboRetainSelection.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet002UpdateComboRetainSelection.java
deleted file mode 100644
index f6d07c4..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet002UpdateComboRetainSelection.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef, 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:
- *     The Pampered Chef, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.examples.databinding.DataBindingFactory1;
-import org.eclipse.jface.internal.databinding.internal.swt.ComboObservableValue;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTProperties;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Shows how to bind a Combo so that when update its items, the selection is
- * retained if at all possible.
- *  
- * @since 3.2
- */
-public class Snippet002UpdateComboRetainSelection {
-	public static void main(String[] args) {
-		ViewModel viewModel = new ViewModel();
-		Shell shell = new View(viewModel).createShell();
-		
-		// The SWT event loop
-		Display display = Display.getCurrent();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-		
-		// Print the results
-		System.out.println(viewModel.getText());
-	}
-	
-	// Minimal JavaBeans support
-	static abstract class AbstractModelObject {
-		private PropertyChangeSupport propertyChangeSupport = 
-			new PropertyChangeSupport(this);
-		
-		public void addPropertyChangeListener(PropertyChangeListener listener) {
-			propertyChangeSupport.addPropertyChangeListener(listener);
-		}
-
-		public void addPropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
-		}
-
-		public void removePropertyChangeListener(PropertyChangeListener listener) {
-			propertyChangeSupport.removePropertyChangeListener(listener);
-		}
-
-		public void removePropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			propertyChangeSupport.removePropertyChangeListener(propertyName,
-					listener);
-		}
-
-		protected void firePropertyChange(String propertyName, Object oldValue,
-				Object newValue) {
-			propertyChangeSupport.firePropertyChange(propertyName, oldValue,
-					newValue);
-		}
-	}
-	
-	// The View's model--the root of our Model graph for this particular GUI.
-	static class ViewModel extends AbstractModelObject {
-		private String text = "beef";
-		private List choices = new ArrayList(); {
-			choices.add("pork");
-			choices.add("beef");
-			choices.add("poultry");
-			choices.add("vegatables");
-		}
-		
-		public List getChoices() {
-			return choices;
-		}
-		public void setChoices(List choices) {
-			this.choices = choices;
-			firePropertyChange("choices", null, null);
-		}
-		public String getText() {
-			return text;
-		}
-		public void setText(String text) {
-			String oldValue = this.text;
-			this.text = text;
-			firePropertyChange("test", oldValue, text);
-		}
-	}
-	
-	// The GUI view
-	static class View {
-		private ViewModel viewModel;
-
-		public View(ViewModel viewModel) {
-			this.viewModel = viewModel;
-		}
-		
-		public Shell createShell() {
-			// Build a UI
-			Shell shell = new Shell(Display.getCurrent());
-			shell.setLayout(new RowLayout(SWT.VERTICAL));
-			
-			Combo combo = new Combo(shell, SWT.BORDER | SWT.READ_ONLY);
-			Button reset = new Button(shell, SWT.NULL);
-			reset.setText("reset collection");
-			reset.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					List newList = new ArrayList();
-					newList.add("Chocolate");
-					newList.add("Vanilla");
-					newList.add("Mango Parfait");
-					newList.add("beef");
-					newList.add("Cheesecake");
-					viewModel.setChoices(newList);
-				}
-			});
-			
-			// Print value out first
-			System.out.println(viewModel.getText());
-			
-			// Bind it
-			DataBindingContext bindingContext = new DataBindingFactory1().createContext(shell);
-			
-			ComboObservableValue comboValue = (ComboObservableValue) bindingContext.createObservable(new Property(combo, SWTProperties.TEXT));
-			bindingContext.bind(comboValue.getItems(), new Property(viewModel, "choices"), null);
-			bindingContext.bind(comboValue, new Property(viewModel, "text"), null);
-//			bindingContext.bind(combo, new Property(viewModel, "choices", String.class, Boolean.TRUE), null);
-			
-			// Open and return the Shell
-			shell.pack();
-			shell.open();
-			return shell;
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet003UpdateComboBindUsingViewer.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet003UpdateComboBindUsingViewer.java
deleted file mode 100644
index 7956bae..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet003UpdateComboBindUsingViewer.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef, 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:
- *     The Pampered Chef, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.examples.databinding.DataBindingFactory1;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersProperties;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Shows how to bind a Combo so that when update its items, the selection is
- * retained if at all possible.
- *  
- * @since 3.2
- */
-public class Snippet003UpdateComboBindUsingViewer {
-	public static void main(String[] args) {
-		ViewModel viewModel = new ViewModel();
-		Shell shell = new View(viewModel).createShell();
-		
-		// The SWT event loop
-		Display display = Display.getCurrent();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-		
-		// Print the results
-		System.out.println(viewModel.getText());
-	}
-	
-	// Minimal JavaBeans support
-	static abstract class AbstractModelObject {
-		private PropertyChangeSupport propertyChangeSupport = 
-			new PropertyChangeSupport(this);
-		
-		public void addPropertyChangeListener(PropertyChangeListener listener) {
-			propertyChangeSupport.addPropertyChangeListener(listener);
-		}
-
-		public void addPropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
-		}
-
-		public void removePropertyChangeListener(PropertyChangeListener listener) {
-			propertyChangeSupport.removePropertyChangeListener(listener);
-		}
-
-		public void removePropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			propertyChangeSupport.removePropertyChangeListener(propertyName,
-					listener);
-		}
-
-		protected void firePropertyChange(String propertyName, Object oldValue,
-				Object newValue) {
-			propertyChangeSupport.firePropertyChange(propertyName, oldValue,
-					newValue);
-		}
-	}
-	
-	// The View's model--the root of our Model graph for this particular GUI.
-	static class ViewModel extends AbstractModelObject {
-		private String text = "beef";
-		private List choices = new ArrayList(); {
-			choices.add("pork");
-			choices.add("beef");
-			choices.add("poultry");
-			choices.add("vegatables");
-		}
-		
-		public List getChoices() {
-			return choices;
-		}
-		public void setChoices(List choices) {
-			this.choices = choices;
-			firePropertyChange("choices", null, null);
-		}
-		public String getText() {
-			return text;
-		}
-		public void setText(String text) {
-			String oldValue = this.text;
-			this.text = text;
-			firePropertyChange("test", oldValue, text);
-		}
-	}
-	
-	// The GUI view
-	static class View {
-		private ViewModel viewModel;
-
-		public View(ViewModel viewModel) {
-			this.viewModel = viewModel;
-		}
-		
-		public Shell createShell() {
-			// Build a UI
-			Shell shell = new Shell(Display.getCurrent());
-			shell.setLayout(new RowLayout(SWT.VERTICAL));
-			
-			Combo combo = new Combo(shell, SWT.BORDER | SWT.READ_ONLY);
-			ComboViewer viewer = new ComboViewer(combo);
-			Button reset = new Button(shell, SWT.NULL);
-			reset.setText("reset collection");
-			reset.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					List newList = new ArrayList();
-					newList.add("Chocolate");
-					newList.add("Vanilla");
-					newList.add("Mango Parfait");
-					newList.add("beef");
-					newList.add("Cheesecake");
-					viewModel.setChoices(newList);
-				}
-			});
-			
-			// Print value out first
-			System.out.println(viewModel.getText());
-			
-			// Bind it
-			DataBindingContext bindingContext = new DataBindingFactory1().createContext(shell);
-			
-			bindingContext.bind(new Property(viewer, ViewersProperties.CONTENT),
-					new Property(viewModel, "choices"), null);
-			bindingContext.bind(new Property(viewer, ViewersProperties.SINGLE_SELECTION), 
-					new Property(viewModel, "text"), null);
-			
-			// Open and return the Shell
-			shell.pack();
-			shell.open();
-			return shell;
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet004DataBindingContextErrorLabel.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet004DataBindingContextErrorLabel.java
deleted file mode 100644
index 0b8720e..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet004DataBindingContextErrorLabel.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.examples.databinding.snippets;
-
-import org.eclipse.jface.databinding.BindSpec;
-import org.eclipse.jface.databinding.DataBindingContext;
-import org.eclipse.jface.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.provisional.validation.IDomainValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Snippet that displays how to bind the validation error of the
- * {@link DataBindingContext} to a label.
- * 
- * @since 3.2
- */
-public class Snippet004DataBindingContextErrorLabel {
-    public static void main(String[] args) {
-        Shell shell = new Shell();
-        Display display = shell.getDisplay();
-        shell.setLayout(new GridLayout(2, false));
-
-        new Label(shell, SWT.NONE).setText("Enter '5' to be valid:");
-
-        Text text = new Text(shell, SWT.BORDER);
-        WritableValue value = new WritableValue(String.class);
-        new Label(shell, SWT.NONE).setText("Error:");
-
-        Label errorLabel = new Label(shell, SWT.BORDER);
-        errorLabel.setForeground(display.getSystemColor(SWT.COLOR_RED));
-        GridDataFactory.swtDefaults().hint(200, SWT.DEFAULT).applyTo(errorLabel);
-
-        DataBindingContext dbc = DataBindingContext.withDefaults();
-
-        // Bind the text to the value.
-        dbc.bindValue(SWTObservables.getText(text, SWT.Modify),
-                value,
-                new BindSpec().setDomainValidator(new FiveValidator()));
-
-        // Bind the error label to the validation error on the dbc.
-        dbc.bindValue(SWTObservables.getText(errorLabel), dbc.getValidationError(), null);
-
-        shell.pack();
-        shell.open();
-        while (!shell.isDisposed()) {
-            if (!display.readAndDispatch())
-                display.sleep();
-        }
-    }
-
-    /**
-     * Validator that returns validation errors for any value other than 5.
-     * 
-     * @since 3.2
-     */
-    private static class FiveValidator implements IDomainValidator {
-        public ValidationError isValid(Object value) {
-            return ("5".equals(value)) ? null : ValidationError.error("the value was '" + value + "', not '5'");
-        }
-    }
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/spreadsheet/Spreadsheet.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/spreadsheet/Spreadsheet.java
deleted file mode 100644
index 26ed787..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/spreadsheet/Spreadsheet.java
+++ /dev/null
@@ -1,295 +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.examples.databinding.spreadsheet;
-
-import java.text.NumberFormat;
-import java.text.ParseException;
-
-import org.eclipse.jface.databinding.observable.value.ComputedValue;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.WritableValue;
-import org.eclipse.jface.internal.databinding.provisional.swt.TableUpdater;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ControlEditor;
-import org.eclipse.swt.custom.TableCursor;
-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.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;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @since 1.1
- * 
- */
-public class Spreadsheet {
-
-	private static final int COUNTER_UPDATE_DELAY = 1000;
-
-	private static final int NUM_COLUMNS = 26;
-
-	private static final int NUM_ROWS = 200;
-
-	/**
-	 * 0 for no output, 1 for some, 2 for more
-	 */
-	private static int DEBUG_LEVEL = 0;
-
-	/**
-	 * If true, there will be a automatic counter at B1.
-	 */
-	private static boolean FUNKY_COUNTER = true;
-
-	/**
-	 * // * If true, all formulas (except for row 1 and column A) will be the
-	 * sum of the values of their left and top neighbouring cells.
-	 */
-	private static boolean FUNKY_FORMULAS = true;
-
-	static WritableValue[][] cellFormulas = new WritableValue[NUM_ROWS][NUM_COLUMNS];
-
-	static ComputedValue[][] cellValues = new ComputedValue[NUM_ROWS][NUM_COLUMNS];
-
-	static class ComputedCellValue extends ComputedValue {
-		private final IObservableValue cellFormula;
-
-		private boolean calculating;
-
-		ComputedCellValue(IObservableValue cellFormula) {
-			this.cellFormula = cellFormula;
-		}
-
-		protected Object calculate() {
-			if (calculating) {
-				return "#cycle";
-			}
-			try {
-				calculating = true;
-				return evaluate(cellFormula.getValue());
-			} finally {
-				calculating = false;
-			}
-		}
-
-		private Object evaluate(Object value) {
-			if (DEBUG_LEVEL >= 2) {
-				System.out.println("evaluating " + this + " ...");
-			}
-			if (value == null) {
-				return "";
-			}
-			try {
-				String s = (String) value;
-				if (!s.startsWith("=")) {
-					return s;
-				}
-				String addition = s.substring(1);
-				int indexOfPlus = addition.indexOf('+');
-				String operand1 = addition.substring(0, indexOfPlus);
-				double value1 = eval(operand1);
-				String operand2 = addition.substring(indexOfPlus + 1);
-				double value2 = eval(operand2);
-				return NumberFormat.getNumberInstance().format(value1 + value2);
-			} catch (Exception ex) {
-				return ex.getMessage();
-			}
-		}
-
-		/**
-		 * @param s
-		 * @return
-		 * @throws ParseException
-		 */
-		private double eval(String s) throws ParseException {
-			if (s.length() == 0) {
-				return 0;
-			}
-			char character = s.charAt(0);
-			if (Character.isLetter(character)) {
-				character = Character.toLowerCase(character);
-				// reference to other cell
-				int columnIndex = character - 'a';
-				int rowIndex = 0;
-				rowIndex = NumberFormat.getNumberInstance().parse(
-						s.substring(1)).intValue() - 1;
-				String value = (String) cellValues[rowIndex][columnIndex]
-						.getValue();
-				return value.length() == 0 ? 0 : NumberFormat
-						.getNumberInstance().parse(value).doubleValue();
-			}
-			return NumberFormat.getNumberInstance().parse(s).doubleValue();
-		}
-	}
-
-	protected static int counter;
-
-	public static void main(String[] args) {
-
-		final Display display = new Display();
-		Shell shell = new Shell(display);
-
-		final Table table = new Table(shell, SWT.BORDER | SWT.MULTI
-				| SWT.FULL_SELECTION);
-		table.setLinesVisible(true);
-		table.setHeaderVisible(true);
-
-		for (int i = 0; i < NUM_COLUMNS; i++) {
-			TableColumn tableColumn = new TableColumn(table, SWT.NONE);
-			tableColumn.setText(Character.toString((char) ('A' + i)));
-			tableColumn.setWidth(40);
-		}
-		for (int i = 0; i < NUM_ROWS; i++) {
-			new TableItem(table, SWT.NONE);
-			for (int j = 0; j < NUM_COLUMNS; j++) {
-				cellFormulas[i][j] = new WritableValue(null);
-				cellValues[i][j] = new ComputedCellValue(cellFormulas[i][j]);
-				if (!FUNKY_FORMULAS || i == 0 || j == 0) {
-					cellFormulas[i][j].setValue("");
-				} else {
-					cellFormulas[i][j].setValue("=" + cellReference(i - 1, j)
-							+ "+" + cellReference(i, j - 1));
-				}
-			}
-		}
-
-		new TableUpdater(table) {
-			protected void updateItem(TableItem item) {
-				int rowIndex = item.getParent().indexOf(item);
-				if (DEBUG_LEVEL >= 1) {
-					System.out.println("updating row " + rowIndex);
-				}
-				for (int j = 0; j < NUM_COLUMNS; j++) {
-					item
-							.setText(j, (String) cellValues[rowIndex][j]
-									.getValue());
-				}
-			}
-		};
-
-		if (FUNKY_COUNTER) {
-			// counter in A1
-			display.asyncExec(new Runnable() {
-				public void run() {
-					cellFormulas[0][1].setValue("" + counter++);
-					display.timerExec(COUNTER_UPDATE_DELAY, this);
-				}
-			});
-		}
-
-		// create a TableCursor to navigate around the table
-		final TableCursor cursor = new TableCursor(table, SWT.NONE);
-		// create an editor to edit the cell when the user hits "ENTER"
-		// while over a cell in the table
-		final ControlEditor editor = new ControlEditor(cursor);
-		editor.grabHorizontal = true;
-		editor.grabVertical = true;
-
-		cursor.addSelectionListener(new SelectionAdapter() {
-			// when the TableEditor is over a cell, select the corresponding row
-			// in
-			// the table
-			public void widgetSelected(SelectionEvent e) {
-				table.setSelection(new TableItem[] { cursor.getRow() });
-			}
-
-			// when the user hits "ENTER" in the TableCursor, pop up a text
-			// editor so that
-			// they can change the text of the cell
-			public void widgetDefaultSelected(SelectionEvent e) {
-				final Text text = new Text(cursor, SWT.NONE);
-				TableItem row = cursor.getRow();
-				int rowIndex = table.indexOf(row);
-				int columnIndex = cursor.getColumn();
-				text.setText((String) cellFormulas[rowIndex][columnIndex]
-						.getValue());
-				text.addKeyListener(new KeyAdapter() {
-					public void keyPressed(KeyEvent e) {
-						// close the text editor and copy the data over
-						// when the user hits "ENTER"
-						if (e.character == SWT.CR) {
-							TableItem row = cursor.getRow();
-							int rowIndex = table.indexOf(row);
-							int columnIndex = cursor.getColumn();
-							cellFormulas[rowIndex][columnIndex].setValue(text
-									.getText());
-							text.dispose();
-						}
-						// close the text editor when the user hits "ESC"
-						if (e.character == SWT.ESC) {
-							text.dispose();
-						}
-					}
-				});
-				editor.setEditor(text);
-				text.setFocus();
-			}
-		});
-		// Hide the TableCursor when the user hits the "MOD1" or "MOD2" key.
-		// This alows the user to select multiple items in the table.
-		cursor.addKeyListener(new KeyAdapter() {
-			public void keyPressed(KeyEvent e) {
-				if (e.keyCode == SWT.MOD1 || e.keyCode == SWT.MOD2
-						|| (e.stateMask & SWT.MOD1) != 0
-						|| (e.stateMask & SWT.MOD2) != 0) {
-					cursor.setVisible(false);
-				}
-			}
-		});
-		// Show the TableCursor when the user releases the "MOD2" or "MOD1" key.
-		// This signals the end of the multiple selection task.
-		table.addKeyListener(new KeyAdapter() {
-			public void keyReleased(KeyEvent e) {
-				if (e.keyCode == SWT.MOD1 && (e.stateMask & SWT.MOD2) != 0)
-					return;
-				if (e.keyCode == SWT.MOD2 && (e.stateMask & SWT.MOD1) != 0)
-					return;
-				if (e.keyCode != SWT.MOD1 && (e.stateMask & SWT.MOD1) != 0)
-					return;
-				if (e.keyCode != SWT.MOD2 && (e.stateMask & SWT.MOD2) != 0)
-					return;
-
-				TableItem[] selection = table.getSelection();
-				TableItem row = (selection.length == 0) ? table.getItem(table
-						.getTopIndex()) : selection[0];
-				table.showItem(row);
-				cursor.setSelection(row, 0);
-				cursor.setVisible(true);
-				cursor.setFocus();
-			}
-		});
-
-		GridLayoutFactory.fillDefaults().generateLayout(shell);
-		shell.setSize(400, 300);
-		shell.open();
-
-		// The SWT event loop
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-
-	}
-
-	private static String cellReference(int rowIndex, int columnIndex) {
-		String cellReference = "" + ((char) ('A' + columnIndex))
-				+ (rowIndex + 1);
-		return cellReference;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/GridDataFactory.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/GridDataFactory.java
deleted file mode 100644
index bdb67f1..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/GridDataFactory.java
+++ /dev/null
@@ -1,400 +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.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>
- * 
- * ////////////////////////////////////////////////////////////
- * // 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); 
- * </code>
- * 
- * <p>
- * IMPORTANT: WHEN ASSIGNING LAYOUT DATA TO A CONTROL, BE SURE TO USE
- * gridDataFactory.applyTo(control) AND NEVER
- * control.setLayoutData(gridDataFactory).
- * </p>
- * 
- */
-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.
-     * 
-     * <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);
-    }
-
-    /**
-     * 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) {
-        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 reciever.
-     * 
-     * @return a copy of the reciever
-     */
-    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/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/GridLayoutFactory.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/GridLayoutFactory.java
deleted file mode 100644
index 623d40f..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/GridLayoutFactory.java
+++ /dev/null
@@ -1,300 +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.swt.graphics.Point;
-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 1.0
- */
-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>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>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
-     */
-    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
-     */
-    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
-     */
-    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
-     * are the distance between the outer cells and the edge of the layout.
-     * 
-     * @param x horizontal margin size (pixels)
-     * @param y vertical margin size (pixels)
-     * @return this
-     * @see #spacing
-     */
-    public GridLayoutFactory margins(int x, int y) {
-        l.marginWidth = x;
-        l.marginHeight = y;
-        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/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/LayoutConstants.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/LayoutConstants.java
deleted file mode 100644
index 33632b4..0000000
--- a/examples/org.eclipse.jface.examples.databinding/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 1.0
- */
-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/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/LayoutGenerator.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/LayoutGenerator.java
deleted file mode 100644
index 1b2c8ac..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/layout/LayoutGenerator.java
+++ /dev/null
@@ -1,201 +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.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
-     * @param columns
-     *            number of columns for the layout
-     */
-    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) {
-        if (control instanceof Button) {
-            Button button = (Button) control;
-
-            if (hasStyle(button, SWT.CHECK)) {
-                nonWrappingLabelData.applyTo(button);
-            } else {
-                GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).hint(Geometry.max(button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true), LayoutConstants.getMinButtonSize()))
-                        .applyTo(button);
-            }
-            return;
-        }
-
-        // if (control instanceof Label) {
-        // Label label = (Label) control;
-        //			
-        // if (hasStyle(label, SWT.WRAP)) {
-        // wrappingLabelData.applyTo(label);
-        // } else {
-        // nonWrappingLabelData.applyTo(label);
-        // }
-        // return;
-        // }
-
-        if (control instanceof Scrollable) {
-            Scrollable scrollable = (Scrollable) control;
-
-            if (scrollable instanceof Composite) {
-                Composite composite = (Composite) scrollable;
-
-                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;
-                            }
-                        }
-                    }
-
-                    GridDataFactory.fillDefaults().grab(growsHorizontally, growsVertically).applyTo(control);
-                    return;
-                }
-            }
-        }
-
-        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;
-        }
-
-        GridDataFactory.fillDefaults().grab(grabHorizontal, vScroll).align(SWT.FILL, vAlign).hint(hHint, vScroll ? defaultSize.y : SWT.DEFAULT).applyTo(control);
-        return;
-    }
-
-    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/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 5af3aab..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet012DialogWithImageButtons.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.eclipse.jface.snippets.dialogs;
-
-/*******************************************************************************
- * 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
- *******************************************************************************/
-
-
-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/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/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 760641a..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet006TableMultiLineCells.java
+++ /dev/null
@@ -1,267 +0,0 @@
-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.Color;
-import org.eclipse.swt.graphics.Font;
-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.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);
-
-		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#erase(org.eclipse.swt.widgets.Event,
-			 *      java.lang.Object)
-			 */
-			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(viewer.getControl().getDisplay()
-							.getSystemColor(SWT.COLOR_LIST_SELECTION));
-					event.gc.setForeground(viewer.getControl().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;
-
-				}
-
-			}
-
-			/* (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 9724fdc..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet007FullSelection.java
+++ /dev/null
@@ -1,194 +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.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: Highlight cell and support editing which requires SWT.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 ((MyModel)element).counter % 2 == 0;
-			}
-
-			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()),null });
-		
-		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);
-		
-		final Rectangle[] selectionBounds = new Rectangle[1];
-		
-		v.getTable().addListener(SWT.MouseDown, new Listener() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-			 */
-			public void handleEvent(Event event) {
-				TableItem item = v.getTable().getItem(new Point(event.x,event.y));
-				if( item != null ) {
-					int count = v.getTable().getColumnCount();
-					
-					if( count == 0 ) {
-						selectionBounds[0] = item.getBounds();
-					}
-					
-					for( int i = 0; i < count; i++ ) {
-						if( item.getBounds(i).contains(event.x,event.y) ) {
-							selectionBounds[0] = item.getBounds(i);
-							return;
-						}
-					}
-				}
-			}
-			
-		});
-		
-		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) {
-				if((event.detail & SWT.SELECTED) != 0) {
-					if( selectionBounds[0] != null ) {
-						GC gc = event.gc;
-
-						Color background = gc.getBackground();
-						gc.setBackground(v.getTable().getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION));
-						gc.fillRectangle(selectionBounds[0].x,selectionBounds[0].y,selectionBounds[0].width,selectionBounds[0].height);
-						gc.setBackground(background);
-						
-					}
-					
-					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 164180a..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet010OwnerDraw.java
+++ /dev/null
@@ -1,440 +0,0 @@
-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.Color;
-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()) {
-			display.readAndDispatch();
-		}
-		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 + 50;
-
-			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", "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_YELLOW));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(stripe);
-
-		}
-
-	}
-
-	private class AustriaEntry extends CountryEntry {
-
-		AustriaEntry() {
-			super("Österreich", "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);
-
-		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#erase(org.eclipse.swt.widgets.Event,
-			 *      java.lang.Object)
-			 */
-			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(viewer.getControl().getDisplay()
-							.getSystemColor(SWT.COLOR_LIST_SELECTION));
-					event.gc.setForeground(viewer.getControl().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;
-				}
-			}
-
-			protected void measure(Event event, Object element) {
-				CountryEntry country = (CountryEntry) element;
-
-				event.setBounds(new Rectangle(0, 0, 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 f9bd193..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet011CustomTooltips.java
+++ /dev/null
@@ -1,137 +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
- *     IBM - Improvement for Bug 159625 [Snippets] Update Snippet011CustomTooltips to reflect new API
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.ViewerColumn;
-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;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * 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 {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return new String[] { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" };
-		}
-
-		/* (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) {
-			
-			
-		}
-	}
-	
-	/**
-	 * @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.activateCustomTooltips();
-	    v.setContentProvider(new MyContentProvider());
-	    
-	    CellLabelProvider labelProvider = new CellLabelProvider() {
-
-			
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipText(java.lang.Object)
-			 */
-			public String getToolTipText(Object element) {
-				return "Tooltip (" + element + ")";
-			}
-
-		
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipShift(java.lang.Object)
-			 */
-			public Point getToolTipShift(Object object) {
-				return new Point(5,5);
-			}
-
-			
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipDisplayDelayTime(java.lang.Object)
-			 */
-			public int getToolTipDisplayDelayTime(Object object) {
-				return 2000;
-			}
-
-			
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipTimeDisplayed(java.lang.Object)
-			 */
-			public int getToolTipTimeDisplayed(Object object) {
-				return 5000;
-			}
-			
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.CellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
-			 */
-			public void update(ViewerCell cell) {
-				cell.setText(cell.getElement().toString());
-				
-			}
-	    };
-	    
-	    
-	    TableColumn column = new TableColumn(v.getTable(),SWT.NONE);
-	    new ViewerColumn(column,labelProvider);
-	    column.setText("Column 1");
-	    column.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/META-INF/MANIFEST.MF b/examples/org.eclipse.jface.snippets/META-INF/MANIFEST.MF
deleted file mode 100644
index 839899b..0000000
--- a/examples/org.eclipse.jface.snippets/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,9 +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
diff --git a/examples/org.eclipse.jface.snippets/build.properties b/examples/org.eclipse.jface.snippets/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/examples/org.eclipse.jface.snippets/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/examples/org.eclipse.ui.examples.contributions/.project b/examples/org.eclipse.ui.examples.contributions/.project
deleted file mode 100644
index 0230483..0000000
--- a/examples/org.eclipse.ui.examples.contributions/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.contributions</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
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 93421c1..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 13 15:53:04 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.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=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/ExampleDialog.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/ExampleDialog.java
deleted file mode 100644
index adc2648..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/ExampleDialog.java
+++ /dev/null
@@ -1,647 +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
- *     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.StatusDialog;
-import org.eclipse.jface.fieldassist.ComboContentAdapter;
-import org.eclipse.jface.fieldassist.ComboControlCreator;
-import org.eclipse.jface.fieldassist.ContentProposalAdapter;
-import org.eclipse.jface.fieldassist.DecoratedField;
-import org.eclipse.jface.fieldassist.FieldAssistColors;
-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.IControlCreator;
-import org.eclipse.jface.fieldassist.TextContentAdapter;
-import org.eclipse.jface.fieldassist.TextControlCreator;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-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.Color;
-import org.eclipse.swt.graphics.RGB;
-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.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 ExampleDialog 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 {
-		DecoratedField field;
-
-		IControlContentAdapter contentAdapter;
-
-		FieldDecoration errorDecoration, warningDecoration;
-
-		SmartField(DecoratedField field, IControlContentAdapter adapter) {
-			this.field = field;
-			this.contentAdapter = adapter;
-		}
-
-		String getContents() {
-			return contentAdapter.getControlContents(field.getControl());
-		}
-
-		boolean isRequiredField() {
-			return true;
-		}
-
-		FieldDecoration getErrorDecoration() {
-			if (errorDecoration == null) {
-				FieldDecoration 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;
-
-		}
-
-		abstract boolean isValid();
-
-		abstract boolean isWarning();
-
-		String getErrorMessage() {
-			return null;
-		}
-
-		String getWarningMessage() {
-			return null;
-		}
-
-	}
-
-	class UserField extends SmartField {
-
-		UserField(DecoratedField field, IControlContentAdapter adapter) {
-			super(field, 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;
-		}
-	}
-
-	class AgeField extends SmartField {
-
-		AgeField(DecoratedField field, IControlContentAdapter adapter) {
-			super(field, adapter);
-		}
-
-		boolean isValid() {
-			// We seed the spinner with valid values always.
-			return true;
-		}
-
-		boolean isWarning() {
-			Spinner spinner = (Spinner) field.getControl();
-			return spinner.getSelection() > 65;
-		}
-
-		String getWarningMessage() {
-			return TaskAssistExampleMessages.ExampleDialog_AgeWarning;
-		}
-	}
-
-	private 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" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-	private String triggerKey;
-
-	private String username;
-
-	private boolean showErrorDecoration, showErrorMessage, showErrorColor,
-			showWarningDecoration, showRequiredFieldColor,
-			showRequiredFieldDecoration, showSecondaryPopup;
-
-	private Color defaultTextColor, errorColor;
-
-	/**
-	 * Open the exapmle dialog.
-	 * @param parent the parent shell
-	 * @param username the default username
-	 */
-	public ExampleDialog(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);
-		
-		Group main = new Group(outer, 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);
-
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-
-		// Create a field representing a user name
-		DecoratedField field = new DecoratedField(main, SWT.BORDER,
-				new TextControlCreator());
-		final SmartField textField = new UserField(field,
-				new TextContentAdapter());
-		if (store.getBoolean(PreferenceConstants.PREF_SHOWCONTENTPROPOSALCUE)) {
-			field.addFieldDecoration(getCueDecoration(), SWT.TOP | SWT.LEFT,
-					true);
-		}
-
-		if (showRequiredFieldDecoration && textField.isRequiredField()) {
-			field.addFieldDecoration(getRequiredFieldDecoration(), SWT.BOTTOM
-					| SWT.LEFT, false);
-		}
-
-		Text text = (Text) field.getControl();
-		defaultTextColor = text.getBackground();
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent event) {
-				handleModify(textField);
-			}
-		});
-		text.addFocusListener(new FocusListener() {
-			public void focusGained(FocusEvent event) {
-				handleFocusGained(textField);
-			}
-
-			public void focusLost(FocusEvent event) {
-				handleFocusLost(textField);
-			}
-
-		});
-
-		text.setText(username);
-		installContentProposalAdapter(text, new TextContentAdapter());
-		field.getLayoutControl().setLayoutData(getDecoratedFieldGridData());
-		// prime the required field color by calling the focus lost handler.
-		handleFocusLost(textField);
-
-		label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_ComboUserName);
-
-		// Create a combo field representing a user name
-		field = new DecoratedField(main, SWT.BORDER | SWT.DROP_DOWN,
-					new ComboControlCreator());
-		final SmartField comboField = new UserField(field,
-				new ComboContentAdapter());
-		if (store.getBoolean(PreferenceConstants.PREF_SHOWCONTENTPROPOSALCUE)) {
-			field.addFieldDecoration(getCueDecoration(), SWT.TOP | SWT.LEFT,
-					true);
-		}
-		if (showRequiredFieldDecoration) {
-			field.addFieldDecoration(getRequiredFieldDecoration(), SWT.BOTTOM
-					| SWT.LEFT, false);
-		}
-
-		Combo combo = (Combo) field.getControl();
-		combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent event) {
-				handleModify(comboField);
-			}
-		});
-		combo.addFocusListener(new FocusListener() {
-			public void focusGained(FocusEvent event) {
-				handleFocusGained(comboField);
-			}
-
-			public void focusLost(FocusEvent event) {
-				handleFocusLost(comboField);
-			}
-
-		});
-		combo.setText(username);
-		combo.setItems(validUsers);
-		field.getLayoutControl().setLayoutData(getDecoratedFieldGridData());
-		installContentProposalAdapter(combo, new ComboContentAdapter());
-		// prime the required field color by calling the focus lost handler.
-		handleFocusLost(comboField);
-
-		// Create a spinner representing a user age
-		label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_Age);
-
-		field = new DecoratedField(main, SWT.BORDER, new IControlCreator() {
-			public Control createControl(Composite parent, int style) {
-				return new Spinner(parent, style);
-			}
-		});
-		if (showRequiredFieldDecoration) {
-			field.addFieldDecoration(getRequiredFieldDecoration(), SWT.BOTTOM
-					| SWT.LEFT, false);
-		}
-		final SmartField spinnerField = new AgeField(field,
-				new SpinnerContentAdapter());
-
-		Spinner spinner = (Spinner) field.getControl();
-		spinner.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent event) {
-				handleModify(spinnerField);
-			}
-		});
-		combo.addFocusListener(new FocusListener() {
-			public void focusGained(FocusEvent event) {
-				handleFocusGained(spinnerField);
-			}
-
-			public void focusLost(FocusEvent event) {
-				handleFocusLost(spinnerField);
-			}
-
-		});
-		spinner.setSelection(40);
-		field.getLayoutControl().setLayoutData(getDecoratedFieldGridData());
-
-		// prime the required field color by calling the focus lost handler.
-		handleFocusLost(spinnerField);
-
-		// This field is not managed by a decorated field
-		label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_Password);
-		// We need to indent the field by the size of the decoration.
-		text = new Text(main, SWT.BORDER);
-		text.setText("******"); //$NON-NLS-1$
-		text.setLayoutData(getNonDecoratedFieldGridData());
-
-		Dialog.applyDialogFont(outer);
-		
-		return main;
-	}
-
-	private void getPreferenceValues() {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		showErrorMessage = store
-				.getBoolean(PreferenceConstants.PREF_SHOWERRORMESSAGE);
-		showErrorDecoration = store
-				.getBoolean(PreferenceConstants.PREF_SHOWERRORDECORATION);
-		showErrorColor = store
-				.getBoolean(PreferenceConstants.PREF_SHOWERRORCOLOR);
-		showWarningDecoration = store
-				.getBoolean(PreferenceConstants.PREF_SHOWWARNINGDECORATION);
-		showRequiredFieldColor = store
-				.getBoolean(PreferenceConstants.PREF_SHOWREQUIREDFIELDCOLOR);
-		showRequiredFieldDecoration = store
-				.getBoolean(PreferenceConstants.PREF_SHOWREQUIREDFIELDDECORATION);
-		showSecondaryPopup = store
-				.getBoolean(PreferenceConstants.PREF_SHOWSECONDARYPOPUP);
-		triggerKey = store.getString(PreferenceConstants.PREF_CONTENTASSISTKEY);
-
-	}
-
-	private 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;
-	}
-
-	private FieldDecoration getWarningDecoration() {
-		return FieldDecorationRegistry.getDefault().getFieldDecoration(
-				FieldDecorationRegistry.DEC_WARNING);
-	}
-
-	private FieldDecoration getRequiredFieldDecoration() {
-		return FieldDecorationRegistry.getDefault().getFieldDecoration(
-				FieldDecorationRegistry.DEC_REQUIRED);
-	}
-
-	private 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 (smartField.isRequiredField()) {
-					smartField.field.addFieldDecoration(
-							getRequiredFieldDecoration(),
-							SWT.BOTTOM | SWT.LEFT, false);
-				}
-			}
-		}
-	}
-
-	private void handleFocusGained(SmartField smartField) {
-		// only set color if error color not already showing
-		if (showErrorColor && !smartField.isValid())
-			return;
-		if (showRequiredFieldColor && smartField.isRequiredField()) {
-			smartField.field.getControl().setBackground(defaultTextColor);
-		}
-	}
-
-	private void handleFocusLost(SmartField smartField) {
-		// only set color if error color not showing
-		if (showErrorColor && !smartField.isValid())
-			return;
-		if (showRequiredFieldColor && smartField.isRequiredField()
-				&& smartField.getContents().length() == 0) {
-			smartField.field.getControl().setBackground(
-					FieldAssistColors
-							.getRequiredFieldBackgroundColor(smartField.field
-									.getControl()));
-		}
-	}
-
-	private 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) {
-			smartField.field.addFieldDecoration(dec, SWT.BOTTOM | SWT.LEFT,
-					false);
-		}
-		if (showErrorColor) {
-			smartField.field.getControl().setBackground(
-					getErrorColor(smartField.field.getControl()));
-		}
-	}
-
-	private void hideError(SmartField smartField) {
-		FieldDecoration dec = smartField.getErrorDecoration();
-		if (showErrorMessage) {
-			this.updateStatus(Status.OK_STATUS);
-		}
-		if (showErrorDecoration) {
-			smartField.field.hideDecoration(dec);
-		}
-		if (showErrorColor) {
-			smartField.field.getControl().setBackground(defaultTextColor);
-		}
-	}
-
-	private void showWarning(SmartField smartField) {
-		if (showWarningDecoration) {
-			FieldDecoration dec = smartField.getWarningDecoration();
-			smartField.field.addFieldDecoration(dec, SWT.BOTTOM | SWT.LEFT,
-					false);
-		}
-	}
-
-	private void hideWarning(SmartField smartField) {
-		if (showWarningDecoration) {
-			smartField.field.hideDecoration(getWarningDecoration());
-		}
-	}
-
-	private 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);
-		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)
-								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;
-	}
-
-	private GridData getDecoratedFieldGridData() {
-		return new GridData(IDialogConstants.ENTRY_FIELD_WIDTH, SWT.DEFAULT);
-
-	}
-
-	private GridData getNonDecoratedFieldGridData() {
-		GridData data = new GridData();
-		data.horizontalAlignment = SWT.FILL;
-		data.horizontalIndent = FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth();
-		return data;
-	}
-
-	private Color getErrorColor(Control control) {
-		if (errorColor == null) {
-			RGB rgb = FieldAssistColors.computeErrorFieldBackgroundRGB(control);
-			errorColor = new Color(control.getDisplay(), rgb);
-		}
-		return errorColor;
-	}
-
-	public boolean close() {
-		if (errorColor != null) {
-			errorColor.dispose();
-		}
-		return super.close();
-	}
-
-}
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/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 c39fc16..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/TaskAssistExampleMessages.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.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_ShowErrorColor;
-	public static String Preferences_ShowWarningDecorator;
-	public static String Preferences_ShowProposalCue;
-	public static String Preferences_RequiredFieldIndicator;
-	public static String Preferences_ShowRequiredFieldDecorator;
-	public static String Preferences_ShowRequiredFieldColor;
-	public static String Preferences_Description;
-	public static String Preferences_ContentAssistDescription;
-	
-	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_UserName;
-	public static String ExampleDialog_ComboUserName;
-	public static String ExampleDialog_Age;
-	public static String ExampleDialog_Password;
-	public static String ExampleDialog_ProposalDescription;
-	
-	   static {
-			// load message values from bundle file
-			NLS.initializeMessages(BUNDLE_NAME, TaskAssistExampleMessages.class);
-		}
-
-
-}
\ 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/actions/ShowDialogAction.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/actions/ShowDialogAction.java
deleted file mode 100644
index 97305f38..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/actions/ShowDialogAction.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.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.ExampleDialog;
-
-/**
- * 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 ShowDialogAction implements IWorkbenchWindowActionDelegate {
-	private IWorkbenchWindow window;
-	/**
-	 * The constructor.
-	 */
-	public ShowDialogAction() {
-	}
-
-	/**
-	 * 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 ExampleDialog(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;
-	}
-}
\ 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/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 e678a57..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/messages.properties
+++ /dev/null
@@ -1,50 +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
-#     Sebastian Davids <sdavids@gmx.de> - bug 132479 - [FieldAssist] Field assist example improvements
-###############################################################################
-
-########### Preferences ###########################
-Preferences_RequiredFieldIndicator = Showing Required Fields:
-Preferences_ShowRequiredFieldDecorator = Decorate required fields
-Preferences_ShowRequiredFieldColor = Show color when required field is empty
-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_ShowErrorColor = Color fields that have errors
-Preferences_ShowWarningDecorator = Decorate fields that have warnings
-Preferences_Description = This page controls the decorations used in the example dialog.
-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
-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
-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_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.
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 d3271ae..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/FieldAssistPreferencePage.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
- *     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() {
-		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()));
-		
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWERRORCOLOR,
-				TaskAssistExampleMessages.Preferences_ShowErrorColor,
-				getFieldEditorParent()));
-		
-		label = new Label(getFieldEditorParent(), SWT.WRAP);
-
-		label = new Label(getFieldEditorParent(), SWT.WRAP);
-		label.setText(TaskAssistExampleMessages.Preferences_RequiredFieldIndicator);
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWREQUIREDFIELDDECORATION,
-				TaskAssistExampleMessages.Preferences_ShowRequiredFieldDecorator,
-				getFieldEditorParent()));
-		
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWREQUIREDFIELDCOLOR,
-				TaskAssistExampleMessages.Preferences_ShowRequiredFieldColor,
-				getFieldEditorParent()));
-
-		label = new Label(getFieldEditorParent(), SWT.WRAP);
-		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) {
-	}
-
-}
\ 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/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 182a06c..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceConstants.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
- *     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_SHOWERRORDECORATION = "prefShowErrorDecoration";
-	public static final String PREF_SHOWERRORMESSAGE = "prefShowErrorMessage";
-	public static final String PREF_SHOWERRORCOLOR = "prefShowErrorColor";
-	
-	public static final String PREF_SHOWWARNINGDECORATION = "prefShowWarningDecoration";
-	
-	public static final String PREF_SHOWREQUIREDFIELDDECORATION = "prefShowRequiredFieldDecoration";
-	public static final String PREF_SHOWREQUIREDFIELDCOLOR = "prefShowRequiredFieldColor";	
-	
-	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 e847411..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceInitializer.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.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_SHOWERRORCOLOR, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWERRORMESSAGE, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWWARNINGDECORATION, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWREQUIREDFIELDCOLOR, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWREQUIREDFIELDDECORATION, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWCONTENTPROPOSALCUE, true);
-		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 24361a3..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.0.0
-Bundle-Activator: org.eclipse.ui.examples.fieldassist.FieldAssistPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
-Eclipse-LazyStart: true
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 a0c0db4..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/doc-html/ui_fieldassist_ex.html
+++ /dev/null
@@ -1,94 +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.  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 colors and
-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 kinds of fields:
-<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.  It is considered in a warning mode when the name "bob"
-is typed in the field.</li>
-<li>The <b>Combo user name</b> field is configured similarly, but uses a combo box 
-instead of a text field.  </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 how non-decorated fields can be aligned
-with decorated fields.</li>
-</ul>
-</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>Non-decorated fields can be layed out in alignment with decorated fields by
-using the <code>FieldDecorationRegistry.getMaximumDecorationWidth()</code> protocol.</li>
-<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 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, and content retrieval 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 an 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 ccee79b..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.DialogName = Open &Field Assist Dialog...
-Actions.DialogTooltip = Open a dialog demonstrating field assist techniques.
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 4e74bef..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.DialogName"
-               icon="icons/sample.gif"
-               class="org.eclipse.ui.examples.fieldassist.actions.ShowDialogAction"
-               tooltip="%Actions.DialogTooltip"
-               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 31339d4..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.SuspendJobManagerAction">
-         </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 2100d3e..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/ProgressExamplesPlugin.java
+++ /dev/null
@@ -1,40 +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;
-	
-	/**
-	 * 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 2a5461f..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJob.java
+++ /dev/null
@@ -1,99 +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;
-/**
- * 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;
-		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/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 f2cf18f..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/JobsView.java
+++ /dev/null
@@ -1,589 +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.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;
-
-	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 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();
-
-		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));
-			
-			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);
-			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);
-
-		//failure
-		failureField = new Button(group, SWT.CHECK);
-		failureField.setText("Fail"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		failureField.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);
-	}
-
-	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
-			Platform.getJobManager().join(TestJob.FAMILY_TEST_JOB, null);
-		} catch (OperationCanceledException 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 (InterruptedException e) {
-			// Thrown if Thread.interrupt is called on this thread
-			// This can either be ignored (repeat the join attempt until success), or propagated
-			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 718ed73..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,78 +0,0 @@
-#Mon Feb 06 11:16:57 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.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 2787bb9..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 7db995d..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 45e46ed..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 325314e..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, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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 def0b19..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/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.multipageeditor; singleton:=true
-Bundle-Version: 3.2.0.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-AutoStart: true
-Eclipse-AutoStart-comment: Use Eclipse-AutoStart instead of Eclipse-LazyStart because the multi page editor example should run against 3.1 as well as 3.2.
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 af0a352..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/plugin.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
-###############################################################################
-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 a052cf0..0000000
--- a/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,16 +0,0 @@
-#Sat May 20 14:51:55 EDT 2006
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-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-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.navigator/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.navigator/META-INF/MANIFEST.MF
deleted file mode 100644
index a881495..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.2.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 1e34eff..0000000
--- a/examples/org.eclipse.ui.examples.navigator/build.properties
+++ /dev/null
@@ -1,14 +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 = META-INF/,\
-               plugin.xml,\
-               plugin.properties
-src.includes = about.html
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 fbfc79f..0000000
--- a/examples/org.eclipse.ui.examples.navigator/plugin.properties
+++ /dev/null
@@ -1,13 +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
-###############################################################################
-
-Navigator_Examples=Common Navigator Examples
-Common_Navigator_Example=Common Navigator Example 
\ No newline at end of file
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 8d0deb1..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/DeletePropertyAction.java
+++ /dev/null
@@ -1,131 +0,0 @@
-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 5d66f80..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/internal/examples/navigator/Activator.java
+++ /dev/null
@@ -1,114 +0,0 @@
-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 841d565..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:17:32 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.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 4538f90..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:17:32 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.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 f945ee5..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 ff4c201..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 9163d03..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 b32590f..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 0955192..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 336d509..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 ac59c2b..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 1c16963..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 bb3b510..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 fc1237a..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 1c47e3a..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 dba74dc..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 3189470..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 d198c17..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 441ca85..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 4aa420b..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 51e4637..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, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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 2574ff3..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/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.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-AutoStart: true
-Eclipse-AutoStart-comment: Use Eclipse-AutoStart instead of Eclipse-LazyStart because the property sheet example should run against 3.1 as well as 3.2.
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 b54ccc3..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/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
-###############################################################################
-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 ceaf223..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:17:40 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=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 1dd3eae..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +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.2.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-AutoStart: true
-Eclipse-AutoStart-comment: Use Eclipse-AutoStart instead of Eclipse-LazyStart because the browser example should run against 3.1 as well as 3.2.
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 5b00b4b..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/plugin.properties
+++ /dev/null
@@ -1,24 +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= 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 6a04a9a..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserApp.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.core.runtime.IPlatformRunnable;
-import org.eclipse.swt.widgets.Display;
-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 IPlatformRunnable {
-	
-	/**
-	 * Constructs a new <code>BrowserApp</code>.
-	 */
-	public BrowserApp() {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.boot.IPlatformRunnable#run(java.lang.Object)
-	 */
-	public Object run(Object args) 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();
-		}
-	}
-}
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 4c8a79f..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 7186f44..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserView.java
+++ /dev/null
@@ -1,308 +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.examples.rcp.browser;
-
-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.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.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>.
-		getViewSite().getKeyBindingService().registerAction(easterEggAction);
-		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 8fc80bd..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 (!"carbon".equals(SWT.getPlatform())) { //$NON-NLS-1$
-              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 c03974d..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 6d893ed..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:26:49 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.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 f2fc6e2..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:26:49 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.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 ea2abe5..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 55ab318..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 81b3a2e..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 f575a57..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 c97f3e2..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 c5268e9..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 b2aa4aa..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 be0d033..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 7ddfd25..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 68c2840..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 231ca4b..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 02c5ad0..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 95164f7..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 9ac1115..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 5649343..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage2.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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;
-            else
-                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 8d0ce32..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 dedae50..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 4124334..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 d9403eb..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 3505142..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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/ReadmeTrimWidget.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeTrimWidget.java
deleted file mode 100644
index f9fd660..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeTrimWidget.java
+++ /dev/null
@@ -1,76 +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.readmetool;
-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.menus.AbstractWorkbenchTrimWidget;
-
-
-/**
- * Readme example Trim contribution widget. This is contributed to
- * the trim throught the use of the <code>org.eclipse.ui.menus</code>
- * extension point.
- * 
- * @since 3.2
- *
- */
-public class ReadmeTrimWidget extends AbstractWorkbenchTrimWidget {
-
-	/**
-	 * Cache the current trim so we can 'dispose' it on demand
-	 */
-	private Composite comp = null;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.menus.AbstractTrimWidget#dispose()
-	 * 
-	 * Dispose the current trim widget (if any)
-	 */
-	public void dispose() {
-		if (comp != null && !comp.isDisposed())
-			comp.dispose();
-		comp = null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.menus.AbstractTrimWidget#fill(org.eclipse.swt.widgets.Composite, int, int)
-	 */
-	public void fill(Composite parent, int oldSide, int newSide) {
-		// Create a composite to place the label in 
-		comp = new Composite(parent, SWT.NONE);
-		
-		// Give some room around the control
-		FillLayout layout = new FillLayout();
-		layout.marginHeight = 4;
-		layout.marginWidth  = 2;
-		comp.setLayout(layout);
-		
-		// Create a label for the trim. 
-		Label dsCtrl = new Label (comp, SWT.BORDER | SWT.CENTER);
-		dsCtrl.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_DARK_GREEN));
-		dsCtrl.setForeground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-		
-		// Check the side and set up the string accordingly. At this point is
-		// we you should implement a 'vertical' layout to use when docked on
-		// the LEFT or the RIGHT side but the code to do rotations is overly
-		// complex for this example.
-		String sideStr = ""; //$NON-NLS-1$
-		if (newSide == SWT.LEFT) sideStr = "Left"; //$NON-NLS-1$
-		if (newSide == SWT.RIGHT) sideStr = "Right"; //$NON-NLS-1$
-		if (newSide == SWT.TOP) sideStr = "Top"; //$NON-NLS-1$
-		if (newSide == SWT.BOTTOM) sideStr = "Bottom"; //$NON-NLS-1$
-		
-		dsCtrl.setText("  Read Me Trim (" + sideStr + ")  "); //$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/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 fc20070..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 542cccc..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/messages.properties
+++ /dev/null
@@ -1,95 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-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 &
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 0407081..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +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.2.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-AutoStart: true
-Eclipse-AutoStart-comment: Use Eclipse-AutoStart instead of Eclipse-LazyStart because the readme example should run against 3.1 as well as 3.2.
-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 92df708..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/plugin.properties
+++ /dev/null
@@ -1,37 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-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
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 787756c..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/plugin.xml
+++ /dev/null
@@ -1,395 +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
-            objectClass="org.eclipse.core.resources.IFile"
-            name="%PropertiesPage.filePage"
-            nameFilter="*.readme"
-            class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage"
-            id="org.eclipse.ui.examples.readmetool.FilePage">
-      </page>
-      <page
-            objectClass="org.eclipse.core.resources.IFile"
-            name="%PropertiesPage.filePage2"
-            nameFilter="*.readme"
-            class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage2"
-            id="org.eclipse.ui.examples.readmetool.FilePage2">
-      </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.views.ResourceNavigator"
-            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>
-   
-   <extension
-         point="org.eclipse.ui.menus">
-      <group
-            id="org.eclipse.ui.examples.readmetool.readmeTrimGroup">
-         <location>
-            <bar type="trim"/>
-            <order position="before" relativeTo="status"/>
-         </location>
-      </group>
-      <widget class="org.eclipse.ui.examples.readmetool.ReadmeTrimWidget" 
-      		  id="org.eclipse.ui.examples.readmetool.readmeTrimWidget">
-         <location>
-            <bar path="org.eclipse.ui.examples.readmetool.readmeTrimGroup" type="trim"/>
-         </location>
-      </widget>
-   </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 93421c1..0000000
--- a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 13 15:53:04 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.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=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 b6b0d6e..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/MoveBoxOperation.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.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 {
-		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 {
-		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 48f34c8..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/UndoHistoryView.java
+++ /dev/null
@@ -1,416 +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.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];
-			else
-				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();
-
-	}
-}
\ No newline at end of file
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 c854f9b..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.0.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
-Eclipse-LazyStart: true
-Bundle-Vendor: %Plugin.providerName
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 c4b9d38..0000000
--- a/examples/org.eclipse.ui.examples.undo/build.properties
+++ /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
-###############################################################################
-source.. = Eclipse UI Examples Undo/
-
-bin.includes = doc-html/,\
-               icons/,\
-               .options,\
-               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.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 90fc66d..0000000
--- a/examples/org.eclipse.ui.examples.undo/plugin.properties
+++ /dev/null
@@ -1,16 +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
-###############################################################################
-Plugin.name = Undo Example
-Plugin.providerName = Eclipse.org
-Views.historyView = Undo History View
-Views.boxView = Box View
-Views.Category = Undo Examples
-
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 d2b3538..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="Undo Preferences"
-            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="Undo Examples"
-            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 6fe533d..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.0.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 29ae8fb..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/plugin.properties
+++ /dev/null
@@ -1,15 +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
-###############################################################################
-Plugin.name = Tabbed Properties View Article Example
-Plugin.providerName = Eclipse.org
-
-Views.category.name = Tabbed Properties View
-Views.example.name = Tabbed Properties Example View
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 658107c..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="Button"/>
-         <propertyTab
-               afterTab="ButtonTab"
-               category="sample"
-               id="AdvancedTab"
-               label="Advanced"/>
-      </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 cac12ba..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="org.eclipse.ui.examples.views.properties.tabbed.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 89d2557..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/model/hockeyleague.genmodel
+++ /dev/null
@@ -1,101 +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">
-  <genPackages prefix="Hockeyleague" disposableProviderFactory="true" ecorePackage="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#/">
-    <genEnums ecoreEnum="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//DefencePositionKind">
-      <genEnumLiterals ecoreEnumLiteral="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//DefencePositionKind/left_defence"/>
-      <genEnumLiterals ecoreEnumLiteral="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//DefencePositionKind/right_defence"/>
-    </genEnums>
-    <genEnums ecoreEnum="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//ForwardPositionKind">
-      <genEnumLiterals ecoreEnumLiteral="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//ForwardPositionKind/left_wing"/>
-      <genEnumLiterals ecoreEnumLiteral="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//ForwardPositionKind/right_wing"/>
-      <genEnumLiterals ecoreEnumLiteral="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//ForwardPositionKind/center"/>
-    </genEnums>
-    <genEnums ecoreEnum="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//HeightKind">
-      <genEnumLiterals ecoreEnumLiteral="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//HeightKind/inches"/>
-      <genEnumLiterals ecoreEnumLiteral="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//HeightKind/centimeters"/>
-    </genEnums>
-    <genEnums ecoreEnum="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//ShotKind">
-      <genEnumLiterals ecoreEnumLiteral="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//ShotKind/left"/>
-      <genEnumLiterals ecoreEnumLiteral="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//ShotKind/right"/>
-    </genEnums>
-    <genEnums ecoreEnum="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//WeightKind">
-      <genEnumLiterals ecoreEnumLiteral="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//WeightKind/pounds"/>
-      <genEnumLiterals ecoreEnumLiteral="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//WeightKind/kilograms"/>
-    </genEnums>
-    <genClasses ecoreClass="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Arena">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Arena/address"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Arena/capacity"/>
-    </genClasses>
-    <genClasses ecoreClass="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Defence">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Defence/position"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Defence/playerStats"/>
-    </genClasses>
-    <genClasses ecoreClass="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Forward">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Forward/position"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Forward/playerStats"/>
-    </genClasses>
-    <genClasses ecoreClass="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Goalie">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Goalie/goalieStats"/>
-    </genClasses>
-    <genClasses ecoreClass="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/year"/>
-      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/team"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/gamesPlayedIn"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/minutesPlayedIn"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/goalsAgainstAverage"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/wins"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/losses"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/ties"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/emptyNetGoals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/shutouts"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/goalsAgainst"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/saves"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/penaltyMinutes"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/goals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/assists"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//GoalieStats/points"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//HockeyleagueObject">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//HockeyleagueObject/name"/>
-    </genClasses>
-    <genClasses ecoreClass="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//League">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//League/headoffice"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//League/teams"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Player">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Player/birthplace"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Player/number"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Player/heightMesurement"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Player/heightValue"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Player/weightMesurement"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Player/weightValue"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Player/shot"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Player/birthdate"/>
-    </genClasses>
-    <genClasses ecoreClass="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/year"/>
-      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/team"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/gamesPlayedIn"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/goals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/assists"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/points"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/plusMinus"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/penaltyMinutes"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/powerPlayGoals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/shortHandedGoals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/gameWinningGoals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/shots"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//PlayerStats/shotPercentage"/>
-    </genClasses>
-    <genClasses ecoreClass="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Team">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Team/forwards"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Team/defencemen"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore#//Team/goalies"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.ui.examples.views.properties.tabbed.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 1c573a9..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/plugin.properties
+++ /dev/null
@@ -1,146 +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 = 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_HockeyleagueModelWizard_label = Hockeyleague Model
-_UI_HockeyleagueModelWizard_description = Create a new Hockeyleague model
-
-_UI_HockeyleagueEditor_label = Hockeyleague Model Editor
-
-_UI_HockeyleagueEditorFilenameDefaultBase = My
-_UI_HockeyleagueEditorFilenameExtension = org.eclipse.ui.examples.views.properties.tabbed.hockeyleague
-
-_UI_Wizard_label = New
-
-_WARN_FilenameExtension = The file name must end in ".{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 0f68acd..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 9a4be03..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 4f3341b..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 a2eb444..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 = "org.eclipse.ui.examples.views.properties.tabbed.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 2a7ccbe..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 27d5a9a..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 aa41e04..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 = null;
-
-	/**
-	 * <!-- 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 6e70813..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 = null;
-
-	/**
-	 * <!-- 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 bc65d81..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 = null;
-
-	/**
-	 * <!-- 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 6595d26..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 = null;
-
-	/**
-	 * 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 3ccd325..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 = null;
-
-	/**
-	 * <!-- 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 a9c11a8..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 = null;
-
-	/**
-	 * 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 eef64da..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 = null;
-
-	/**
-	 * 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 = null;
-
-	/**
-	 * 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 = null;
-
-	/**
-	 * 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 = null;
-
-	/**
-	 * <!-- 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 6d01d59..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,178 +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.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.ViewerNotification;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena;
-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.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,
-				 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,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns Arena.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return 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 to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
-	 * describing all of 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/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 0a938e6..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,181 +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.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.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;
-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.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,
-				 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;
-	}
-
-	/**
-	 * This returns Defence.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return 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 to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
-	 * describing all of 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()));
-	}
-
-	/**
-	 * 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/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 e31339a..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,181 +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.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.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;
-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.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,
-				 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;
-	}
-
-	/**
-	 * This returns Forward.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return 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 to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
-	 * describing all of 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()));
-	}
-
-	/**
-	 * 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/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 c28bbcb..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,155 +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.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.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;
-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.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;
-	}
-
-	/**
-	 * This returns Goalie.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return 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 to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
-	 * describing all of 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()));
-	}
-
-	/**
-	 * 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/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 448a5f2..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,486 +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.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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns GoalieStats.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return 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 to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
-	 * describing all of 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 167654a..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 d4a63c4..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,147 +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.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,
-				 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 to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
-	 * describing all of 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 6594ece..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,181 +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.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.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.HockeyleaguePlugin;
-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,
-				 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;
-	}
-
-	/**
-	 * This returns League.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return 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 to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
-	 * describing all of 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()));
-	}
-
-	/**
-	 * 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/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 0235a1a..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,300 +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.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.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.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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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 to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
-	 * describing all of 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/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 2072d50..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,420 +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.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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 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,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns PlayerStats.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return 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 to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
-	 * describing all of 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 122942c..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,190 +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.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.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.HockeyleaguePlugin;
-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 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 to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
-	 * describing all of 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()));
-	}
-
-	/**
-	 * 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/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 0ca9054..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,405 +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.editor;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedList;
-
-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.CreateChildAction;
-import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
-import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
-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.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.ui.actions.HockeyleagueCreateChildAction;
-
-/**
- * This is the action bar contributor for the Hockeyleague model editor.
- * 
- * @author Anthony Hunter
- */
-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(
-		"Show &Properties View") {//$NON-NLS-1$
-
-		public void run() {
-			try {
-				getPage().showView("org.eclipse.ui.views.PropertySheet");//$NON-NLS-1$
-			} catch (PartInitException exception) {
-				exception.printStackTrace();
-			}
-		}
-	};
-
-	/**
-	 * This action refreshes the viewer of the current editor if the editor
-	 * implements {@link IViewerProvider}. <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	protected IAction refreshViewerAction = new Action("Refresh") {//$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 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 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() {
-		//
-	}
-
-	/**
-	 * 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("&Hockeyleague Editor",//$NON-NLS-1$
-			"org.eclipse.ui.examples.views.properties.tabbed.hockeyleagueMenuID");//$NON-NLS-1$
-		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("&New Child");//$NON-NLS-1$
-		submenuManager.insertBefore("additions", createChildMenuManager);//$NON-NLS-1$
-
-		// Prepare for CreateSibling item addition or removal.
-		//
-		createSiblingMenuManager = new MenuManager("N&ew Sibling");//$NON-NLS-1$
-		submenuManager.insertBefore("additions", createSiblingMenuManager);//$NON-NLS-1$
-	}
-
-	/**
-	 * 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 ISelectionChangedListener}, handling
-	 * {@link SelectionChangedEvents}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 CreateChildAction}for each object in
-	 * <code>descriptors</code>, and returns the collection of these actions.
-	 * <!-- begin-user-doc --> Modified <!-- end-user-doc -->
-	 */
-	protected Collection generateCreateChildActions(Collection descriptors,
-			ISelection selection) {
-		Collection actions = new LinkedList();
-		if (descriptors != null) {
-			for (Iterator i = descriptors.iterator(); i.hasNext();) {
-				actions.add(new HockeyleagueCreateChildAction(activeEditorPart,
-					selection, i.next()));
-			}
-		}
-		return actions;
-	}
-
-	/**
-	 * This generates a {@link 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 LinkedList();
-		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 ActionContributionItem}s based on the {@link IAction}s contained
-	 * in the <code>actions</code> collection, by inserting them before the
-	 * specified contribution item <code>contributionID</code>. If
-	 * <code>ID</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 ActionContributionItem}s based on the {@link 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);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * add actions to the menu manager.
-	 */
-	protected void populateManager(IContributionManager manager,
-			Collection actions) {
-		if (actions != null) {
-			for (Iterator i = actions.iterator(); i.hasNext();) {
-				IAction action = (IAction) i.next();
-				if (!action.getText().startsWith("Add")) {//$NON-NLS-1$
-					action.setText("Add " + action.getText() + "...");//$NON-NLS-2$//$NON-NLS-1$
-				}
-				manager.insertBefore("additions", action); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * This populates the pop-up menu before it appears. <!-- begin-user-doc -->
-	 * Modified <!-- end-user-doc -->
-	 */
-	public void menuAboutToShow(IMenuManager menuManager) {
-		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
-
-		super.menuAboutToShow(menuManager);
-		populateManager(menuManager, createChildActions);
-
-		menuManager.insertAfter("additions-end", new Separator("ui-actions"));//$NON-NLS-2$//$NON-NLS-1$
-		menuManager.insertAfter("ui-actions", showPropertiesViewAction);//$NON-NLS-1$
-		menuManager.insertAfter("ui-actions", refreshViewerAction);//$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/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 4edaf32..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,1199 +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.editor;
-
-import java.io.IOException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EventObject;
-import java.util.Iterator;
-import java.util.List;
-
-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.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.ui.ViewerPane;
-import org.eclipse.emf.common.ui.viewer.IViewerProvider;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-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.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.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.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-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.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Tree;
-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.provider.HockeyleagueItemProviderAdapterFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.HockeyleaguePropertySheetPage;
-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 the editor for the Hockeyleague model editor.
- * 
- * @author Anthony Hunter
- */
-public class HockeyleagueEditor
-	extends MultiPageEditorPart
-	implements IEditingDomainProvider, ISelectionProvider, IMenuListener,
-	IViewerProvider, 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 protected TabbedPropertySheetPage propertySheetPage;
-	 */
-
-	/**
-	 * This shows how a tree view works. <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	protected TreeViewer treeViewer;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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) {
-		}
-
-		public void partClosed(IWorkbenchPart p) {
-		}
-
-		public void partDeactivated(IWorkbenchPart p) {
-		}
-
-		public void partOpened(IWorkbenchPart p) {
-		}
-	};
-
-	private HockeyleaguePropertySheetPage propertySheetPage;
-	
-	/**
-	 * Resources that have been removed since last activation.
-	 * 
-	 * @generated
-	 */
-	Collection removedResources = new ArrayList();
-
-	/**
-	 * Resources that have been changed since last activation.
-	 * 
-	 * @generated
-	 */
-	Collection changedResources = new ArrayList();
-
-	/**
-	 * Resources that have been saved.
-	 * 
-	 * @generated
-	 */
-	Collection savedResources = new ArrayList();
-
-	/**
-	 * This listens for workspace changes. <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	protected IResourceChangeListener resourceChangeListener = new IResourceChangeListener() {
-
-		public void resourceChanged(IResourceChangeEvent event) {
-			//ResourceSet resourceSet = editingDomain.getResourceSet();
-			// Only listening to these.
-			// if (event.getType() == IResourceDelta.POST_CHANGE)
-			{
-				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 delta1) {
-							if (delta1.getFlags() != IResourceDelta.MARKERS
-								&& delta1.getResource().getType() == IResource.FILE) {
-								if ((delta1.getKind() & (IResourceDelta.CHANGED | IResourceDelta.REMOVED)) != 0) {
-									Resource resource = resourceSet
-										.getResource(URI.createURI(delta1
-											.getFullPath().toString()), false);
-									if (resource != null) {
-										if ((delta1.getKind() & IResourceDelta.REMOVED) != 0) {
-											removedResources.add(resource);
-										} else {
-											changedResources.add(resource);
-										}
-									}
-								}
-							}
-
-							return true;
-						}
-
-						public Collection getChangedResources() {
-							return changedResources;
-						}
-
-						public Collection getRemovedResources() {
-							return removedResources;
-						}
-					}
-
-					ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
-					delta.accept(visitor);
-
-					removedResources.addAll(visitor.getRemovedResources());
-					if (!visitor.getRemovedResources().isEmpty() && !isDirty()) {
-						getSite().getShell().getDisplay().asyncExec(
-							new Runnable() {
-
-								public void run() {
-									getSite().getPage().closeEditor(
-										HockeyleagueEditor.this, false);
-									HockeyleagueEditor.this.dispose();
-								}
-							});
-					}
-
-					changedResources.addAll(visitor.getChangedResources());
-				} catch (CoreException exception) {
-					exception.printStackTrace();
-				}
-			}
-		}
-	};
-
-	/**
-	 * Handles activation of the editor or it's associated views.
-	 * 
-	 * @generated
-	 */
-	protected void handleActivate() {
-		if (!removedResources.isEmpty()) {
-			if (handleDirtyConflict()) {
-				getSite().getPage().closeEditor(HockeyleagueEditor.this, false);
-				HockeyleagueEditor.this.dispose();
-			} 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.
-	 * 
-	 * @generated
-	 */
-	protected void handleChangedResources() {
-		if (!changedResources.isEmpty()
-			&& (!isDirty() || handleDirtyConflict())) {
-			editingDomain.getCommandStack().flush();
-
-			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) {
-						exception.printStackTrace();
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Shows a dialog that asks if conflicting changes should be discarded.
-	 * 
-	 * @generated
-	 */
-	protected boolean handleDirtyConflict() {
-		return MessageDialog
-			.openQuestion(
-				getSite().getShell(),
-				"File Conflict",//$NON-NLS-1$
-				"There are unsaved changes that conflict with changes made outside the editor.  Do you wish to discard this editor's changes?");//$NON-NLS-1$
-	}
-
-	/**
-	 * This creates a model editor. <!-- begin-user-doc --> <!-- end-user-doc
-	 * -->
-	 * 
-	 * @generated
-	 */
-	public HockeyleagueEditor() {
-		super();
-
-		// Create an adapter factory that yields item providers.
-		//
-		List factories = new ArrayList();
-		factories.add(new ResourceItemProviderAdapterFactory());
-		factories.add(new HockeyleagueItemProviderAdapterFactory());
-		factories.add(new ReflectiveItemProviderAdapterFactory());
-
-		adapterFactory = new ComposedAdapterFactory(factories);
-
-		// 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().refresh();
-						}
-					}
-				});
-			}
-		});
-
-		// Create the editing domain with a special command stack.
-		//
-		editingDomain = new AdapterFactoryEditingDomain(adapterFactory,
-			commandStack);
-	}
-
-	/**
-	 * 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()) {
-			// I don't know if this should be run this deferred
-			// because we might have to give the editor a chance to process the
-			// viewer update events
-			// and hence to update the views first.
-			//
-			//
-			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);
-					}
-				}
-			};
-			runnable.run();
-		}
-	}
-
-	/**
-	 * 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 {
-
-		public ReverseAdapterFactoryContentProvider(
-				AdapterFactory adapterFactory) {
-			super(adapterFactory);
-		}
-
-		public Object[] getElements(Object object) {
-			Object parent = super.getParent(object);
-			return (parent == null ? Collections.EMPTY_SET
-				: Collections.singleton(parent)).toArray();
-		}
-
-		public Object[] getChildren(Object object) {
-			Object parent = super.getParent(object);
-			return (parent == null ? Collections.EMPTY_SET
-				: Collections.singleton(parent)).toArray();
-		}
-
-		public boolean hasChildren(Object object) {
-			Object parent = super.getParent(object);
-			return parent != null;
-		}
-
-		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 used by the framework to install your own controls.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void createPages() {
-		// I assume that the input is a file object.
-		//
-		IFileEditorInput modelFile = (IFileEditorInput) getEditorInput();
-
-		try {
-			// Load the resource through the editing domain.
-			//
-			editingDomain.loadResource(URI.createPlatformResourceURI(
-				modelFile.getFile().getFullPath().toString()).toString());
-		} catch (Exception exception) {
-			exception.printStackTrace();
-		}
-
-		// 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());
-
-			treeViewer = (TreeViewer) viewerPane.getViewer();
-			treeViewer.setContentProvider(new AdapterFactoryContentProvider(
-				adapterFactory));
-
-			treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(
-				adapterFactory));
-			treeViewer.setInput(editingDomain.getResourceSet());
-			viewerPane.setTitle(editingDomain.getResourceSet());
-
-			new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
-
-			createContextMenuFor(treeViewer);
-			int pageIndex = addPage(viewerPane.getControl());
-			setPageText(pageIndex, "tree");//$NON-NLS-1$
-		}
-
-		setActivePage(0);
-
-		getContainer().addControlListener(new ControlAdapter() {
-
-			boolean guard = false;
-
-			public void controlResized(ControlEvent event) {
-				if (!guard) {
-					guard = true;
-					hideTabs();
-					guard = false;
-				}
-			}
-		});
-	}
-
-	/**
-	 * 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);
-			}
-		}
-	}
-
-	/**
-	 * This is used to track the active viewer. <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	protected void pageChange(int pageIndex) {
-		super.pageChange(pageIndex);
-
-		// This is a temporary workaround... EATM
-		//
-		Control control = getControl(pageIndex);
-		if (control != null) {
-			control.setVisible(true);
-			control.setFocus();
-		}
-
-		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 getContentOutlinePage();
-		} else if (key.equals(IPropertySheetPage.class)) {
-			return getPropertySheetPage();
-		} 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.
-						//
-						ArrayList selection = new ArrayList();
-						selection.add(editingDomain.getResourceSet()
-							.getResources().get(0));
-						contentOutlineViewer.setSelection(
-							new StructuredSelection(selection), 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;
-	}
-
-	/**
-	 * Get the new property sheet page for this editor. 
-	 * @return the new property sheet page.
-	 */
-	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();
-
-				ArrayList selectionList = new ArrayList();
-				selectionList.add(selectedElement);
-				while (selectedElements.hasNext()) {
-					selectionList.add(selectedElements.next());
-				}
-
-				// Set the selection to the widget.
-				//
-				treeViewer.setSelection(new StructuredSelection(selectionList));
-			}
-		}
-	}
-
-	/**
-	 * 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) {
-		// 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.
-			//
-			protected void execute(IProgressMonitor monitor)
-				throws CoreException {
-				try {
-					// Save the resource to the file system.
-					//
-					Resource savedResource = (Resource) editingDomain
-						.getResourceSet().getResources().get(0);
-					savedResources.add(savedResource);
-					savedResource.save(Collections.EMPTY_MAP);
-				} catch (Exception exception) {
-					exception.printStackTrace();
-				}
-			}
-		};
-
-		try {
-			// This runs the options, and shows progress.
-			// (It appears to be a bad thing to fork this onto another thread.)
-			//
-			new ProgressMonitorDialog(getSite().getShell()).run(false, false,
-				operation);
-
-			// Refresh the necessary state.
-			//
-			((BasicCommandStack) editingDomain.getCommandStack()).saveIsDone();
-			firePropertyChange(IEditorPart.PROP_DIRTY);
-		} catch (Exception exception) {
-			// Something went wrong that shouldn't.
-			//
-			exception.printStackTrace();
-		}
-	}
-
-	/**
-	 * 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) {
-				((Resource) editingDomain.getResourceSet().getResources()
-					.get(0)).setURI(URI.createPlatformResourceURI(file
-					.getFullPath().toString()));
-				IFileEditorInput modelFile = new FileEditorInput(file);
-				setInput(modelFile);
-				doSave(getActionBars().getStatusLineManager()
-					.getProgressMonitor());
-			}
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void gotoMarker(IMarker marker) {
-		//
-	}
-
-	/**
-	 * This is called during startup. <!-- begin-user-doc --> <!-- end-user-doc
-	 * -->
-	 * 
-	 * @generated
-	 */
-	public void init(IEditorSite site, IEditorInput editorInput)
-		throws PartInitException {
-		if (editorInput instanceof IFileEditorInput) {
-			setSite(site);
-			setInput(editorInput);
-			site.setSelectionProvider(this);
-			site.getPage().addPartListener(partListener);
-			ResourcesPlugin.getWorkspace().addResourceChangeListener(
-				resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-		} else {
-			throw new PartInitException(
-				"Invalid Input: Must be IFileEditorInput.");//$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void setFocus() {
-		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 = getActionBars()
-			.getStatusLineManager();
-		if (currentViewer == contentOutlineViewer) {
-			statusLineManager = contentOutlineStatusLineManager;
-		}
-
-		if (selection instanceof IStructuredSelection) {
-			Collection collection = ((IStructuredSelection) selection).toList();
-			switch (collection.size()) {
-				case 0: {
-					statusLineManager.setMessage("No Object Selected");//$NON-NLS-1$
-					break;
-				}
-				case 1: {
-					String text = new AdapterFactoryItemDelegator(
-						adapterFactory).getText(collection.iterator().next());
-					statusLineManager.setMessage(MessageFormat.format(
-						"Selected Object: {0}", new Object[] {text}));//$NON-NLS-1$
-					break;
-				}
-				default: {
-					statusLineManager.setMessage(MessageFormat.format(
-						"Selected {0} Objects", new Object[] {Integer//$NON-NLS-1$
-							.toString(collection.size())}));
-					break;
-				}
-			}
-		} else {
-			statusLineManager.setMessage("");//$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * 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() {
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(
-			resourceChangeListener);
-
-		getSite().getPage().removePartListener(partListener);
-
-		adapterFactory.dispose();
-
-		getActionBarContributor().setActiveEditor(null);
-
-		if (getPropertySheetPage() != null) {
-			getPropertySheetPage().dispose();
-		}
-
-		if (contentOutlinePage != null) {
-			contentOutlinePage.dispose();
-		}
-
-		super.dispose();
-	}
-}
\ 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/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 e847d94..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 the 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 b47a3cf..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 interpretting 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 065ac06..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.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.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 f953a52..0000000
--- a/examples/org.eclipse.ui.forms.examples/build.properties
+++ /dev/null
@@ -1,17 +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 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
-###############################################################################
-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 b544a2b..0000000
--- a/examples/org.eclipse.ui.forms.examples/plugin.properties
+++ /dev/null
@@ -1,12 +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 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
-###############################################################################
-pluginName = Examples of Eclipse Forms
-baseEditor = Simple Form (RCP) Editor
\ No newline at end of file
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 38e619c..0000000
--- a/examples/org.eclipse.ui.forms.examples/plugin.xml
+++ /dev/null
@@ -1,86 +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.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>
-   </extension>
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="Eclipse Forms Examples"
-            id="org.eclipse.ui.forms.examples.actionSet">
-         <menu
-               label="Form Editors"
-               id="org.eclipse.ui.forms.examples.menu">
-            <groupMarker
-                  name="group">
-            </groupMarker>
-         </menu>
-         <action
-               label="Simple Form Editor"
-               class="org.eclipse.ui.forms.examples.internal.rcp.OpenSimpleFormEditorAction"
-               menubarPath="org.eclipse.ui.forms.examples.menu/group"
-               id="org.eclipse.ui.forms.examples.simple">
-         </action>
-         <action
-               class="org.eclipse.ui.forms.examples.internal.dialogs.OpenFormDialog"
-               id="org.eclipse.ui.forms.examples.openDialog"
-               label="Open Form Dialog..."
-               menubarPath="org.eclipse.ui.forms.examples.menu/group">
-         </action>
-      </actionSet>
-   </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>
-   <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>
-</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 fe98b24..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the 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.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.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 = find(path);
-			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);
-	}
-}
\ No newline at end of file
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 0e46cf1..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 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
-###############################################################################
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 c44db3b..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 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.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;
-	}
-}
\ No newline at end of file
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 434c1c0..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/OpenFormEditorAction.java
+++ /dev/null
@@ -1,56 +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.forms.examples.internal;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.*;
-/**
- * @see IWorkbenchWindowActionDelegate
- */
-public abstract class OpenFormEditorAction
-		implements
-			IWorkbenchWindowActionDelegate {
-	private IWorkbenchWindow window;
-/*
- * 
- */
-	protected void openEditor(String inputName, String editorId) {
-		openEditor(new FormEditorInput(inputName), editorId);
-	}
-	protected void openEditor(IEditorInput input, String editorId) {
-		IWorkbenchPage page = window.getActivePage();
-		try {
-			page.openEditor(input, editorId);
-		} catch (PartInitException e) {
-			System.out.println(e);
-		}
-	}
-	
-	protected IWorkbenchWindow getWindow() {
-		return window;
-	}
-	/**
-	 * @see IWorkbenchWindowActionDelegate#selectionChanged
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-	}
-	/**
-	 * @see IWorkbenchWindowActionDelegate#dispose
-	 */
-	public void dispose() {
-	}
-	/**
-	 * @see IWorkbenchWindowActionDelegate#init
-	 */
-	public void init(IWorkbenchWindow window) {
-		this.window = window;
-	}
-}
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 8eddd5d..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/OpenFormDialog.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.eclipse.ui.forms.examples.internal.dialogs;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-public class OpenFormDialog implements IWorkbenchWindowActionDelegate {
-	private IWorkbenchWindow window;
-
-	public void dispose() {
-	}
-
-	public void init(IWorkbenchWindow window) {
-		this.window = window;
-	}
-
-	public void run(IAction action) {
-		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();
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-	}
-}
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 fd216e2..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/SampleFormDialog.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.eclipse.ui.forms.examples.internal.dialogs;
-
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.examples.internal.rcp.FreeFormPage;
-import org.eclipse.ui.internal.provisional.forms.FormDialog;
-
-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);
-	}
-}
\ No newline at end of file
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 98c15ab..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, 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.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(FormColors.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(FormColors.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);
-	}
-}
\ No newline at end of file
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 e60e3e2..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 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.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);
-}
\ No newline at end of file
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 6052d0a..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 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.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, "");
-	}
-}
\ No newline at end of file
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 d509c842..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NewStylePage.java
+++ /dev/null
@@ -1,195 +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.forms.examples.internal.rcp;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.dialogs.IMessageProvider;
-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.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.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.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-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 {
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public NewStylePage(FormEditor editor) {
-		super(editor, "newStyle", "New Style");
-	}
-	protected void createFormContent(IManagedForm managedForm) {
-		final ScrolledForm form = managedForm.getForm();
-		FormToolkit toolkit = managedForm.getToolkit();
-		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_HOVER);
-		form.setText("New Style Form");
-		FormColors colors = toolkit.getColors();
-		colors.initializeSectionToolBarColors();
-		Color gbg = colors.getColor(FormColors.TB_GBG);
-		Color bg = colors.getBackground();
-		form.getForm().setTextBackground(new Color[]{bg, gbg}, new int [] {100}, true);
-		form.getForm().setSeparatorColor(colors.getColor(FormColors.TB_BORDER));
-		form.getForm().setSeparatorVisible(true);
-		ToolBarManager tbm = (ToolBarManager)form.getForm().getToolBarManager();
-		tbm.getControl().setBackground(colors.getColor(FormColors.TB_GBG));
-		
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = 0;
-		layout.marginBottom = 5;
-		layout.marginWidth = 10;
-		form.getBody().setLayout(layout);
-		
-		Section section = toolkit.createSection(form.getBody(), ExpandableComposite.TWISTIE|ExpandableComposite.EXPANDED);
-		Composite client = toolkit.createComposite(section);
-		section.setClient(client);
-		section.setText("Details");
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		section.setLayoutData(gd);
-		
-		layout = new GridLayout();
-		layout.numColumns = 4;
-		client.setLayout(layout);
-
-		Button error = toolkit.createButton(client, "Error", SWT.PUSH);
-		error.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.getForm().setMessage("Test for an error message", IMessageProvider.ERROR);				
-				
-			}
-		});
-		Button warning = toolkit.createButton(client, "Warning", SWT.PUSH);
-		warning.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.getForm().setMessage("Test for a warning message", IMessageProvider.WARNING);
-			}
-		});		
-		Button info = toolkit.createButton(client, "Info", SWT.PUSH);
-		info.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.getForm().setMessage("Test for an info message", IMessageProvider.INFORMATION);
-			}
-		});		
-		Button cancel = toolkit.createButton(client, "Cancel", SWT.PUSH);
-		cancel.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.getForm().setMessage(null);
-			}
-		});		
-		
-		final Button busy = toolkit.createButton(client, "Start Progress", SWT.PUSH);
-		busy.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				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);
-		
-		Composite right = toolkit.createComposite(form.getBody());
-		right.setLayoutData(new GridData(GridData.FILL_BOTH));
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.verticalSpacing = 10;
-		layout.marginHeight = 0;
-		right.setLayout(layout);
-
-		section = toolkit.createSection(right, ExpandableComposite.TWISTIE|ExpandableComposite.EXPANDED);
-		Composite cont = toolkit.createComposite(section);
-		FillLayout flayout = new FillLayout();
-		flayout.marginWidth = 2;
-		flayout.marginHeight = 2;
-		cont.setLayout(flayout);
-		toolkit.createText(cont, "Sample description", SWT.MULTI);
-		section.setClient(cont);
-		section.setText("Description");
-		gd = new GridData(GridData.FILL_BOTH);
-		section.setLayoutData(gd);
-		toolkit.paintBordersFor(cont);
-		
-		section = toolkit.createSection(right, ExpandableComposite.TWISTIE|ExpandableComposite.SHORT_TITLE_BAR|ExpandableComposite.EXPANDED);
-		cont = toolkit.createComposite(section);
-		flayout = new FillLayout();
-		flayout.marginWidth = 2;
-		flayout.marginHeight = 2;
-		cont.setLayout(flayout);		
-		toolkit.createText(cont, "Lorem ipsum dolor sit amet.", SWT.MULTI);
-		section.setClient(cont);
-		toolkit.paintBordersFor(cont);
-		section.setText("Discussion");
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.verticalSpan = 2;
-		section.setLayoutData(gd);
-		
-		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));
-		form.getToolBarManager().add(haction);
-		form.getToolBarManager().add(vaction);
-		form.getToolBarManager().update(true);
-		form.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEF_VIEW));
-		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, SWT.BORDER);
-		t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		new Combo(headClient, SWT.NULL);
-		new Combo(headClient, SWT.NULL);
-		form.getForm().setHeadClient(headClient);
-	}
-}
\ No newline at end of file
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 e2a906d..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSimpleFormEditorAction.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the 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.forms.examples.internal.rcp;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.forms.examples.internal.OpenFormEditorAction;
-/**
- * @see IWorkbenchWindowActionDelegate
- */
-public class OpenSimpleFormEditorAction extends OpenFormEditorAction {
-	public void run(IAction action) {
-		openEditor(new SimpleFormEditorInput("Simple Editor"), "org.eclipse.ui.forms.examples.base-editor");
-	}
-}
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 450e58f..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, 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.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(FormColors.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);
-	}
-}
\ No newline at end of file
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 fc3165b..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 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.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());
-	}
-}
\ No newline at end of file
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 74e9a3f..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 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.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);
-	}
-}
\ No newline at end of file
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 461dadb..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SecondPage.java
+++ /dev/null
@@ -1,87 +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.forms.examples.internal.rcp;
-import org.eclipse.swt.SWT;
-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.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.numColumns = 2;
-		form.getBody().setLayout(layout);
-		createTableSection(form, toolkit, "First Table Section");
-		createTableSection(form, toolkit, "Second Table Section");		
-	}
-	
-	private void createTableSection(final ScrolledForm form, FormToolkit toolkit, String title) {
-		Section section =
-			toolkit.createSection(
-				form.getBody(),
-				Section.TWISTIE|Section.TITLE_BAR);
-		section.setActiveToggleColor(
-			toolkit.getHyperlinkGroup().getActiveForeground());
-		section.setToggleColor(
-			toolkit.getColors().getColor(FormColors.SEPARATOR));
-		//section.setTitleBarForeground(section.getDisplay().getSystemColor(SWT.COLOR_BLACK));
-		//section.setTitleBarGradientBackground(section.getDisplay().getSystemColor(SWT.COLOR_GREEN));
-
-		FormText description = toolkit.createFormText(section, false);
-		description.setText("<form><p>This description has <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);
-	}
-}
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 97abf25..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditor.java
+++ /dev/null
@@ -1,83 +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.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 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;
-	}
-}
\ No newline at end of file
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 0f0c936..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 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.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;
-	}
-}
\ No newline at end of file
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 130641e..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 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.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, "");
-	}
-}
\ No newline at end of file
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 5fbe80f..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, 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.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;
-	}
-}
\ No newline at end of file
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 c0ecdf6..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 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.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);
-	}
-}
\ No newline at end of file
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 5719500..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, 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.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 5e7e8a3..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 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.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);
-	}
-}
\ No newline at end of file
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 9b7f996..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, 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.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 13843f1..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/FormView.java
+++ /dev/null
@@ -1,191 +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.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.*;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.events.*;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.*;
-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(FormColors.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();
-	}
-}
\ No newline at end of file
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 78a9b13..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/ShowHelpAction.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Created on Jan 4, 2005
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
-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/.classpath b/tests/org.eclipse.jface.tests.databinding/.classpath
deleted file mode 100644
index d512f63..0000000
--- a/tests/org.eclipse.jface.tests.databinding/.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/executionEnvironments/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/.cvsignore b/tests/org.eclipse.jface.tests.databinding/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/tests/org.eclipse.jface.tests.databinding/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/tests/org.eclipse.jface.tests.databinding/.project b/tests/org.eclipse.jface.tests.databinding/.project
deleted file mode 100644
index 815de41..0000000
--- a/tests/org.eclipse.jface.tests.databinding/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jface.tests.databinding</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/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 3268699..0000000
--- a/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,71 +0,0 @@
-#Mon Aug 28 10:09:27 EDT 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=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=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.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-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.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=error
-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.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-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.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.jface.tests.databinding/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 846d8bf..0000000
--- a/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Thu Aug 24 15:24:48 EDT 2006
-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/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 630927b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Oct 18 11:35:02 EDT 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=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/JFace-Data Binding Test Suite.launch b/tests/org.eclipse.jface.tests.databinding/JFace-Data Binding Test Suite.launch
deleted file mode 100644
index 5f45873..0000000
--- a/tests/org.eclipse.jface.tests.databinding/JFace-Data Binding Test Suite.launch
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<stringAttribute key="bootstrap" value=""/>
-<booleanAttribute key="useProduct" value="false"/>
-<booleanAttribute key="tracing" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<stringAttribute key="checked" value="[NONE]"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.jface.tests.databinding.BindingTestSuite"/>
-<stringAttribute key="pde.version" value="3.2a"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.jface.tests.databinding"/>
-<booleanAttribute key="askclear" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.jface.tests.databinding"/>
-</listAttribute>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF b/tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF
deleted file mode 100644
index 3bd6b94..0000000
--- a/tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jface.tests.databinding
-Bundle-Version: 1.0.100.qualifier
-Bundle-ClassPath: jfacebindingtests.jar
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Eclipse-LazyStart: true
-Require-Bundle: org.eclipse.jface.databinding,
- org.junit,
- org.eclipse.swt,
- org.eclipse.jface,
- org.eclipse.core.runtime,
- org.eclipse.jface.examples.databinding,
- org.eclipse.jface.databinding.beans,
- org.eclipse.jface.databinding.ui
-Export-Package: org.eclipse.jface.tests.databinding.util;x-internal:=false
diff --git a/tests/org.eclipse.jface.tests.databinding/about.html b/tests/org.eclipse.jface.tests.databinding/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.jface.tests.databinding/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.jface.tests.databinding/build.properties b/tests/org.eclipse.jface.tests.databinding/build.properties
deleted file mode 100644
index e671f5a..0000000
--- a/tests/org.eclipse.jface.tests.databinding/build.properties
+++ /dev/null
@@ -1,20 +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
-###############################################################################
-source.jfacebindingtests.jar = src/
-               
-src.includes = about.html
-output.jfacebindingtests.jar = bin/
-bin.includes = META-INF/,\
-               about.html,\
-               test.xml,\
-               *.html,\
-               jfacebindingtests.jar,\
-               plugin.properties
diff --git a/tests/org.eclipse.jface.tests.databinding/plugin.properties b/tests/org.eclipse.jface.tests.databinding/plugin.properties
deleted file mode 100644
index 6f8acfc..0000000
--- a/tests/org.eclipse.jface.tests.databinding/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 Data Binding Tests
-providerName = Eclipse.org
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/radiogroup/RadioGroupTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/radiogroup/RadioGroupTest.java
deleted file mode 100644
index 3f8f955..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/radiogroup/RadioGroupTest.java
+++ /dev/null
@@ -1,286 +0,0 @@
-package org.eclipse.jface.examples.databinding.compositetable.radiogroup;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.radioGroup.RadioGroup;
-import org.eclipse.jface.examples.databinding.radioGroup.VetoableSelectionListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-
-public class RadioGroupTest extends TestCase {
-   
-   private static final String NEW_STRING = "**New String**";
-   private static final String BUTTON_2_DATA = "2";
-   private static final String BUTTON_1_DATA = "1";
-   private static final String BUTTON_2_TEXT = "Button 2";
-   private static final String BUTTON_1_TEXT = "Button 1";
-   private MockRadioButton b1;
-   private MockRadioButton b2;
-   private RadioGroup rg;
-   
-   List listenerFired;
-
-   protected void setUp() throws Exception {
-      super.setUp();
-      
-      b1 = new MockRadioButton();
-      b1.setText(BUTTON_1_TEXT);
-      b2 = new MockRadioButton();
-      b2.setText(BUTTON_2_TEXT);
-      b1.setSiblings(new MockRadioButton[] {b2});
-      b2.setSiblings(new MockRadioButton[] {b1});
-      rg = new RadioGroup(new Object[] {b1, b2}, new Object[] {BUTTON_1_DATA, BUTTON_2_DATA});
-      
-      listenerFired = new ArrayList();
-   }
-   
-   public void test_getButtons() throws Exception {
-      assertEquals(rg.getButtons()[0], b1);
-      assertEquals(rg.getButtons()[1], b2);
-   }
-   
-   public void test_deselect() throws Exception {
-      b1.setSelection(true);
-      assertTrue(b1.getSelection());
-      rg.deselect(0);
-      assertFalse(b1.getSelection());
-   }
-
-   public void test_mock_deselectBehavior() throws Exception {
-      b1.setSelection(true);
-      assertTrue(b1.getSelection());
-      b2.setSelection(true);
-      assertFalse(b1.getSelection());
-      assertTrue(b2.getSelection());
-   }
-   
-   public void test_deselectAll() throws Exception {
-      b1.setSelection(true);
-      assertTrue(b1.getSelection());
-      rg.deselectAll();
-      assertFalse(b1.getSelection());
-      assertFalse(b2.getSelection());
-   }
-   
-   public void test_getFocusIndex() throws Exception {
-      b2.setSelection(true);
-      assertEquals(1, rg.getFocusIndex());
-   }
-   
-   public void test_getItem() throws Exception {
-      assertEquals(b1.getText(), rg.getItem(0));
-      assertEquals(b2.getText(), rg.getItem(1));
-   }
-   
-   public void test_getItemCount() throws Exception {
-      assertEquals(2, rg.getItemCount());
-   }
-   
-   public void test_getSelection() throws Exception {
-      b2.setSelection(true);
-      assertEquals(BUTTON_2_DATA, rg.getSelection());
-      b1.setSelection(true);
-      assertEquals(BUTTON_1_DATA, rg.getSelection());
-   }
-   
-   public void test_getSelectionIndex() throws Exception {
-      b2.setSelection(true);
-      assertEquals(1, rg.getSelectionIndex());
-      b1.setSelection(true);
-      assertEquals(0, rg.getSelectionIndex());
-   }
-
-   public void test_indexOfString() throws Exception {
-      assertEquals(0, rg.indexOf(BUTTON_1_TEXT));
-      assertEquals(1, rg.indexOf(BUTTON_2_TEXT));
-      assertEquals(-1, rg.indexOf("Barf, please"));
-   }
-   
-   public void test_indexOfStringInt() throws Exception {
-      assertEquals(-1, rg.indexOf(BUTTON_1_TEXT, 1));
-      assertEquals(1, rg.indexOf(BUTTON_2_TEXT, 1));
-      assertEquals(-1, rg.indexOf("Barf, please", 1));
-   }
-   
-   public void test_isSelected() throws Exception {
-      b2.setSelection(true);
-      assertFalse(rg.isSelected(0));
-      assertTrue(rg.isSelected(1));
-   }
-   
-   public void test_select() throws Exception {
-      rg.select(0);
-      assertTrue(b1.getSelection());
-      assertFalse(b2.getSelection());
-      rg.select(1);
-      assertFalse(b1.getSelection());
-      assertTrue(b2.getSelection());
-   }
-   
-   public void test_setItem() throws Exception {
-      rg.setItem(0, NEW_STRING);
-      assertEquals(NEW_STRING, b1.getText());
-   }
-   
-   public void test_setSelection_index() throws Exception {
-      rg.setSelection(1);
-      assertTrue(b2.getSelection());
-      rg.setSelection(0);
-      assertTrue(b1.getSelection());
-   }
-
-   public void test_setSelection_object() throws Exception {
-      rg.setSelection(BUTTON_2_DATA);
-      assertTrue(b2.getSelection());
-      rg.setSelection(BUTTON_1_DATA);
-      assertTrue(b1.getSelection());
-   }
-
-   public void test_listenerFired_allSelectable_newButtonSelected() throws Exception {
-      rg.setSelection(0);
-      SelectionListener rgListener = new MockSelectionListener(null);
-      rg.addSelectionListener(rgListener);
-      
-      rg.setSelection(1);
-      assertEquals(1, listenerFired.size());
-      
-      Object[] expectedListeners = new Object[] {b2};
-      assertListenersFired(expectedListeners);
-   }
-
-   public void test_listenerFired_allSelectable_selectedButtonSelected() throws Exception {
-      rg.setSelection(0);
-      SelectionListener rgListener = new MockSelectionListener(null);
-      rg.addSelectionListener(rgListener);
-      
-      rg.setSelection(0);
-      assertEquals(0, listenerFired.size());
-   }
-   
-   public void test_listenerFired_veto2_selectedButtonSelected() throws Exception {
-      rg.setSelection(0);
-      MockSelectionListener rgListener = new MockSelectionListener(b2);
-      rg.addSelectionListener(rgListener);
-      rg.addVetoableSelectionListener(rgListener);
-      
-      rg.setSelection(1);
-      twiddleEventLoopPlease();
-      assertEquals(0, listenerFired.size());
-      
-      assertEquals(0, rg.getSelectionIndex());
-      
-   }
-
-   private void twiddleEventLoopPlease() {
-      while (Display.getCurrent().readAndDispatch()) {/**/}
-   }
-   
-   
-   
-   private void assertListenersFired(Object[] expectedListeners) {
-      for (int i = 0; i < expectedListeners.length; i++) {
-         Object object = expectedListeners[i];
-         assertEquals(object, listenerFired.remove(0));
-      }
-   }
-   
-   final class MockSelectionListener implements SelectionListener, VetoableSelectionListener {
-      private Object notSelectable = null;
-
-      public MockSelectionListener(Object notSelectable) {
-         this.notSelectable = notSelectable;
-      }
-      
-      public void widgetDefaultSelected(SelectionEvent e) {
-         listenerFired.add(e.data);
-      }
-
-      public void widgetSelected(SelectionEvent e) {
-         listenerFired.add(e.data);
-      }
-
-      public void canWidgetChangeSelection(SelectionEvent e) {
-         e.doit = !e.data.equals(notSelectable);
-      }
-   }
-
-   private class MockRadioButton implements RadioGroup.IRadioButton {
-      
-      private MockRadioButton[] siblings = null;
-      
-      public void setSiblings(MockRadioButton[] siblings) {
-         this.siblings = siblings;
-      }
-      
-      private List listeners = new LinkedList();
-      
-      public void addSelectionListener(SelectionListener selectionListener) {
-         listeners.add(selectionListener);
-      }
-
-      private void fireSelectionChangeEvent(boolean oldValue, boolean newValue) {
-         for (Iterator iter = listeners.iterator(); iter.hasNext();) {
-            SelectionListener listener = (SelectionListener) iter.next();
-            Event event = new Event();
-            event.widget = new Button(new Shell(), 0);
-            event.data = this;
-            listener.widgetSelected(new SelectionEvent(event));
-         }
-      }
-      
-      private boolean selection = false;
-      
-      public boolean getSelection() {
-         return selection;
-      }
-
-      public void setSelection(boolean newValue) {
-         
-         // OS event; set any other selected button to de-selected
-         if (newValue == true) {
-            for (int i = 0; i < siblings.length; i++) {
-               MockRadioButton mock = siblings[i];
-               if (mock.selection) {
-                  mock.setSelection(false);
-               }
-            }
-         }
-         
-         boolean oldValue = this.selection;
-         selection = newValue;
-         fireSelectionChangeEvent(oldValue, newValue);
-      }
-      
-      public boolean isFocusControl() {
-         return selection;
-      }
-
-      public void setData(String string, Object object) {
-         // NOOP
-      }
-
-      private String text;
-      
-      public String getText() {
-         return text;
-      }
-      
-      public void setText(String text) {
-         this.text = text;
-      }
-
-      public void notifyListeners(int eventType, Event object) {
-         fireSelectionChangeEvent(selection, selection);
-      }
-   }
-   
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/radiogroup/RadioGroupTestApplication.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/radiogroup/RadioGroupTestApplication.java
deleted file mode 100644
index 175d054..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/radiogroup/RadioGroupTestApplication.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.eclipse.jface.examples.databinding.compositetable.radiogroup;
-
-import org.eclipse.jface.examples.databinding.radioGroup.RadioGroup;
-import org.eclipse.jface.examples.databinding.radioGroup.VetoableSelectionListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-public class RadioGroupTestApplication {
-   public static void main(String[] args) {
-      new RadioGroupTestApplication().run();
-   }
-
-   private Shell shell;
-   
-   private void run() {
-      Display display = new Display();
-      shell = new Shell(display);
-      
-      shell.setLayout(new RowLayout(SWT.VERTICAL));
-      Button b1 = new Button(shell, SWT.RADIO);
-      b1.setText("Button 1");
-      Button b2 = new Button(shell, SWT.RADIO);
-      b2.setText("Button 2");
-      
-      final Button b3 = new Button(shell, SWT.CHECK);
-      b3.setText("Read-only");
-      
-      RadioGroup rg = new RadioGroup(new Object[] {b1, b2}, new Object[] {"1", "2"});
-      rg.addSelectionListener(new SelectionListener() {
-         public void widgetDefaultSelected(SelectionEvent e) {
-            widgetSelected(e);
-         }
-         public void widgetSelected(SelectionEvent e) {
-            Button b = (Button) e.widget;
-            System.out.println("Selected " + b.getText());
-         }
-      });
-      rg.addVetoableSelectionListener(new VetoableSelectionListener() {
-         public void canWidgetChangeSelection(SelectionEvent e) {
-            if (b3.getSelection()) {
-               e.doit = false;
-            }
-         }});
-      
-      shell.setSize(100, 100);
-      shell.open();
-      
-      while (!shell.isDisposed()) {
-         if (!display.readAndDispatch()) {
-            display.sleep();
-         }
-      }
-      display.dispose();
-   }
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CMClientFixture.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CMClientFixture.java
deleted file mode 100644
index 4139acb..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CMClientFixture.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.timeeditor.test;
-
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventContentProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventCountProvider;
-
-/**
- * Fixture for testing CalendarableModel
- */
-public class CMClientFixture {
-	
-	/**
-	 * Hard-code a start date that's easy to do arithmetic with
-	 */
-	public final Date startDate;
-
-	/**
-	 */
-	public CMClientFixture() {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.set(Calendar.MONTH, 1);
-		gc.set(Calendar.YEAR, 2006);
-		gc.set(Calendar.DATE, 1);
-		startDate = gc.getTime();
-	}
-	
-	private int getOffset(Date day) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(day);
-		return gc.get(Calendar.DATE) - 1;
-	}
-	
-	/**
-	 */
-	private class ECTP extends EventCountProvider {
-		public int getNumberOfEventsInDay(Date day) {
-			return data[getOffset(day)].length;
-		}
-	}
-
-	/**
-	 */
-	private class ECNP extends EventContentProvider {
-		public void refresh(Date day, CalendarableItem[] controls) {
-			if (controls.length != data[getOffset(day)].length) {
-				throw new RuntimeException("Number of elements to fill != amount of data we've got");
-			}
-			int dateOffset = getOffset(day);
-			for (int i = 0; i < controls.length; i++) {
-				String text = data[dateOffset][i];
-				if (text.startsWith("1")) {
-					controls[i].setText(text);
-					controls[i].setAllDayEvent(true);
-				} else {
-					controls[i].setText(text);
-					controls[i].setAllDayEvent(false);
-					GregorianCalendar gc = new GregorianCalendar();
-					gc.setTime(new Date());
-					gc.set(Calendar.HOUR_OF_DAY, Integer.parseInt(text));
-					controls[i].setStartTime(gc.getTime());
-				}
-			}
-		}
-	}
-	
-	/**
-	 */
-	public ECTP eventCountProvider = new ECTP();
-	
-	/**
-	 */
-	public ECNP eventContentProvider = new ECNP();
-
-	private String[][] data;
-	
-	/**
-	 * @return Returns the data.
-	 */
-	public String[][] getData() {
-		return data;
-	}
-
-	/**
-	 * @param data The data to set.
-	 */
-	public void setData(String[][] data) {
-		this.data = data;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CMTimedEventFixture.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CMTimedEventFixture.java
deleted file mode 100644
index 1df2d43..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CMTimedEventFixture.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.timeeditor.test;
-
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventContentProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventCountProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.test.CalendarableModel_TestTimedFindMethods.Event;
-
-/**
- * Fixture for testing CalendarableModel
- */
-public class CMTimedEventFixture {
-	
-	private CalendarableModel_TestTimedFindMethods.Event[][] data;
-
-	/**
-	 * Hard-code a start date that's easy to do arithmetic with
-	 */
-	public final Date startDate;
-
-	public CMTimedEventFixture(Event[][] data) {
-		this.data = data;
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.set(Calendar.MONTH, 1);
-		gc.set(Calendar.YEAR, 2006);
-		gc.set(Calendar.DATE, 1);
-		startDate = gc.getTime();
-	}
-	
-	private int getOffset(Date day) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(day);
-		return gc.get(Calendar.DATE) - 1;
-	}
-	
-	/**
-	 */
-	private class ECTP extends EventCountProvider {
-		public int getNumberOfEventsInDay(Date day) {
-			return data[getOffset(day)].length;
-		}
-	}
-
-	/**
-	 */
-	private class ECNP extends EventContentProvider {
-		public void refresh(Date day, CalendarableItem[] controls) {
-			if (controls.length != data[getOffset(day)].length) {
-				throw new RuntimeException("Number of elements to fill != amount of data we've got");
-			}
-			int dateOffset = getOffset(day);
-			for (int i = 0; i < controls.length; i++) {
-				controls[i].setText(data[dateOffset][i].text);
-				controls[i].setAllDayEvent(data[dateOffset][i].allDay);
-				controls[i].setStartTime(data[dateOffset][i].startTime);
-				controls[i].setEndTime(data[dateOffset][i].endTime);
-			}
-		}
-	}
-	
-	/**
-	 */
-	public ECTP eventCountProvider = new ECTP();
-	
-	/**
-	 */
-	public ECNP eventContentProvider = new ECNP();
-
-	/**
-	 */
-	public int getNumberOfDays() {
-		return data.length;
-	}
-	
-
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarControlTestSuite.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarControlTestSuite.java
deleted file mode 100644
index 40b95bf..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarControlTestSuite.java
+++ /dev/null
@@ -1,35 +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.examples.databinding.compositetable.timeeditor.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.2
- *
- */
-public class CalendarControlTestSuite {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(
-				"Test for org.eclipse.jface.examples.databinding.compositetable.timeeditor.test");
-		//$JUnit-BEGIN$
-		suite.addTestSuite(DayModel_testGetColumnsForEvents.class);
-		suite.addTestSuite(CalendarableModel_testInit.class);
-		suite.addTestSuite(CalendarableModel_testRefreshResults.class);
-		suite.addTestSuite(CalendarableModel_TestTimedFindMethods.class);
-		//$JUnit-END$
-		return suite;
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_TestTimedFindMethods.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_TestTimedFindMethods.java
deleted file mode 100644
index b40a30f..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_TestTimedFindMethods.java
+++ /dev/null
@@ -1,275 +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.examples.databinding.compositetable.timeeditor.test;
-
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.compositetable.day.internal.EventLayoutComputer;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableModel;
-
-/**
- * Test for find methods against timed Calendarables.
- */
-public class CalendarableModel_TestTimedFindMethods extends TestCase {
-	private CalendarableModel cm;
-	private CalendarableModel cm0;
-	private CMTimedEventFixture cmf = new CMTimedEventFixture(events);
-	private CMTimedEventFixture cmf0 = new CMTimedEventFixture(events0);
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		cm = new CalendarableModel();
-		cm.setTimeBreakdown(cmf.getNumberOfDays(), 4);
-		cm.setEventCountProvider(cmf.eventCountProvider);
-		cm.setEventContentProvider(cmf.eventContentProvider);
-		cm.setStartDate(cmf.startDate);
-		EventLayoutComputer dm = new EventLayoutComputer(4);
-		for (int day = 0; day < cmf.getNumberOfDays(); ++day ) {
-			CalendarableItem[][] eventLayout = dm.computeEventLayout(cm.getCalendarableItems(day));
-			cm.setEventLayout(day, eventLayout);
-		}
-
-		cm0 = new CalendarableModel();
-		cm0.setTimeBreakdown(cmf0.getNumberOfDays(), 4);
-		cm0.setEventCountProvider(cmf0.eventCountProvider);
-		cm0.setEventContentProvider(cmf0.eventContentProvider);
-		cm0.setStartDate(cmf0.startDate);
-		for (int day = 0; day < cmf0.getNumberOfDays(); ++day ) {
-			CalendarableItem[][] eventLayout = dm.computeEventLayout(cm0.getCalendarableItems(day));
-			cm0.setEventLayout(day, eventLayout);
-		}
-	}
-	
-	public static class Event {
-		public boolean allDay = false;
-		public Date startTime;
-		public Date endTime;
-		public String text;
-		
-		public Event(Date startTime, Date endTime, String description) {
-			this.startTime = startTime;
-			this.endTime = endTime;
-			this.text = description;
-		}
-
-		public Event(String description) {
-			this.allDay = true;
-			this.text = description;
-		}
-	}
-	
-	private static Date time(int hour, int minutes) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(new Date());
-		gc.set(Calendar.HOUR_OF_DAY, hour);
-		gc.set(Calendar.MINUTE, minutes);
-		return gc.getTime();
-	}
-	
-	private static final Event[][] events = new Event[][] {
-		{new Event(time(5, 45), time(9, 45), "Stand-up meeting"),
-			new Event(time(11, 00), time(12, 15), "Meet with customer")},
-		{},
-		{},
-		{new Event("Nat. Conference"),
-			new Event(time(7, 50), time(9, 00), "Stand-up meeting"),
-			new Event(time(10, 15), time(12, 00), "Work on prototype")},
-		{new Event("Field trip to PC HQ"),
-			new Event("Nat. Conference"),
-			new Event(time(8, 30), time(9, 30), "Stand-up meeting"),
-			new Event(time(10, 00), time(13, 15), "Meet with customer"),
-			new Event(time(12, 45), time(14, 15), "RC1 due"),
-			new Event(time(13, 45), time(14, 15), "Way too much work"),
-			new Event(time(10, 00), time(13, 30), "Callisto meeting")},
-		{new Event("Nat. Conference")},
-		{new Event(time(8, 30), time(11, 30), "Stand-up meeting"),
-			new Event(time(10, 00), time(12, 15), "Meet with customer1"),
-			new Event(time(11, 45), time(12, 15), "Meet with customer2"),
-			new Event(time(11, 00), time(11, 15), "Meet with customer3")},
-		{},
-		{new Event(time(8, 50), time(9, 00), "Stand-up meeting"),
-			new Event(time(10, 15), time(12, 00), "Work on prototype")},
-		{new Event(time(8, 45), time(9, 45), "Stand-up meeting"),
-			new Event(time(11, 00), time(12, 15), "Meet with customer")},
-		{},
-		{},
-		{new Event(time(8, 12), time(9, 00), "Stand-up meeting"),
-			new Event(time(10, 15), time(12, 00), "Work on prototype")},
-		{},
-		{},
-		{new Event(time(9, 50), time(9, 00), "Stand-up meeting"),
-			new Event(time(10, 15), time(12, 00), "Work on prototype")},
-		{},
-	};
-	
-	private static final Event[][] events0 = new Event[][] {
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-		{},
-	};
-
-	private CalendarableItem calendarable(int day, int event) {
-		return (CalendarableItem) cm.getCalendarableItems(day).get(event);
-	}
-	
-	public void testFindTimedCalendarable_ForwardWithoutSelection_NothingToFind() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(0, 51, -1, true, null);
-		assertNull("Should not find any Calendarable", found);
-	}
-
-	public void testFindTimedCalendarable_BackwardWithoutSelection_NothingToFind() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(0, 20, -1, false, null);
-		assertNull("Should not find any Calendarable", found);
-	}
-
-	public void testFindTimedCalendarable_ForwardWithoutSelection_GotAHit() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(0, 40, -1, true, null);
-		assertEquals("Should have found Calendarable", calendarable(0, 1), found);
-	}
-
-	public void testFindTimedCalendarable_BackwardWithoutSelection_GotAHit() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(0, 40, -1, false, null);
-		assertEquals("Should have found Calendarable", calendarable(0, 0), found);
-	}
-
-	public void testFindTimedCalendarable_ForwardWithSelection_NothingToFind() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(0, 46, -1, true, calendarable(0, 1));
-		assertNull("Should not find any Calendarable", found);
-	}
-
-	public void testFindTimedCalendarable_BackwardWithSelection_NothingToFind() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(0, 25, -1, false, calendarable(0, 0));
-		assertNull("Should not find any Calendarable", found);
-	}
-
-	public void testFindTimedCalendarable_ForwardWithSelection_GotAHit() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(0, 25, -1, true, calendarable(0, 0));
-		assertEquals("Should have found Calendarable", calendarable(0, 1), found);
-	}
-
-	public void testFindTimedCalendarable_BackwardWithSelection_GotAHit() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(0, 46, -1, false, calendarable(0, 1));
-		assertEquals("Should have found Calendarable", calendarable(0, 0), found);
-	}
-
-	public void testFindTimedCalendarable_ForwardEventCollision_GotAHit() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(4, 52, -1, true, calendarable(4, 4));
-		assertEquals("Should have found Calendarable", calendarable(4, 5), found);
-	}
-
-	public void testFindTimedCalendarable_BackwardEventCollision_GotAHit() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(6, 48, -1, false, calendarable(6, 3));
-		assertEquals("Should have found Calendarable", calendarable(6, 2), found);
-	}
-	
-	public void testFindTimedCalendarable_ForwardEventCollision_NothingToFind() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(6, 47, -1, true, calendarable(6, 3));
-		assertNull("Should not find any Calendarable", found);
-	}
-
-	public void testFindTimedCalendarable_BackwardEventCollision_NothingToFind() throws Exception {
-		CalendarableItem found = cm.findTimedCalendarable(6, 41, -1, false, calendarable(6, 0));
-		assertNull("Should not find any Calendarable", found);
-	}
-	
-	// findNextCalendarable tests ---------------------------------------------
-	
-	public void testFindNextCalendarable_FindNextAlldayEventInSameDay() throws Exception {
-		CalendarableItem found = cm.findNextCalendarable(4, 0, calendarable(4, 0), true);
-		assertEquals("Should have found Calendarable", calendarable(4, 1), found);
-	}
-	
-	public void testFindNextCalendarable_StartWithAllday_GetFirstTimedEventFromAllDaySelection() throws Exception {
-		CalendarableItem found = cm.findNextCalendarable(4, 1, calendarable(4, 1), true);
-		assertEquals("Should have found Calendarable", calendarable(4, 2), found);
-	}
-
-	public void testFindNextCalendarable_StartWithAllday_GetFirstTimedEventFromNoSelection() throws Exception {
-		CalendarableItem found = cm.findNextCalendarable(4, 2, null, false);
-		assertEquals("Should have found Calendarable", calendarable(4, 2), found);
-	}
-
-	public void testFindNextCalendarable_WrapToNextDay() throws Exception {
-		CalendarableItem found = cm.findNextCalendarable(6, 47, calendarable(6, 3), false);
-		assertEquals("Should have found Calendarable", calendarable(8, 0), found);
-	}
-	
-	public void testFindNextCalendarable_WrapFromLastDayToFirstDay() throws Exception {
-		CalendarableItem found = cm.findNextCalendarable(15, 42, calendarable(15, 1), false);
-		assertEquals("Should have found Calendarable", calendarable(0, 0), found);
-	}
-	
-	public void testFindNextCalendarable_NoEventsInDisplay() throws Exception {
-		CalendarableItem found = cm0.findNextCalendarable(15, 42, null, false);
-		assertNull("Should find no events", found);
-	}
-	
-	// findPreviousCalendarable tests -----------------------------------------
-
-	public void testFindPreviousCalendarable_FindPreviousTimedEventInSameDay() throws Exception {
-		CalendarableItem found = cm.findPreviousCalendarable(0, 44, calendarable(0, 1), false);
-		assertEquals("Should have found Calendarable", calendarable(0, 0), found);
-	}
-	
-	public void testFindPreviousCalendarable_FindLastAlldayEventInSameDay() throws Exception {
-		CalendarableItem found = cm.findPreviousCalendarable(3, 32, calendarable(3, 1), false);
-		assertEquals("Should have found Calendarable", calendarable(3, 0), found);
-	}
-	
-	public void testFindPreviousCalendarable_FindPreviousAlldayEventInSameDay() throws Exception {
-		CalendarableItem found = cm.findPreviousCalendarable(4, 1, calendarable(4, 1), true);
-		assertEquals("Should have found Calendarable", calendarable(4, 0), found);
-	}
-	
-	public void testFindPreviousCalendarable_WrapToPreviousDay_AllDayEvent() throws Exception {
-		CalendarableItem found = cm.findPreviousCalendarable(4, 0, calendarable(4, 0), true);
-		assertEquals("Should have found Calendarable", calendarable(3, 2), found);
-	}
-	
-	public void testFindPreviousCalendarable_WrapToPreviousDay_TimedEvent() throws Exception {
-		CalendarableItem found = cm.findPreviousCalendarable(8, 35, calendarable(8, 0), false);
-		assertEquals("Should have found Calendarable", calendarable(6, 3), found);
-	}
-	
-	public void testFindPreviousCalendarable_WrapFromFirstDayToLastDay() throws Exception {
-		CalendarableItem found = cm.findPreviousCalendarable(0, 24, calendarable(0, 0), false);
-		assertEquals("Should have found Calendarable", calendarable(15, 1), found);
-	}
-	
-	public void testFindPreviousCalendarable_NoEventsInDisplay() throws Exception {
-		CalendarableItem found = cm0.findPreviousCalendarable(15, 42, null, false);
-		assertNull("Should find no events", found);
-	}
-}
-
-
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_testInit.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_testInit.java
deleted file mode 100644
index 3b9edfb..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_testInit.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.timeeditor.test;
-
-import java.util.Date;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableModel;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventContentProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventCountProvider;
-
-/**
- * @since 3.2
- *
- */
-public class CalendarableModel_testInit extends TestCase {
-	final boolean[] initCalled = new boolean[] {false};
-	private CalendarableModel cm;
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		cm = new CalendarableModel();
-	}
-	
-	public void testInitCalledAfterAllSettersSet() throws Exception {
-		EventCountProvider ecp = new EventCountProvider() {
-			public int getNumberOfEventsInDay(Date day) {
-				initCalled[0] = true;
-				return 0;
-			};
-		};
-		
-		cm.setEventCountProvider(ecp);
-		assertNoRefreshCalled();
-		cm.setTimeBreakdown(1, 2);
-		assertNoRefreshCalled();
-		cm.setEventContentProvider(new EventContentProvider() {
-			public void refresh(Date day, CalendarableItem[] controls) {
-			}});
-		assertNoRefreshCalled();
-		cm.setStartDate(new Date());
-		assertRefreshCalled();
-	}
-
-	private void assertNoRefreshCalled() {
-		assertFalse("no refresh yet", initCalled[0]);
-	}
-	
-	private void assertRefreshCalled() {
-		assertTrue("refresh already", initCalled[0]);
-	}
-	
-	public void testSetTimeBreakdown_numberOfDivisionsInHourNotSet() throws Exception {
-		try {
-			cm.setTimeBreakdown(1, 0);
-			fail("IllegalArgumentException expected");
-		} catch(IllegalArgumentException e) {
-			//success
-		}
-	}
-
-	public void testSetTimeBreakdown_numberOfDaysNotSet() throws Exception {
-		try {
-			cm.setTimeBreakdown(0, 1);
-			fail("IllegalArgumentException expected");
-		} catch(IllegalArgumentException e) {
-			//success
-		}
-	}
-	
-	public void testColumnWithinDayIsInitializedForOneDay() throws Exception {
-		final int NUM_DAYS=1;
-		cm.setTimeBreakdown(NUM_DAYS, 4);
-		assertColumnWithinDayIsInitialized(NUM_DAYS);
-	}
-
-	public void testColumnWithinDayIsInitializedForSeveralDays() throws Exception {
-		final int NUM_DAYS=5;
-		cm.setTimeBreakdown(NUM_DAYS, 4);
-		assertColumnWithinDayIsInitialized(NUM_DAYS);
-	}
-
-	private void assertColumnWithinDayIsInitialized(final int NUM_DAYS) {
-		for (int i=0; i < NUM_DAYS; ++i) {
-			assertEquals("It's initialized", -1, cm.getNumberOfColumnsWithinDay(i));
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_testRefreshResults.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_testRefreshResults.java
deleted file mode 100644
index f3466fd..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/CalendarableModel_testRefreshResults.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.timeeditor.test;
-
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableModel;
-
-/**
- * @since 3.2
- *
- */
-public class CalendarableModel_testRefreshResults extends TestCase {
-	
-	// Test fixtures ----------------------------------------------------------
-	
-	private CMClientFixture cmf;
-	private CalendarableModel cm;
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		cmf = new CMClientFixture();
-		cm = new CalendarableModel();
-	}
-	
-	private void setupModel(String[][] data) {
-		cmf.setData(data);
-		cm.setTimeBreakdown(data.length, 4);
-		cm.setEventCountProvider(cmf.eventCountProvider);
-		cm.setEventContentProvider(cmf.eventContentProvider);
-		cm.setStartDate(cmf.startDate);
-		
-		verifyModel(cm, data);
-	}
-	
-	private void verifyModel(CalendarableModel cm, String[][] data) {
-		assertEquals("number of days equal", cm.getNumberOfDays(), data.length);
-		for (int day = 0; day < data.length; day++) {
-			List events = cm.getCalendarableItems(day);
-			assertEquals("number of events equal", events.size(), data[day].length);
-			for (int element = 0; element < data[day].length; element++) {
-				assertEquals("Event " + element + ", day " + day + "equal", data[day][element], ((CalendarableItem)events.get(element)).getText());
-			}
-		}
-	}
-
-	private void verifyModelShouldFail(CalendarableModel cm, String[][] data) throws AssertionFailedError {
-		try {
-			// This should throw an assertion failed error
-			verifyModel(cm, data);
-		} catch (AssertionFailedError e) {
-			// Make sure we got the correct assertion failure
-			if (e.getMessage().indexOf("number of events equal") == -1) {
-				throw e;
-			}
-			// Success
-		}
-	}
-	
-	private CalendarableModel testModelLoading(String[][] data) {
-		CalendarableModel cm = new CalendarableModel();
-		setupModel(data);
-		return cm;
-	}
-	
-	private Date getNextDate(Date date) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(date);
-		gc.add(Calendar.DATE, 1);
-		return gc.getTime();
-	}
-	
-	private CalendarableItem[] getAllDayEvents(String[][] data) {
-		setupModel(data);
-		CalendarableItem[] allDayEvents = cm.getAllDayCalendarables(0);
-		return allDayEvents;
-	}
-	
-	// Tests ------------------------------------------------------------------
-	
-	public void testOneDayOneEvent() throws Exception {
-		testModelLoading(new String[][] {
-				{"1"}
-		});
-	}
-
-	public void testTwoDaysTwoEvents() throws Exception {
-		testModelLoading(new String[][] {
-				{"1", "2"},
-				{"3", "4"}
-		});
-	}
-	
-	public void testOneDayZeroEvents() throws Exception {
-		testModelLoading(new String[][] {
-				{}
-		});
-	}
-	
-	public void testIncreaseNumberOfEventsInDay() throws Exception {
-		String[][] data = new String[][] {
-				{"1", "2", "3"}
-		};
-		setupModel(data);
-		
-		data[0] = new String[] {"1", "2", "3", "4", "5"};
-		cm.refresh(cmf.startDate);
-		
-		verifyModel(cm, data);
-	}
-
-	public void testDecreaseNumberOfEventsInDay() throws Exception {
-		String[][] data = new String[][] {
-				{"1", "2", "3"}
-		};
-		setupModel(data);
-
-		data[0] = new String[] {"1"};
-		cm.refresh(cmf.startDate);
-		
-		verifyModel(cm, data);
-	}
-	
-	public void testRefreshDateOutsideDisplayedRange() throws Exception {
-		String[][] data = new String[][] {
-				{"1", "2", "3"}
-		};
-		setupModel(data);
-
-		data[0] = new String[] {"1"};
-		
-		cm.refresh(getNextDate(cmf.startDate));  // This refresh should not occur
-		verifyModelShouldFail(cm, data);
-	}
-
-	public void testRefreshSecondDay() throws Exception {
-		String[][] data = new String[][] {
-				{"1", "2", "3"},
-				{"0", "3", "6", "9"}
-		};
-		setupModel(data);
-
-		data[1] = new String[] {"42"};
-
-		cm.refresh(cmf.startDate);  // This refresh should do nothing (the data for that day didn't change)
-		verifyModelShouldFail(cm, data);
-		cm.refresh(getNextDate(cmf.startDate));  // This refresh should
-		verifyModel(cm, data);
-	}
-
-	// Number of all day event row tests --------------------------------------
-	
-	public void testComputeNumberOfAllDayEventRows_OneAllDayEvent() throws Exception {
-		String[][] data = new String[][] {
-				{"1", "3", "3"},
-				{"0", "3", "6", "9"}
-		};
-		setupModel(data);
-		
-		assertEquals("max one event", 1, cm.computeNumberOfAllDayEventRows());
-	}
-
-	public void testComputeNumberOfAllDayEventRows_TwoAllDayEvent() throws Exception {
-		String[][] data = new String[][] {
-				{"4", "1", "1"},
-				{"0", "3", "6", "9"}
-		};
-		setupModel(data);
-		
-		assertEquals("max two event", 2, cm.computeNumberOfAllDayEventRows());
-	}
-
-	public void testComputeNumberOfAllDayEventRows_ThreeAllDayEvent() throws Exception {
-		String[][] data = new String[][] {
-				{"4", "1", "1"},
-				{"1", "1", "1", "9"}
-		};
-		setupModel(data);
-		
-		assertEquals("max three event", 3, cm.computeNumberOfAllDayEventRows());
-	}
-
-	public void testComputeNumberOfAllDayEventRows_ZeroAllDayEvent() throws Exception {
-		String[][] data = new String[][] {
-				{"0", "2", "4"},
-				{"0", "3", "5", "9"}
-		};
-		setupModel(data);
-		
-		assertEquals("no all day events", 0, cm.computeNumberOfAllDayEventRows());
-	}
-	
-	// Start time -------------------------------------------------------------
-	
-	public void testComputeStartHour_UsingDefault() throws Exception {
-		String[][] data = new String[][] {
-				{"9", "22", "8"},
-				{"21", "11", "14", "16"}
-		};
-		setupModel(data);
-		
-		assertEquals("8 am start", 8, cm.computeStartHour());
-	}
-	
-	public void testComputeStartHour_Midnight() throws Exception {
-		String[][] data = new String[][] {
-				{"9", "22", "8"},
-				{"21", "11", "0", "16"}
-		};
-		setupModel(data);
-		
-		assertEquals("midnight start", 0, cm.computeStartHour());
-	}
-	
-	public void testComputeStartHour_7am() throws Exception {
-		String[][] data = new String[][] {
-				{"9", "22", "8"},
-				{"21", "11", "7", "16"}
-		};
-		setupModel(data);
-		
-		assertEquals("midnight start", 7, cm.computeStartHour());
-	}
-	
-	public void testComputeStartHour_7amWithAllDayEvents() throws Exception {
-		String[][] data = new String[][] {
-				{"9", "1", "8"},
-				{"21", "11", "7", "16"}
-		};
-		setupModel(data);
-		
-		assertEquals("midnight start", 7, cm.computeStartHour());
-	}
-	
-	// Test all-day event methods ---------------------------------------------
-	
-	public void testGetAllDayEvents_noEvents() throws Exception {
-		String[][] data = new String[][] {
-				{"2", "3"}
-		};
-		setupModel(data);
-		
-		assertEquals("Should find no all-day events", 0, cm.getAllDayCalendarables(0).length);
-	}
-	
-	public void testGetAllDayEvents_oneEvent() throws Exception {
-		String[][] data = new String[][] {
-				{"1First", "2", "3"}
-		};
-		CalendarableItem[] allDayEvents = getAllDayEvents(data);
-		
-		assertEquals("Should find one all-day event", 1, allDayEvents.length);
-		assertEquals("Found 1First", "1First", allDayEvents[0].getText());
-	}
-
-	public void testGetAllDayEvents_threeEvents() throws Exception {
-		String[][] data = new String[][] {
-				{"0", "1First", "1Second", "2", "1Third"}
-		};
-		CalendarableItem[] allDayEvents = getAllDayEvents(data);
-		
-		assertEquals("Should find three all-day event", 3, allDayEvents.length);
-		assertEquals("Found 1First", "1First", allDayEvents[0].getText());
-		assertEquals("Found 1Third", "1Third", allDayEvents[2].getText());
-	}
-	
-	// Test methods that integrate the eventLayout and everything else --------
-	
-	public void testFindAllDayCalendarable_ForwardNoData() throws Exception {
-		String[][] data = new String[][] {
-				{"5", "5", "2", "3", "5", "5"}
-		};
-		setupModel(data);
-		CalendarableItem result = cm.findAllDayCalendarable(0, true, null);
-		assertNull("No calendarables forward", result);
-	}
-
-	public void testFindAllDayCalendarable_BackwardNoData() throws Exception {
-		String[][] data = new String[][] {
-				{"5", "5", "2", "3", "5", "5"}
-		};
-		getAllDayEvents(data);
-		CalendarableItem result = cm.findAllDayCalendarable(0, false, null);
-		assertNull("No calendarables forward", result);
-	}
-	
-	public void testFindAllDayCalendarable_BackwardButAtFirst() throws Exception {
-		String[][] data = new String[][] {
-				{"1First", "1Second", "2", "3", "1Third", "1Fourth"}
-		};
-		CalendarableItem[] allDayEvents = getAllDayEvents(data);
-		CalendarableItem result = cm.findAllDayCalendarable(0, false, allDayEvents[0]);
-		assertNull("No Calendarables backward from first", result);
-	}
-	
-	public void testFindAllDayCalendarable_ForwardAtLast() throws Exception {
-		String[][] data = new String[][] {
-				{"1First", "1Second", "2", "3", "1Third", "1Fourth"}
-		};
-		CalendarableItem[] allDayEvents = getAllDayEvents(data);
-		CalendarableItem result = cm.findAllDayCalendarable(0, true, allDayEvents[3]);
-		assertNull("No calendarables forward", result);
-	}
-	
-	public void testFindAllDayCalendarable_ForwardWithSelection() throws Exception {
-		String[][] data = new String[][] {
-				{"1First", "1Second", "2", "3", "1Third", "1Fourth"}
-		};
-		CalendarableItem[] allDayEvents = getAllDayEvents(data);
-		CalendarableItem result = cm.findAllDayCalendarable(0, true, allDayEvents[1]);
-		assertEquals("Should find third event", allDayEvents[2], result);
-	}
-	
-	public void testFindAllDayCalendarable_BackwardWithSelection() throws Exception {
-		String[][] data = new String[][] {
-				{"1First", "1Second", "2", "3", "1Third", "1Fourth"}
-		};
-		CalendarableItem[] allDayEvents = getAllDayEvents(data);
-		CalendarableItem result = cm.findAllDayCalendarable(0, false, allDayEvents[1]);
-		assertEquals("Should find first event", allDayEvents[0], result);
-	}
-	
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/DayModel_testGetColumnsForEvents.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/DayModel_testGetColumnsForEvents.java
deleted file mode 100644
index ae91857..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/examples/databinding/compositetable/timeeditor/test/DayModel_testGetColumnsForEvents.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.compositetable.timeeditor.test;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.compositetable.day.internal.EventLayoutComputer;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * @since 3.2
- *
- */
-public class DayModel_testGetColumnsForEvents extends TestCase {
-	// Fixtures ---------------------------------------------------------------
-
-	private CalendarableItem event(int number) {
-		return (CalendarableItem) expectedEvents.get(number);
-	}
-
-	private Date time(int hour, int minutes) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(new Date());
-		gc.set(Calendar.HOUR_OF_DAY, hour);
-		gc.set(Calendar.MINUTE, minutes);
-		return gc.getTime();
-	}
-	
-	private CalendarableItem addCalendarable(Date startTime, Date endTime, String description) {
-		CalendarableItem c = new CalendarableItem(new Date());
-		c.setStartTime(startTime);
-		c.setEndTime(endTime);
-		c.setText(description);
-		expectedEvents.add(c);
-		return c;
-	}
-	
-	private CalendarableItem addCalendarable(String description) {
-		CalendarableItem c = new CalendarableItem(new Date());
-		c.setText(description);
-		c.setAllDayEvent(true);
-		expectedEvents.add(c);
-		return c;
-	}
-	
-	private void assertEventInColumnInPositions(CalendarableItem event, int column, int[] expectedSlotsForEvent) {
-		int firstSlotForEvent = expectedSlotsForEvent[0];
-		int lastSlotForEvent = expectedSlotsForEvent[expectedSlotsForEvent.length-1];
-		int lastSlotInDay = eventLayout[column].length;
-		
-		//before event
-		for (int slot=0; slot < firstSlotForEvent; ++slot) {
-			assertNotSame("slots before event != event: " + slot, event, eventLayout[column][slot]);
-		}
-		
-		//during event
-		for (int slot=firstSlotForEvent; slot <= lastSlotForEvent; ++slot) {
-			assertEquals("should find event here: " + slot, event, eventLayout[column][slot]);
-		}
-		
-		//after event
-		for (int slot=lastSlotForEvent+1; slot < lastSlotInDay; ++slot) {
-			assertNotSame("slots after event != event: " + slot, event, eventLayout[column][slot]);
-		}
-	}
-	
-	private void assertEventNotInColumn(CalendarableItem event, int column) {
-		for (int slot = 0; slot < eventLayout[column].length; slot++) {
-			assertFalse("event not in column: " + column + ", " + slot, event == eventLayout[column][slot]);
-		}
-	}
-
-	private void assertExpectedColumns(int expected) {
-		assertEquals(expected+ " columns", expected, eventLayout.length);
-	}
-
-	private void assertBounds(CalendarableItem c, Point leftTop, Point rightBottom) {
-		assertEquals("top left position", leftTop, c.getUpperLeftPositionInDayRowCoordinates());
-		assertEquals("bottom right position", rightBottom, c.getLowerRightPositionInDayRowCoordinates());
-	}
-
-	// Tests ------------------------------------------------------------------
-	
-	private static final int DIVISIONS_IN_HOUR = 2;
-	
-	private EventLayoutComputer dayModel;
-	private List expectedEvents;
-	private CalendarableItem[][] eventLayout; 
-		
-	protected void setUp() throws Exception {
-		super.setUp();
-		dayModel = new EventLayoutComputer(DIVISIONS_IN_HOUR);
-		expectedEvents = new ArrayList();
-	}
-
-	public void test_getEventLayout_NoEventsInDay() throws Exception {
-		eventLayout = dayModel.computeEventLayout(expectedEvents);
-		assertExpectedColumns(1);
-		
-		assertEquals("One column", 1, eventLayout.length);
-		assertEquals(IEventEditor.DISPLAYED_HOURS * DIVISIONS_IN_HOUR
-				+ " time slots", IEventEditor.DISPLAYED_HOURS
-				* DIVISIONS_IN_HOUR, eventLayout[0].length);
-		
-		for (int column = 0; column < eventLayout.length; column++) {
-			for (int timeSlot = 0; timeSlot < eventLayout[column].length; timeSlot++) {
-				assertNull(eventLayout[column][timeSlot]);
-			}
-		}
-	}
-	
-	public void test_getEventLayout_OneEventNoSpan() throws Exception {
-		CalendarableItem c = addCalendarable(time(8, 00), time(8, 30), "One event");
-		eventLayout = dayModel.computeEventLayout(expectedEvents);
-		
-		assertExpectedColumns(1);
-		assertEventInColumnInPositions(event(0), 0, new int[] {16});
-		assertBounds(c, new Point(0, 16), new Point(0, 16));
-	}
-
-	public void test_getEventLayout_TwoEventsOneIsAllDaySpan3FullBlocks() throws Exception {
-		CalendarableItem c = addCalendarable(time(8, 00), time(9, 30), "One event, 3 timeslots");
-		addCalendarable("All-day-event");
-		eventLayout = dayModel.computeEventLayout(expectedEvents);
-		
-		assertExpectedColumns(1);
-		assertEventInColumnInPositions(event(1), 0, new int[] {16, 18});
-		assertBounds(c, new Point(0, 16), new Point(0, 18));
-	}
-
-	public void test_getEventLayout_OneEventSpanWithPartialBlock() throws Exception {
-		addCalendarable(time(00, 00), time(0, 31), "One event, 3 timeslots");
-		eventLayout = dayModel.computeEventLayout(expectedEvents);
-
-		assertExpectedColumns(1);
-		assertEventInColumnInPositions(event(0), 0, new int[] {0, 1});
-	}
-	
-	public void test_getEventLayout_OneEventStartAndEndTimesSame() throws Exception {
-		addCalendarable(time(01, 00), time(01, 00), "One event, same start and end times");
-		eventLayout = dayModel.computeEventLayout(expectedEvents);
-		
-		assertExpectedColumns(1);
-		assertEventInColumnInPositions(event(0), 0, new int[] {2});
-	}
-	
-	public void test_getEventLayout_OneEventEndTimeBeforeStartTime() throws Exception {
-		addCalendarable(time(01, 00), time(00, 30), "One event, end time before start time");
-		eventLayout = dayModel.computeEventLayout(expectedEvents);
-		
-		assertExpectedColumns(1);
-		assertEventInColumnInPositions(event(0), 0, new int[] {2});
-	}
-	
-	public void test_getEventLayout_OneDayTwoSequentialEventsInputUnsorted() throws Exception {
-		addCalendarable(time(01, 30), time(2, 00), "Second event");
-		addCalendarable(time(01, 00), time(1, 30), "First event");
-		eventLayout = dayModel.computeEventLayout(expectedEvents);
-		
-		assertExpectedColumns(1);
-		
-		assertEventInColumnInPositions(event(0), 0, new int[] {2});
-		assertEventInColumnInPositions(event(1), 0, new int[] {3});
-	}
-	
-	public void test_getEventLayout_OneDayTwoEventsTwoColumnsInputUnsorted() throws Exception {
-		addCalendarable(time(01, 30), time(2, 00), "Second event");
-		addCalendarable(time(01, 00), time(2, 00), "First event");
-		eventLayout = dayModel.computeEventLayout(expectedEvents);
-		
-		assertExpectedColumns(2);
-		
-		assertEventInColumnInPositions(event(0), 0, new int[] {2, 3});
-		assertEventNotInColumn(event(0), 1);
-		
-		assertEventInColumnInPositions(event(1), 1, new int[] {3});
-		assertEventNotInColumn(event(1), 0);
-	}
-
-	public void test_getEventLayout_OneDay4EventsThreeColumnsInputSorted() throws Exception {
-		addCalendarable(time(01, 00), time(3, 00), "First event");
-		addCalendarable(time(01, 30), time(3, 00), "Second event");
-		addCalendarable(time(02, 00), time(4, 00), "Third event");
-		CalendarableItem c = addCalendarable(time(03, 00), time(4, 00), "Fourth event");
-		eventLayout = dayModel.computeEventLayout(expectedEvents);
-		
-		assertExpectedColumns(3);
-		
-		assertEventInColumnInPositions(event(0), 0, new int[] {2, 5});
-		assertEventNotInColumn(event(0), 1);
-		assertEventNotInColumn(event(0), 2);
-
-		assertEventNotInColumn(event(1), 0); 
-		assertEventInColumnInPositions(event(1), 1, new int[] {3, 5});
-		assertEventNotInColumn(event(1), 2);
-		
-		assertEventNotInColumn(event(2), 0);
-		assertEventNotInColumn(event(2), 1);
-		assertEventInColumnInPositions(event(2), 2, new int[] {4, 7});
-
-		assertEventInColumnInPositions(event(3), 0, new int[] {6, 7});
-		assertEventInColumnInPositions(event(3), 1, new int[] {6, 7});
-		assertEventNotInColumn(event(3), 2);
-		assertBounds(c, new Point(0, 6), new Point(1, 7));
-	}
-
-	public void test_getEventLayout_OneDay4EventsThreeColumnsInputSortedWithAllDayEvents() throws Exception {
-		addCalendarable(time(01, 00), time(3, 00), "First event");
-		addCalendarable("ad1");
-		addCalendarable(time(01, 30), time(3, 00), "Second event");
-		addCalendarable(time(02, 00), time(4, 00), "Third event");
-		addCalendarable("ad2");
-		CalendarableItem c = addCalendarable(time(03, 00), time(4, 00), "Fourth event");
-		eventLayout = dayModel.computeEventLayout(expectedEvents);
-		
-		assertExpectedColumns(3);
-		
-		assertEventInColumnInPositions(event(2), 0, new int[] {2, 5});
-		assertEventNotInColumn(event(2), 1);
-		assertEventNotInColumn(event(2), 2);
-
-		assertEventNotInColumn(event(3), 0); 
-		assertEventInColumnInPositions(event(3), 1, new int[] {3, 5});
-		assertEventNotInColumn(event(3), 2);
-		
-		assertEventNotInColumn(event(4), 0);
-		assertEventNotInColumn(event(4), 1);
-		assertEventInColumnInPositions(event(4), 2, new int[] {4, 7});
-
-		assertEventInColumnInPositions(event(5), 0, new int[] {6, 7});
-		assertEventInColumnInPositions(event(5), 1, new int[] {6, 7});
-		assertEventNotInColumn(event(5), 2);
-		assertBounds(c, new Point(0, 6), new Point(1, 7));
-	}
-
-	public void test_getEventLayout_OneDay6EventsFourColumnsInputSorted() throws Exception {
-		addCalendarable(time(01, 00), time(3, 00), "First event");
-		addCalendarable(time(01, 30), time(3, 00), "Second event");
-		addCalendarable(time(02, 00), time(3, 00), "Third event");
-		addCalendarable(time(02, 30), time(5, 00), "Fourth event");
-		addCalendarable(time(03, 00), time(5, 00), "Fifth event");
-		addCalendarable(time(04, 00), time(5, 00), "Sixth event");
-		eventLayout = dayModel.computeEventLayout(expectedEvents);
-		
-		assertExpectedColumns(4);
-		
-		assertEventInColumnInPositions(event(0), 0, new int[] {2, 5});
-		assertEventNotInColumn(event(0), 1);
-		assertEventNotInColumn(event(0), 2);
-		assertEventNotInColumn(event(0), 3);
-
-		assertEventNotInColumn(event(1), 0); 
-		assertEventInColumnInPositions(event(1), 1, new int[] {3, 5});
-		assertEventNotInColumn(event(1), 2);
-		assertEventNotInColumn(event(1), 3);
-		
-		assertEventNotInColumn(event(2), 0);
-		assertEventNotInColumn(event(2), 1);
-		assertEventInColumnInPositions(event(2), 2, new int[] {4, 5});
-		assertEventNotInColumn(event(2), 3);
-
-		assertEventNotInColumn(event(3), 0);
-		assertEventNotInColumn(event(3), 1);
-		assertEventNotInColumn(event(3), 2);
-		assertEventInColumnInPositions(event(3), 3, new int[] {5, 9});
-
-		assertEventInColumnInPositions(event(4), 0, new int[] {6, 9});
-		assertEventNotInColumn(event(4), 1);
-		assertEventNotInColumn(event(4), 2);
-		assertEventNotInColumn(event(4), 3);
-
-		assertEventNotInColumn(event(5), 0);
-		assertEventInColumnInPositions(event(5), 1, new int[] {8, 9});
-		assertEventInColumnInPositions(event(5), 2, new int[] {8, 9});
-		assertEventNotInColumn(event(5), 3);
-	}
-
-}
-
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IdentityConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IdentityConverterTest.java
deleted file mode 100644
index 9686be3..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/conversion/IdentityConverterTest.java
+++ /dev/null
@@ -1,121 +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.databinding.provisional.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.internal.databinding.provisional.BindingException;
-
-/**
- * @since 3.2
- *
- */
-public class IdentityConverterTest extends TestCase {
-
-	private IdentityConverter c;
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		c = new IdentityConverter(Integer.TYPE, Integer.TYPE);
-	}
-
-	public void testIsPrimitiveTypeMatchedWithBoxed() throws Exception {
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Integer.class, Integer.TYPE));
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Integer.TYPE, Integer.class));
-		
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Byte.class, Byte.TYPE));
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Byte.TYPE, Byte.class));
-		
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Short.class, Short.TYPE));
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Short.TYPE, Short.class));
-		
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Long.class, Long.TYPE));
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Long.TYPE, Long.class));
-		
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Float.class, Float.TYPE));
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Float.TYPE, Float.class));
-		
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Double.class, Double.TYPE));
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Double.TYPE, Double.class));
-		
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Boolean.class, Boolean.TYPE));
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Boolean.TYPE, Boolean.class));
-		
-		assertFalse(c.isPrimitiveTypeMatchedWithBoxed(Boolean.class, Integer.TYPE));
-	}
-
-	public void testConvert_NullToPrimitive() {
-		IdentityConverter p2b = new IdentityConverter(Float.TYPE, Float.TYPE);
-		try {
-			p2b.convert(null);
-			fail("Should have thrown an exception");
-		} catch (BindingException b) {
-			// success
-		}
-	}
-	
-	public void testConvert_PrimitiveToBoxed() throws Exception {
-		IdentityConverter p2b = new IdentityConverter(Float.class, Float.TYPE);
-		assertEquals("4.2", new Float(4.2), p2b.convert(new Float(4.2)));
-	}
-	
-	public void testConvert_BoxedToPrimitive() throws Exception {
-		IdentityConverter p2b = new IdentityConverter(Float.TYPE, Float.class);
-		assertEquals("4.2", new Float(4.2), p2b.convert(new Float(4.2)));
-	}
-	
-	public void testConvert_PrimitiveToPrimitive() throws Exception {
-		IdentityConverter p2b = new IdentityConverter(Float.TYPE, Float.TYPE);
-		assertEquals("4.2", new Float(4.2), p2b.convert(new Float(4.2)));
-	}
-	
-	public void testConvert_BoxedToBoxed() throws Exception {
-		IdentityConverter p2b = new IdentityConverter(Float.class, Float.class);
-		assertEquals("4.2", new Float(4.2), p2b.convert(new Float(4.2)));
-	}
-	
-	public static class Person {
-		public String foo = "blah";
-	}
-	
-	public static class Animal {
-		public String name="fido";
-	}
-
-	public void test_Convert_ValidAssignment() throws Exception {
-		IdentityConverter pc = new IdentityConverter(Object.class, Person.class);
-		Person orig = new Person();
-		Object person = pc.convert(orig);
-		assertTrue("Person class", person.getClass().equals(Person.class));
-		assertTrue("Need correct Person", person.equals(orig));
-	}
-	
-	public void test_Convert_ValidAssignment2() throws Exception {
-		IdentityConverter pc = new IdentityConverter(Person.class, Object.class);
-		Person orig = new Person();
-		Object person = pc.convert(orig);
-		assertTrue("Person class", person.getClass().equals(Person.class));
-		assertTrue("Need correct Person", person.equals(orig));
-	}
-	
-	public void testConvert_InvalidAssignment() throws Exception {
-		IdentityConverter pc = new IdentityConverter(Object.class, Person.class);
-		try {
-			pc.convert(new Animal());
-			fail("Should have gotten an exception");
-		} catch (Exception e) {
-			// success
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryBooleanPrimitiveTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryBooleanPrimitiveTest.java
deleted file mode 100644
index d0ff2d0..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryBooleanPrimitiveTest.java
+++ /dev/null
@@ -1,164 +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.databinding.provisional.factories;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.widgets.Widget;
-
-public class DefaultBindSupportFactoryBooleanPrimitiveTest extends TestCase {
-	private DataBindingContext ctx;
-	private TestDataObject dataObject;
-
-	public void setUp() {
-		ctx = getDatabindingContext();
-		dataObject = new TestDataObject();
-		dataObject.setStringVal("0");
-		dataObject.setBooleanPrimitiveVal(false);
-		dataObject.setBooleanVal(new Boolean(false));		
-	}
-	
-	public void testStringToBooleanPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "stringVal"), new Property(dataObject, "booleanPrimitiveVal"), null);
-		
-		dataObject.setBooleanPrimitiveVal(true);
-		assertEquals("boolean value does not match", true, dataObject.getBooleanPrimitiveVal());
-		assertEquals("String value does not match", "true", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setStringVal("false");
-		assertEquals("boolean value does not match", false, dataObject.getBooleanPrimitiveVal());
-		assertEquals("String value does not match", "false", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal("");
-		assertEquals("boolean value does not match", false, dataObject.getBooleanPrimitiveVal());
-		assertEquals("String value does not match", "", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal(null);
-		assertEquals("boolean value does not match", false, dataObject.getBooleanPrimitiveVal());
-		assertNull("String value does not match", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-
-	public void testBooleanToBooleanPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "booleanVal"), new Property(dataObject, "booleanPrimitiveVal"), null);
-		
-		dataObject.setBooleanPrimitiveVal(true);
-		assertEquals("boolean value does not match", true, dataObject.getBooleanPrimitiveVal());
-		assertEquals("Boolean value does not match", new Boolean(true), dataObject.getBooleanVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setBooleanVal(new Boolean(false));
-		assertEquals("boolean value does not match", false, dataObject.getBooleanPrimitiveVal());
-		assertEquals("Boolean value does not match", new Boolean(false), dataObject.getBooleanVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setBooleanVal(null);
-		assertEquals("boolean value does not match", false, dataObject.getBooleanPrimitiveVal());
-		assertNull("Boolean value does not match", dataObject.getBooleanVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-	}
-	
-	public void testObjectToBooleanPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "objectVal"), new Property(dataObject, "booleanPrimitiveVal"), null);
-		
-		dataObject.setBooleanPrimitiveVal(true);
-		assertEquals("boolean value does not match", true, dataObject.getBooleanPrimitiveVal());
-		assertEquals("Object value does not match", new Boolean(true), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setObjectVal(new Boolean(false));
-		assertEquals("boolean value does not match", false, dataObject.getBooleanPrimitiveVal());
-		assertEquals("Object value does not match", new Boolean(false), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setObjectVal(null);
-		assertEquals("boolean value does not match", false, dataObject.getBooleanPrimitiveVal());
-		assertNull("Object value does not match", dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		Object object = new Object();
-		dataObject.setObjectVal(object);
-		assertEquals("boolean value does not match", false, dataObject.getBooleanPrimitiveVal());
-		assertSame("Object value does not match", object, dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-	
-	public class TestDataObject extends ModelObject {
-		private boolean booleanPrimitiveValue;
-		private String stringVal;
-		private Boolean booleanVal;
-		private Object objectVal;
-		
-		public Boolean getBooleanVal() {
-			return booleanVal;
-		}
-		public void setBooleanVal(Boolean booleanVal) {
-			Object oldVal = this.booleanVal;
-			this.booleanVal = booleanVal;
-			firePropertyChange("booleanVal", oldVal, this.booleanVal);
-		}
-
-		public boolean getBooleanPrimitiveVal() {
-			return booleanPrimitiveValue;
-		}
-		public void setBooleanPrimitiveVal(boolean booleanPrimitiveValue) {
-			boolean oldVal = this.booleanPrimitiveValue;
-			this.booleanPrimitiveValue = booleanPrimitiveValue;
-			firePropertyChange("booleanPrimitiveVal", new Boolean(oldVal), new Boolean(this.booleanPrimitiveValue));
-		}
-		
-		public String getStringVal() {
-			return stringVal;
-		}
-		public void setStringVal(String stringVal) {
-			Object oldVal = this.stringVal;
-			this.stringVal = stringVal;
-			firePropertyChange("stringVal", oldVal, this.stringVal);
-		}
-
-		public Object getObjectVal() {
-			return objectVal;
-		}
-		public void setObjectVal(Object objectVal) {
-			Object oldVal = this.objectVal;
-			this.objectVal = objectVal;
-			firePropertyChange("objectVal", oldVal, this.objectVal);
-		}
-	}
-	
-	/**
-	 * @param aControl
-	 * @return
-	 */
-	public static DataBindingContext getDatabindingContext() {
-		final DataBindingContext context = new DataBindingContext();
-		context.addObservableFactory(new DefaultObservableFactory(context));
-		context.addObservableFactory(new BeanObservableFactory(context, null, new Class[]{Widget.class}));
-		context.addObservableFactory(new NestedObservableFactory(context));
-		context.addObservableFactory(new SWTObservableFactory());
-		context.addObservableFactory(new ViewersObservableFactory());
-		context.addBindingFactory(new DefaultBindingFactory());
-		context.addBindingFactory(new ViewersBindingFactory());
-		context.addBindSupportFactory(new DefaultBindSupportFactory());
-		return context;
-	}	
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryBytePrimitiveTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryBytePrimitiveTest.java
deleted file mode 100644
index beec59f..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryBytePrimitiveTest.java
+++ /dev/null
@@ -1,164 +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.databinding.provisional.factories;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.widgets.Widget;
-
-public class DefaultBindSupportFactoryBytePrimitiveTest extends TestCase {
-	private DataBindingContext ctx;
-	private TestDataObject dataObject;
-
-	public void setUp() {
-		ctx = getDatabindingContext();
-		dataObject = new TestDataObject();
-		dataObject.setStringVal("0");
-		dataObject.setBytePrimitiveVal((byte) 0);
-		dataObject.setByteVal(new Byte((byte) 0));		
-	}
-	
-	public void testStringToBytePrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "stringVal"), new Property(dataObject, "bytePrimitiveVal"), null);
-		
-		dataObject.setBytePrimitiveVal((byte)110);
-		assertEquals("byte value does not match", 110, dataObject.getBytePrimitiveVal(), .001);
-		assertEquals("String value does not match", "110", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setStringVal("70");
-		assertEquals("byte value does not match", 70, dataObject.getBytePrimitiveVal(), .001);
-		assertEquals("String value does not match", "70", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal("");
-		assertEquals("byte value does not match", 70, dataObject.getBytePrimitiveVal(), .001);
-		assertEquals("String value does not match", "", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal(null);
-		assertEquals("byte value does not match", 70, dataObject.getBytePrimitiveVal(), .001);
-		assertNull("String value does not match", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-
-	public void testByteToBytePrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "byteVal"), new Property(dataObject, "bytePrimitiveVal"), null);
-		
-		dataObject.setBytePrimitiveVal((byte)110);
-		assertEquals("byte value does not match", 110, dataObject.getBytePrimitiveVal(), .001);
-		assertEquals("Byte value does not match", new Byte((byte)110), dataObject.getByteVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setByteVal(new Byte((byte)70));
-		assertEquals("byte value does not match", 70, dataObject.getBytePrimitiveVal(), .001);
-		assertEquals("Byte value does not match", new Byte((byte)70), dataObject.getByteVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setByteVal(null);
-		assertEquals("byte value does not match", 70, dataObject.getBytePrimitiveVal(), .001);
-		assertNull("Byte value does not match", dataObject.getByteVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-	}
-	
-	public void testObjectToBytePrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "objectVal"), new Property(dataObject, "bytePrimitiveVal"), null);
-		
-		dataObject.setBytePrimitiveVal((byte)110);
-		assertEquals("byte value does not match", 110, dataObject.getBytePrimitiveVal(), .001);
-		assertEquals("Object value does not match", new Byte((byte)110), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setObjectVal(new Byte((byte)70));
-		assertEquals("byte value does not match", 70, dataObject.getBytePrimitiveVal(), .001);
-		assertEquals("Object value does not match", new Byte((byte)70), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setObjectVal(null);
-		assertEquals("byte value does not match", 70, dataObject.getBytePrimitiveVal());
-		assertNull("Object value does not match", dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		Object object = new Object();
-		dataObject.setObjectVal(object);
-		assertEquals("byte value does not match", 70, dataObject.getBytePrimitiveVal());
-		assertSame("Object value does not match", object, dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-	
-	public class TestDataObject extends ModelObject {
-		private byte bytePrimitiveValue;
-		private String stringVal;
-		private Byte byteVal;
-		private Object objectVal;
-		
-		public Byte getByteVal() {
-			return byteVal;
-		}
-		public void setByteVal(Byte byteVal) {
-			Object oldVal = this.byteVal;
-			this.byteVal = byteVal;
-			firePropertyChange("byteVal", oldVal, this.byteVal);
-		}
-
-		public byte getBytePrimitiveVal() {
-			return bytePrimitiveValue;
-		}
-		public void setBytePrimitiveVal(byte bytePrimitiveValue) {
-			byte oldVal = this.bytePrimitiveValue;
-			this.bytePrimitiveValue = bytePrimitiveValue;
-			firePropertyChange("bytePrimitiveVal", new Byte(oldVal), new Byte(this.bytePrimitiveValue));
-		}
-		
-		public String getStringVal() {
-			return stringVal;
-		}
-		public void setStringVal(String stringVal) {
-			Object oldVal = this.stringVal;
-			this.stringVal = stringVal;
-			firePropertyChange("stringVal", oldVal, this.stringVal);
-		}
-
-		public Object getObjectVal() {
-			return objectVal;
-		}
-		public void setObjectVal(Object objectVal) {
-			Object oldVal = this.objectVal;
-			this.objectVal = objectVal;
-			firePropertyChange("objectVal", oldVal, this.objectVal);
-		}
-	}
-	
-	/**
-	 * @param aControl
-	 * @return
-	 */
-	public static DataBindingContext getDatabindingContext() {
-		final DataBindingContext context = new DataBindingContext();
-		context.addObservableFactory(new DefaultObservableFactory(context));
-		context.addObservableFactory(new BeanObservableFactory(context, null, new Class[]{Widget.class}));
-		context.addObservableFactory(new NestedObservableFactory(context));
-		context.addObservableFactory(new SWTObservableFactory());
-		context.addObservableFactory(new ViewersObservableFactory());
-		context.addBindingFactory(new DefaultBindingFactory());
-		context.addBindingFactory(new ViewersBindingFactory());
-		context.addBindSupportFactory(new DefaultBindSupportFactory());
-		return context;
-	}	
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryDoublePrimitiveTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryDoublePrimitiveTest.java
deleted file mode 100644
index f09c27d..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryDoublePrimitiveTest.java
+++ /dev/null
@@ -1,164 +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.databinding.provisional.factories;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.widgets.Widget;
-
-public class DefaultBindSupportFactoryDoublePrimitiveTest extends TestCase {
-	private DataBindingContext ctx;
-	private TestDataObject dataObject;
-
-	public void setUp() {
-		ctx = getDatabindingContext();
-		dataObject = new TestDataObject();
-		dataObject.setStringVal("0");
-		dataObject.setDoublePrimitiveVal(0);
-		dataObject.setDoubleVal(new Double(0));		
-	}
-	
-	public void testStringToDoublePrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "stringVal"), new Property(dataObject, "doublePrimitiveVal"), null);
-		
-		dataObject.setDoublePrimitiveVal(789.5);
-		assertEquals("double value does not match", 789.5, dataObject.getDoublePrimitiveVal(), .001);
-		assertEquals("String value does not match", "789.5", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setStringVal("910.5");
-		assertEquals("double value does not match", 910.5, dataObject.getDoublePrimitiveVal(), .001);
-		assertEquals("String value does not match", "910.5", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal("");
-		assertEquals("double value does not match", 910.5, dataObject.getDoublePrimitiveVal(), .001);
-		assertEquals("String value does not match", "", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal(null);
-		assertEquals("double value does not match", 910.5, dataObject.getDoublePrimitiveVal(), .001);
-		assertNull("String value does not match", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-
-	public void testDoubleToDoublePrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "doubleVal"), new Property(dataObject, "doublePrimitiveVal"), null);
-		
-		dataObject.setDoublePrimitiveVal(789.5);
-		assertEquals("double value does not match", 789.5, dataObject.getDoublePrimitiveVal(), .001);
-		assertEquals("Double value does not match", new Double(789.5), dataObject.getDoubleVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setDoubleVal(new Double(910.5));
-		assertEquals("double value does not match", 910.5, dataObject.getDoublePrimitiveVal(), .001);
-		assertEquals("Double value does not match", new Double(910.5), dataObject.getDoubleVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setDoubleVal(null);
-		assertEquals("double value does not match", 910.5, dataObject.getDoublePrimitiveVal(), .001);
-		assertNull("Double value does not match", dataObject.getDoubleVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-	}
-	
-	public void testObjectToDoublePrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "objectVal"), new Property(dataObject, "doublePrimitiveVal"), null);
-		
-		dataObject.setDoublePrimitiveVal(789.5);
-		assertEquals("double value does not match", 789.5, dataObject.getDoublePrimitiveVal(), .001);
-		assertEquals("Object value does not match", new Double(789.5), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setObjectVal(new Double(910.5));
-		assertEquals("double value does not match", 910.5, dataObject.getDoublePrimitiveVal(), .001);
-		assertEquals("Object value does not match", new Double(910.5), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setObjectVal(null);
-		assertEquals("double value does not match", 910.5, dataObject.getDoublePrimitiveVal(), .001);
-		assertNull("Object value does not match", dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		Object object = new Object();
-		dataObject.setObjectVal(object);
-		assertEquals("double value does not match", 910.5, dataObject.getDoublePrimitiveVal(), .001);
-		assertSame("Object value does not match", object, dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-	
-	public class TestDataObject extends ModelObject {
-		private double doublePrimitiveValue;
-		private String stringVal;
-		private Double doubleVal;
-		private Object objectVal;
-		
-		public Double getDoubleVal() {
-			return doubleVal;
-		}
-		public void setDoubleVal(Double doubleVal) {
-			Object oldVal = this.doubleVal;
-			this.doubleVal = doubleVal;
-			firePropertyChange("doubleVal", oldVal, this.doubleVal);
-		}
-
-		public double getDoublePrimitiveVal() {
-			return doublePrimitiveValue;
-		}
-		public void setDoublePrimitiveVal(double doublePrimitiveValue) {
-			double oldVal = this.doublePrimitiveValue;
-			this.doublePrimitiveValue = doublePrimitiveValue;
-			firePropertyChange("doublePrimitiveVal", new Double(oldVal), new Double(this.doublePrimitiveValue));
-		}
-		
-		public String getStringVal() {
-			return stringVal;
-		}
-		public void setStringVal(String stringVal) {
-			Object oldVal = this.stringVal;
-			this.stringVal = stringVal;
-			firePropertyChange("stringVal", oldVal, this.stringVal);
-		}
-
-		public Object getObjectVal() {
-			return objectVal;
-		}
-		public void setObjectVal(Object objectVal) {
-			Object oldVal = this.objectVal;
-			this.objectVal = objectVal;
-			firePropertyChange("objectVal", oldVal, this.objectVal);
-		}
-	}
-	
-	/**
-	 * @param aControl
-	 * @return
-	 */
-	public static DataBindingContext getDatabindingContext() {
-		final DataBindingContext context = new DataBindingContext();
-		context.addObservableFactory(new DefaultObservableFactory(context));
-		context.addObservableFactory(new BeanObservableFactory(context, null, new Class[]{Widget.class}));
-		context.addObservableFactory(new NestedObservableFactory(context));
-		context.addObservableFactory(new SWTObservableFactory());
-		context.addObservableFactory(new ViewersObservableFactory());
-		context.addBindingFactory(new DefaultBindingFactory());
-		context.addBindingFactory(new ViewersBindingFactory());
-		context.addBindSupportFactory(new DefaultBindSupportFactory());
-		return context;
-	}	
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryFloatPrimitiveTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryFloatPrimitiveTest.java
deleted file mode 100644
index f84c689..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryFloatPrimitiveTest.java
+++ /dev/null
@@ -1,164 +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.databinding.provisional.factories;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.widgets.Widget;
-
-public class DefaultBindSupportFactoryFloatPrimitiveTest extends TestCase {
-	private DataBindingContext ctx;
-	private TestDataObject dataObject;
-
-	public void setUp() {
-		ctx = getDatabindingContext();
-		dataObject = new TestDataObject();
-		dataObject.setStringVal("0");
-		dataObject.setFloatPrimitiveVal(0);
-		dataObject.setFloatVal(new Float(0));		
-	}
-	
-	public void testStringToFloatPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "stringVal"), new Property(dataObject, "floatPrimitiveVal"), null);
-		
-		dataObject.setFloatPrimitiveVal((float)789.5);
-		assertEquals("float value does not match", 789.5, dataObject.getFloatPrimitiveVal(), .001);
-		assertEquals("String value does not match", "789.5", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setStringVal("910.5");
-		assertEquals("float value does not match", 910.5, dataObject.getFloatPrimitiveVal(), .001);
-		assertEquals("String value does not match", "910.5", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal("");
-		assertEquals("float value does not match", 910.5, dataObject.getFloatPrimitiveVal(), .001);
-		assertEquals("String value does not match", "", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal(null);
-		assertEquals("float value does not match", 910.5, dataObject.getFloatPrimitiveVal(), .001);
-		assertNull("String value does not match", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-
-	public void testFloatToFloatPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "floatVal"), new Property(dataObject, "floatPrimitiveVal"), null);
-		
-		dataObject.setFloatPrimitiveVal((float)789.5);
-		assertEquals("float value does not match", 789.5, dataObject.getFloatPrimitiveVal(), .001);
-		assertEquals("Float value does not match", new Float(789.5), dataObject.getFloatVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setFloatVal(new Float(910.5));
-		assertEquals("float value does not match", 910.5, dataObject.getFloatPrimitiveVal(), .001);
-		assertEquals("Float value does not match", new Float(910.5), dataObject.getFloatVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setFloatVal(null);
-		assertEquals("float value does not match", 910.5, dataObject.getFloatPrimitiveVal(), .001);
-		assertNull("Float value does not match", dataObject.getFloatVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-	}
-	
-	public void testObjectToFloatPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "objectVal"), new Property(dataObject, "floatPrimitiveVal"), null);
-		
-		dataObject.setFloatPrimitiveVal((float)789.5);
-		assertEquals("float value does not match", 789.5, dataObject.getFloatPrimitiveVal(), .001);
-		assertEquals("Object value does not match", new Float(789.5), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setObjectVal(new Float(910.5));
-		assertEquals("float value does not match", 910.5, dataObject.getFloatPrimitiveVal(), .001);
-		assertEquals("Object value does not match", new Float(910.5), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setObjectVal(null);
-		assertEquals("float value does not match", 910.5, dataObject.getFloatPrimitiveVal(), .001);
-		assertNull("Object value does not match", dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		Object object = new Object();
-		dataObject.setObjectVal(object);
-		assertEquals("float value does not match", 910.5, dataObject.getFloatPrimitiveVal(), .001);
-		assertSame("Object value does not match", object, dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-	
-	public class TestDataObject extends ModelObject {
-		private float floatPrimitiveValue;
-		private String stringVal;
-		private Float floatVal;
-		private Object objectVal;
-		
-		public Float getFloatVal() {
-			return floatVal;
-		}
-		public void setFloatVal(Float floatVal) {
-			Object oldVal = this.floatVal;
-			this.floatVal = floatVal;
-			firePropertyChange("floatVal", oldVal, this.floatVal);
-		}
-
-		public float getFloatPrimitiveVal() {
-			return floatPrimitiveValue;
-		}
-		public void setFloatPrimitiveVal(float floatPrimitiveValue) {
-			float oldVal = this.floatPrimitiveValue;
-			this.floatPrimitiveValue = floatPrimitiveValue;
-			firePropertyChange("floatPrimitiveVal", new Float(oldVal), new Float(this.floatPrimitiveValue));
-		}
-		
-		public String getStringVal() {
-			return stringVal;
-		}
-		public void setStringVal(String stringVal) {
-			Object oldVal = this.stringVal;
-			this.stringVal = stringVal;
-			firePropertyChange("stringVal", oldVal, this.stringVal);
-		}
-
-		public Object getObjectVal() {
-			return objectVal;
-		}
-		public void setObjectVal(Object objectVal) {
-			Object oldVal = this.objectVal;
-			this.objectVal = objectVal;
-			firePropertyChange("objectVal", oldVal, this.objectVal);
-		}
-	}
-	
-	/**
-	 * @param aControl
-	 * @return
-	 */
-	public static DataBindingContext getDatabindingContext() {
-		final DataBindingContext context = new DataBindingContext();
-		context.addObservableFactory(new DefaultObservableFactory(context));
-		context.addObservableFactory(new BeanObservableFactory(context, null, new Class[]{Widget.class}));
-		context.addObservableFactory(new NestedObservableFactory(context));
-		context.addObservableFactory(new SWTObservableFactory());
-		context.addObservableFactory(new ViewersObservableFactory());
-		context.addBindingFactory(new DefaultBindingFactory());
-		context.addBindingFactory(new ViewersBindingFactory());
-		context.addBindSupportFactory(new DefaultBindSupportFactory());
-		return context;
-	}	
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryIntTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryIntTest.java
deleted file mode 100644
index aa871b8..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryIntTest.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.jface.internal.databinding.provisional.factories;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.widgets.Widget;
-
-public class DefaultBindSupportFactoryIntTest extends TestCase {
-	private DataBindingContext ctx;
-	private TestDataObject dataObject;
-
-	public void setUp() {
-		ctx = getDatabindingContext();
-		dataObject = new TestDataObject();
-		dataObject.setStringVal("0");
-		dataObject.setIntVal(0);
-		dataObject.setIntegerVal(new Integer(0));		
-	}
-	
-	public void testStringToIntConverter() {
-		ctx.bind(new Property(dataObject, "stringVal"), new Property(dataObject, "intVal"), null);
-		
-		dataObject.setIntVal(789);
-		assertEquals("Int value does not match", 789, dataObject.getIntVal());
-		assertEquals("String value does not match", "789", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setStringVal("910");
-		assertEquals("Int value does not match", 910, dataObject.getIntVal());
-		assertEquals("String value does not match", "910", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal("");
-		assertEquals("Int value does not match", 910, dataObject.getIntVal());
-		assertEquals("String value does not match", "", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal(null);
-		assertEquals("Int value does not match", 910, dataObject.getIntVal());
-		assertNull("String value does not match", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-
-	public void testIntegerToIntConverter() {
-		ctx.bind(new Property(dataObject, "integerVal"), new Property(dataObject, "intVal"), null);
-		
-		dataObject.setIntVal(789);
-		assertEquals("Int value does not match", 789, dataObject.getIntVal());
-		assertEquals("Integer value does not match", new Integer(789), dataObject.getIntegerVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setIntegerVal(new Integer(910));
-		assertEquals("Int value does not match", 910, dataObject.getIntVal());
-		assertEquals("Integer value does not match", new Integer(910), dataObject.getIntegerVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setIntegerVal(null);
-		assertEquals("Int value does not match", 910, dataObject.getIntVal());
-		assertNull("Integer value does not match", dataObject.getIntegerVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-	}
-	
-	public void testObjectToIntegerConverter() {
-		ctx.bind(new Property(dataObject, "objectVal"), new Property(dataObject, "intVal"), null);
-		
-		dataObject.setIntVal(789);
-		assertEquals("Int value does not match", 789, dataObject.getIntVal());
-		assertEquals("Object value does not match", new Integer(789), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setObjectVal(new Integer(910));
-		assertEquals("Int value does not match", 910, dataObject.getIntVal());
-		assertEquals("Object value does not match", new Integer(910), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setObjectVal(null);
-		assertEquals("Int value does not match", 910, dataObject.getIntVal());
-		assertNull("Object value does not match", dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		Object object = new Object();
-		dataObject.setObjectVal(object);
-		assertEquals("Int value does not match", 910, dataObject.getIntVal());
-		assertSame("Object value does not match", object, dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-	
-	public class TestDataObject extends ModelObject {
-		private int intVal;
-		private String stringVal;
-		private Integer integerVal;
-		private Object objectVal;
-		
-		public Integer getIntegerVal() {
-			return integerVal;
-		}
-		public void setIntegerVal(Integer integerVal) {
-			Object oldVal = this.integerVal;
-			this.integerVal = integerVal;
-			firePropertyChange("integerVal", oldVal, this.integerVal);
-		}
-
-		public int getIntVal() {
-			return intVal;
-		}
-		public void setIntVal(int intVal) {
-			int oldVal = this.intVal;
-			this.intVal = intVal;
-			firePropertyChange("intVal", oldVal, this.intVal);
-		}
-		
-		public String getStringVal() {
-			return stringVal;
-		}
-		public void setStringVal(String stringVal) {
-			Object oldVal = this.stringVal;
-			this.stringVal = stringVal;
-			firePropertyChange("stringVal", oldVal, this.stringVal);
-		}
-
-		public Object getObjectVal() {
-			return objectVal;
-		}
-		public void setObjectVal(Object objectVal) {
-			Object oldVal = this.objectVal;
-			this.objectVal = objectVal;
-			firePropertyChange("objectVal", oldVal, this.objectVal);
-		}
-	}
-	
-	/**
-	 * @param aControl
-	 * @return
-	 */
-	public static DataBindingContext getDatabindingContext() {
-		final DataBindingContext context = new DataBindingContext();
-		context.addObservableFactory(new DefaultObservableFactory(context));
-		context.addObservableFactory(new BeanObservableFactory(context, null, new Class[]{Widget.class}));
-		context.addObservableFactory(new NestedObservableFactory(context));
-		context.addObservableFactory(new SWTObservableFactory());
-		context.addObservableFactory(new ViewersObservableFactory());
-		context.addBindingFactory(new DefaultBindingFactory());
-		context.addBindingFactory(new ViewersBindingFactory());
-		context.addBindSupportFactory(new DefaultBindSupportFactory());
-		return context;
-	}	
-}
-	
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryLongPrimitiveTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryLongPrimitiveTest.java
deleted file mode 100644
index c81917a..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryLongPrimitiveTest.java
+++ /dev/null
@@ -1,164 +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.databinding.provisional.factories;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.widgets.Widget;
-
-public class DefaultBindSupportFactoryLongPrimitiveTest extends TestCase {
-	private DataBindingContext ctx;
-	private TestDataObject dataObject;
-
-	public void setUp() {
-		ctx = getDatabindingContext();
-		dataObject = new TestDataObject();
-		dataObject.setStringVal("0");
-		dataObject.setLongPrimitiveVal((long) 0);
-		dataObject.setLongVal(new Long((long) 0));		
-	}
-	
-	public void testStringToLongPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "stringVal"), new Property(dataObject, "longPrimitiveVal"), null);
-		
-		dataObject.setLongPrimitiveVal((long)110);
-		assertEquals("long value does not match", 110, dataObject.getLongPrimitiveVal(), .001);
-		assertEquals("String value does not match", "110", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setStringVal("70");
-		assertEquals("long value does not match", 70, dataObject.getLongPrimitiveVal(), .001);
-		assertEquals("String value does not match", "70", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal("");
-		assertEquals("long value does not match", 70, dataObject.getLongPrimitiveVal(), .001);
-		assertEquals("String value does not match", "", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal(null);
-		assertEquals("long value does not match", 70, dataObject.getLongPrimitiveVal(), .001);
-		assertNull("String value does not match", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-
-	public void testLongToLongPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "longVal"), new Property(dataObject, "longPrimitiveVal"), null);
-		
-		dataObject.setLongPrimitiveVal((long)110);
-		assertEquals("long value does not match", 110, dataObject.getLongPrimitiveVal(), .001);
-		assertEquals("Long value does not match", new Long((long)110), dataObject.getLongVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setLongVal(new Long((long)70));
-		assertEquals("long value does not match", 70, dataObject.getLongPrimitiveVal(), .001);
-		assertEquals("Long value does not match", new Long((long)70), dataObject.getLongVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setLongVal(null);
-		assertEquals("long value does not match", 70, dataObject.getLongPrimitiveVal(), .001);
-		assertNull("Long value does not match", dataObject.getLongVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-	}
-	
-	public void testObjectToLongPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "objectVal"), new Property(dataObject, "longPrimitiveVal"), null);
-		
-		dataObject.setLongPrimitiveVal((long)110);
-		assertEquals("long value does not match", 110, dataObject.getLongPrimitiveVal(), .001);
-		assertEquals("Object value does not match", new Long((long)110), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setObjectVal(new Long((long)70));
-		assertEquals("long value does not match", 70, dataObject.getLongPrimitiveVal(), .001);
-		assertEquals("Object value does not match", new Long((long)70), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setObjectVal(null);
-		assertEquals("long value does not match", 70, dataObject.getLongPrimitiveVal(), .001);
-		assertNull("Object value does not match", dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		Object object = new Object();
-		dataObject.setObjectVal(object);
-		assertEquals("long value does not match", 70, dataObject.getLongPrimitiveVal(), .001);
-		assertSame("Object value does not match", object, dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-	
-	public class TestDataObject extends ModelObject {
-		private long longPrimitiveValue;
-		private String stringVal;
-		private Long longVal;
-		private Object objectVal;
-		
-		public Long getLongVal() {
-			return longVal;
-		}
-		public void setLongVal(Long longVal) {
-			Object oldVal = this.longVal;
-			this.longVal = longVal;
-			firePropertyChange("longVal", oldVal, this.longVal);
-		}
-
-		public long getLongPrimitiveVal() {
-			return longPrimitiveValue;
-		}
-		public void setLongPrimitiveVal(long longPrimitiveValue) {
-			long oldVal = this.longPrimitiveValue;
-			this.longPrimitiveValue = longPrimitiveValue;
-			firePropertyChange("longPrimitiveVal", new Long(oldVal), new Long(this.longPrimitiveValue));
-		}
-		
-		public String getStringVal() {
-			return stringVal;
-		}
-		public void setStringVal(String stringVal) {
-			Object oldVal = this.stringVal;
-			this.stringVal = stringVal;
-			firePropertyChange("stringVal", oldVal, this.stringVal);
-		}
-
-		public Object getObjectVal() {
-			return objectVal;
-		}
-		public void setObjectVal(Object objectVal) {
-			Object oldVal = this.objectVal;
-			this.objectVal = objectVal;
-			firePropertyChange("objectVal", oldVal, this.objectVal);
-		}
-	}
-	
-	/**
-	 * @param aControl
-	 * @return
-	 */
-	public static DataBindingContext getDatabindingContext() {
-		final DataBindingContext context = new DataBindingContext();
-		context.addObservableFactory(new DefaultObservableFactory(context));
-		context.addObservableFactory(new BeanObservableFactory(context, null, new Class[]{Widget.class}));
-		context.addObservableFactory(new NestedObservableFactory(context));
-		context.addObservableFactory(new SWTObservableFactory());
-		context.addObservableFactory(new ViewersObservableFactory());
-		context.addBindingFactory(new DefaultBindingFactory());
-		context.addBindingFactory(new ViewersBindingFactory());
-		context.addBindSupportFactory(new DefaultBindSupportFactory());
-		return context;
-	}	
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryShortPrimitiveTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryShortPrimitiveTest.java
deleted file mode 100644
index 0bdafd8..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryShortPrimitiveTest.java
+++ /dev/null
@@ -1,164 +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.databinding.provisional.factories;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.widgets.Widget;
-
-public class DefaultBindSupportFactoryShortPrimitiveTest extends TestCase {
-	private DataBindingContext ctx;
-	private TestDataObject dataObject;
-
-	public void setUp() {
-		ctx = getDatabindingContext();
-		dataObject = new TestDataObject();
-		dataObject.setStringVal("0");
-		dataObject.setShortPrimitiveVal((short) 0);
-		dataObject.setShortVal(new Short((short) 0));		
-	}
-	
-	public void testStringToShortPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "stringVal"), new Property(dataObject, "shortPrimitiveVal"), null);
-		
-		dataObject.setShortPrimitiveVal((short)110);
-		assertEquals("short value does not match", 110, dataObject.getShortPrimitiveVal());
-		assertEquals("String value does not match", "110", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setStringVal("70");
-		assertEquals("short value does not match", 70, dataObject.getShortPrimitiveVal());
-		assertEquals("String value does not match", "70", dataObject.getStringVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal("");
-		assertEquals("short value does not match", 70, dataObject.getShortPrimitiveVal());
-		assertEquals("String value does not match", "", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setStringVal(null);
-		assertEquals("short value does not match", 70, dataObject.getShortPrimitiveVal());
-		assertNull("String value does not match", dataObject.getStringVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-
-	public void testShortToShortPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "shortVal"), new Property(dataObject, "shortPrimitiveVal"), null);
-		
-		dataObject.setShortPrimitiveVal((short)110);
-		assertEquals("short value does not match", 110, dataObject.getShortPrimitiveVal());
-		assertEquals("Short value does not match", new Short((short)110), dataObject.getShortVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setShortVal(new Short((short)70));
-		assertEquals("short value does not match", 70, dataObject.getShortPrimitiveVal());
-		assertEquals("Short value does not match", new Short((short)70), dataObject.getShortVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setShortVal(null);
-		assertEquals("short value does not match", 70, dataObject.getShortPrimitiveVal());
-		assertNull("Short value does not match", dataObject.getShortVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-	}
-	
-	public void testObjectToShortPrimitiveConverter() {
-		ctx.bind(new Property(dataObject, "objectVal"), new Property(dataObject, "shortPrimitiveVal"), null);
-		
-		dataObject.setShortPrimitiveVal((short)110);
-		assertEquals("short value does not match", 110, dataObject.getShortPrimitiveVal());
-		assertEquals("Object value does not match", new Short((short)110), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		dataObject.setObjectVal(new Short((short)70));
-		assertEquals("short value does not match", 70, dataObject.getShortPrimitiveVal());
-		assertEquals("Object value does not match", new Short((short)70), dataObject.getObjectVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());		
-
-		dataObject.setObjectVal(null);
-		assertEquals("short value does not match", 70, dataObject.getShortPrimitiveVal());
-		assertNull("Object value does not match", dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());		
-
-		Object object = new Object();
-		dataObject.setObjectVal(object);
-		assertEquals("short value does not match", 70, dataObject.getShortPrimitiveVal());
-		assertSame("Object value does not match", object, dataObject.getObjectVal());
-		assertNotNull("Errors should be found.", ctx.getValidationError().getValue());			
-	}
-	
-	public class TestDataObject extends ModelObject {
-		private short shortPrimitiveValue;
-		private String stringVal;
-		private Short shortVal;
-		private Object objectVal;
-		
-		public Short getShortVal() {
-			return shortVal;
-		}
-		public void setShortVal(Short shortVal) {
-			Object oldVal = this.shortVal;
-			this.shortVal = shortVal;
-			firePropertyChange("shortVal", oldVal, this.shortVal);
-		}
-
-		public short getShortPrimitiveVal() {
-			return shortPrimitiveValue;
-		}
-		public void setShortPrimitiveVal(short shortPrimitiveValue) {
-			short oldVal = this.shortPrimitiveValue;
-			this.shortPrimitiveValue = shortPrimitiveValue;
-			firePropertyChange("shortPrimitiveVal", new Short(oldVal), new Short(this.shortPrimitiveValue));
-		}
-		
-		public String getStringVal() {
-			return stringVal;
-		}
-		public void setStringVal(String stringVal) {
-			Object oldVal = this.stringVal;
-			this.stringVal = stringVal;
-			firePropertyChange("stringVal", oldVal, this.stringVal);
-		}
-
-		public Object getObjectVal() {
-			return objectVal;
-		}
-		public void setObjectVal(Object objectVal) {
-			Object oldVal = this.objectVal;
-			this.objectVal = objectVal;
-			firePropertyChange("objectVal", oldVal, this.objectVal);
-		}
-	}
-	
-	/**
-	 * @param aControl
-	 * @return
-	 */
-	public static DataBindingContext getDatabindingContext() {
-		final DataBindingContext context = new DataBindingContext();
-		context.addObservableFactory(new DefaultObservableFactory(context));
-		context.addObservableFactory(new BeanObservableFactory(context, null, new Class[]{Widget.class}));
-		context.addObservableFactory(new NestedObservableFactory(context));
-		context.addObservableFactory(new SWTObservableFactory());
-		context.addObservableFactory(new ViewersObservableFactory());
-		context.addBindingFactory(new DefaultBindingFactory());
-		context.addBindingFactory(new ViewersBindingFactory());
-		context.addBindSupportFactory(new DefaultBindSupportFactory());
-		return context;
-	}	
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryTest.java
deleted file mode 100644
index 4e1e0e1..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/factories/DefaultBindSupportFactoryTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.provisional.factories;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * @since 3.2
- *
- */
-public class DefaultBindSupportFactoryTest extends TestCase {
-	/**
-	 * Asserts that the instances of Boolean that are returned from
-	 * {@link DefaultBindSupportFactory#isAssignableFromTo()} are not new
-	 * instances of Boolean.
-	 */
-	public void test_isAssignableFromToBooleanInstances() {
-		DefaultBindSupportFactory factory = new DefaultBindSupportFactory();
-		Boolean b1 = factory.isAssignableFromTo(String.class, String.class);
-		Boolean b2 = factory.isAssignableFromTo(String.class, String.class);
-		
-		assertNotNull(b1);
-		assertNotNull(b2);
-		assertTrue(b1.booleanValue());
-		assertSame(b1, b2);
-		
-		b1 = factory.isAssignableFromTo(String.class, Integer.class);
-		b2 = factory.isAssignableFromTo(String.class, Integer.class);
-		
-		assertNotNull(b1);
-		assertNotNull(b2);
-		assertFalse(b1.booleanValue());
-		assertSame(b1, b2);
-	}
-
-	public void testStringToIntegerConverter() {
-		DataBindingContext ctx = getDatabindingContext();
-		TestDataObject dataObject = new TestDataObject();
-		dataObject.setIntegerStringVal("123");
-		dataObject.setIntStringVal("456");
-		ctx.bind(new Property(dataObject, "intStringVal"), new Property(dataObject, "intVal"), null);
-		ctx.bind(new Property(dataObject, "integerStringVal"), new Property(dataObject, "integerVal"), null);
-		
-		dataObject.setIntegerStringVal("789");
-		assertEquals("Integer value does not match", new Integer(789), dataObject.getIntegerVal());
-		
-		dataObject.setIntStringVal("789");
-		assertEquals("Int value does not match", 789, dataObject.getIntVal());
-		assertNull("No errors should be found.", ctx.getValidationError().getValue());
-		
-		
-		dataObject.setIntegerStringVal("");
-		assertNull("Integer value not null", dataObject.getIntegerVal());
-		
-		dataObject.setIntStringVal("");
-		assertNotNull("Validation error expected.", ctx.getValidationError().getValue());
-		assertEquals("Int value should not have changed.", 789, dataObject.getIntVal());		
-	}
-	
-	public class TestDataObject extends ModelObject {
-		private int intVal;
-		private Integer integerVal;
-		private String intStringVal;
-		private String integerStringVal;
-		
-		public Integer getIntegerVal() {
-			return integerVal;
-		}
-		public void setIntegerVal(Integer integerVal) {
-			this.integerVal = integerVal;
-		}
-
-		public int getIntVal() {
-			return intVal;
-		}
-		public void setIntVal(int intVal) {
-			this.intVal = intVal;
-		}
-		public String getIntegerStringVal() {
-			return integerStringVal;
-		}
-		public void setIntegerStringVal(String integerStringVal) {
-			Object oldVal = this.integerStringVal;
-			this.integerStringVal = integerStringVal;
-			firePropertyChange("integerStringVal", oldVal, this.integerStringVal);
-		}
-		public String getIntStringVal() {
-			return intStringVal;
-		}
-		public void setIntStringVal(String intStringVal) {
-			Object oldVal = this.intStringVal;
-			this.intStringVal = intStringVal;
-			firePropertyChange("intStringVal", oldVal, this.intStringVal);
-		}
-	}
-	
-	/**
-	 * @param aControl
-	 * @return
-	 */
-	public static DataBindingContext getDatabindingContext() {
-		final DataBindingContext context = new DataBindingContext();
-		context.addObservableFactory(new DefaultObservableFactory(context));
-		context.addObservableFactory(new BeanObservableFactory(context, null, new Class[]{Widget.class}));
-		context.addObservableFactory(new NestedObservableFactory(context));
-		context.addObservableFactory(new SWTObservableFactory());
-		context.addObservableFactory(new ViewersObservableFactory());
-		context.addBindingFactory(new DefaultBindingFactory());
-		context.addBindingFactory(new ViewersBindingFactory());
-		context.addBindSupportFactory(new DefaultBindSupportFactory());
-		return context;
-	}	
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ObjectToPrimitiveValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ObjectToPrimitiveValidatorTest.java
deleted file mode 100644
index 458cf1b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ObjectToPrimitiveValidatorTest.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.jface.internal.databinding.provisional.validation;
-
-import junit.framework.TestCase;
-
-/**
- * @since 3.2
- *
- */
-public class ObjectToPrimitiveValidatorTest extends TestCase {
-
-	private ObjectToPrimitiveValidator objectToPrimitiveValidator;
-	
-	protected void setUp() throws Exception {
-		this.objectToPrimitiveValidator = new ObjectToPrimitiveValidator(Integer.TYPE);
-	}
-
-	/**
-	 * Test method for {@link org.eclipse.jface.internal.databinding.provisional.validation.ObjectToPrimitiveValidator#isPartiallyValid(java.lang.Object)}.
-	 */
-	public void testIsPartiallyValid() {
-		ValidationError result = this.objectToPrimitiveValidator.isPartiallyValid(null);
-		assertEquals("The wrong validation error was found.", result.message, this.objectToPrimitiveValidator.getNullHint());
-
-		result = this.objectToPrimitiveValidator.isPartiallyValid(new Integer(1));
-		assertNull("No validation error should be found.", result);
-		
-		result = this.objectToPrimitiveValidator.isPartiallyValid(new Object());
-		assertEquals("The wrong validation error was found.", result.message, this.objectToPrimitiveValidator.getClassHint());
-	}
-
-	/**
-	 * Test method for {@link org.eclipse.jface.internal.databinding.provisional.validation.ObjectToPrimitiveValidator#isValid(java.lang.Object)}.
-	 */
-	public void testIsValid() {
-		ValidationError result = this.objectToPrimitiveValidator.isValid(null);
-		assertEquals("The wrong validation error was found.", result.message, this.objectToPrimitiveValidator.getNullHint());
-
-		result = this.objectToPrimitiveValidator.isValid(new Integer(1));
-		assertNull("No validation error should be found.", result);
-		
-		result = this.objectToPrimitiveValidator.isValid(new Object());
-		assertEquals("The wrong validation error was found.", result.message, this.objectToPrimitiveValidator.getClassHint());
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindSpecTests.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindSpecTests.java
deleted file mode 100644
index 6e80e66..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindSpecTests.java
+++ /dev/null
@@ -1,224 +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.jface.tests.databinding;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.internal.databinding.provisional.BindSpec;
-import org.eclipse.jface.internal.databinding.provisional.conversion.IConverter;
-import org.eclipse.jface.internal.databinding.provisional.validation.IDomainValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.IValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-
-/**
- * Unit tests for the BindSpec class.
- * 
- * @since 3.2
- */
-public class BindSpecTests extends TestCase {
-	/**
-	 * Asserts the BindSpec state when using the default constructor.
-	 */
-	public void testDefaultConstructor() {
-		BindSpec spec = new BindSpec();
-		assertNull(spec.getDomainValidator());
-		assertNull(spec.getModelToTargetConverter());
-		assertNull(spec.getModelUpdatePolicy());
-		assertNull(spec.getTargetToModelConverter());
-		assertNull(spec.getTargetUpdatePolicy());
-		assertNull(spec.getTypeConversionValidator());
-		assertNull(spec.getValidatePolicy());
-		assertTrue(spec.updateModel());
-		assertTrue(spec.updateTarget());
-	}
-
-	/**
-	 * Asesrts the BindSpec state when using the constructor that accepts
-	 * individual objects and not arrays.
-	 */
-	public void testSingleObjectConstructor() {
-		Converter toTarget = new Converter();
-		Converter toModel = new Converter();
-		Validator validator = new Validator();
-		DomainValidator domainValidator = new DomainValidator();
-		Integer modelPolicy = new Integer(0);
-		Integer targetPolicy = new Integer(1);
-		Integer validatePolicy = new Integer(2);
-
-		BindSpec spec = new BindSpec(toTarget, toModel, validator,
-				domainValidator, modelPolicy, validatePolicy, targetPolicy);
-
-		assertEquals(toTarget, spec.getModelToTargetConverter());
-		assertEquals(toModel, spec.getTargetToModelConverter());
-		assertEquals(validator, spec.getTypeConversionValidator());
-		assertEquals(domainValidator, spec.getDomainValidator());
-		assertEquals(modelPolicy, spec.getModelUpdatePolicy());
-		assertEquals(targetPolicy, spec.getTargetUpdatePolicy());
-		assertEquals(validatePolicy, spec.getValidatePolicy());
-		assertTrue(spec.updateModel());
-		assertTrue(spec.updateTarget());
-	}
-
-	/**
-	 * Asserts the BindSpec state when using the constructor that accepts
-	 * arrays.
-	 */
-	public void testArrayConstructor() {
-		Converter[] toTarget = new Converter[] { new Converter() };
-		Converter[] toModel = new Converter[] { new Converter() };
-		Validator[] validator = new Validator[] { new Validator() };
-		DomainValidator domainValidator = new DomainValidator();
-		Integer modelPolicy = new Integer(0);
-		Integer targetPolicy = new Integer(1);
-		Integer validatePolicy = new Integer(2);
-
-		BindSpec spec = new BindSpec(toTarget, toModel, validator,
-				domainValidator, modelPolicy, validatePolicy, targetPolicy);
-		assertEquals(toTarget, spec.getModelToTargetConverters());
-		assertEquals(toModel, spec.getTargetToModelConverters());
-		assertEquals(validator, spec.getTypeConversionValidators());
-		assertEquals(domainValidator, spec.getDomainValidator());
-		assertEquals(modelPolicy, spec.getModelUpdatePolicy());
-		assertEquals(targetPolicy, spec.getTargetUpdatePolicy());
-		assertEquals(validatePolicy, spec.getValidatePolicy());
-		assertTrue(spec.updateModel());
-		assertTrue(spec.updateTarget());
-	}
-
-	/**
-	 * Asserts that when a validator is set it will always be the sole validator
-	 * and will remove any existing validators.
-	 */
-	public void testSetValidator() {
-		BindSpec spec = new BindSpec();
-
-		IValidator v1 = new Validator();
-		IValidator v2 = new Validator();
-
-		spec.setValidators(new IValidator[] { v1, v2 });
-		assertEquals(2, spec.getTypeConversionValidators().length);
-
-		IValidator v3 = new Validator();
-		spec.setValidator(v3);
-		assertEquals(1, spec.getTypeConversionValidators().length);
-		assertSame(v3, spec.getTypeConversionValidator());
-		assertSame(v3, spec.getTypeConversionValidators()[0]);
-	}
-
-	/**
-	 * Asserts that when <code>null</code> getTypeConverstionValidator() will
-	 * return <code>null</code> and getTypeConversionValidators returns an
-	 * empty array.
-	 */
-	public void testGetNullValidator() {
-		BindSpec spec = new BindSpec();
-		spec.setValidator(null);
-		assertNull(spec.getTypeConversionValidator());
-		assertEquals(0, spec.getTypeConversionValidators().length);
-	}
-
-	/**
-	 * Asserts that when a model to target converter is set it will always be
-	 * the sole converter and will remove any existing converters.
-	 */
-	public void testSetModelToTargetConverter() {
-		BindSpec spec = new BindSpec();
-
-		IConverter c1 = new Converter();
-		IConverter c2 = new Converter();
-
-		spec.setModelToTargetConverters(new IConverter[] { c1, c2 });
-		assertEquals(2, spec.getModelToTargetConverters().length);
-
-		IConverter c3 = new Converter();
-		spec.setModelToTargetConverter(c3);
-		assertEquals(1, spec.getModelToTargetConverters().length);
-		assertSame(c3, spec.getModelToTargetConverter());
-		assertSame(c3, spec.getModelToTargetConverters()[0]);
-	}
-
-	/**
-	 * Asserts that when <code>null</code> getModelToTargetConverter() will
-	 * return <code>null</code> and getModelToTargetConverters() returns an
-	 * empty array.
-	 */
-	public void testGetNullModelToTargetConverter() {
-		BindSpec spec = new BindSpec();
-
-		spec.setModelToTargetConverter(null);
-		assertNull(spec.getModelToTargetConverter());
-		assertEquals(0, spec.getModelToTargetConverters().length);
-	}
-
-	/**
-	 * Asserts that when a target to model converter is set it will always be
-	 * the sole converter and will remove any existing converters.
-	 */
-	public void testSetTargetToModelConverter() {
-		BindSpec spec = new BindSpec();
-
-		IConverter c1 = new Converter();
-		IConverter c2 = new Converter();
-
-		spec.setTargetToModelConverters(new IConverter[] { c1, c2 });
-		assertEquals(2, spec.getTargetToModelConverters().length);
-
-		IConverter c3 = new Converter();
-		spec.setTargetToModelConverter(c3);
-		assertEquals(1, spec.getTargetToModelConverters().length);
-		assertSame(c3, spec.getTargetToModelConverter());
-		assertSame(c3, spec.getTargetToModelConverters()[0]);
-	}
-
-	/**
-	 * Asserts that when <code>null</code> getTargetToModelConverter() will
-	 * return <code>null</code> and getTargetToModelConverters() returns an
-	 * empty array.
-	 * 
-	 */
-	public void testGetNullTargetToModelConverter() {
-		BindSpec spec = new BindSpec();
-		spec.setTargetToModelConverter(null);
-		assertNull(spec.getTargetToModelConverter());
-		assertEquals(0, spec.getTargetToModelConverters().length);
-	}
-
-	private class Converter implements IConverter {
-		public Object convert(Object fromObject) {
-			return null;
-		}
-
-		public Object getFromType() {
-			return null;
-		}
-
-		public Object getToType() {
-			return null;
-		}
-	}
-
-	private class Validator implements IValidator {
-		public ValidationError isPartiallyValid(Object value) {
-			return null;
-		}
-
-		public ValidationError isValid(Object value) {
-			return null;
-		}
-	}
-
-	private class DomainValidator implements IDomainValidator {
-		public ValidationError isValid(Object value) {
-			return null;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindingTestSuite.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindingTestSuite.java
deleted file mode 100644
index 93d6f11..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindingTestSuite.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
- *     Brad Reynolds - bugs 137877, 152543, 152540
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.jface.internal.databinding.provisional.conversion.IdentityConverterTest;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactoryBooleanPrimitiveTest;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactoryBytePrimitiveTest;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactoryDoublePrimitiveTest;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactoryFloatPrimitiveTest;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactoryIntTest;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactoryLongPrimitiveTest;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactoryShortPrimitiveTest;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactoryTest;
-import org.eclipse.jface.internal.databinding.provisional.validation.ObjectToPrimitiveValidatorTest;
-import org.eclipse.jface.tests.databinding.mask.EditMaskLexerAndTokenTest;
-import org.eclipse.jface.tests.databinding.observable.value.WritableValueTest;
-import org.eclipse.jface.tests.databinding.scenarios.BindingScenariosTestSuite;
-import org.eclipse.jface.tests.databinding.util.MocksTest;
-import org.eclipse.jface.tests.examples.model.PersonTests;
-import org.eclipse.jface.tests.internal.databinding.internal.ValueBindingTest;
-import org.eclipse.jface.tests.internal.databinding.internal.observable.UnmodifiableObservableListTest;
-import org.eclipse.jface.tests.internal.databinding.internal.viewers.SVOCWLTest;
-import org.eclipse.jface.tests.internal.databinding.internal.viewers.SelectionProviderSingleSelectionObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.provisional.observable.AbstractObservableTest;
-import org.eclipse.jface.tests.internal.databinding.provisional.observable.ObservablesTest;
-import org.eclipse.jface.tests.internal.databinding.provisional.viewers.ViewersObservableFactoryTest;
-
-public class BindingTestSuite extends TestSuite {
-
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(suite());
-	}
-
-	public static Test suite() {
-		return new BindingTestSuite();
-	}
-
-	public BindingTestSuite() {
-		addTestSuite(ObservableTest.class);
-		addTestSuite(JavaBeansScalarObservableValueFactoryTest.class);
-		addTestSuite(DatabindingContextTest.class);
-		addTestSuite(DefaultBindSupportFactoryTest.class);
-		addTestSuite(IDiffsTest.class);
-		addTestSuite(BindSpecTests.class);
-		// addTestSuite(ObservableCollectionTest.class);
-		addTestSuite(SelectionAwareObservableCollectionTest.class);
-		addTest(BindingScenariosTestSuite.suite());
-		addTestSuite(DefaultBindSupportFactoryIntTest.class);
-		addTestSuite(DefaultBindSupportFactoryDoublePrimitiveTest.class);
-		addTestSuite(DefaultBindSupportFactoryBytePrimitiveTest.class);
-		addTestSuite(DefaultBindSupportFactoryLongPrimitiveTest.class);
-		addTestSuite(DefaultBindSupportFactoryShortPrimitiveTest.class);
-		addTestSuite(DefaultBindSupportFactoryBooleanPrimitiveTest.class);
-		addTestSuite(DefaultBindSupportFactoryFloatPrimitiveTest.class);
-		addTestSuite(ObjectToPrimitiveValidatorTest.class);
-		addTestSuite(IdentityConverterTest.class);
-		addTestSuite(LazyListBindingTest.class);
-		addTestSuite(EventEditorObservableLazyDataRequestorTest.class);
-		addTestSuite(EditMaskLexerAndTokenTest.class);
-		addTestSuite(SelectionProviderSingleSelectionObservableValueTest.class);
-		addTestSuite(SVOCWLTest.class);
-		addTestSuite(ViewersObservableFactoryTest.class);
-		addTestSuite(AbstractObservableTest.class);
-		addTestSuite(MocksTest.class);
-		addTestSuite(PersonTests.class);
-		addTestSuite(WritableValueTest.class);
-		addTestSuite(ValueBindingTest.class);
-		addTestSuite(UnmodifiableObservableListTest.class);
-		addTestSuite(ObservablesTest.class);
-	}
-
-	/**
-	 * @param testCase
-	 *            TODO
-	 * @return true if the given test is temporarily disabled
-	 */
-	public static boolean failingTestsDisabled(TestCase testCase) {
-		System.out.println("Ignoring disabled test: "
-				+ testCase.getClass().getName() + "." + testCase.getName());
-		return true;
-	}
-
-	/**
-	 * @param testSuite
-	 *            TODO
-	 * @return true if the given test is temporarily disabled
-	 */
-	public static boolean failingTestsDisabled(TestSuite testSuite) {
-		System.out.println("Ignoring disabled test: "
-				+ testSuite.getClass().getName() + "." + testSuite.getName());
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/CalculatedValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/CalculatedValueTest.java
deleted file mode 100644
index e40e9d6..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/CalculatedValueTest.java
+++ /dev/null
@@ -1,184 +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.databinding;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.value.ComputedValue;
-import org.eclipse.jface.databinding.observable.value.WritableValue;
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-
-/**
- * @since 1.0
- * 
- */
-public class CalculatedValueTest extends TestCase {
-	public void test_ctor() throws Exception {
-		ComputedValue cv = new ComputedValue() {
-			protected Object calculate() {
-				return new Integer(42);
-			}
-		};
-		assertEquals("value type should be Integer.TYPE", Integer.TYPE, cv
-				.getValueType());
-	}
-
-	public void test_getValue() throws Exception {
-		ComputedValue cv = new ComputedValue() {
-			protected Object calculate() {
-				return new Integer(42);
-			}
-		};
-		assertEquals("Calculated value should be 42", new Integer(42), cv
-				.getValue());
-	}
-
-	public void test_handleChange() throws Exception {
-		final int[] seed = new int[] { 42 };
-		ComputedValue cv = new ComputedValue() {
-			protected Object calculate() {
-				return calcNewValue(seed);
-			}
-		};
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-		seed[0]++;
-		// cv.getObservableChangeListener().handleChange(new ChangeEvent(this,
-		// ChangeEvent.CHANGE, null, null));
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-	}
-
-	private Object calcNewValue(int[] seed) {
-		return new Integer(seed[0] + 2);
-	}
-
-	public void test_hookAndUnhookDependantObservableValues() throws Exception {
-		final int[] seed = new int[] { 42 };
-		ComputedValue cv = new ComputedValue() {
-			protected Object calculate() {
-				return calcNewValue(seed);
-			}
-		};
-		WritableValue test1 = new WritableValue(Integer.TYPE);
-		WritableValue test2 = new WritableValue(Integer.TYPE);
-
-		// Hook observables...
-		// cv.setDependencies(new IObservableValue[] {test1, test2});
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-
-		seed[0]++;
-		test1.setValue(new Integer(0));
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-
-		seed[0]++;
-		test2.setValue(new Integer(0));
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-
-		// Unhook observables...
-		WritableValue test3 = new WritableValue(Integer.TYPE);
-		WritableValue test4 = new WritableValue(Integer.TYPE);
-		// cv.setDependencies(new IObservableValue[] {test3, test4});
-
-		Integer oldValue = (Integer) cv.getValue();
-
-		seed[0]++; // Calculation has changed
-		test2.setValue(new Integer(0)); // should not update yet
-		assertEquals("CalculatedValue should be " + oldValue, oldValue, cv
-				.getValue());
-		test3.setValue(new Integer(0)); // This should update
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-
-		seed[0]++;
-		test4.setValue(new Integer(0));
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-	}
-
-	private static class TestModel extends ModelObject {
-		private int a = 0;
-
-		/**
-		 * @return Returns the a.
-		 */
-		public int getA() {
-			return a;
-		}
-
-		/**
-		 * @param a
-		 *            The a to set.
-		 */
-		public void setA(int a) {
-			int oldValue = this.a;
-			this.a = a;
-			firePropertyChange("a", oldValue, a);
-		}
-	}
-
-	public void test_convertToObservables() throws Exception {
-		final int[] seed = new int[] { 42 };
-		ComputedValue cv = new ComputedValue() {
-			protected Object calculate() {
-				return calcNewValue(seed);
-			}
-		};
-		TestModel test1 = new TestModel();
-		TestModel test2 = new TestModel();
-
-		// Hook beans...
-		DataBindingContext dbc = new DataBindingContext();
-		dbc.addObservableFactory(new BeanObservableFactory(dbc, null, null));
-
-		// cv.setDependencies(dbc, new Object[] {new Property(test1, "a"), new
-		// Property(test2, "a")});
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-
-		seed[0]++;
-		test1.setA(1);
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-
-		seed[0]++;
-		test2.setA(2);
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-
-		// Unhook beans...
-		TestModel test3 = new TestModel();
-		TestModel test4 = new TestModel();
-		// cv.setDependencies(dbc, new Object[] {new Property(test3, "a"), new
-		// Property(test4, "a")});
-
-		Integer oldValue = (Integer) cv.getValue();
-
-		seed[0]++;
-		test2.setA(3);
-		assertEquals("CalculatedValue should be " + oldValue, oldValue, cv
-				.getValue());
-		test3.setA(4);
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-
-		seed[0]++;
-		test4.setA(5);
-		assertEquals("CalculatedValue should be " + calcNewValue(seed),
-				calcNewValue(seed), cv.getValue());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/DatabindingContextTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/DatabindingContextTest.java
deleted file mode 100644
index 4449df7..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/DatabindingContextTest.java
+++ /dev/null
@@ -1,662 +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 159539
- *     Brad Reynolds - bug 140644
- *     Brad Reynolds - bug 159940
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.list.IListChangeListener;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.WritableList;
-import org.eclipse.jface.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.databinding.observable.value.WritableValue;
-import org.eclipse.jface.internal.databinding.provisional.BindSpec;
-import org.eclipse.jface.internal.databinding.provisional.Binding;
-import org.eclipse.jface.internal.databinding.provisional.BindingAdapter;
-import org.eclipse.jface.internal.databinding.provisional.BindingEvent;
-import org.eclipse.jface.internal.databinding.provisional.BindingException;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.conversion.ConvertString2Byte;
-import org.eclipse.jface.internal.databinding.provisional.conversion.IConverter;
-import org.eclipse.jface.internal.databinding.provisional.conversion.IdentityConverter;
-import org.eclipse.jface.internal.databinding.provisional.conversion.ToStringConverter;
-import org.eclipse.jface.internal.databinding.provisional.description.NestedProperty;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.IObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.NestedObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.validation.IValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-import org.eclipse.jface.tests.databinding.util.Mocks;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-public class DatabindingContextTest extends TestCase {
-
-	boolean failed = false;
-
-	DataBindingContext dbc;
-
-	IObservableValue observableValueRMock;
-
-	IValidator validatorMock;
-
-	WritableValue settableValue1;
-
-	WritableValue settableValue2;
-
-	Object o1 = new Object();
-
-	Object o2 = new Object();
-
-	private static IConverter identityConverter = new IdentityConverter(
-			Object.class);
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		dbc = DataBindingContext.createContext(new IObservableFactory[0]);
-		observableValueRMock = (IObservableValue) Mocks
-				.createRelaxedMock(IObservableValue.class);
-		validatorMock = (IValidator) Mocks.createMock(IValidator.class);
-		settableValue1 = new WritableValue(Object.class);
-		settableValue2 = new WritableValue(Object.class);
-	}
-
-	protected void tearDown() throws Exception {
-		if (!failed) {
-			Mocks.verify(observableValueRMock);
-			Mocks.verify(validatorMock);
-		}
-		super.tearDown();
-	}
-
-	protected void runTest() throws Throwable {
-		try {
-			super.runTest();
-		} catch (Throwable th) {
-			failed = true;
-			throw th;
-		}
-	}
-
-	public void testRegisterForDispose() {
-		final boolean[] disposeCalled = new boolean[] { false };
-		IObservableValue target = new WritableValue(Integer.TYPE) {
-			public void dispose() {
-				super.dispose();
-				disposeCalled[0] = true;
-			}
-		};
-		WritableValue model = new WritableValue(Integer.TYPE);
-		model.setValue(new Integer(12));
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		final DataBindingContext dbc = DataBindingContext
-				.createContext(new IObservableFactory[] {});
-		registerContextToDispose(shell, dbc);
-		dbc.registerForDispose(target);
-		dbc.registerForDispose(model);
-		dbc.bind(target, model, null);
-		assertEquals("target should now have model's value", 12,
-				((Integer) target.getValue()).intValue());
-		target.setValue(new Integer(9));
-		assertEquals("model should now have target's value", 9,
-				((Integer) model.getValue()).intValue());
-		shell.dispose();
-		display.dispose();
-		assertTrue("dispose should have been called", disposeCalled[0]);
-	}
-
-	private class DisposableObservable extends AbstractObservableValue {
-		protected Object computeValue() {
-			return null;
-		}
-
-		public void setValue(Object value) {
-		}
-
-		public Object getValueType() {
-			return Object.class;
-		}
-
-		protected Object doGetValue() {
-			return null;
-		}
-
-		boolean isDisposed = false;
-
-		public void dispose() {
-			super.dispose();
-			isDisposed = true;
-		}
-
-		public boolean isDisposed() {
-			return isDisposed;
-		}
-	}
-
-	private class DisposableObservableFactory implements IObservableFactory {
-		public IObservable createObservable(Object description) {
-			return new DisposableObservable();
-		}
-	}
-
-	public void testDisposeCalled() {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		DataBindingContext dbc = DataBindingContext
-				.createContext(new IObservableFactory[] { new DisposableObservableFactory() });
-		registerContextToDispose(shell, dbc);
-		DisposableObservable u = (DisposableObservable) dbc
-				.createObservable(null);
-		assertFalse("is not disposed", u.isDisposed());
-		shell.dispose();
-		display.dispose();
-		assertTrue("is disposed", u.isDisposed());
-	}
-
-	private void registerContextToDispose(Shell shell,
-			final DataBindingContext dbc) {
-		shell.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				dbc.dispose();
-			}
-		});
-	}
-
-	public void testBindValueModel() {
-		Mocks.reset(observableValueRMock);
-		observableValueRMock.addValueChangeListener(null);
-		observableValueRMock.getValue();
-		observableValueRMock.getValueType();
-		Mocks.setLastReturnValue(observableValueRMock, Object.class);
-		validatorMock.isValid(null);
-		Mocks.startChecking(observableValueRMock);
-		Mocks.startChecking(validatorMock);
-		dbc.bind(settableValue1, observableValueRMock, new BindSpec(
-				identityConverter, identityConverter, validatorMock, null));
-		Mocks.verify(observableValueRMock);
-	}
-
-	public void testBindValueTarget() {
-		observableValueRMock.addValueChangeListener(null);
-		observableValueRMock.setValue(null);
-		observableValueRMock.getValue();
-		observableValueRMock.getValueType();
-		Mocks.setLastReturnValue(observableValueRMock, Object.class);
-		validatorMock.isValid(null);
-		Mocks.startChecking(observableValueRMock);
-		Mocks.startChecking(validatorMock);
-		dbc.bind(observableValueRMock, settableValue2, new BindSpec(
-				identityConverter, identityConverter, validatorMock, null));
-	}
-
-	public void testBindValuePropagation() {
-		settableValue1.setValue(o1);
-		settableValue2.setValue(o2);
-		dbc.bind(settableValue1, settableValue2, null);
-		assertEquals(o2, settableValue1.getValue());
-		settableValue1.setValue(o1);
-		assertEquals(o1, settableValue2.getValue());
-		settableValue2.setValue(o2);
-		assertEquals(o2, settableValue1.getValue());
-	}
-
-	public void testBindingListeners() {
-		final int[] calls = new int[] { 0, 0 };
-		// this exact sequence of positions are not API and may change from
-		// release to release.
-		// This is just here to check that we got a sane sequence of pipeline
-		// positions
-		// and to catch when the sequence changes when we don't expect it to
-		// change.
-		//
-		// See BindingEvent#pipelinePosition for details.
-		final int[] pipelinePositions = new int[] { 0, 1, 2, 3, 4, 0, 2, 4, 1,
-				0, 1, 2, 0, 2, 4, 1 };
-		settableValue1.setValue(o1);
-		settableValue2.setValue(o2);
-		Binding binding = dbc.bind(settableValue1, settableValue2, null);
-		binding.addBindingEventListener(new BindingAdapter() {
-			public ValidationError bindingEvent(BindingEvent e) {
-				// Make sure we get the right sequence of pipeline positions
-				assertEquals("Unexpected pipeline position at call #"
-						+ calls[0], pipelinePositions[calls[0]],
-						e.pipelinePosition);
-				calls[0]++;
-				return null;
-			}
-		});
-		binding.addBindingEventListener(new BindingAdapter() {
-			public ValidationError bindingEvent(BindingEvent e) {
-				calls[1]++;
-				return null;
-			}
-		});
-		assertEquals(o2, settableValue1.getValue());
-		assertEquals(
-				"Both binding events should be called the same number of times",
-				calls[0], calls[1]);
-		settableValue1.setValue(o1);
-		assertEquals(o1, settableValue2.getValue());
-		assertEquals(
-				"Both binding events should be called the same number of times",
-				calls[0], calls[1]);
-		settableValue2.setValue(o2);
-		assertEquals(
-				"Both binding events should be called the same number of times",
-				calls[0], calls[1]);
-		assertEquals(o2, settableValue1.getValue());
-
-		// Now test forcing an error from the event handler...
-		binding.addBindingEventListener(new BindingAdapter() {
-			public ValidationError bindingEvent(BindingEvent e) {
-				if (e.pipelinePosition == org.eclipse.jface.databinding.BindingEvent.PIPELINE_AFTER_CONVERT) {
-					return ValidationError.error("error");
-				}
-				return null;
-			}
-		});
-		settableValue1.setValue(o1);
-		settableValue2.setValue(o2);
-		assertEquals(
-				"Both binding events should be called the same number of times",
-				calls[0], calls[1]);
-		assertEquals("binding events should be called at least once", true,
-				calls[0] > 0);
-	}
-
-	public void testCollectionBindingListeners() {
-
-		WritableList v1 = new WritableList();
-		WritableList v2 = new WritableList();
-
-		Binding binding = dbc.bind(v1, v2, null);
-		final int[] calls = new int[] { 0 };
-		binding.addBindingEventListener(new BindingAdapter() {
-			public ValidationError bindingEvent(BindingEvent e) {
-				calls[0]++;
-				return null;
-			}
-		});
-
-		v2.add(0, "test");
-		assertBindingCalls(calls);
-		v2.remove(0);
-		assertBindingCalls(calls);
-		v2.add(0, "test2");
-		assertBindingCalls(calls);
-		v2.set(0, "test3");
-		assertBindingCalls(calls);
-	}
-
-	private void assertBindingCalls(final int[] calls) {
-		assertTrue("Should have seen some binding event calls", calls[0] > 0);
-		calls[0] = 0;
-	}
-
-	public void testCreateNestedObservableWithArrays() {
-		// String parentObject = "";
-		// NestedProperty nestedProperty = new NestedProperty(parentObject, new
-		// String[] {"nestedChild1", "nestedChild2", "foo"}, new Class[]
-		// {Integer.class, String.class, Float.class});
-		// DataBindingContext ctx = DataBinding.createContext(new
-		// IObservableFactory[] {new MockObservableFactory(), new
-		// NestedObservableFactory()});
-		// INestedObservableValue observableValue = (INestedObservableValue)
-		// ctx.createObservable(nestedProperty);
-		// assertEquals("The child IObservable does not have the right type.",
-		// Float.class, observableValue.getValueType());
-		//
-		// observableValue = ((INestedObservableValue)
-		// observableValue.getOuterObservableValue());
-		// assertEquals("The child IObservable does not have the right type.",
-		// String.class, observableValue.getValueType());
-		//	
-		// MockObservableValue v = ((MockObservableValue)
-		// observableValue.getOuterObservableValue());
-		// assertEquals("The child IObservable does not have the right getter.",
-		// "nestedChild1", v.getDescription());
-		// assertSame("The child IObservable does not have a correct parent
-		// target object.", parentObject, v.getOuterObservableValue());
-		// assertEquals("The child IObservable does not have the right type.",
-		// Integer.class, v.getType());
-	}
-
-	public void testCreateNestedObservableWithPrototypeClass() {
-		// String parentObject = "";
-		// NestedProperty nestedProperty = new NestedProperty(parentObject,
-		// "nestedChild1.nestedChild2.foo", NestedParent.class);
-		// DataBindingContext ctx = DataBinding.createContext(new
-		// IObservableFactory[] {new MockObservableFactory(), new
-		// NestedObservableFactory()});
-		// INestedObservableValue observableValue = (INestedObservableValue)
-		// ctx.createObservable(nestedProperty);
-		// assertEquals("The child IObservable does not have the right type.",
-		// String.class, observableValue.getValueType());
-		//
-		// observableValue = ((INestedObservableValue)
-		// observableValue.getOuterObservableValue());
-		// assertEquals("The child IObservable does not have the right type.",
-		// NestedChild2.class, observableValue.getValueType());
-		//	
-		// MockObservableValue v = ((MockObservableValue)
-		// observableValue.getOuterObservableValue());
-		// assertEquals("The child IObservable does not have the right getter.",
-		// "nestedChild1", v.getDescription());
-		// assertSame("The child IObservable does not have a correct parent
-		// target object.", parentObject, v.getOuterObservableValue());
-		// assertEquals("The child IObservable does not have the right type.",
-		// NestedChild1.class, v.getType());
-	}
-
-	public void testCreateNestedObservableWithPrototypeClassAndInvalidPath() {
-		String parentObject = "";
-		NestedProperty nestedProperty = new NestedProperty(parentObject,
-				"nestedChild1.nestedChild3.foo", NestedParent.class);
-		try {
-			DataBindingContext ctx = new DataBindingContext();
-			ctx.addObservableFactory(new MockObservableFactory());
-			ctx.addObservableFactory(new NestedObservableFactory(ctx));
-			ctx.createObservable(nestedProperty);
-			fail("Expected binding exception.");
-		} catch (BindingException be) {
-		}
-	}
-	
-	public void testFillBindSpecDefaultsMultipleConvertersAndValidators() throws Exception {
-		DataBindingContext dbc = new DataBindingContext();
-		dbc.addBindSupportFactory(new DefaultBindSupportFactory());
-		
-		BindSpec bs = new BindSpec();
-		bs.setModelToTargetConverters(new IConverter[] {
-				null, new ToStringConverter(), null
-		});
-		bs.setTargetToModelConverters(new IConverter[] {
-				null, new ConvertString2Byte(), null
-		});
-		
-		dbc.fillBindSpecDefaults(dbc, bs, Object.class, Object.class);
-		
-		assertConverterType(bs, 0, IdentityConverter.class, bs.getModelToTargetConverters());
-		assertConverterType(bs, 1, ToStringConverter.class, bs.getModelToTargetConverters());
-		assertConverterType(bs, 2, IdentityConverter.class, bs.getModelToTargetConverters());
-
-		assertConverterType(bs, 0, IdentityConverter.class, bs.getTargetToModelConverters());
-		assertConverterType(bs, 1, ConvertString2Byte.class, bs.getTargetToModelConverters());
-		assertConverterType(bs, 2, IdentityConverter.class, bs.getTargetToModelConverters());
-	}
-
-	public void testWithDefaults() throws Exception {
-	    org.eclipse.jface.databinding.DataBindingContext dbc = new org.eclipse.jface.databinding.DataBindingContext();
-        assertNull("converter should not exist by default", dbc.createConverter(String.class, String.class));
-        
-        dbc = org.eclipse.jface.databinding.DataBindingContext.withDefaults();
-        assertNotNull(dbc);
-        assertNotNull("converter was not initialized with defaults", dbc.createConverter(String.class, String.class));
-	}
-
-    private void assertConverterType(BindSpec bs, int element, Class clazz, IConverter[] converters) {
-		assertEquals("model2target[" + element + "] = identity", clazz, converters[element].getClass());
-	}
-    
-    /**
-     * Asserts that ValidationError is populated and change events are fired
-     * when a Binding that is associated with a context is in error.
-     * 
-     * @throws Exception
-     */
-    public void testValidationError() throws Exception {
-        WritableValue targetObservable = new WritableValue(String.class);
-        WritableValue modelObservable = new WritableValue(String.class);
-
-        final String errorMessage = "error";
-        org.eclipse.jface.databinding.DataBindingContext dbc = org.eclipse.jface.databinding.DataBindingContext.withDefaults();
-        ValueChangeCounter errorCounter = new ValueChangeCounter();
-        ListChangeCounter errorsCounter = new ListChangeCounter();
-
-        IObservableValue error = dbc.getValidationError();
-        error.addValueChangeListener(errorCounter);
-        assertNull(error.getValue());
-
-        IObservableList errors = dbc.getValidationErrors();
-        errors.addListChangeListener(errorsCounter);
-        assertEquals(0, errors.size());
-
-        IValidator validator = new IValidator() {
-            public ValidationError isPartiallyValid(Object value) {
-                return null;
-            }
-
-            public ValidationError isValid(Object value) {
-                return ValidationError.error(errorMessage);
-            }
-        };
-
-        dbc.bindValue(targetObservable,
-                modelObservable,
-                new org.eclipse.jface.databinding.BindSpec().setValidator(validator));
-
-        targetObservable.setValue("");
-        assertNotNull(error.getValue());
-        assertEquals(errorMessage, error.getValue().toString());
-        assertEquals(1, errors.size());
-        assertEquals(1, errorsCounter.count);
-        assertEquals(1, errorCounter.count);
-    }
-
-    /**
-     * Asserts that then
-     * {@link DataBindingContext#bindValue(IObservableValue, IObservableValue, org.eclipse.jface.databinding.BindSpec)}
-     * if invoked the created binding is added to the internal list of bindings.
-     * 
-     * @throws Exception
-     */
-    public void testBindValueAddBinding() throws Exception {
-        WritableValue targetValue = new WritableValue(String.class);
-        WritableValue modelValue = new WritableValue(String.class);
-
-        org.eclipse.jface.databinding.DataBindingContext dbc = org.eclipse.jface.databinding.DataBindingContext.withDefaults();
-        assertNotNull(dbc.getBindings());
-        assertEquals(0, dbc.getBindings().size());
-
-        org.eclipse.jface.databinding.Binding binding = dbc.bindValue(targetValue, modelValue, null);
-        assertNotNull(binding);
-        assertNotNull(dbc.getBindings());
-        assertEquals(1, dbc.getBindings().size());
-        assertEquals(binding, dbc.getBindings().get(0));
-    }
-
-    /**
-     * Asserts that when
-     * {@link DataBindingContext#bindList(IObservableList, IObservableList, org.eclipse.jface.databinding.BindSpec)}
-     * is invoked the created binding is added to the intenal list of bindings.
-     * 
-     * @throws Exception
-     */
-    public void testBindListAddBinding() throws Exception {
-        WritableList targetList = new WritableList(Object.class);
-        WritableList modelList = new WritableList(Object.class);
-
-        org.eclipse.jface.databinding.DataBindingContext dbc = org.eclipse.jface.databinding.DataBindingContext.withDefaults();
-        assertNotNull(dbc.getBindings());
-        assertEquals(0, dbc.getBindings().size());
-
-        org.eclipse.jface.databinding.Binding binding = dbc.bindList(targetList, modelList, null);
-        assertNotNull(binding);
-        assertNotNull(dbc.getBindings());
-        assertEquals(1, dbc.getBindings().size());
-        assertEquals(binding, dbc.getBindings().get(0));
-    }
-
-    public void testGetBindingsImmutability() throws Exception {
-        org.eclipse.jface.databinding.DataBindingContext dbc = org.eclipse.jface.databinding.DataBindingContext.withDefaults();
-        BindingStub binding = new BindingStub(null);
-        dbc.addBinding(binding);
-
-        try {
-            dbc.getBindings().remove(0);
-            fail("exception should have been thrown");
-        } catch (UnsupportedOperationException e) {
-        }
-    }
-    
-    public void testRemoveBinding() throws Exception {
-        BindingStub binding = new BindingStub(null);
-        org.eclipse.jface.databinding.DataBindingContext dbc = org.eclipse.jface.databinding.DataBindingContext.withDefaults();
-        dbc.addBinding(binding);
-        
-        assertTrue("context should contain the binding", dbc.getBindings().contains(binding));
-        assertEquals("context should have been set on the binding", dbc, binding.context);
-        assertTrue("removing the factory should return true", dbc.removeBinding(binding));
-        assertNull("context should have been removed", binding.context);
-        assertFalse("binding should have been removed", dbc.getBindings().contains(binding));
-        assertFalse("when not found false should be returned", dbc.removeBinding(binding));
-    }
-    
-    /**
-     * {@link IValueChangeListener} implementation that counts the times
-     * handleValueChange(...) is invoked.
-     * 
-     * @since 3.2
-     */
-    private static class ValueChangeCounter implements IValueChangeListener {
-        int count;
-
-        public void handleValueChange(IObservableValue source, ValueDiff diff) {
-            count++;
-        }
-    }
-
-    /**
-     * {@link IListChangeListener} implementation that counts the times
-     * handleListChange(...) is invoked.
-     * 
-     */
-    private static class ListChangeCounter implements IListChangeListener {
-        int count;
-
-        public void handleListChange(IObservableList source, ListDiff diff) {
-            count++;
-        }
-    }
-    
-    private static class BindingStub extends org.eclipse.jface.databinding.Binding {
-        org.eclipse.jface.databinding.DataBindingContext context;
-
-        public BindingStub(org.eclipse.jface.databinding.DataBindingContext context) {
-            super(context);
-        }
-        
-        public IObservableValue getPartialValidationError() {
-            return null;
-        }
-
-        public IObservableValue getValidationError() {
-            return null;
-        }
-
-        public void updateModelFromTarget() {            
-        }
-
-        public void updateTargetFromModel() {            
-        }
-
-        public void setDataBindingContext(org.eclipse.jface.databinding.DataBindingContext context) {
-            this.context = context;
-        }
-    }
-	
-	//-------------------------------------------------------------------------
-	// Fixture classes
-	//-------------------------------------------------------------------------
-	
-	public class MockObservableFactory implements IObservableFactory {
-		public IObservable createObservable(Object description) {
-			Property property = (Property) description;
-			return new MockObservableValue(property.getObject(), property
-					.getPropertyID(), property.getPropertyType());
-		}
-	}
-
-	public class MockObservableValue extends AbstractObservableValue {
-		public Object targetObject;
-
-		public Object description;
-
-		private Class type;
-
-		public MockObservableValue(Object targetObject, Object description,
-				Class type) {
-			super();
-			this.targetObject = targetObject;
-			this.description = description;
-			this.type = type;
-		}
-
-		public Object getDescription() {
-			return description;
-		}
-
-		public Class getType() {
-			return type;
-		}
-
-		public Object getOuterObservableValue() {
-			return targetObject;
-		}
-
-		public Object computeValue() {
-			return null;
-		}
-
-		public Object getValueType() {
-			return null;
-		}
-
-		public void setValue(Object value) {
-		}
-
-		protected Object doGetValue() {
-			return null;
-		}
-
-	}
-
-	private class NestedParent {
-		public NestedChild1 getNestedChild1() {
-			return new NestedChild1();
-		}
-	}
-
-	private class NestedChild1 {
-		public NestedChild2 getNestedChild2() {
-			return new NestedChild2();
-		}
-	}
-
-	private class NestedChild2 {
-		public String getFoo() {
-			return "foo";
-		}
-	}
-	
-	
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/EventEditor.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/EventEditor.java
deleted file mode 100644
index d888335..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/EventEditor.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEvent;
-import org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler;
-import org.eclipse.jface.examples.databinding.compositetable.day.CalendarableSelectionChangeListener;
-import org.eclipse.jface.examples.databinding.compositetable.day.NewEvent;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableModel;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventContentProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventCountProvider;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor;
-
-/**
- * A concrete class that implements IEventEditor for testing purposes.
- * <p>
- * Eventually, this could become an abstract parent class for creating 
- * arbitrary new IEventEditor implementations.
- * 
- * @since 3.3
- */
-public class EventEditor implements IEventEditor {
-
-	protected CalendarableModel model = new CalendarableModel();
-
-	// Utilities --------------------------------------------------------------
-	
-	private void fireEvent(CalendarableItemEvent e, List handlers) {
-		for (Iterator i = handlers.iterator(); i.hasNext();) {
-			CalendarableItemEventHandler h = (CalendarableItemEventHandler) i.next();
-			h.handleRequest(e);
-			if (!e.doit) {
-				break;
-			}
-		}
-	}
-	
-	private CalendarableItemEvent calendarableItemEvent(CalendarableItem item) {
-		CalendarableItemEvent e = new CalendarableItemEvent();
-		e.calendarableItem = item;
-		return e;
-	}
-	
-	// Events ----------------------------------------------------------------
-	
-	private List insertHandlers = new ArrayList();
-	
-    public NewEvent fireInsert(Date date, boolean allDayEvent) {
-		CalendarableItem item = new CalendarableItem(date);
-		CalendarableItemEvent e = calendarableItemEvent(item);
-		fireEvent(e, insertHandlers);
-		if (e.doit) {
-			// TODO: Only refresh days that need refreshing
-			refresh();
-			return (NewEvent) e.result;
-		}
-		return null;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#addItemInsertHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void addItemInsertHandler(CalendarableItemEventHandler insertHandler) {
-		insertHandlers.add(insertHandler);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#removeItemInsertHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void removeItemInsertHandler(
-			CalendarableItemEventHandler insertHandler) {
-		insertHandlers.remove(insertHandler);
-	}
-	
-	private List deleteHandlers = new ArrayList();
-
-	public boolean fireDelete(CalendarableItem toDelete) {
-		CalendarableItemEvent e = calendarableItemEvent(toDelete);
-		fireEvent(e, deleteHandlers);
-		if (e.doit) {
-			// TODO: only refresh affected days
-			refresh();
-		}
-		return e.doit;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#addItemDeleteHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void addItemDeleteHandler(CalendarableItemEventHandler deleteHandler) {
-		deleteHandlers.add(deleteHandler);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#removeItemDeleteHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void removeItemDeleteHandler(CalendarableItemEventHandler deleteHandler) {
-		deleteHandlers.remove(deleteHandler);
-	}
-
-	private List editHandlers = new ArrayList();
-	
-	public void fireEdit(CalendarableItem toEdit) {
-		fireEvent(calendarableItemEvent(toEdit), editHandlers);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#addItemEditHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void addItemEditHandler(CalendarableItemEventHandler handler) {
-		editHandlers.add(handler);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#removeItemEditHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void removeItemEditHandler(CalendarableItemEventHandler handler) {
-		editHandlers.remove(handler);
-	}
-	
-	private List disposeHandlers = new ArrayList();
-
-	public void fireDispose(CalendarableItem disposed) {
-		fireEvent(calendarableItemEvent(disposed), disposeHandlers);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#addItemDisposeHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void addItemDisposeHandler(CalendarableItemEventHandler itemDisposeHandler) {
-		disposeHandlers.add(itemDisposeHandler);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#removeItemDisposeHandler(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableItemEventHandler)
-	 */
-	public void removeItemDisposeHandler(CalendarableItemEventHandler itemDisposeHandler) {
-		disposeHandlers.remove(itemDisposeHandler);
-	}
-	
-	// Model stuff ------------------------------------------------------------
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#getNumberOfDays()
-	 */
-	public int getNumberOfDays() {
-		return model.getNumberOfDays();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#getNumberOfDivisionsInHour()
-	 */
-	public int getNumberOfDivisionsInHour() {
-		return model.getNumberOfDivisionsInHour();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setTimeBreakdown(int, int)
-	 */
-	public void setTimeBreakdown(int numberOfDays, int numberOfDivisionsInHour) {
-		model.setTimeBreakdown(numberOfDays, numberOfDivisionsInHour);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setEventContentProvider(org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventContentProvider)
-	 */
-	public void setEventContentProvider(EventContentProvider eventContentProvider) {
-		model.setEventContentProvider(eventContentProvider);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setEventCountProvider(org.eclipse.jface.examples.databinding.compositetable.timeeditor.EventCountProvider)
-	 */
-	public void setEventCountProvider(EventCountProvider eventCountProvider) {
-		model.setEventCountProvider(eventCountProvider);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#setStartDate(java.util.Date)
-	 */
-	public void setStartDate(Date startDate) {
-		List disposedCalendarables = model.setStartDate(startDate);
-		for (Iterator i = disposedCalendarables.iterator(); i.hasNext();) {
-			CalendarableItem element = (CalendarableItem) i.next();
-			fireDispose(element);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#getStartDate()
-	 */
-	public Date getStartDate() {
-		return model.getStartDate();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#refresh(java.util.Date)
-	 */
-	public void refresh(Date date) {
-		model.refresh(date);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#refresh()
-	 */
-	public void refresh() {
-		Date dateToRefresh = getStartDate();
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(dateToRefresh);
-		for (int i=0; i < getNumberOfDays(); ++i) {
-			refresh(gc.getTime());
-			gc.add(Calendar.DATE, 1);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#addSelectionChangeListener(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableSelectionChangeListener)
-	 */
-	public void addSelectionChangeListener(CalendarableSelectionChangeListener l) {
-		// no op
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.examples.databinding.compositetable.timeeditor.IEventEditor#removeSelectionChangeListener(org.eclipse.jface.examples.databinding.compositetable.day.CalendarableSelectionChangeListener)
-	 */
-	public void removeSelectionChangeListener(CalendarableSelectionChangeListener l) {
-		// no op
-	}
-
-}
-
-
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/EventEditorObservableLazyDataRequestorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/EventEditorObservableLazyDataRequestorTest.java
deleted file mode 100644
index aa320db..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/EventEditorObservableLazyDataRequestorTest.java
+++ /dev/null
@@ -1,592 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding;
-
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.list.WritableList;
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.examples.databinding.compositetable.day.NewEvent;
-import org.eclipse.jface.examples.databinding.compositetable.day.binding.EventEditorBindingDescription;
-import org.eclipse.jface.examples.databinding.compositetable.day.binding.EventEditorObservableLazyDataRequestorFactory;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableItem;
-import org.eclipse.jface.examples.databinding.compositetable.timeeditor.CalendarableModel;
-import org.eclipse.jface.internal.databinding.provisional.BindSpec;
-import org.eclipse.jface.internal.databinding.provisional.Binding;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.BeanObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyDeleteEvent;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertEvent;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor.NewObject;
-
-/**
- * This is basically two tests in one.  It's an integration test that makes
- * sure that we can successfully bind EventEditors to JavaBean-style List 
- * objects.  However, since all of the other layers in this binding are also
- * unit-tested, it is also a unit test of the 
- * EventEditorObservableLazyDataRequestor.
- * 
- * @since 3.2
- */
-public class EventEditorObservableLazyDataRequestorTest extends TestCase {
-
-	private EventEditorStub editor;
-	private DataBindingContext dbc;
-
-	private DataBindingContext getDBC() {
-		DataBindingContext dbc = new DataBindingContext();
-		dbc.addBindingFactory(new DefaultBindingFactory());
-		dbc.addObservableFactory(new EventEditorObservableLazyDataRequestorFactory());
-		dbc.addObservableFactory(new BeanObservableFactory(dbc, null, null));
-		dbc.addBindSupportFactory(new DefaultBindSupportFactory());
-		return dbc;
-	}
-
-	private static class EventEditorStub extends EventEditor {
-		public CalendarableModel model() {
-			return model;
-		}
-	}
-	
-	protected static class Event extends ModelObject {
-		public boolean allDay = false;
-		public Date startTime;
-		public Date endTime;
-		public String description;
-		
-		public Event(Date startTime, Date endTime, String description) {
-			this(startTime, endTime, description, false);
-		}
-
-		public Event(Date startTime, Date endTime, String description, boolean isAllDay) {
-			this.startTime = startTime;
-			this.endTime = endTime;
-			this.description = description;
-			this.allDay = isAllDay;
-		}
-
-		public void setDescription(String string) {
-			String oldValue = this.description;
-			description = string;
-			firePropertyChange("description", oldValue, string);
-		}
-
-		public boolean isAllDay() {
-			return allDay;
-		}
-
-		public void setAllDay(boolean allDay) {
-			this.allDay = allDay;
-		}
-
-		public Date getEndTime() {
-			return endTime;
-		}
-
-		public void setEndTime(Date endTime) {
-			this.endTime = endTime;
-		}
-
-		public Date getStartTime() {
-			return startTime;
-		}
-
-		public void setStartTime(Date startTime) {
-			this.startTime = startTime;
-		}
-
-		public String getDescription() {
-			return description;
-		}
-
-	}
-	
-	protected Date time(int month, int day, int hour, int minutes) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(new Date());
-		gc.set(Calendar.MONTH, month);
-		gc.set(Calendar.DATE, day);
-		gc.set(Calendar.HOUR_OF_DAY, hour);
-		gc.set(Calendar.MINUTE, minutes);
-		gc.set(Calendar.SECOND, 0);
-		gc.set(Calendar.MILLISECOND, 0);
-		return gc.getTime();
-	}
-
-	
-	protected Date time(int hour, int minutes) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(new Date());
-		gc.set(Calendar.HOUR_OF_DAY, hour);
-		gc.set(Calendar.MINUTE, minutes);
-		gc.set(Calendar.SECOND, 0);
-		gc.set(Calendar.MILLISECOND, 0);
-		return gc.getTime();
-	}
-
-	protected Date date(int month, int day) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(new Date());
-		gc.set(Calendar.MONTH, month);
-		gc.set(Calendar.DATE, day);
-		gc.set(Calendar.HOUR_OF_DAY, 0);
-		gc.set(Calendar.MINUTE, 0);
-		gc.set(Calendar.SECOND, 0);
-		gc.set(Calendar.MILLISECOND, 0);
-		return gc.getTime();
-	}
-
-    protected Date nextDay(Date date) {
-    	GregorianCalendar gc = new GregorianCalendar();
-    	gc.setTime(date);
-    	gc.add(Calendar.DATE, 1);
-    	return gc.getTime();
-    }
-    
-	private WritableList loadTestDataIntoList(Event[] testData) {
-		WritableList testDataList = new WritableList();
-		for (int event = 0; event < testData.length; event++) {
-			testDataList.add(testData[event]);
-		}
-		return testDataList;
-	}
-	
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		editor = new EventEditorStub();
-		dbc = getDBC();
-	}
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		dbc.dispose();
-	}
-	
-	private CalendarableItem ci(Date startDate, Date startTime, Date endTime, String description) {
-		return ci(startDate, startTime, endTime, description, false);
-	}
-
-	private CalendarableItem ci(Date startDate, String description) {
-		return ci(startDate, startDate, startDate, description, true);
-	}
-
-	private CalendarableItem ci(Date startDate, Date startTime, Date endTime, String description, boolean isAllDay) {
-		CalendarableItem result = new CalendarableItem(startDate);
-		result.setStartTime(startTime);
-		result.setEndTime(endTime);
-		result.setText(description);
-		result.setAllDayEvent(isAllDay);
-		return result;
-	}
-
-	protected Date setToStartOfDay(Date rawDate) {
-		GregorianCalendar gc = new GregorianCalendar();
-    	gc.setTime(rawDate);
-    	gc.set(Calendar.HOUR_OF_DAY, 0);
-    	gc.set(Calendar.MINUTE, 0);
-    	gc.set(Calendar.SECOND, 0);
-    	gc.set(Calendar.MILLISECOND, 0);
-    	return gc.getTime();
-	}
-
-	protected Date setToEndOfDay(Date date) {
-		GregorianCalendar gc = new GregorianCalendar();
-		gc.setTime(date);
-		gc.set(Calendar.HOUR_OF_DAY, 23);
-		gc.set(Calendar.MINUTE, 59);
-		gc.set(Calendar.SECOND, 59);
-		gc.set(Calendar.MILLISECOND, 999);
-		Date time = gc.getTime();
-		return time;
-	}
-	
-	private WritableList makeModel(final Event[] testData) {
-		return loadTestDataIntoList(testData);
-	}
-
-	static class TestModel extends ModelObject {
-		List testDataList;
-		TestModel(List testData) {
-			this.testDataList = testData;
-		}
-
-		public List getTestDataList() {
-			return testDataList;
-		}
-
-		public void setTestDataList(List testDataList) {
-			Object oldValue = this.testDataList;
-			this.testDataList = testDataList;
-			firePropertyChange("testDataList", oldValue, testDataList);
-		}
-	};
-	
-	private Property makeModel(List testData) {
-		Object model = new TestModel(testData); 
-		return new Property(model, "testDataList");
-	}
-
-	private void assertEditorState(
-			EventEditorStub editor, 
-			CalendarableItem[][] itemsInDay) {
-		CalendarableModel cm = editor.model();
-		for (int day=0; day < cm.getNumberOfDays(); ++day) {
-			List calendarables = cm.getCalendarableItems(day);
-			int itemInDay=0;
-			assertEquals("Day " + day + ": list sizes same", itemsInDay[day].length, calendarables.size());
-			for (Iterator calIter = calendarables.iterator(); calIter.hasNext();) {
-				CalendarableItem item = (CalendarableItem) calIter.next();
-				assertEquals("All-day", itemsInDay[day][itemInDay].isAllDayEvent(), item.isAllDayEvent());
-				assertEquals("Text", itemsInDay[day][itemInDay].getText(), item.getText());
-				if (item.isAllDayEvent()) {
-					assertTrue("same day", isSameDay(itemsInDay[day][itemInDay].getStartTime(), item.getStartTime()));
-				} else {
-					assertEquals("Start time", itemsInDay[day][itemInDay].getStartTime(), item.getStartTime());
-					assertEquals("End time", itemsInDay[day][itemInDay].getEndTime(), item.getEndTime());					
-				}
-				++itemInDay;
-			}
-		}
-	}
-	
-	private boolean isSameDay(Date time1, Date time2) {
-		GregorianCalendar gc1 =  new GregorianCalendar();
-		GregorianCalendar gc2 = new GregorianCalendar();
-		gc1.setTime(time1);
-		gc2.setTime(time2);
-		if (gc1.get(Calendar.YEAR) != gc2.get(Calendar.YEAR)) {
-			return false;
-		}		
-		if (gc1.get(Calendar.MONTH) != gc2.get(Calendar.MONTH)) {
-			return false;
-		}		
-		if (gc1.get(Calendar.DATE) != gc2.get(Calendar.DATE)) {
-			return false;
-		}
-		return true;
-	}
-
-	private EventEditorBindingDescription makeBindingDescription() {
-		return new EventEditorBindingDescription(
-				editor, dbc, "startTime", "endTime", "allDay", "description", null, null);
-	}
-	
-
-	// Tests here -------------------------------------------------------------
-
-	public void test_oneDayEvent_onEditorStartDate() throws Exception {
-		editor.setTimeBreakdown(7, 4);
-		editor.setStartDate(date(5, 15));
-		
-		EventEditorBindingDescription editorBindDesc = makeBindingDescription();
-		Event[] testData = new Event[] {
-				new Event (time(5, 15, 5, 45), time(5, 15, 9, 45), "Stand-up mtg")};
-		dbc.bind(editorBindDesc, makeModel(testData), null);
-		assertEditorState(editor, new CalendarableItem[][] {
-				{ci(date(5, 15), time(5, 45), time(9, 45), "Stand-up mtg")},
-				{},
-				{},
-				{},
-				{},
-				{},
-				{}
-		});
-	}
-
-	public void test_addingAndRemovingFromModel() throws Exception {
-		editor.setTimeBreakdown(7, 4);
-		editor.setStartDate(date(5, 15));
-		
-		EventEditorBindingDescription editorBindDesc = makeBindingDescription();
-		Event[] testData = new Event[] {
-				new Event (time(5, 15, 5, 45), time(5, 15, 9, 45), "Stand-up mtg")};
-		WritableList model = makeModel(testData);
-		dbc.bind(editorBindDesc, model, null);	
-		Event event = new Event (time(5, 16, 5, 45), time(5, 16, 9, 45), "Stand-up mtg 2");
-		model.add(event);
-		assertEditorState(editor, new CalendarableItem[][] {
-				{ci(date(5, 15), time(5, 45), time(9, 45), "Stand-up mtg")},
-				{ci(date(5, 16), time(5, 45), time(9, 45), "Stand-up mtg 2")},
-				{},
-				{},
-				{},
-				{},
-				{}
-		});
-		model.remove(event);
-		assertEditorState(editor, new CalendarableItem[][] {
-				{ci(date(5, 15), time(5, 45), time(9, 45), "Stand-up mtg")},
-				{},
-				{},
-				{},
-				{},
-				{},
-				{}
-		});		
-	}
-
-	public void test_oneDayOneEvent_notOnEditorStartDate() throws Exception {
-		editor.setTimeBreakdown(7, 4);
-		editor.setStartDate(date(5, 15));
-		
-		EventEditorBindingDescription editorBindDesc = makeBindingDescription();
-		Event[] testData = new Event[] {
-				new Event (time(5, 16, 5, 45), time(5, 16, 9, 45), "Stand-up mtg")};
-		dbc.bind(editorBindDesc, makeModel(testData), null); 
-		assertEditorState(editor, new CalendarableItem[][] {
-				{},
-				{ci(date(5, 16), time(5, 45), time(9, 45), "Stand-up mtg")},
-				{},
-				{},
-				{},
-				{},
-				{}
-		});
-	}
-
-	public void test_threeDayOneEvent() throws Exception {
-		editor.setTimeBreakdown(7, 4);
-		editor.setStartDate(date(5, 15));
-		
-		EventEditorBindingDescription editorBindDesc = makeBindingDescription();
-		Event[] testData = new Event[] {
-				new Event (time(5, 15, 5, 45), time(5, 17, 9, 45), "Stand-up mtg")};
-		dbc.bind(editorBindDesc, makeModel(testData), null);
-		assertEditorState(editor, new CalendarableItem[][] {
-				{ci(date(5, 15), time(5, 45), setToEndOfDay(date(5, 15)), "Stand-up mtg")},
-				{ci(date(5, 16), setToStartOfDay(date(5, 16)), setToEndOfDay(date(5, 16)), "Stand-up mtg")},
-				{ci(date(5, 17), setToStartOfDay(date(5, 17)), time(9, 45), "Stand-up mtg")},
-				{},
-				{},
-				{},
-				{}
-		});
-	}
-
-	public void test_threeDayOneEvent_notOnEditorStartDate() throws Exception {
-		editor.setTimeBreakdown(7, 4);
-		editor.setStartDate(date(5, 14));
-		
-		EventEditorBindingDescription editorBindDesc = makeBindingDescription();
-		Event[] testData = new Event[] {
-				new Event (time(5, 15, 5, 45), time(5, 17, 9, 45), "Stand-up mtg")};
-		dbc.bind(editorBindDesc, makeModel(testData), null);
-		assertEditorState(editor, new CalendarableItem[][] {
-				{},
-				{ci(date(5, 15), time(5, 45), setToEndOfDay(date(5, 15)), "Stand-up mtg")},
-				{ci(date(5, 16), setToStartOfDay(date(5, 16)), setToEndOfDay(date(5, 16)), "Stand-up mtg")},
-				{ci(date(5, 17), setToStartOfDay(date(5, 17)), time(9, 45), "Stand-up mtg")},
-				{},
-				{},
-				{}
-		});
-	}
-
-
-	public void test_oneDayOneAllDayEvent() throws Exception {
-		editor.setTimeBreakdown(7, 4);
-		editor.setStartDate(date(5, 15));
-		Event[] testData = new Event[] {
-				new Event (time(5, 15, 5, 45), time(5, 15, 9, 45), "Stand-up mtg", true)};
-		EventEditorBindingDescription editorBindDesc = makeBindingDescription();
-		dbc.bind(editorBindDesc, makeModel(testData), null);
-		assertEditorState(editor, new CalendarableItem[][] {
-				{ci(date(5, 15), "Stand-up mtg")},
-				{},
-				{},
-				{},
-				{},
-				{},
-				{}
-		});
-	}
-	
-	public void test_multiDayAllDayEvent() throws Exception {
-		editor.setTimeBreakdown(7, 4);
-		editor.setStartDate(date(5, 15));
-		Event[] testData = new Event[] {
-				new Event (time(5, 15, 5, 45), time(5, 17, 9, 45), "three day mtg", true)};
-		EventEditorBindingDescription editorBindDesc = makeBindingDescription();
-		dbc.bind(editorBindDesc, makeModel(testData), null);
-		assertEditorState(editor, new CalendarableItem[][] {
-				{ci(date(5, 15), "three day mtg")},
-				{ci(date(5, 16), "three day mtg")},
-				{ci(date(5, 17), "three day mtg")},
-				{},
-				{},
-				{},
-				{}
-		});
-	}
-	
-	public void test_bindCalendarableDescription() throws Exception {
-		editor.setTimeBreakdown(7, 4);
-		editor.setStartDate(date(5, 15));
-		Event[] testData = new Event[] {
-				new Event (time(5, 15, 5, 45), time(5, 15, 9, 45), "Stand-up mtg")};
-		List testDataList = loadTestDataIntoList(testData);
-		EventEditorBindingDescription editorBindDesc = makeBindingDescription();
-		dbc.bind(editorBindDesc, makeModel(testDataList), null);
-		assertEditorState(editor, new CalendarableItem[][] {
-				{ci(date(5, 15), time(5, 45), time(9, 45), "Stand-up mtg")},
-				{},
-				{},
-				{},
-				{},
-				{},
-				{}
-		});
-		Event event = (Event) testDataList.get(0);
-		event.setDescription("The quick brown fox jumped over the lazy dog.");
-		
-		List calendarableEvents = editor.model.getCalendarableItems((0));
-		CalendarableItem item = (CalendarableItem) calendarableEvents.get(0);
-		assertEquals("item Text was changed", event.description, item.getText());
-	}
-	
-	/**
-	 * Test method for {@link org.eclipse.jface.examples.databinding.compositetable.day.binding.EventEditorObservableLazyDataRequestor#dispose()}.
-	 */
-	public void testDispose() {
-		editor.setTimeBreakdown(7, 4);
-		editor.setStartDate(date(5, 14));
-		
-		EventEditorBindingDescription editorBindDesc = makeBindingDescription();
-		Event[] testData = new Event[] {
-				new Event (time(5, 15, 5, 45), time(5, 17, 9, 45), "Stand-up mtg")};
-		dbc.bind(editorBindDesc, makeModel(testData), null);
-		
-		List daysToDispose = new LinkedList();
-		for (int day=0; day < 7; ++day) {
-			List calendarables = editor.model().getCalendarableItems(day);
-			if (calendarables != null) {
-				daysToDispose.addAll(calendarables);
-			}
-		}
-		
-		editor.setStartDate(date(5, 1));
-		
-		for (Iterator disposedDaysIter = daysToDispose.iterator(); disposedDaysIter.hasNext();) {
-			CalendarableItem item = (CalendarableItem) disposedDaysIter.next();
-			List bindingList = (List) item.getData("BindingBinding");
-			for (Iterator bindingListIter = bindingList.iterator(); bindingListIter.hasNext();) {
-				Binding binding = (Binding) bindingListIter.next();
-				assertTrue("should be disposed", binding.isDisposed());
-			}
-		}
-	}
-	
-	/**
-	 * Test method for {@link org.eclipse.jface.examples.databinding.compositetable.day.binding.EventEditorObservableLazyDataRequestor#add(int, java.lang.Object)}.
-	 */
-	public void testInsert() {
-		Event[] testData = new Event[] {
-				new Event (time(5, 15, 5, 45), time(5, 15, 9, 45), "Stand-up mtg")};
-		final WritableList model = makeModel(testData);
-		
-		LazyInsertDeleteProvider insertDeleteProvider = new LazyInsertDeleteProvider() {
-			public NewObject insertElementAt(LazyInsertEvent e) {
-				Event event = new Event(time(5, 17, 5, 45), time(5, 17, 9, 45), "Stand-up mtg 3");
-				model.add(e.positionHint, event);
-				return new NewObject(e.positionHint, event);
-			}
-			
-			public void deleteElementAt(LazyDeleteEvent e) {
-			}
-		};
-		
-		editor.setTimeBreakdown(7, 4);
-		editor.setStartDate(date(5, 15));
-		
-		EventEditorBindingDescription editorBindDesc = makeBindingDescription();
-		dbc.bind(editorBindDesc, model, new BindSpec().setLazyInsertDeleteProvider(insertDeleteProvider));	
-		Event event = new Event (time(5, 16, 5, 45), time(5, 16, 9, 45), "Stand-up mtg 2");
-		model.add(event);
-		
-		// Add the third event (to the target via the insertDeleteProvider)
-		NewEvent results = editorBindDesc.editor.fireInsert(date(5, 17), false);
-		
-		assertEquals("start date", time(5, 17, 5, 45), results.startTimeEndTime[0]);
-		assertEquals("end date", time(5, 17, 9, 45), results.startTimeEndTime[1]);
-		
-		assertEditorState(editor, new CalendarableItem[][] {
-				{ci(date(5, 15), time(5, 45), time(9, 45), "Stand-up mtg")},
-				{ci(date(5, 16), time(5, 45), time(9, 45), "Stand-up mtg 2")},
-				{ci(date(5, 17), time(5, 45), time(9, 45), "Stand-up mtg 3")},
-				{},
-				{},
-				{},
-				{}
-		});
-	}
-	
-	/**
-	 * Test method for {@link org.eclipse.jface.examples.databinding.compositetable.day.binding.EventEditorObservableLazyDataRequestor#remove(int)}.
-	 */
-	public void testRemove() {
-		Event[] testData = new Event[] {
-				new Event (time(5, 15, 5, 45), time(5, 15, 9, 45), "Stand-up mtg")};
-		final WritableList model = makeModel(testData);
-		
-		LazyInsertDeleteProvider insertDeleteProvider = new LazyInsertDeleteProvider() {
-			public NewObject insertElementAt(LazyInsertEvent e) {
-				return null;
-			}
-			
-			public boolean canDeleteElementAt(LazyDeleteEvent e) {
-				return true;
-			}
-			
-			public void deleteElementAt(LazyDeleteEvent e) {
-				model.remove(e.position);
-			}
-		};
-		
-		editor.setTimeBreakdown(7, 4);
-		editor.setStartDate(date(5, 15));
-		
-		EventEditorBindingDescription editorBindDesc = makeBindingDescription();
-		dbc.bind(editorBindDesc, model, new BindSpec().setLazyInsertDeleteProvider(insertDeleteProvider));	
-		Event event = new Event (time(5, 16, 5, 45), time(5, 16, 9, 45), "Stand-up mtg 2");
-		model.add(event);
-		
-		boolean result = editorBindDesc.editor.fireDelete((CalendarableItem) editor.model.getCalendarableItems(0).get(0));
-		
-		assertTrue("Could delete", result);
-		
-		assertEditorState(editor, new CalendarableItem[][] {
-				{},
-				{ci(date(5, 16), time(5, 45), time(9, 45), "Stand-up mtg 2")},
-				{},
-				{},
-				{},
-				{},
-				{}
-		});
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/IDiffsTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/IDiffsTest.java
deleted file mode 100644
index 9912417..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/IDiffsTest.java
+++ /dev/null
@@ -1,136 +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.databinding;
-
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.ListDiffEntry;
-import org.eclipse.jface.databinding.observable.set.SetDiff;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-
-/**
- * @since 3.2
- *
- */
-public class IDiffsTest extends TestCase {
-	/**
-	 * Asserts that the {@link SetDiff#toString()} implementation doesn't throw a NPE if any of its properties are <code>null</code>.
-	 */
-	public void test_SetDiff() {
-		SetDiff diff = new SetDiff() {
-			public Set getAdditions() {
-				return null;
-			}
-
-			public Set getRemovals() {
-				return null;
-			}
-		};
-		
-		try {
-			diff.toString();
-			assertTrue(true);
-		} catch (NullPointerException e) {
-			fail("NPE was thrown.");
-		}
-	}
-	
-	/**
-	 * Asserts that the {@link LinkDiffEntry#toString()} implementation doesn't throw a NPE if any of its properties are <code>null</code>.
-	 */
-	public void test_ListDiffEntry() {
-		ListDiffEntry entry = new ListDiffEntry() {
-			public Object getElement() {
-				return null;
-			}
-
-			public int getPosition() {
-				return 0;
-			}
-
-			public boolean isAddition() {
-				return false;
-			}
-		};
-		
-		try {
-			entry.toString();
-			assertTrue(true);
-		} catch (NullPointerException e) {
-			fail("NPE was thrown.");
-		}
-	}
-	
-	/**
-	 * Asserts that the {@link ListDiff#toString()} implementation doesn't throw a NPE if any of its properties are <code>null</code>.
-	 *
-	 */
-	public void test_ListDiff() {
-		ListDiff diff = new ListDiff() {
-			public ListDiffEntry[] getDifferences() {
-				return null;
-			}
-		};
-		
-		try {
-			diff.toString();
-			assertTrue(true);
-		} catch (NullPointerException e) {
-			fail("NPE was thrown.");
-		}
-	}
-	
-	/**
-	 * Asserts that if the {@link ListDiff#toString()} implementation doesn't throw a NEP if the differences contains a <code>null</code> item.
-	 */
-	public void test_ListDiff2() {
-		ListDiff diff = new ListDiff() {
-			public ListDiffEntry[] getDifferences() {
-				return new ListDiffEntry[1];
-			}
-		};
-		
-		try {
-			diff.toString();
-			assertTrue(true);
-		} catch (NullPointerException e) {
-			fail("NPE was thrown.");
-		}
-	}
-	
-	/**
-	 * Asserts that if the {@link ValueDiff#toString()} implementation doesn't throw a NPE if any of its properties are <code>null</code>.
-	 *
-	 */
-	public void test_ValueDiff() {
-		ValueDiff diff = new ValueDiff() {
-			public Object getNewValue() {
-				return null;
-			}
-
-			public Object getOldValue() {
-				return null;
-			}
-		};
-		
-		try {
-			diff.toString();
-			assertTrue(true);
-		} catch (NullPointerException e) {
-			fail("NPE was thrown.");
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/JavaBeansScalarObservableValueFactoryTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/JavaBeansScalarObservableValueFactoryTest.java
deleted file mode 100644
index 5729ab6..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/JavaBeansScalarObservableValueFactoryTest.java
+++ /dev/null
@@ -1,45 +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.databinding;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.beans.JavaBeansScalarObservableValueFactory;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.factories.IObservableFactory;
-
-public class JavaBeansScalarObservableValueFactoryTest extends TestCase {
-   
-   public static class TestBean {
-      private String field = "Hello, world";
-
-      public String getField() {
-         return field;
-      }
-
-      public void setField(String field) {
-         this.field = field;
-      }
-   }
-   
-   public void test_getObservableValue() throws Exception {
-      TestBean test = new TestBean();
-      
-      DataBindingContext dbc = DataBindingContext.createContext(new IObservableFactory[] {
-              new JavaBeansScalarObservableValueFactory()
-        });
-      IObservableValue observable = (IObservableValue) dbc.createObservable(new Property(test, "field"));
-      assertEquals("Hello, world", observable.getValue());
-   }
-   
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/LazyDataRequestor.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/LazyDataRequestor.java
deleted file mode 100644
index 8df3a35..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/LazyDataRequestor.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 The Pampered Chef and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.databinding.observable.AbstractObservable;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyDeleteEvent;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertEvent;
-
-/**
- * @since 3.3
- *
- */
-public class LazyDataRequestor extends AbstractObservable implements ILazyDataRequestor {
-
-	List elementProviders = new ArrayList();
-	List insertDeleteProviders = new ArrayList();
-	List listChangeListeners = new ArrayList();
-	List changeListeners = new ArrayList();
-	List staleListeners = new ArrayList();
-	List windowData = new ArrayList();
-	int size;
-
-	int windowSize;
-	int topRow = 0;
-	
-	public LazyDataRequestor (int windowSize) {
-		this.windowSize = windowSize;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#add(int, java.lang.Object)
-	 */
-	public void add(int position, Object element) {
-		size++;
-		if (position < windowSize) {
-			windowData.add(position, element);
-			windowData.remove(windowData.size()-1);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#remove(int)
-	 */
-	public void remove(int position) {
-		size--;
-		if (position < windowSize) {
-			windowData.remove(position);
-			Object refreshed = fireElementProviders(windowData.size());
-			windowData.add(refreshed);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#addElementProvider(org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider)
-	 */
-	public void addElementProvider(ILazyListElementProvider p) {
-		elementProviders.add(p);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#addInsertDeleteProvider(org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider)
-	 */
-	public void addInsertDeleteProvider(LazyInsertDeleteProvider p) {
-		insertDeleteProviders.add(p);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#removeElementProvider(org.eclipse.jface.internal.databinding.provisional.observable.ILazyListElementProvider)
-	 */
-	public void removeElementProvider(ILazyListElementProvider p) {
-		elementProviders.remove(p);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#removeInsertDeleteProvider(org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider)
-	 */
-	public void removeInsertDeleteProvider(LazyInsertDeleteProvider p) {
-		insertDeleteProviders.remove(p);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor#setSize(int)
-	 */
-	public void setSize(int size) {
-		this.size = size;
-		refresh();
-	}
-
-	private void refresh() {
-		windowData = new ArrayList();
-		for (int i = topRow; i <= windowSize - 1; ++i) {
-			windowData.add(fireElementProviders(i));
-		}
-	}
-
-	private Object fireElementProviders(int index) {
-		for (Iterator epIter = elementProviders.iterator(); epIter.hasNext();) {
-			ILazyListElementProvider p = (ILazyListElementProvider) epIter.next();
-			Object result = p.get(index);
-			if (result != null) {
-				return result;
-			}
-		}
-		throw new IndexOutOfBoundsException("Request for a nonexistent element");
-	}
-	
-	private NewObject fireInsert(Object initializationData) {
-		for (Iterator iter = insertDeleteProviders.iterator(); iter.hasNext();) {
-			LazyInsertDeleteProvider p = (LazyInsertDeleteProvider) iter.next();
-			NewObject result = p.insertElementAt(new LazyInsertEvent(0, initializationData));
-			if (result != null) {
-				return result;
-			}
-		}
-		return null;
-	}
-	
-	private boolean fireDelete(int position) {
-		for (Iterator iter = insertDeleteProviders.iterator(); iter.hasNext();) {
-			LazyInsertDeleteProvider p = (LazyInsertDeleteProvider) iter.next();
-			boolean result = p.canDeleteElementAt(new LazyDeleteEvent(position));
-			if (result) {
-				p.deleteElementAt(new LazyDeleteEvent(position));
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	public void requestInsert(Object initializationData) {
-		NewObject result = fireInsert(initializationData);
-		if (result.position < windowSize) {
-			refresh();
-		}
-	}
-	
-	public void requestDelete(int position) {
-		if (fireDelete(position) && position < windowSize) {
-			refresh();
-		}
-	}
-	
-	/**
-	 * @return Returns the windowData.
-	 */
-	public List getWindowData() {
-		return windowData;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.internal.databinding.provisional.observable.IObservable#isStale()
-	 */
-	public boolean isStale() {
-		return false;
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/LazyListBindingTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/LazyListBindingTest.java
deleted file mode 100644
index 83391fa..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/LazyListBindingTest.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.jface.tests.databinding;
-
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.list.WritableList;
-import org.eclipse.jface.internal.databinding.provisional.BindSpec;
-import org.eclipse.jface.internal.databinding.provisional.Binding;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.factories.DefaultBindingFactory;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyDeleteEvent;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertDeleteProvider;
-import org.eclipse.jface.internal.databinding.provisional.observable.LazyInsertEvent;
-import org.eclipse.jface.internal.databinding.provisional.observable.ILazyDataRequestor.NewObject;
-
-/**
- * @since 3.2
- *
- */
-public class LazyListBindingTest extends TestCase {
-	
-	/*
-	 * Concerns:
-	 * 
-	 * 1) When the ILazyDataRequestor requests rows, the binding correctly
-	 *    delegates to the ILazyDataProvider and returns the requested
-	 *    rows.
-	 *    
-	 * 2) When an insert or delete request occurs from the ILazyDataRequestor,
-	 *    the binding correctly delegates to its insert/delete handler and
-	 *    does whatever is necessary to avoid CoModificationException after
-	 *    performing the insert or delete.
-	 *    
-	 * 3) When the ILazyDataProvider (normally an IObservableList implementation)
-	 *    sends a change event, the delta is properly processed and the correct
-	 *    rows are added or removed to/from the ILazyDataRequestor.
-	 */
-	
-	private WritableList model;
-	private LazyDataRequestor target;
-	private Binding binding;
-
-	private DataBindingContext getDBC() {
-		DataBindingContext dbc = new DataBindingContext();
-		dbc.addBindingFactory(new DefaultBindingFactory());
-		return dbc;
-	}
-
-	private void compareList(List windowData, String[] strings) {
-		int i = 0;
-		for (Iterator iter = windowData.iterator(); iter.hasNext();) {
-			String element = (String) iter.next();
-			assertTrue("Element not equal: " + element + " <equals> " + strings[i], element.equals(strings[i]));
-			++i;
-		}
-	}
-	
-	private LazyInsertDeleteProvider insertDeleteProvider = new LazyInsertDeleteProvider() {
-		private static final String TWO = "Two";
-		
-		public NewObject insertElementAt(LazyInsertEvent e) {
-			model.add(1, TWO);
-			return new ILazyDataRequestor.NewObject(1, TWO);
-		}
-		
-		public boolean canDeleteElementAt(LazyDeleteEvent e) {
-			return true;
-		}
-		
-		public void deleteElementAt(LazyDeleteEvent e) {
-			model.remove(e.position);
-		}
-	};
-	
-	protected void setUp() throws Exception {
-		model = new WritableList(String.class);
-		model.add("Un");
-		model.add("Deux");
-		model.add("Trois");
-		model.add("Quatre");
-		model.add("Cinq");
-		target = new LazyDataRequestor(3);
-		
-		DataBindingContext dbc = getDBC();
-		
-		binding = dbc.bind(target, model, new BindSpec().setLazyInsertDeleteProvider(insertDeleteProvider));
-	}
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		binding.dispose();
-	}
-	
-	public void testSetSize_ElementProviderHasTheRightStuff() throws Exception {
-		compareList(target.getWindowData(), new String[] {"Un", "Deux", "Trois"});
-	}
-
-	public void testInsertAndDeleteFromTarget() throws Exception {
-		target.requestInsert(null);
-		compareList(target.getWindowData(), new String[] {"Un", "Two", "Deux"});
-		compareList(model, new String[] {"Un", "Two", "Deux", "Trois", "Quatre", "Cinq"});
-		target.requestDelete(1);
-		compareList(target.getWindowData(), new String[] {"Un", "Deux", "Trois"});
-		compareList(model, new String[] {"Un", "Deux", "Trois", "Quatre", "Cinq"});
-		target.requestDelete(1);
-		compareList(target.getWindowData(), new String[] {"Un", "Trois", "Quatre"});
-		compareList(model, new String[] {"Un", "Trois", "Quatre", "Cinq"});
-	}
-	
-	public void testInsertAndDeleteFromModel() throws Exception {
-		model.add(1, "Two");
-		compareList(target.getWindowData(), new String[] {"Un", "Two", "Deux"});
-		compareList(model, new String[] {"Un", "Two", "Deux", "Trois", "Quatre", "Cinq"});
-		model.remove(1);
-		compareList(target.getWindowData(), new String[] {"Un", "Deux", "Trois"});
-		compareList(model, new String[] {"Un", "Deux", "Trois", "Quatre", "Cinq"});
-		model.remove(1);
-		compareList(target.getWindowData(), new String[] {"Un", "Trois", "Quatre"});
-		compareList(model, new String[] {"Un", "Trois", "Quatre", "Cinq"});
-	}
-}
-
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/ObservableTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/ObservableTest.java
deleted file mode 100644
index ee73dde..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/ObservableTest.java
+++ /dev/null
@@ -1,162 +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.databinding;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.IChangeListener;
-import org.eclipse.jface.databinding.observable.value.WritableValue;
-import org.eclipse.jface.tests.databinding.util.Mocks;
-
-public class ObservableTest extends TestCase {
-
-	private static class MyObservable extends WritableValue {
-		/**
-		 * @param initialValue
-		 */
-		public MyObservable(Object initialValue) {
-			super(initialValue);
-		}
-
-		public void fireChange(Object oldValue, Object newValue) {
-			fireValueChange(Diffs.createValueDiff(oldValue, newValue));
-		}
-
-	}
-
-	private MyObservable observable;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		observable = new MyObservable(null);
-	}
-
-	protected void tearDown() throws Exception {
-		if (observable != null) {
-			try {
-				observable.dispose();
-			} catch (Exception ex) {
-				// ignore
-			}
-		}
-		observable = null;
-		super.tearDown();
-	}
-
-	/*
-	 * Test method for
-	 * 'org.eclipse.jface.databinding.Observable.addChangeListener(IChangeListener)'
-	 */
-	public void testAddChangeListener() {
-		IChangeListener changeListenerMock = (IChangeListener) Mocks
-				.createOrderedMock(IChangeListener.class);
-
-		// testing that no methods on the observable are called when adding the
-		// change listener
-		Mocks.startChecking(changeListenerMock);
-		observable.addChangeListener(changeListenerMock);
-
-		// testing that handleChange is actually called
-		Mocks.reset(changeListenerMock);
-		changeListenerMock.handleChange(null);
-		changeListenerMock.handleChange(null);
-		Mocks.startChecking(changeListenerMock);
-		observable.fireChange(null, null);
-		observable.fireChange(null, null);
-		Mocks.verify(changeListenerMock);
-
-		// testing that handleChange is called just once
-		Mocks.reset(changeListenerMock);
-		changeListenerMock.handleChange(null);
-		Mocks.startChecking(changeListenerMock);
-		observable.fireChange(null, null);
-		Mocks.verify(changeListenerMock);
-
-		// dispose() will call another handleChange. Prevent this from causing a
-		// test failure
-		Mocks.reset(changeListenerMock);
-		changeListenerMock.handleChange(null);
-		Mocks.startChecking(changeListenerMock);
-	}
-
-	/*
-	 * Test method for
-	 * 'org.eclipse.jface.databinding.Observable.removeChangeListener(IChangeListener)'
-	 */
-	public void testRemoveChangeListener() {
-		IChangeListener changeListenerMock = (IChangeListener) Mocks
-				.createOrderedMock(IChangeListener.class);
-
-		// testing that no methods on the observable are called when removing
-		// the
-		// change listener
-		Mocks.startChecking(changeListenerMock);
-		observable.removeChangeListener(changeListenerMock);
-
-		// testing that no methods on the observable are called after adding and
-		// removing the change listener
-		observable.addChangeListener(changeListenerMock);
-		observable.removeChangeListener(changeListenerMock);
-
-		observable.fireChange(null, null);
-	}
-
-	/*
-	 * Test method for
-	 * 'org.eclipse.jface.databinding.Observable.fireChangeEvent(int, Object,
-	 * Object)'
-	 */
-	public void testFireChangeEvent() {
-		// IChangeListener changeListenerMock = (IChangeListener) Mocks
-		// .createMock(IChangeListener.class,
-		// new Mocks.EqualityComparator() {
-		// public boolean equals(Object o1, Object o2) {
-		// ChangeEvent changeEvent1 = (ChangeEvent) o1;
-		// ChangeEvent changeEvent2 = (ChangeEvent) o2;
-		// return changeEvent1.getChangeType() == changeEvent2
-		// .getChangeType()
-		// && changeEvent1.getPosition() == changeEvent2
-		// .getPosition()
-		// && changeEvent1.getOldValue() == changeEvent2
-		// .getOldValue()
-		// && changeEvent1.getNewValue() == changeEvent2
-		// .getNewValue();
-		// }
-		// });
-		// observable.addChangeListener(changeListenerMock);
-		//
-		// Object o1 = new Object();
-		// Object o2 = new Object();
-		//
-		// changeListenerMock.handleChange(new ChangeEvent(observable, 0, null,
-		// null, ChangeEvent.POSITION_UNKNOWN));
-		// changeListenerMock.handleChange(new ChangeEvent(observable, 0, null,
-		// null, 1));
-		// changeListenerMock.handleChange(new ChangeEvent(observable,
-		// ChangeEvent.CHANGE, o1, o2, ChangeEvent.POSITION_UNKNOWN));
-		// changeListenerMock.handleChange(new ChangeEvent(observable,
-		// ChangeEvent.CHANGE, o1, o2, 42));
-		// Mocks.startChecking(changeListenerMock);
-		// observable.fireChange(0, null, null);
-		// observable.fireChange(0, null, null, 1);
-		// observable.fireChange(ChangeEvent.CHANGE, o1, o2);
-		// observable.fireChange(ChangeEvent.CHANGE, o1, o2, 42);
-		// Mocks.verify(changeListenerMock);
-		//
-		// // dispose() will call another handleChange. Prevent this from
-		// causing a test failure
-		// Mocks.reset(changeListenerMock);
-		// changeListenerMock.handleChange(null);
-		// Mocks.startChecking(changeListenerMock);
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/RandomAccessListIteratorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/RandomAccessListIteratorTest.java
deleted file mode 100644
index 4fecfe2..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/RandomAccessListIteratorTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.eclipse.jface.tests.databinding;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.internal.databinding.internal.RandomAccessListIterator;
-
-import junit.framework.TestCase;
-
-public class RandomAccessListIteratorTest extends TestCase {
-
-	private List emptyList = new LinkedList();
-	private RandomAccessListIterator rali0 = new RandomAccessListIterator(emptyList);
-	private List listWithOne;
-	private RandomAccessListIterator rali1;
-	private List list;
-	private RandomAccessListIterator raliN;
-	
-	protected void setUp() throws Exception {
-		listWithOne = new LinkedList();
-		listWithOne.add("Uno");
-		rali1 = new RandomAccessListIterator(listWithOne);
-		list = new LinkedList();
-		list.add("One");
-		list.add("Two");
-		list.add("three");
-		list.add("four");
-		raliN = new RandomAccessListIterator(list);
-	}
-
-	public void testGet_emptyList() {
-		try {
-			rali0.get(0);
-			fail("Should have thrown exception");
-		} catch (IndexOutOfBoundsException e) {
-			// success
-		}
-	}
-
-	public void testGet_withOne() {
-		try {
-			assertEquals("Uno", "Uno", rali1.get(0));
-			
-			rali1.get(1);
-			fail("Should have thrown IndexOutOfBoundsException");
-		} catch (Exception e) {
-			// success
-		}
-	}
-	
-	public void testGet_alreadyAtItem() {
-		assertEquals("one", "One", raliN.get(0));
-	}
-	
-	public void testGet_moveForward() throws Exception {
-		assertEquals("three", "three", raliN.get(2));
-	}
-	
-	public void testGet_moveBackward() throws Exception {
-		raliN.next();
-		raliN.next();
-		assertEquals("one", "One", raliN.get(0));
-	}
-	
-	public void testGet_getLast() throws Exception {
-		assertEquals("four", "four", raliN.get(3));
-	}
-	
-	public void testGet_indexTooHigh() throws Exception {
-		try {
-			raliN.get(4);
-			fail("Should have thrown exception");
-		} catch (IndexOutOfBoundsException e) {
-			// success
-		}
-	}
-
-	public void testGet_indexTooLow() throws Exception {
-		try {
-			raliN.get(-100);
-			fail("Should have thrown exception");
-		} catch (IndexOutOfBoundsException e) {
-			// success
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/SelectionAwareObservableCollectionTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/SelectionAwareObservableCollectionTest.java
deleted file mode 100644
index a6b8247..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/SelectionAwareObservableCollectionTest.java
+++ /dev/null
@@ -1,103 +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.databinding;
-
-import junit.framework.TestCase;
-
-public class SelectionAwareObservableCollectionTest extends TestCase {
-
-	/*
-	 * FIXME: Rewrite to the new java.util.List API
-	 */
-	public void testGetElementsAndSetElements() {
-//		TestSelectionObservableCollection collection = new TestSelectionObservableCollection();
-//		String string1 = "string1";
-//		String string2 = "string2";
-//		String string3 = "string3";
-//		String string4 = "string4";
-//		String string5 = "string5";
-//		
-//		collection.addElement(string1, 0);
-//		collection.addElement(string2, 1);
-//		collection.setSelectedObject(string1);
-//		
-//		List elementsToUpdate = new ArrayList();
-//		elementsToUpdate.add(string3);
-//		elementsToUpdate.add(string4);
-//		elementsToUpdate.add(string5);
-//		
-//		collection.setElements(elementsToUpdate);
-//		
-//		assertEquals("The collection was not updated to the right size.", 3, collection.getSize());
-//		assertEquals("The wrong element was found in position 0", string3, collection.getElement(0));
-//		assertEquals("The wrong element was found in position 1", string4, collection.getElement(1));
-//		assertEquals("The wrong element was found in position 2", string5, collection.getElement(2));
-//		assertNull("The selected object was not reset as expected", collection.getSelectedObject());
-//		
-//		assertNotSame("The all elements list instance should not be the one provided in the set.", elementsToUpdate, collection.getElements());
-//		
-//		List returnedList = collection.getElements();
-//		assertEquals("The wrong element was found in position 0 of the returned list", string3, returnedList.get(0));
-//		assertEquals("The wrong element was found in position 1 of the returned list", string4, returnedList.get(1));
-//		assertEquals("The wrong element was found in position 2 of the returned list", string5, returnedList.get(2));
-//		
-//		collection.setSelectedObject(string3);
-//		
-//		elementsToUpdate = new ArrayList();
-//		elementsToUpdate.add(string1);
-//		elementsToUpdate.add(string2);
-//		elementsToUpdate.add(string3);
-//		
-//		collection.setElements(elementsToUpdate);
-//		
-//		assertSame("The selected element was not retained.", string3, collection.getSelectedObject());
-	}
-
-//	private class TestSelectionObservableCollection extends SelectionAwareObservableCollection {
-//		private List elements = new ArrayList();
-//		private Object selected;
-//		
-//		public int addElement(Object value, int index) {
-//			elements.add(index, value);
-//			return index;
-//		}
-//
-//		public Object computeElement(int index) {
-//			return elements.get(index);
-//		}
-//
-//		public Class getElementType() {
-//			return Object.class;
-//		}
-//
-//		public int computeSize() {
-//			return elements.size();
-//		}
-//
-//		public void removeElement(int index) {
-//			elements.remove(index);
-//		}
-//
-//		public void setElement(int index, Object value) {
-//			elements.set(index, value);
-//		}
-//
-//		public Object getSelectedObject() {
-//			return selected;
-//		}
-//
-//		public void setSelectedObject(Object object) {
-//			this.selected = object;
-//		}
-//		
-//		
-//	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/mask/EditMaskLexerAndTokenTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/mask/EditMaskLexerAndTokenTest.java
deleted file mode 100644
index af12f2b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/mask/EditMaskLexerAndTokenTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.eclipse.jface.tests.databinding.mask;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.mask.internal.EditMaskLexerAndToken;
-
-public class EditMaskLexerAndTokenTest extends TestCase {
-
-	private EditMaskLexerAndToken token;
-	
-	protected void setUp() throws Exception {
-		token = new EditMaskLexerAndToken();
-	}
-
-	public void testInitWithNumeric() throws Exception {
-		token.initializeEditMask("#", 0);
-		assertTrue("Should accept a digit", token.accept("0"));
-		token.clear();
-		assertTrue("Should accept a digit", token.accept("1"));
-		token.clear();
-		assertTrue("Should accept a digit", token.accept("2"));
-		token.clear();
-		assertTrue("Should accept a digit", token.accept("3"));
-		token.clear();
-		assertTrue("Should accept a digit", token.accept("4"));
-		token.clear();
-		assertTrue("Should accept a digit", token.accept("5"));
-		token.clear();
-		assertTrue("Should accept a digit", token.accept("6"));
-		token.clear();
-		assertTrue("Should accept a digit", token.accept("7"));
-		token.clear();
-		assertTrue("Should accept a digit", token.accept("8"));
-		token.clear();
-		assertTrue("Should accept a digit", token.accept("9"));
-		token.clear();
-		assertFalse("Should not accept an alpha", token.accept("A"));
-		token.clear();
-		assertFalse("Should not accept an alpha", token.accept("z"));
-		assertFalse("Placeholders are not read-only", token.isReadOnly());
-	}
-	
-	public void testInitWithLiteral() throws Exception {
-		token.initializeEditMask("(", 0);
-		assertEquals("Literals automatically set their input", "(", token.getInput());
-		assertFalse("Literals don't accept anything", token.accept("("));
-		assertTrue("literals are read-only", token.isReadOnly());
-		assertTrue("Literals are complete", token.isComplete());
-		assertFalse("Literals cannot accept characters", token.canAcceptMoreCharacters());
-	}
-	
-	public void testInitWithBackslashLiteral() throws Exception {
-		token.initializeEditMask("\\#", 0);
-		assertEquals("Should get backslash literal", "#", token.getInput());
-	}
-	
-	public void testAcceptWithValidInputAndEmpty() throws Exception {
-		token.initializeEditMask("#", 0);
-		assertTrue("Should accept a 0", token.accept("0"));
-	}
-	
-	public void testAcceptWhenParserCannotAcceptMoreCharacters() throws Exception {
-		token.initializeEditMask("#", 0);
-		assertTrue("Should accept a 0", token.accept("0"));
-		assertFalse("Should not accept a 0 -- input full", token.accept("0"));
-	}
-	
-	public void testGetInput() throws Exception {
-		token.initializeEditMask("#", 0);
-		assertTrue("Should accept a #", token.accept("0"));
-		assertEquals(token.getInput(), "0");
-	}
-	
-	public void testClear_withNonLiteral() throws Exception {
-		token.initializeEditMask("#", 0);
-		assertTrue("Should accept a 0", token.accept("0"));
-		assertNotNull("Input should not be null", token.getInput());
-		token.clear();
-		assertNull("Input should be null after clear", token.getInput());
-	}
-	
-	public void testClear_withLiteral() throws Exception {
-		token.initializeEditMask("(", 0);
-		assertNotNull("Input should not be null", token.getInput());
-		token.clear();
-		assertNotNull("Input should still not be null after clear of read-only literal", token.getInput());
-	}
-	
-	public void testIsComplete_withNonLiteral() throws Exception {
-		token.initializeEditMask("#", 0);
-		assertFalse("should not be complete", token.isComplete());
-		token.accept("1");
-		assertTrue("should be complete", token.isComplete());
-		token.clear();
-		assertFalse("should not be complete", token.isComplete());
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/mask/EditMaskParserTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/mask/EditMaskParserTest.java
deleted file mode 100644
index 3382a23..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/mask/EditMaskParserTest.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.jface.tests.databinding.mask;
-
-import org.eclipse.jface.examples.databinding.mask.EditMaskParseException;
-import org.eclipse.jface.examples.databinding.mask.internal.EditMaskParser;
-
-import junit.framework.TestCase;
-
-/**
- * @since 3.2
- *
- */
-public class EditMaskParserTest extends TestCase {
-
-	private EditMaskParser parser;
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		parser = new EditMaskParser("(###) ###-####");
-	}
-
-	/**
-	 * Test method for {@link org.eclipse.jface.examples.databinding.mask.internal.EditMaskParser#EditMaskParser(java.lang.String)}.
-	 */
-	public void testEditMaskParser_validMask() {
-		new EditMaskParser("(###) ###-####");
-	}
-
-	/**
-	 * Test method for {@link org.eclipse.jface.examples.databinding.mask.internal.EditMaskParser#EditMaskParser(java.lang.String)}.
-	 */
-	public void testEditMaskParser_invalidMask() {
-		try {
-			new EditMaskParser("(###) ###-####\\");
-			fail("Should have thrown exception");
-		} catch (EditMaskParseException e) {
-			// success
-		}
-	}
-
-	/**
-	 * Test method for {@link org.eclipse.jface.examples.databinding.mask.internal.EditMaskParser#setInput(java.lang.String)}.
-	 */
-	public void testSetInput() {
-		parser.setInput("63a0) 5*55-1\\212abc9");
-		assertEquals("Unformatted input", "6305551212", parser.getRawResult());
-		assertEquals("Formatted input", "(630) 555-1212", parser.getFormattedResult());
-	}
-
-	/**
-	 * Test method for {@link org.eclipse.jface.examples.databinding.mask.internal.EditMaskParser#setInput(java.lang.String)}.
-	 */
-	public void testSetInput_incomplete() {
-		parser.setInput("6a0) 5*5-1\\12");
-		assertEquals("Unformatted input", "6055112", parser.getRawResult());
-		assertEquals("Formatted input", "(605) 511-2   ", parser.getFormattedResult());
-	}
-
-	/**
-	 * Test method for {@link org.eclipse.jface.examples.databinding.mask.internal.EditMaskParser#isComplete()}.
-	 */
-	public void testIsComplete() {
-		parser.setInput("63a0) 5*55-1\\212");
-		assertTrue("complete", parser.isComplete());
-		parser.setInput("6a0) 5*5-1\\12");
-		assertFalse("incomplete", parser.isComplete());
-	}
-	
-	public void testSetPlaceholder() throws Exception {
-		parser.setInput("6a0) 5*5-1\\12");
-		assertEquals("Formatted input", "(605) 511-2   ", parser.getFormattedResult());
-		parser.setPlaceholder('_');
-		assertEquals("Formatted input", "(605) 511-2___", parser.getFormattedResult());
-	}
-
-	/**
-	 * Test method for {@link org.eclipse.jface.examples.databinding.mask.internal.EditMaskParser#getNextInputPosition(int)}.
-	 */
-	public void testGetNextInputPosition() {
-		assertEquals("Skip leading (", 1, parser.getNextInputPosition(0));
-		assertEquals("Position 1 is good", 1, parser.getNextInputPosition(1));
-		assertEquals("Skip )<space>", 6, parser.getNextInputPosition(4));
-	}
-	
-	public void testGetFirstIncompleteInputPosition() throws Exception {
-		assertEquals("1st position incomplete", 1, parser.getFirstIncompleteInputPosition());
-		parser.setInput("6a0) 5*5-1\\12");
-		assertEquals("11th position incomplete", 11, parser.getFirstIncompleteInputPosition());
-		parser.setInput("63a0) 5*55-1\\212");
-		assertEquals("all complete", -1, parser.getFirstIncompleteInputPosition());
-	}
-}
-
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/observable/value/WritableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/observable/value/WritableValueTest.java
deleted file mode 100644
index 220bd0a..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/observable/value/WritableValueTest.java
+++ /dev/null
@@ -1,60 +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 - bug 158687
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding.observable.value;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.databinding.observable.value.WritableValue;
-
-/**
- * @since 3.2
- */
-public class WritableValueTest extends TestCase {
-    /**
-     * Asserts that ValueChange events are only fired when the value changes.
-     * 
-     * @throws Exception
-     */
-    public void testValueChangeOnlyFiresOnChange() throws Exception {
-        WritableValue writableValue = new WritableValue(null);
-        ValueChangeCounter counter = new ValueChangeCounter();
-        writableValue.addValueChangeListener(counter);
-        
-        assertEquals(0, counter.count);
-        //set same
-        writableValue.setValue(null);
-        assertEquals(0, counter.count);
-        
-        //set different
-        writableValue.setValue("value");
-        assertEquals(1, counter.count);
-        
-        //set same
-        writableValue.setValue("value");
-        assertEquals(1, counter.count);
-        
-        //set different
-        writableValue.setValue(null);
-        assertEquals(2, counter.count);
-    }
-    
-    private static class ValueChangeCounter implements IValueChangeListener {
-        int count;
-
-        public void handleValueChange(IObservableValue source, ValueDiff diff) {
-            count++;
-        }
-    }
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/AutomationUtil.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/AutomationUtil.java
deleted file mode 100644
index 9e881ae..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/AutomationUtil.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.jface.tests.databinding.scenarios;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * COPIED FROM org.eclipse.ui.tests
- * <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.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/BindingScenariosTestSuite.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/BindingScenariosTestSuite.java
deleted file mode 100644
index 4650895..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/BindingScenariosTestSuite.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.tests.databinding.scenarios;
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.jface.tests.databinding.BindingTestSuite;
-import org.eclipse.jface.tests.databinding.swt.AutoSelectTableViewerCollectionExtendedTest;
-import org.eclipse.jface.tests.databinding.swt.AutoSelectTableViewerCollectionTest;
-import org.eclipse.jface.tests.databinding.swt.CComboObservableCollectionTest;
-import org.eclipse.jface.tests.databinding.swt.ComboObservableCollectionTest;
-import org.eclipse.jface.tests.databinding.swt.ListObservableCollectionTest;
-import org.eclipse.jface.tests.databinding.swt.ObservableCollectionViewerTest;
-import org.eclipse.jface.tests.databinding.swt.TableViewerObservableCollectionTest;
-import org.eclipse.jface.tests.databinding.swt.TextObservableValueTests;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * To run this test suite, right-click and select "Run As JUnit Plug-in Test".
- * This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run. You can also run this class as an SWT
- * application.
- */
-public class BindingScenariosTestSuite extends TestSuite {
-
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(suite());
-	}
-
-	private static Display display;
-
-	private static Shell shell;
-
-	public static Test suite() {
-		return new TestSetup(new BindingScenariosTestSuite()) {
-			protected void setUp() throws Exception {
-				Display d = Display.getDefault();
-				if (d == null) {
-					display = new Display();
-					d = display;
-				}
-				shell = new Shell(d, SWT.SHELL_TRIM);
-				shell.setLayout(new FillLayout());
-			}
-
-			protected void tearDown() throws Exception {
-				shell.close();
-				shell.dispose();
-				if (display != null) {
-					display.dispose();
-				}
-			}
-		};
-	}
-
-	public BindingScenariosTestSuite() {
-		addTestSuite(ObservableFactoriesTest.class);
-		addTestSuite(PropertyScenarios.class);
-		addTestSuite(CustomScenarios.class);
-		addTestSuite(CustomConverterScenarios.class);
-		addTestSuite(MasterDetailScenarios.class);
-		addTestSuite(ComboScenarios.class);
-		addTestSuite(TableScenarios.class);
-		addTestSuite(NewTableScenarios.class);
-		addTestSuite(NPETestScenario.class);
-
-		// Test each of the basic SWT controls
-		addTestSuite(TextControlScenario.class);
-		addTestSuite(SpinnerControlScenario.class);
-		addTestSuite(ButtonControlScenario.class);
-		// Test each of the basic JFace controls
-		addTestSuite(ComboViewerScenario.class);
-		addTestSuite(ComboUpdatingTest.class);
-		addTestSuite(ListViewerScenario.class);
-		addTestSuite(TextObservableValueTests.class);
-		if (BindingTestSuite.failingTestsDisabled(this))
-			return;
-		addTestSuite(CComboObservableCollectionTest.class);
-		addTestSuite(ComboObservableCollectionTest.class);
-		addTestSuite(TableViewerObservableCollectionTest.class);
-		addTestSuite(ListObservableCollectionTest.class);
-		addTestSuite(ObservableCollectionViewerTest.class);
-		addTestSuite(AutoSelectTableViewerCollectionTest.class);
-		addTestSuite(AutoSelectTableViewerCollectionExtendedTest.class);
-	}
-
-	public static Shell getShell() {
-		return shell;
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ButtonControlScenario.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ButtonControlScenario.java
deleted file mode 100644
index b673262..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ButtonControlScenario.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.tests.databinding.scenarios;
-
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class ButtonControlScenario extends ScenariosTestCase {
-
-	private Adventure adventure;
-	private Button button;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		// do any setup work here
-		button = new Button(getComposite(), SWT.CHECK);		
-		adventure = SampleData.WINTER_HOLIDAY;
-	}
-
-	protected void tearDown() throws Exception {
-		button.dispose();
-		super.tearDown();
-	}
-
-	public void testScenario01() {
-		// Bind the button's selection to the adventure "isPetsAllowed"
-		getDbc().bind(button, new Property(adventure, "petsAllowed"),null);
-		// Check the model and GUI are in the same state
-		assertEquals(button.getSelection(),adventure.isPetsAllowed());
-		// Change the model and check the GUI is updated
-		boolean newBoolean = !adventure.isPetsAllowed();
-		adventure.setPetsAllowed(newBoolean);
-		assertEquals(newBoolean,adventure.isPetsAllowed());
-		assertEquals(button.getSelection(),newBoolean);
-		// Change the GUI and check the model
-		newBoolean = !newBoolean;
-		button.setSelection(newBoolean);
-		button.notifyListeners(SWT.Selection,null);
-		assertEquals(newBoolean,adventure.isPetsAllowed());
-		newBoolean = !newBoolean;
-		final boolean finalNewBoolean = newBoolean;
-				adventure.setPetsAllowed(finalNewBoolean);
-		spinEventLoop(0);
-		assertEquals(newBoolean,button.getSelection());
-		
-	}
-	
-	public void testScenario02() {
-		// Test with an SWT.Toggle button
-		button.dispose();
-		button = new Button(getComposite(), SWT.TOGGLE);			
-		// Bind the button's selection to the adventure "isPetsAllowed"
-		getDbc().bind(button, new Property(adventure, "petsAllowed"),null);
-		// Check the model and GUI are in the same state
-		assertEquals(button.getSelection(),adventure.isPetsAllowed());
-		// Change the model and check the GUI is updated
-		boolean newBoolean = !adventure.isPetsAllowed();
-		adventure.setPetsAllowed(newBoolean);
-		assertEquals(newBoolean,adventure.isPetsAllowed());
-		assertEquals(button.getSelection(),newBoolean);
-		// Change the GUI and check the model
-		newBoolean = !newBoolean;
-		button.setSelection(newBoolean);
-		button.notifyListeners(SWT.Selection,null);
-		assertEquals(newBoolean,adventure.isPetsAllowed());
-	}
-	
-	public void testScenario03() {
-		// Test with an SWT.Radio button
-		button.dispose();
-		button = new Button(getComposite(), SWT.RADIO);
-		// Bind the button's selection to the adventure "isPetsAllowed"
-		getDbc().bind(button, new Property(adventure, "petsAllowed"),null);
-		// Check the model and GUI are in the same state
-		assertEquals(button.getSelection(),adventure.isPetsAllowed());
-		// Change the model and check the GUI is updated
-		boolean newBoolean = !adventure.isPetsAllowed();
-		adventure.setPetsAllowed(newBoolean);
-		assertEquals(newBoolean,adventure.isPetsAllowed());
-		assertEquals(button.getSelection(),newBoolean);
-		// Change the GUI and check the model
-		newBoolean = !newBoolean;
-		button.setSelection(newBoolean);
-		button.notifyListeners(SWT.Selection,null);
-		assertEquals(newBoolean,adventure.isPetsAllowed());
-	}		
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboScenarios.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboScenarios.java
deleted file mode 100644
index c9dcd3d..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboScenarios.java
+++ /dev/null
@@ -1,528 +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.databinding.scenarios;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Locale;
-
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.WritableList;
-import org.eclipse.jface.examples.databinding.model.Account;
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.Catalog;
-import org.eclipse.jface.examples.databinding.model.Lodging;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.description.ListModelDescription;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersProperties;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Combo;
-
-public class ComboScenarios extends ScenariosTestCase {
-
-	protected ComboViewer cviewer = null;
-
-	protected Combo combo = null;
-
-	protected Catalog catalog = null;
-
-	ILabelProvider lodgingLabelProvider = new LabelProvider() {
-		public String getText(Object element) {
-			return ((Lodging) element).getName();
-		}
-	};
-
-	ILabelProvider accountLabelProvider = new LabelProvider() {
-		public String getText(Object element) {
-			return ((Account) element).getCountry();
-		}
-	};
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		getComposite().setLayout(new FillLayout());
-
-		combo = new Combo(getComposite(), SWT.READ_ONLY | SWT.DROP_DOWN);
-		cviewer = new ComboViewer(combo);
-
-		catalog = SampleData.CATALOG_2005; // Lodging source
-	}
-
-	protected void tearDown() throws Exception {
-		combo.dispose();
-		combo = null;
-		cviewer = null;
-		super.tearDown();
-	}
-
-	protected Object getViewerSelection() {
-		return ((IStructuredSelection) cviewer.getSelection())
-				.getFirstElement();
-	}
-
-	/**
-	 * @return the ComboViewer's domain object list
-	 */
-	protected List getViewerContent(ComboViewer cviewer) {
-		Object[] elements = ((IStructuredContentProvider) cviewer
-				.getContentProvider()).getElements(null);
-		if (elements != null)
-			return Arrays.asList(elements);
-		return null;
-	}
-
-	/**
-	 * 
-	 * @return the combo's items (String[]), which is the same thing as the
-	 *         Viewer's labels
-	 * 
-	 */
-	protected List getComboContent() {
-		String[] elements = combo.getItems();
-		if (elements != null)
-			return Arrays.asList(elements);
-		return null;
-	}
-
-	protected List getColumn(Object[] list, String feature) {
-		List result = new ArrayList();
-		if (list == null || list.length == 0)
-			return result;
-		String getterName = "get"
-				+ feature.substring(0, 1).toUpperCase(Locale.ENGLISH)
-				+ feature.substring(1);
-		try {
-			Method getter = list[0].getClass().getMethod(getterName,
-					new Class[0]);
-			try {
-				for (int i = 0; i < list.length; i++) {
-					result.add(getter.invoke(list[i], new Object[0]));
-				}
-			} catch (IllegalArgumentException e) {
-			} catch (IllegalAccessException e) {
-			} catch (InvocationTargetException e) {
-			}
-		} catch (SecurityException e) {
-		} catch (NoSuchMethodException e) {
-		}
-		return result;
-	}
-
-	/**
-	 * This test case deal with the 3rd scenario, using vanilla bindings: Ensure
-	 * a valid content and selection are bounded correctly Bind a collection of
-	 * Lodgings to a ComboViewer Bind the ComboViewer's selection to the
-	 * defaultLodging of an Adventure
-	 * 
-	 * This test does not deal with null values, empty content, changed content,
-	 * property change of content elements, etc.
-	 * 
-	 */
-	public void test_ROCombo_Scenario03_vanilla() {
-		Adventure skiAdventure = SampleData.WINTER_HOLIDAY; // selection will
-		// change its defaultLodging
-
-		cviewer.setLabelProvider(lodgingLabelProvider);
-		// Bind the ComboViewer's content to the available lodging
-		getDbc().bind(
-				cviewer,
-				new ListModelDescription(new Property(catalog, "lodgings"),
-						"name"), null);
-
-		// Ensure that cv's content now has the catalog's lodgings
-		assertArrayEquals(catalog.getLodgings(), getViewerContent(cviewer)
-				.toArray());
-
-		// Ensure that the cv's labels are the same as the lodging descriptions
-		assertEquals(getColumn(catalog.getLodgings(), "name"),
-				getComboContent());
-
-		// Bind the ComboViewer's selection to the Adventure's default lodging.
-		getDbc().bind(
-				new Property(cviewer, ViewersProperties.SINGLE_SELECTION),
-				new Property(skiAdventure, "defaultLodging"), null);
-
-		// Check to see that the initial selection is the currentDefault Lodging
-		assertEquals(getViewerSelection(), skiAdventure.getDefaultLodging());
-
-		// Change the selection of the ComboViewer to all possible lodgings, and
-		// verify that skiAdventure's default lodging was changed accordingly
-		for (int i = 0; i < catalog.getLodgings().length; i++) {
-			Object selection = catalog.getLodgings()[i];
-			cviewer.setSelection(new StructuredSelection(selection));
-			assertEquals(selection, skiAdventure.getDefaultLodging());
-			assertEquals(getViewerSelection(), skiAdventure.getDefaultLodging());
-		}
-
-	}
-
-	/**
-	 * This test case deal with the 3rd scenario, and focuses on the collection
-	 * binding to the combo. It will bind a collection, add/remove/change
-	 * elements in the collection, and change element's properties to ensure
-	 * that the combo's labels were updated appropriatly.
-	 * 
-	 * it also induce null values in properties, and elments.
-	 * 
-	 * This test does not deal with the combo's selection.
-	 */
-	public void test_ROCombo_Scenario03_collectionBindings() {
-
-		cviewer.setLabelProvider(lodgingLabelProvider); // TODO: need to resolve
-		// column binding
-		// Bind the ComboViewer's content to the available lodging
-		getDbc().bind(
-				cviewer,
-				new ListModelDescription(new Property(catalog, "lodgings"),
-						"name"), null);
-
-		// Ensure that cv's content now has the catalog's lodgings
-		assertArrayEquals(catalog.getLodgings(), getViewerContent(cviewer)
-				.toArray());
-
-		// Ensure that the cv's labels are the same as the lodging descriptions
-		assertEquals(getColumn(catalog.getLodgings(), "name"),
-				getComboContent());
-
-		// Add a lodging in the middle (not supported by the model right now)
-		// Lodging lodging = SampleData.FACTORY.createLodging();
-		// lodging.setName("Middle Lodging");
-		// catalog.addLodging(lodging);
-		// assertEquals(getViewerContent(cviewer).get(2), lodging);
-
-		// Add a lodging at the end
-		Lodging lodging = SampleData.FACTORY.createLodging();
-		lodging.setName("End Lodging");
-		catalog.addLodging(lodging);
-		int index = getComboContent().size() - 1;
-		assertEquals(getViewerContent(cviewer).get(index), lodging);
-
-		// Delete the first Lodging
-		catalog.removeLodging(catalog.getLodgings()[0]);
-		// Ensure that the cv's labels are the same as the lodging descriptions
-		assertEquals(getColumn(catalog.getLodgings(), "name"),
-				getComboContent());
-
-		// Delete middle Lodging
-		catalog.removeLodging(catalog.getLodgings()[2]);
-		// Ensure that the cv's labels are the same as the lodging descriptions
-		assertEquals(getColumn(catalog.getLodgings(), "name"),
-				getComboContent());
-
-		// Change the names of all Lodging
-		for (int i = 0; i < catalog.getLodgings().length; i++) {
-			Lodging l = catalog.getLodgings()[i];
-			l.setName("Changed: " + l.getName());
-		}
-		spinEventLoop(0); // force Async. efforts
-		assertEquals(getColumn(catalog.getLodgings(), "name"),
-				getComboContent());
-
-		// Set to null value
-		Lodging l = catalog.getLodgings()[0];
-		l.setName(null);
-		assertEquals(combo.getItem(0), "");
-
-		// set to empty list
-		while (catalog.getLodgings().length > 0)
-			catalog.removeLodging(catalog.getLodgings()[0]);
-		assertEquals(getColumn(catalog.getLodgings(), "name"),
-				getComboContent());
-
-	}
-
-	/**
-	 * This scenario tests a simple SWT combo with a set item list where the
-	 * selection is bouded to a String property
-	 */
-//	public void test_ROCombo_Scenario01() {
-//
-//		// Read-Only Combo will not change its text property on a call to
-//		// setText()
-//
-//		String[] items = new String[] { "FairyLand", "TuneLand", "NoWereLand",
-//				"TinkerLand", "DreamLand" };
-//		combo.setItems(items);
-//		Account account = catalog.getAccounts()[0];
-//
-//		// simple Combo's selection bound to the Account's country property
-//		getDbc().bind(new Property(combo, SWTProperties.SELECTION),
-//				new Property(account, "country"), null);
-//
-//		// Drive the combo selection
-//		int index = 3;
-//		combo.setText(items[index]); // this should drive the selection
-//		assertEquals(account.getCountry(), items[index]);
-//
-//		// Set the country, and ensure selection is set property
-//		index = 1;
-//		account.setCountry(items[index]);
-//		assertEquals(index, combo.getSelectionIndex());
-//		assertEquals(combo.getText(), items[index]);
-//
-//		index = combo.getSelectionIndex();
-//		String txt = combo.getText();
-//		// Set the country to something that is not in the Combo's list
-//		account.setCountry("FooBar");
-//		// Combo's selection will not Change
-//		assertEquals(combo.getSelectionIndex(), index);
-//		assertEquals(combo.getText(), txt);
-//
-//	}
-
-	/**
-	 * This scenario tests a simple SWT combo that is bound to a list of Country
-	 * objects. The Country object's name property is listed in the Combo.
-	 * 
-	 * The Combo's selection is bounded to the Country property of an Account.
-	 */
-//	public void test_ROCombo_Scenario02_SWTCombo() {
-//
-//		// Create a list of Strings for the countries
-//		IObservableList list = new WritableList();
-//		for (int i = 0; i < catalog.getAccounts().length; i++)
-//			list.add(catalog.getAccounts()[i].getCountry());
-//
-//		// Bind the combo's content to that of the String based list
-//		getDbc().bind(combo, list, null);
-//		assertEquals(Arrays.asList(combo.getItems()), list);
-//
-//		Account account = catalog.getAccounts()[0];
-//
-//		// simple Combo's selection bound to the Account's country property
-//		getDbc().bind(new Property(combo, SWTProperties.SELECTION),
-//				new Property(account, "country"), null);
-//
-//		// Drive the combo selection
-//		String selection = (String) list.get(2);
-//		combo.setText(selection); // this should drive the selection
-//		assertEquals(account.getCountry(), selection);
-//
-//	}
-
-	/**
-	 * This scenario tests a simple SWT combo that is bound to a list of Country
-	 * objects. The Country object's name property is listed in the Combo.
-	 * 
-	 * The Combo's selection is bounded to the Country property of an Account.
-	 */
-//	public void test_ROCombo_Scenario02_ComboViewer() {
-//
-//		// Account label provider will fill the combo with the country
-//		cviewer.setLabelProvider(accountLabelProvider);
-//		// Bind the ComboViewer's content to the available accounts
-//		getDbc().bind(
-//				cviewer,
-//				new ListModelDescription(new Property(catalog, "accounts"),
-//						"country"), null);
-//
-//		// Ensure that cv's content now has the catalog's accounts
-//		assertArrayEquals(catalog.getAccounts(), getViewerContent(cviewer)
-//				.toArray());
-//		// Ensure that the cv's labels are the same as the account countries
-//		assertEquals(getColumn(catalog.getAccounts(), "country"),
-//				getComboContent());
-//
-//		Account account = SampleData.FACTORY.createAccount();
-//
-//		// Use the Viewers visual Combo (Strings) to set the account's country
-//		getDbc().bind(new Property(combo, SWTProperties.SELECTION),
-//				new Property(account, "country"), null);
-//
-//		// Change the selection of the ComboViewer to all possible accounts, and
-//		// verify that the account's Country is being changed correctly.
-//		for (int i = 0; i < catalog.getAccounts().length; i++) {
-//			Account selection = catalog.getAccounts()[i];
-//			cviewer.setSelection(new StructuredSelection(selection));
-//			assertEquals(selection.getCountry(), account.getCountry());
-//		}
-//
-//	}
-
-	/**
-	 * This test ensure that multiple combos can be bound to the same deomain
-	 * model
-	 */
-	public void test_ROCombo_multipleBindings() {
-
-		Adventure skiAdventure = SampleData.WINTER_HOLIDAY; // for selection
-
-		cviewer.setLabelProvider(lodgingLabelProvider); // TODO: need to resolve
-		// column binding
-		// Bind the ComboViewer's content to the available lodging
-		getDbc().bind(
-				cviewer,
-				new ListModelDescription(new Property(catalog, "lodgings"),
-						"name"), null);
-
-		// Ensure that cv's content now has the catalog's lodgings
-		assertArrayEquals(catalog.getLodgings(), getViewerContent(cviewer)
-				.toArray());
-
-		// Ensure that the cv's labels are the same as the lodging descriptions
-		assertEquals(getColumn(catalog.getLodgings(), "name"),
-				getComboContent());
-
-		ComboViewer otherViewer = new ComboViewer(getComposite(), SWT.NONE);
-		otherViewer.setLabelProvider(lodgingLabelProvider);
-		getDbc().bind(otherViewer, new ListModelDescription(new Property(catalog, "lodgings"),"name"), null);
-		// Ensure that cv's content now has the catalog's lodgings
-		assertArrayEquals(catalog.getLodgings(), getViewerContent(otherViewer)
-				.toArray());
-
-		// Bind both selections to the same thing
-		getDbc().bind(
-				new Property(cviewer, ViewersProperties.SINGLE_SELECTION),
-				new Property(skiAdventure, "defaultLodging"), null);
-		getDbc().bind(
-				new Property(otherViewer, ViewersProperties.SINGLE_SELECTION),
-				new Property(skiAdventure, "defaultLodging"), null);
-
-		Lodging lodging = catalog.getLodgings()[0];
-
-		// Ensure that setting the selection is driven forward to the other
-		// combo
-		cviewer.setSelection(new StructuredSelection(lodging));
-		assertEquals(((IStructuredSelection) cviewer.getSelection())
-				.getFirstElement(), ((IStructuredSelection) otherViewer
-				.getSelection()).getFirstElement());
-
-		// Change the list of one combo, and ensure it updates the other combo
-		catalog.removeLodging(lodging);
-		assertEquals(getViewerContent(cviewer), getViewerContent(otherViewer));
-
-	}
-
-	/**
-	 * This scenario tests a simple SWT CCombo that is bound to a list of
-	 * Country objects. The Country object's name property is listed in the
-	 * Combo.
-	 * 
-	 * The Combo's selection is bounded to the Country property of an Account.
-	 */
-	public void test_ROCombo_SWTCCombo() {
-
-		// Create a list of Strings for the countries
-		IObservableList list = new WritableList();
-		for (int i = 0; i < catalog.getAccounts().length; i++)
-			list.add(catalog.getAccounts()[i].getCountry());
-
-		CCombo ccombo = new CCombo(getComposite(), SWT.READ_ONLY
-				| SWT.DROP_DOWN);
-
-		// Bind the combo's content to that of the String based list
-		getDbc().bind(ccombo, list, null);
-		assertEquals(Arrays.asList(ccombo.getItems()), list);
-
-		Account account = catalog.getAccounts()[0];
-
-		// simple Combo's selection bound to the Account's country property
-		getDbc().bind(new Property(ccombo, SWTProperties.SELECTION),
-				new Property(account, "country"), null);
-
-		// Drive the combo selection
-		String selection = (String) list.get(2);
-		ccombo.setText(selection); // this should drive the selection
-		assertEquals(account.getCountry(), selection);
-
-	}
-
-	/**
-	 * This scenario tests a simple SWT CCombo that is bound to a list of
-	 * Country objects. The Country object's name property is listed in the
-	 * Combo.
-	 * 
-	 * The Combo's selection is bounded to the Country property of an Account.
-	 */
-	public void test_WCombo_SWTCCombo() {
-
-		// Create a list of Strings for the countries
-		IObservableList list = new WritableList();
-		for (int i = 0; i < catalog.getAccounts().length; i++)
-			list.add(catalog.getAccounts()[i].getCountry());
-
-		CCombo ccombo = new CCombo(getComposite(), SWT.READ_ONLY
-				| SWT.DROP_DOWN);
-
-		// Bind the combo's content to that of the String based list
-		getDbc().bind(ccombo, list, null);
-		assertEquals(Arrays.asList(ccombo.getItems()), list);
-
-		Account account = catalog.getAccounts()[0];
-
-		// simple Combo's selection bound to the Account's country property
-		getDbc().bind(new Property(ccombo, SWTProperties.SELECTION),
-				new Property(account, "country"), null);
-
-		// Drive the combo selection
-		String selection = (String) list.get(2);
-		ccombo.setText(selection); // this should drive the selection
-		assertEquals(account.getCountry(), selection);
-
-		selection = (String) list.get(1);
-		account.setCountry(selection);
-		assertEquals(selection, ccombo.getItem(ccombo.getSelectionIndex()));
-		assertEquals(selection, ccombo.getText());
-
-		selection = "country not in list";
-		account.setCountry(selection);
-		assertEquals(-1, ccombo.getSelectionIndex());
-		assertEquals(selection, ccombo.getText());
-	}
-
-	/**
-	 * This scenario tests a simple SWT CCombo that is bound to a list of
-	 * Country objects. The Country object's name property is listed in the
-	 * Combo.
-	 * 
-	 * The Combo's selection is bounded to the Country property of an Account.
-	 */
-	public void test_ROCombo_SWTList() {
-
-		// Create a list of Strings for the countries
-		IObservableList list = new WritableList();
-		for (int i = 0; i < catalog.getAccounts().length; i++)
-			list.add(catalog.getAccounts()[i].getCountry());
-
-		org.eclipse.swt.widgets.List swtlist = new org.eclipse.swt.widgets.List(
-				getComposite(), SWT.READ_ONLY | SWT.SINGLE);
-
-		// Bind the combo's content to that of the String based list
-		getDbc().bind(swtlist, list, null);
-		assertEquals(Arrays.asList(swtlist.getItems()), list);
-
-		Account account = catalog.getAccounts()[0];
-
-		// simple Combo's selection bound to the Account's country property
-		getDbc().bind(new Property(swtlist, SWTProperties.SELECTION),
-				new Property(account, "country"), null);
-
-		String selection = (String) list.get(2);
-		swtlist.select(2); // this should drive the selection
-		swtlist.notifyListeners(SWT.Selection, null); // Force notification
-		assertEquals(account.getCountry(), selection);
-
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboUpdatingTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboUpdatingTest.java
deleted file mode 100644
index 1999efb..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboUpdatingTest.java
+++ /dev/null
@@ -1,204 +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.databinding.scenarios;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.internal.databinding.internal.swt.ComboObservableValue;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.tests.databinding.BindingTestSuite;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Combo;
-
-/**
- * @since 3.2
- */
-public class ComboUpdatingTest extends ScenariosTestCase {
-
-	private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
-			this);
-
-	public void addPropertyChangeListener(PropertyChangeListener listener) {
-		propertyChangeSupport.addPropertyChangeListener(listener);
-	}
-
-	public void addPropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
-	}
-
-	public void removePropertyChangeListener(PropertyChangeListener listener) {
-		propertyChangeSupport.removePropertyChangeListener(listener);
-	}
-
-	public void removePropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		propertyChangeSupport.removePropertyChangeListener(propertyName,
-				listener);
-	}
-
-	protected void firePropertyChange(String propertyName, Object oldValue,
-			Object newValue) {
-		propertyChangeSupport.firePropertyChange(propertyName, oldValue,
-				newValue);
-	}
-	
-
-	private Combo comboEditable;
-	//private Combo comboReadOnly;
-	
-	private static final String PROP_TEXT = "text";
-	private String text = "Hello, world";
-	
-	public String getText() {
-		return text;
-	}
-
-	public void setText(String text) {
-		this.text = text;
-	}
-	
-	private static final String PROP_CHOICES = "choices";
-	private List choices = new ArrayList();
-	 {
-		choices.add("Banana");
-		choices.add("Apple");
-		choices.add("Mango");
-	}
-
-	public List getChoices() {
-		return choices;
-	}
-
-	public void setChoices(List choices) {
-		this.choices = choices;
-		firePropertyChange(PROP_CHOICES, null, null);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		getComposite().setLayout(new FillLayout());
-		comboEditable = new Combo(getComposite(), SWT.DROP_DOWN);
-//		comboReadOnly = new Combo(getComposite(), SWT.DROP_DOWN | SWT.READ_ONLY);
-	}
-	
-	//-------------------------------------------------------------------------
-	
-	private static final String NEXT = "Next";
-	public void testBindText() throws Exception {
-		getDbc().bind(new Property(comboEditable, PROP_TEXT), new Property(this, PROP_TEXT), null);
-		spinEventLoop(0);
-		assertEquals("Should find value of text", text, comboEditable.getText());
-		comboEditable.setText(NEXT);
-		spinEventLoop(0);
-		assertEquals("Should find new value in text", NEXT, text);
-	}
-	
-	public void testBindItems_listHasSameItems_editable() throws Exception {
-		if (BindingTestSuite.failingTestsDisabled(this)) {
-			return;
-		}
-		text = "Apple";
-		ComboObservableValue value = (ComboObservableValue) getDbc().createObservable(new Property(comboEditable, PROP_TEXT));
-		getDbc().bind(value, new Property(this, PROP_TEXT), null);
-		spinEventLoop(0);
-		assertEquals("Should find value of text", text, comboEditable.getText());
-		getDbc().bind(value.getItems(), new Property(this, PROP_CHOICES), null);
-//		getDbc().bind(combo, new Property(this, PROP_CHOICES, String.class, Boolean.TRUE), null);
-		spinEventLoop(0);
-		int position = 0;
-		for (Iterator choicesIter = choices.iterator(); choicesIter.hasNext();) {
-			String element = (String) choicesIter.next();
-			assertEquals(element, comboEditable.getItem(position));
-			++position;
-		}
-//		assertEquals("Should find value of text", "Apple", text);
-		assertEquals("Should find value of combo.getText()", "", comboEditable.getText());
-		comboEditable.setText("Banana");
-		spinEventLoop(0);
-		assertEquals("Should find value of text", "Banana", text);
-	}
-
-//	public void testBindItems_listHasSameItems_readOnly() throws Exception {
-//		text = "Apple";
-//		ComboObservableValue value = (ComboObservableValue) getDbc().createObservable(new Property(comboReadOnly, PROP_TEXT));
-//		getDbc().bind(value.getItems(), new Property(this, PROP_CHOICES), null);
-////		getDbc().bind(combo, new Property(this, PROP_CHOICES, String.class, Boolean.TRUE), null);
-//		spinEventLoop(0);
-//		assertEquals("Should find value of text", "Apple", text);
-// 		getDbc().bind(value, new Property(this, PROP_TEXT), null);
-//		spinEventLoop(0);
-//		assertEquals("Should find value of text", "Apple", text);
-//		assertEquals("Should find value of combo.getText()", "Apple", comboReadOnly.getText());
-//		int position = 0;
-//		for (Iterator choicesIter = choices.iterator(); choicesIter.hasNext();) {
-//			String element = (String) choicesIter.next();
-//			assertEquals(element, comboReadOnly.getItem(position));
-//			++position;
-//		}
-//		assertEquals("Should find value of text", "Apple", text);
-//		assertEquals("Should find value of combo.getText()", "Apple", comboReadOnly.getText());
-//		comboReadOnly.setText("Banana");
-//		spinEventLoop(0);
-//		assertEquals("Should find value of text", "Banana", text);
-//	}
-
-	public void testBindItems_listHasDifferentItems_editable() throws Exception {
-		if (BindingTestSuite.failingTestsDisabled(this)) {
-			return;
-		}
-		ComboObservableValue value = (ComboObservableValue) getDbc().createObservable(new Property(comboEditable, PROP_TEXT));
-		getDbc().bind(value, new Property(this, PROP_TEXT), null);
-		spinEventLoop(0);
-		assertEquals("Should find value of text", text, comboEditable.getText());
-		getDbc().bind(value.getItems(), new Property(this, PROP_CHOICES), null);
-//		getDbc().bind(combo, new Property(this, PROP_CHOICES, String.class, Boolean.TRUE), null);
-		spinEventLoop(0);
-		int position = 0;
-		for (Iterator choicesIter = choices.iterator(); choicesIter.hasNext();) {
-			String element = (String) choicesIter.next();
-			assertEquals(element, comboEditable.getItem(position));
-			++position;
-		}
-//		assertEquals("Should find value of text", "Hello, world", text);
-		assertEquals("Should find value of combo.getText()", "", comboEditable.getText());
-		comboEditable.setText("Banana");
-		spinEventLoop(0);
-		assertEquals("Should find value of text", "Banana", text);
-	}
-
-//	public void testBindItems_listHasDifferentItems_readOnly() throws Exception {
-//		ComboObservableValue value = (ComboObservableValue) getDbc().createObservable(new Property(comboReadOnly, PROP_TEXT));
-//		getDbc().bind(value, new Property(this, PROP_TEXT), null);
-//		spinEventLoop(0);
-//		getDbc().bind(value.getItems(), new Property(this, PROP_CHOICES), null);
-////		getDbc().bind(combo, new Property(this, PROP_CHOICES, String.class, Boolean.TRUE), null);
-//		spinEventLoop(0);
-//		int position = 0;
-//		for (Iterator choicesIter = choices.iterator(); choicesIter.hasNext();) {
-//			String element = (String) choicesIter.next();
-//			assertEquals(element, comboReadOnly.getItem(position));
-//			++position;
-//		}
-////		assertEquals("Should find value of text", "Hello, world", text);
-//		assertEquals("Should find value of combo.getText()", "", comboReadOnly.getText());
-//		comboReadOnly.setText("Banana");
-//		spinEventLoop(0);
-//		assertEquals("Should find value of text", "Banana", text);
-//	}
-	
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboViewerScenario.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboViewerScenario.java
deleted file mode 100644
index 53f9d3c..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboViewerScenario.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.jface.tests.databinding.scenarios;
-
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.Catalog;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.description.ListModelDescription;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersProperties;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Combo;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class ComboViewerScenario extends ScenariosTestCase {
-
-	private Catalog catalog;
-
-	private Combo combo;
-
-	private ComboViewer comboViewer;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		// do any setup work here
-		combo = new Combo(getComposite(), SWT.READ_ONLY | SWT.DROP_DOWN);
-		comboViewer = new ComboViewer(combo);
-		catalog = SampleData.CATALOG_2005; // Lodging source
-	}
-
-	protected void tearDown() throws Exception {
-		combo.dispose();
-		combo = null;
-		comboViewer = null;
-		super.tearDown();
-	}
-
-	public void testScenario01() {
-
-		// Bind the catalog's lodgings to the combo
-		getDbc().bind(
-				comboViewer,
-				new ListModelDescription(new Property(catalog, "lodgings"),
-						"name"), null);
-		// Verify that the combo's items are the lodgings
-		for (int i = 0; i < catalog.getLodgings().length; i++) {
-			assertEquals(catalog.getLodgings()[i], comboViewer.getElementAt(i));
-		}
-		// Verify that the String being shown in the combo viewer is the
-		// "toString" of the combo viewer
-		String[] lodgingStrings = new String[catalog.getLodgings().length];
-		for (int i = 0; i < catalog.getLodgings().length; i++) {
-			lodgingStrings[i] = catalog.getLodgings()[i].getName();
-		}
-		assertArrayEquals(lodgingStrings, combo.getItems());
-
-		// Verify that the combo has no selected item
-		assertEquals(null, ((IStructuredSelection) comboViewer.getSelection())
-				.getFirstElement());
-
-		// Now bind the selection of the combo to the "defaultLodging" property
-		// of an adventure
-		final Adventure adventure = SampleData.WINTER_HOLIDAY;
-		getDbc().bind(
-				new Property(comboViewer, ViewersProperties.SINGLE_SELECTION),
-				new Property(adventure, "defaultLodging"), null);
-
-		// Verify that the combo selection is the default lodging
-		assertEquals(((IStructuredSelection) comboViewer.getSelection())
-				.getFirstElement(), adventure.getDefaultLodging());
-
-		// Change the model and verify that the combo selection changes
-		adventure.setDefaultLodging(SampleData.CAMP_GROUND);
-		assertEquals(adventure.getDefaultLodging(), SampleData.CAMP_GROUND);
-		assertEquals(((IStructuredSelection) comboViewer.getSelection())
-				.getFirstElement(), adventure.getDefaultLodging());
-
-		// Change the combo selection and verify that the model changes
-		comboViewer.getCombo().select(3);
-		assertEquals(((IStructuredSelection) comboViewer.getSelection())
-				.getFirstElement(), adventure.getDefaultLodging());
-
-		adventure.setDefaultLodging(SampleData.YOUTH_HOSTEL);
-		spinEventLoop(0);
-		assertEquals(((IStructuredSelection) comboViewer.getSelection())
-				.getFirstElement(), adventure.getDefaultLodging());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanBindSupportFactory.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanBindSupportFactory.java
deleted file mode 100644
index 30c2f51..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanBindSupportFactory.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
- *******************************************************************************/
-// TODO djo: copyright
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import java.lang.reflect.Method;
-
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.conversion.IConverter;
-import org.eclipse.jface.internal.databinding.provisional.factories.BindSupportFactory;
-import org.eclipse.jface.internal.databinding.provisional.validation.IDomainValidator;
-
-/**
- * A BindSupportFactory that will automatically grab validators from an object's
- * properties, if a get&lt;PropertyName>Validator method is defined. Makes it
- * easy to associate validators with the properties that they are responsible
- * for validating.
- * 
- * <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 remain
- * unchanged during the 3.2 release cycle. Please do not use this API without
- * consulting with the Platform/UI team.
- * 
- * @since 3.2
- */
-public class CustomBeanBindSupportFactory extends BindSupportFactory {
-
-	private final DataBindingContext parentContext;
-
-	public CustomBeanBindSupportFactory(DataBindingContext parentContext) {
-		this.parentContext = parentContext;
-	}
-
-	public IConverter createConverter(Object fromType, Object toType) {
-		if (fromType instanceof CustomBeanModelType) {
-			CustomBeanModelType customBeanModelType = (CustomBeanModelType) fromType;
-			fromType = customBeanModelType.getType();
-		}
-		if (toType instanceof CustomBeanModelType) {
-			CustomBeanModelType customBeanModelType = (CustomBeanModelType) toType;
-			toType = customBeanModelType.getType();
-		}
-		return parentContext.createConverter(fromType, toType);
-	}
-
-	public IDomainValidator createDomainValidator(Object modelType) {
-		if (modelType instanceof CustomBeanModelType) {
-			CustomBeanModelType property = (CustomBeanModelType) modelType;
-			String propertyName = property.getPropertyName();
-			String getValidatorMethodName = "get" + upperCaseFirstLetter(propertyName) + "Validator"; //$NON-NLS-1$ //$NON-NLS-2$
-
-			Class objectClass = property.getObject().getClass();
-
-			Method getValidator;
-			try {
-				getValidator = objectClass.getMethod(getValidatorMethodName,
-						new Class[] { Class.class });
-			} catch (Exception e) {
-				return null;
-			}
-
-			try {
-				IDomainValidator result = (IDomainValidator) getValidator
-						.invoke(property.getObject(), new Object[0]);
-				return result;
-			} catch (Exception e) {
-				return null;
-			}
-		}
-		return null;
-	}
-
-	private String upperCaseFirstLetter(String name) {
-		String result = name.substring(0, 1).toUpperCase() + name.substring(1);
-		return result;
-	}
-
-	public Boolean isAssignableFromTo(Object fromType, Object toType) {
-		if (fromType instanceof CustomBeanModelType) {
-			fromType = ((CustomBeanModelType) fromType).getType();
-		}
-		if (toType instanceof CustomBeanModelType) {
-			toType = ((CustomBeanModelType) toType).getType();
-		}
-		return new Boolean(parentContext.isAssignableFromTo(fromType, toType));
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanModelType.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanModelType.java
deleted file mode 100644
index f8af853..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanModelType.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.jface.tests.databinding.scenarios;
-
-/**
- * @since 3.2
- * 
- */
-public class CustomBeanModelType {
-
-	private String propertyName;
-
-	private Object object;
-
-	private Class type;
-
-	/**
-	 * @param object
-	 * @param propertyName
-	 * @param type
-	 */
-	public CustomBeanModelType(Object object, String propertyName, Class type) {
-		this.object = object;
-		this.propertyName = propertyName;
-		this.type = type;
-	}
-
-	/**
-	 * @return
-	 */
-	public String getPropertyName() {
-		return propertyName;
-	}
-
-	/**
-	 * @return
-	 */
-	public Object getObject() {
-		return object;
-	}
-
-	/**
-	 * @return
-	 */
-	public Class getType() {
-		return type;
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanObservableFactory.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanObservableFactory.java
deleted file mode 100644
index e08075d..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanObservableFactory.java
+++ /dev/null
@@ -1,103 +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.databinding.scenarios;
-
-import org.eclipse.jface.databinding.observable.IChangeListener;
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.IStaleListener;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.factories.IObservableFactory;
-
-/**
- * @since 3.2
- * 
- */
-public class CustomBeanObservableFactory implements IObservableFactory {
-
-	private final DataBindingContext parentDataBindingContext;
-
-	public CustomBeanObservableFactory(
-			DataBindingContext parentDataBindingContext) {
-		this.parentDataBindingContext = parentDataBindingContext;
-	}
-
-	public IObservable createObservable(Object description) {
-		IObservable result = parentDataBindingContext
-				.createObservable(description);
-		if (description instanceof Property) {
-			final Property property = (Property) description;
-			if (result instanceof IObservableValue) {
-				final IObservableValue wrapped = (IObservableValue) result;
-				if (wrapped.getValueType() instanceof Class
-						&& property.getPropertyID() instanceof String) {
-					return new IObservableValue() {
-
-						public Object getValueType() {
-							return new CustomBeanModelType(
-									property.getObject(), (String) property
-											.getPropertyID(), (Class) wrapped
-											.getValueType());
-						}
-
-						public Object getValue() {
-							return wrapped.getValue();
-						}
-
-						public void setValue(Object value) {
-							wrapped.setValue(value);
-						}
-
-						public void addValueChangeListener(
-								IValueChangeListener listener) {
-							wrapped.addValueChangeListener(listener);
-						}
-
-						public void removeValueChangeListener(
-								IValueChangeListener listener) {
-							wrapped.removeValueChangeListener(listener);
-						}
-
-						public void addChangeListener(IChangeListener listener) {
-							wrapped.addChangeListener(listener);
-						}
-
-						public void removeChangeListener(
-								IChangeListener listener) {
-							wrapped.removeChangeListener(listener);
-						}
-
-						public void addStaleListener(IStaleListener listener) {
-							wrapped.addStaleListener(listener);
-						}
-
-						public void removeStaleListener(IStaleListener listener) {
-							wrapped.removeStaleListener(listener);
-						}
-
-						public boolean isStale() {
-							return wrapped.isStale();
-						}
-
-						public void dispose() {
-							wrapped.dispose();
-						}
-					};
-				}
-			}
-		}
-		return result;
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomConverterScenarios.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomConverterScenarios.java
deleted file mode 100644
index 7da8ecb..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomConverterScenarios.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.jface.tests.databinding.scenarios;
-
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.PriceModelObject;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTProperties;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class CustomConverterScenarios extends ScenariosTestCase {
-
-	private Adventure skiTrip;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		skiTrip = SampleData.WINTER_HOLIDAY;
-	}
-
-	protected void tearDown() throws Exception {
-		// do any teardown work here
-		super.tearDown();
-	}
-
-	public void testScenario01() {
-
-		Spinner spinner_dollars = new Spinner(getComposite(), SWT.NONE);
-		spinner_dollars.setMaximum(10000);
-		Spinner spinner_cents = new Spinner(getComposite(), SWT.NONE);
-		
-		// The price object is a double which contains both the dollars and cents
-		// To allow this to be worked on with two separate spinner controls (which get and set int values)
-		// an intermediate object is used
-		PriceModelObject priceModel = new PriceModelObject();
-		getDbc().bind(
-				new Property(priceModel,"price"),
-				new Property(skiTrip,"price"),null);
-
-		getDbc().bind(
-				new Property(spinner_dollars,
-						SWTProperties.SELECTION),
-				new Property(priceModel, "dollars"),null);
-
-		getDbc().bind(
-				new Property(spinner_cents,
-						SWTProperties.SELECTION),
-				new Property(priceModel, "cents"),null);
-		// spinEventLoop(1);
-		// Make sure that the selection on the spinner_dollars matches the
-		// dollars of the price
-		assertEquals(spinner_dollars.getSelection(), new Double(skiTrip
-				.getPrice()).intValue());
-		// Make sure that the selection on the spinner_cents matches the dollars
-		// of the price
-		Double doublePrice = new Double(skiTrip.getPrice());
-		double cents = 100*doublePrice.doubleValue() - 100*doublePrice
-				.intValue();
-		assertEquals(spinner_cents.getSelection(), (int) cents);
-
-		// Change the selection on the spinner_dollars to be $50 and make sure
-		// the model is updated with the cents included
-		spinner_dollars.setSelection(50);
-		double expectedPrice = 50 + cents / 100;
-		assertEquals(expectedPrice, skiTrip.getPrice(),0.01);
-
-		// Change the selection on the spinner_cents to be 27 and make sure the
-		// model is updated with the dollars included
-		spinner_cents.setSelection(27);
-		assertEquals(50.27, skiTrip.getPrice(),0.01);
-
-		// Change the model to be $60.99 dollars and make sure the
-		// spinner_dollars is 60 and spinner_cents is 99
-		skiTrip.setPrice(60.99);
-		assertEquals(60, spinner_dollars.getSelection());
-		assertEquals(99, spinner_cents.getSelection());
-
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomScenarios.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomScenarios.java
deleted file mode 100644
index 4e39900..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomScenarios.java
+++ /dev/null
@@ -1,92 +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.databinding.scenarios;
-
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.AggregateObservableValue;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class CustomScenarios extends ScenariosTestCase {
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		// do any setup work here
-	}
-
-	protected void tearDown() throws Exception {
-		// do any teardown work here
-		super.tearDown();
-	}
-
-	public void testScenario01() {
-
-		// Binding the name property of an Adventure object to the contents of
-		// Text controls, no conversion, no validation.
-
-		Adventure adventure = SampleData.WINTER_HOLIDAY;
-		Text text = new Text(getComposite(), SWT.BORDER);
-
-		IObservableValue descriptionObservable = (IObservableValue) getDbc()
-				.createObservable(new Property(adventure, "description"));
-		IObservableValue nameObservable = (IObservableValue) getDbc()
-				.createObservable(new Property(adventure, "name"));
-
-		AggregateObservableValue customObservable_comma = new AggregateObservableValue(
-				new IObservableValue[] { descriptionObservable, nameObservable },
-				",");
-
-		getDbc().bind(getDbc().createObservable(new Property(text, "text")),
-								customObservable_comma, null);
-		// spinEventLoop(1);
-		// Make sure that the description on the model match the widget
-		assertEquals(adventure.getDescription() + "," + adventure.getName(),
-				text.getText());
-
-		// Change the widget to newDescription,newName and ensure the model is
-		// updated
-		text.setText("newDescription,newName");
-		assertEquals("newDescription", adventure.getDescription());
-		assertEquals("newName", adventure.getName());
-
-		// Change the model to newDescription_0 and newName_0 and ensure the GUI
-		// is updated
-		adventure.setDescription("newDescription_0");
-		adventure.setName("newName_0");
-		assertEquals("newDescription_0,newName_0", text.getText());
-
-		// Change text to newDescription_1 with no comma and ensure the model is
-		// updated correctly with no name
-		text.setText("newDescription_1");
-		assertEquals("newDescription_1", adventure.getDescription());
-		assertEquals(null, adventure.getName());
-
-		// Change text to newName with a preceeding comma and ensure the model
-		// is updated correctly with no description
-		// TODO - Get this test working + Add the one where we have two aggregates and update one and 
-		// check that the other is updated - currently this fails on the GUI - JRW
-//		text.setText(",newName_1");
-//		assertEquals(null, adventure.getDescription());
-//		assertEquals("newName_1", adventure.getName());
-
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/LabelControlScenario.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/LabelControlScenario.java
deleted file mode 100644
index a28e559..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/LabelControlScenario.java
+++ /dev/null
@@ -1,57 +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.databinding.scenarios;
-
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class LabelControlScenario extends ScenariosTestCase {
-
-	private Adventure adventure;	
-	private Label label;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		// do any setup work here
-		label = new Label(getComposite(), SWT.NONE);		
-		adventure = SampleData.WINTER_HOLIDAY;
-	}
-
-	protected void tearDown() throws Exception {
-		// do any teardown work here
-		super.tearDown();
-		label.dispose();
-		label = null;
-	}
-
-	public void testScenario01() {
-		// Bind the adventure "name" property to a label control
-		// Change the UI and verify the model and UI are the same value
-		// Change the model and verify the UI changes
-		getDbc().bind(label, new Property(adventure, "name"), null);
-		assertEquals(adventure.getName(), label.getText());
-		adventure.setName("France");
-		assertEquals("France", label.getText());
-				adventure.setName("Climb Everest");
-		spinEventLoop(0);
-		assertEquals("Climb Everest",label.getText());		
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ListViewerScenario.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ListViewerScenario.java
deleted file mode 100644
index d631e7c..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ListViewerScenario.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.jface.tests.databinding.scenarios;
-
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.Catalog;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.description.ListModelDescription;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersProperties;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.List;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class ListViewerScenario extends ScenariosTestCase {
-
-	private Catalog catalog;
-
-	private List list;
-
-	private ListViewer listViewer;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		// do any setup work here
-		list = new List(getComposite(), SWT.READ_ONLY | SWT.SINGLE);
-		listViewer = new ListViewer(list);
-		catalog = SampleData.CATALOG_2005; // Lodging source
-	}
-
-	protected void tearDown() throws Exception {
-		list.dispose();
-		list = null;
-		listViewer = null;
-		super.tearDown();
-	}
-
-	public void testScenario01() {
-
-		// Bind the catalog's lodgings to the combo
-		getDbc().bind(
-				listViewer,
-				new ListModelDescription(new Property(catalog, "lodgings"),
-						"name"), null);
-		// Verify that the combo's items are the lodgings
-		for (int i = 0; i < catalog.getLodgings().length; i++) {
-			assertEquals(catalog.getLodgings()[i], listViewer.getElementAt(i));
-		}
-		// Verify that the String being shown in the list viewer is the
-		// "toString" of the combo viewer
-		String[] lodgingStrings = new String[catalog.getLodgings().length];
-		for (int i = 0; i < catalog.getLodgings().length; i++) {
-			lodgingStrings[i] = catalog.getLodgings()[i].getName();
-		}
-		assertArrayEquals(lodgingStrings, list.getItems());
-
-		// Verify that the list has no selected item
-		assertEquals(null, ((IStructuredSelection) listViewer.getSelection())
-				.getFirstElement());
-
-		// Now bind the selection of the combo to the "defaultLodging" property
-		// of an adventure
-		final Adventure adventure = SampleData.WINTER_HOLIDAY;
-		getDbc().bind(
-				new Property(listViewer, ViewersProperties.SINGLE_SELECTION),
-				new Property(adventure, "defaultLodging"), null);
-
-		// Verify that the list selection is the default lodging
-		assertEquals(((IStructuredSelection) listViewer.getSelection())
-				.getFirstElement(), adventure.getDefaultLodging());
-
-		// Change the model and verify that the list selection changes
-		adventure.setDefaultLodging(SampleData.CAMP_GROUND);
-		assertEquals(adventure.getDefaultLodging(), SampleData.CAMP_GROUND);
-		assertEquals(((IStructuredSelection) listViewer.getSelection())
-				.getFirstElement(), adventure.getDefaultLodging());
-
-		// Change the list selection and verify that the model changes
-		listViewer.getList().select(3);
-		assertEquals(((IStructuredSelection) listViewer.getSelection())
-				.getFirstElement(), adventure.getDefaultLodging());
-
-		adventure.setDefaultLodging(SampleData.YOUTH_HOSTEL);
-		spinEventLoop(0);
-		assertEquals(((IStructuredSelection) listViewer.getSelection())
-				.getFirstElement(), adventure.getDefaultLodging());
-
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/MasterDetailScenarios.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/MasterDetailScenarios.java
deleted file mode 100644
index 288c7f6..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/MasterDetailScenarios.java
+++ /dev/null
@@ -1,378 +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.databinding.scenarios;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.jface.databinding.observable.value.ComputedValue;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.Catalog;
-import org.eclipse.jface.examples.databinding.model.Category;
-import org.eclipse.jface.examples.databinding.model.Lodging;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.description.ListModelDescription;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.description.TableModelDescription;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersProperties;
-import org.eclipse.jface.viewers.ContentViewer;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-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.widgets.Button;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class MasterDetailScenarios extends ScenariosTestCase {
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		// do any setup work here
-	}
-
-	protected void tearDown() throws Exception {
-		// do any teardown work here
-		super.tearDown();
-	}
-
-	protected Object getViewerSelection(ContentViewer contentViewer) {
-		return ((IStructuredSelection) contentViewer.getSelection())
-				.getFirstElement();
-	}
-
-	/**
-	 * @return the ComboViewer's domain object list
-	 */
-	protected List getViewerContent(ContentViewer contentViewer) {
-		Object[] elements = ((IStructuredContentProvider) contentViewer
-				.getContentProvider()).getElements(null);
-		if (elements != null)
-			return Arrays.asList(elements);
-		return null;
-	}
-
-	public void testScenario01() {
-
-		// Displaying the catalog's list of Lodging objects in a list viewer,
-		// using their names. The name of the currently selected Lodging can
-		// be edited in a text widget. There is always a selected Lodging
-		// object.
-		ListViewer listViewer = new ListViewer(getComposite(), SWT.BORDER);
-		listViewer.getList().setLayoutData(
-				new GridData(SWT.FILL, SWT.FILL, false, false));
-		Catalog catalog = SampleData.CATALOG_2005;
-
-		listViewer.setLabelProvider(new LabelProvider() {
-			public String getText(Object element) {
-				return ((Lodging) element).getName();
-			}
-		});
-		getDbc().bind(
-				listViewer,
-				new TableModelDescription(new Property(catalog, "lodgings"),
-						new String[] { "name" }), null);
-
-		assertArrayEquals(catalog.getLodgings(), getViewerContent(listViewer)
-				.toArray());
-
-		IObservableValue selectedLodging = (IObservableValue) getDbc()
-				.createObservable(
-						new Property(listViewer,
-								ViewersProperties.SINGLE_SELECTION));
-
-		selectedLodging.setValue(SampleData.CAMP_GROUND);
-
-		assertEquals(SampleData.CAMP_GROUND, getViewerSelection(listViewer));
-		Text txtName = new Text(getComposite(), SWT.BORDER);
-
-		getDbc().bind(
-				txtName,
-				new Property(selectedLodging, "name", String.class,
-						Boolean.FALSE), null);
-
-		assertEquals(txtName.getText(), SampleData.CAMP_GROUND.getName());
-		enterText(txtName, "foobar");
-		assertEquals("foobar", SampleData.CAMP_GROUND.getName());
-		listViewer.setSelection(new StructuredSelection(
-				SampleData.FIVE_STAR_HOTEL));
-		assertEquals(SampleData.FIVE_STAR_HOTEL, selectedLodging.getValue());
-		assertEquals(SampleData.FIVE_STAR_HOTEL.getName(), txtName.getText());
-		SampleData.FIVE_STAR_HOTEL.setName("barfoo");
-		assertEquals("barfoo", txtName.getText());
-
-		// Now make sure that the event listeners get removed on dispose()
-		// Values should no longer be updated
-		selectedLodging.dispose();
-
-		// selectedLodging.setValue(SampleData.CAMP_GROUND);
-		// assertNotSame(SampleData.CAMP_GROUND,
-		// getViewerSelection(listViewer));
-		// assertNotSame(txtName.getText(), SampleData.CAMP_GROUND.getName());
-		// enterText(txtName, "foobar");
-		// assertNotSame("foobar", SampleData.CAMP_GROUND.getName());
-		// listViewer.setSelection(new StructuredSelection(
-		// SampleData.FIVE_STAR_HOTEL));
-		// assertNotSame(SampleData.FIVE_STAR_HOTEL,
-		// selectedLodging.getValue());
-		// assertNotSame(SampleData.FIVE_STAR_HOTEL.getName(),
-		// txtName.getText());
-		// SampleData.FIVE_STAR_HOTEL.setName("barfoo");
-		// assertNotSame("barfoo", txtName.getText());
-	}
-
-	public void testScenario02() {
-
-		// Selecting from the list of lodgings for an adventure and editing the
-		// properties of the selected lodging in text widgets. If no lodging is
-		// selected the input controls for name and adventure are disabled.
-		// There are two buttons "Add" and "Remove"; clicking on "Add" creates a
-		// new lodging and selects it so it can be edited, clicking on "Remove"
-		// removes the currently selected lodging from the list.
-		final ListViewer listViewer = new ListViewer(getComposite(), SWT.BORDER);
-		listViewer.getList().setLayoutData(
-				new GridData(SWT.FILL, SWT.FILL, false, false));
-		final Catalog catalog = SampleData.CATALOG_2005;
-
-		listViewer.setLabelProvider(new LabelProvider() {
-			public String getText(Object element) {
-				return ((Lodging) element).getName();
-			}
-		});
-		getDbc().bind(
-				listViewer,
-				new TableModelDescription(new Property(catalog, "lodgings"),
-						new String[] { "name" }), null);
-
-		assertArrayEquals(catalog.getLodgings(), getViewerContent(listViewer)
-				.toArray());
-
-		final IObservableValue selectedLodgingObservable = (IObservableValue) getDbc()
-				.createObservable(
-						new Property(listViewer,
-								ViewersProperties.SINGLE_SELECTION));
-
-		selectedLodgingObservable.setValue(null);
-		assertTrue(listViewer.getSelection().isEmpty());
-
-		ComputedValue selectionExistsObservable = new ComputedValue(
-				boolean.class) {
-			protected Object calculate() {
-				return new Boolean(selectedLodgingObservable.getValue() != null);
-			}
-		};
-
-		assertFalse(((Boolean) selectionExistsObservable.getValue())
-				.booleanValue());
-
-		final Text txtName = new Text(getComposite(), SWT.BORDER);
-
-		getDbc().bind(new Property(txtName, SWTProperties.ENABLED),
-				selectionExistsObservable, null);
-		getDbc().bind(
-				new Property(txtName, SWTProperties.TEXT),
-				new Property(selectedLodgingObservable, "name", String.class,
-						Boolean.FALSE), null);
-
-		assertEquals(txtName.getText(), "");
-		assertFalse(txtName.getEnabled());
-
-		final Text txtDescription = new Text(getComposite(), SWT.BORDER);
-
-		getDbc().bind(new Property(txtDescription, SWTProperties.ENABLED),
-				selectionExistsObservable, null);
-		getDbc().bind(
-				new Property(txtDescription, SWTProperties.TEXT),
-				new Property(selectedLodgingObservable, "description",
-						String.class, Boolean.FALSE), null);
-
-		assertEquals(txtDescription.getText(), "");
-		assertFalse(txtDescription.getEnabled());
-
-		Button addButton = new Button(getComposite(), SWT.PUSH);
-		addButton.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				Lodging selectedLodging = (Lodging) selectedLodgingObservable
-						.getValue();
-				int insertionIndex = 0;
-				if (selectedLodging != null) {
-					insertionIndex = Arrays.asList(catalog.getLodgings())
-							.indexOf(selectedLodging);
-					assertTrue(insertionIndex >= 0);
-				}
-				Lodging newLodging = SampleData.FACTORY.createLodging();
-				int itemCount = listViewer.getList().getItemCount();
-				newLodging.setName("new lodging name " + itemCount);
-				newLodging.setDescription("new lodging description "
-						+ itemCount);
-				catalog.addLodging(newLodging);
-				assertEquals(itemCount + 1, listViewer.getList().getItemCount());
-				listViewer.setSelection(new StructuredSelection(newLodging));
-				assertSame(newLodging, selectedLodgingObservable.getValue());
-				assertTrue(txtName.getEnabled());
-				assertTrue(txtDescription.getEnabled());
-				assertEquals(newLodging.getName(), txtName.getText());
-				assertEquals(newLodging.getDescription(), txtDescription
-						.getText());
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-		});
-
-		Button removeButton = new Button(getComposite(), SWT.PUSH);
-		removeButton.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				Lodging selectedLodging = (Lodging) selectedLodgingObservable
-						.getValue();
-				assertNotNull(selectedLodging);
-				int deletionIndex = Arrays.asList(catalog.getLodgings())
-						.indexOf(selectedLodging);
-				assertTrue(deletionIndex >= 0);
-				int itemCount = listViewer.getList().getItemCount();
-				catalog.removeLodging(selectedLodging);
-				assertEquals(itemCount - 1, listViewer.getList().getItemCount());
-				assertNull(selectedLodgingObservable.getValue());
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-		});
-
-		pushButtonWithEvents(addButton);
-		pushButtonWithEvents(removeButton);
-		pushButtonWithEvents(addButton);
-		pushButtonWithEvents(addButton);
-		pushButtonWithEvents(removeButton);
-	}
-
-	public void testScenario03() {
-
-		// List adventures and for the selected adventure allow its default
-		// lodging�s name and description to be changed in text controls. If
-		// there is no selected adventure or the default lodging is null the
-		// text controls are disabled. This is a nested property. The default
-		// lodging can be changed elsewhere, and the list
-		final Catalog catalog = SampleData.CATALOG_2005;
-
-		final ListViewer categoryListViewer = new ListViewer(getComposite(),
-				SWT.BORDER);
-		categoryListViewer.getList().setLayoutData(
-				new GridData(SWT.FILL, SWT.FILL, false, false));
-		categoryListViewer.setLabelProvider(new LabelProvider() {
-			public String getText(Object element) {
-				return ((Category) element).getName();
-			}
-		});
-		getDbc().bind(
-				categoryListViewer,
-				new ListModelDescription(new Property(catalog, "categories"),
-						"name"), null);
-
-		assertArrayEquals(catalog.getCategories(), getViewerContent(
-				categoryListViewer).toArray());
-
-		final IObservableValue selectedCategoryObservable = (IObservableValue) getDbc()
-				.createObservable(
-						new Property(categoryListViewer,
-								ViewersProperties.SINGLE_SELECTION));
-
-		final ListViewer adventureListViewer = new ListViewer(getComposite(),
-				SWT.BORDER);
-		adventureListViewer.getList().setLayoutData(
-				new GridData(SWT.FILL, SWT.FILL, false, false));
-		adventureListViewer.setLabelProvider(new LabelProvider() {
-			public String getText(Object element) {
-				return ((Adventure) element).getName();
-			}
-		});
-
-		getDbc().bind(
-				adventureListViewer,
-				new ListModelDescription(new Property(
-						selectedCategoryObservable, "adventures",
-						Adventure.class, Boolean.TRUE), "name"), null);
-
-		ComputedValue categorySelectionExistsObservable = new ComputedValue() {
-			protected Object calculate() {
-				return new Boolean(
-						selectedCategoryObservable.getValue() != null);
-			}
-		};
-
-		getDbc().bind(
-				new Property(adventureListViewer.getList(),
-						SWTProperties.ENABLED),
-				categorySelectionExistsObservable, null);
-
-		final IObservableValue selectedAdventureObservable = (IObservableValue) getDbc()
-				.createObservable(
-						new Property(adventureListViewer,
-								ViewersProperties.SINGLE_SELECTION));
-
-		ComputedValue adventureSelectionExistsObservable = new ComputedValue() {
-			protected Object calculate() {
-				return new Boolean(
-						selectedAdventureObservable.getValue() != null);
-			}
-		};
-
-		final Text txtName = new Text(getComposite(), SWT.BORDER);
-
-		getDbc().bind(new Property(txtName, SWTProperties.ENABLED),
-				adventureSelectionExistsObservable, null);
-		getDbc().bind(
-				new Property(txtName, SWTProperties.TEXT),
-				new Property(selectedAdventureObservable, "name", String.class,
-						Boolean.FALSE), null);
-
-		assertEquals(txtName.getText(), "");
-		assertFalse(txtName.getEnabled());
-
-		final Text txtDescription = new Text(getComposite(), SWT.BORDER);
-
-		getDbc().bind(new Property(txtDescription, SWTProperties.ENABLED),
-				adventureSelectionExistsObservable, null);
-		getDbc().bind(
-				new Property(txtDescription, SWTProperties.TEXT),
-				new Property(selectedAdventureObservable, "description",
-						String.class, Boolean.FALSE), null);
-
-		assertFalse(adventureListViewer.getList().isEnabled());
-		categoryListViewer.setSelection(new StructuredSelection(
-				SampleData.SUMMER_CATEGORY));
-		assertTrue(adventureListViewer.getList().isEnabled());
-		assertFalse(txtName.getEnabled());
-		adventureListViewer.setSelection(new StructuredSelection(
-				SampleData.RAFTING_HOLIDAY));
-		assertTrue(txtName.getEnabled());
-		assertEquals(SampleData.RAFTING_HOLIDAY.getName(), txtName.getText());
-		categoryListViewer.setSelection(new StructuredSelection(
-				SampleData.WINTER_CATEGORY));
-		assertTrue(adventureListViewer.getList().isEnabled());
-		assertFalse(txtName.getEnabled());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/NPETestScenario.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/NPETestScenario.java
deleted file mode 100644
index 001d191..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/NPETestScenario.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.tests.databinding.scenarios;
-
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @since 3.2
- *
- */
-public class NPETestScenario extends ScenariosTestCase {
-	private Text text;
-
-	Person person;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		person = new Person();
-		text = new Text(getComposite(), SWT.BORDER);
-	}
-
-	/**
-	 * Asserts the ability to have an initial value of <code>null</code> on
-	 * the model and to update the value by changing the value of the view.
-	 */
-	public void test_InitialNullValue() {
-		Person person = new Person();
-		assertNull(person.getName());
-
-		getDbc().bind(text, new Property(person, "name"), null);
-
-		text.setText("Brad");
-		text.notifyListeners(SWT.FocusOut, null);
-		assertEquals("Brad", person.getName());
-	}
-
-	private static class Person {
-		private String name;
-
-		/**
-		 * @return Returns the name.
-		 */
-		public String getName() {
-			return name;
-		}
-
-		/**
-		 * @param name
-		 *            The name to set.
-		 */
-		public void setName(String name) {
-			this.name = name;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/NewTableScenarios.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/NewTableScenarios.java
deleted file mode 100644
index f3d7c6e..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/NewTableScenarios.java
+++ /dev/null
@@ -1,445 +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.databinding.scenarios;
-
-import java.beans.IntrospectionException;
-
-import org.eclipse.jface.examples.databinding.model.Catalog;
-import org.eclipse.jface.examples.databinding.model.Category;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class NewTableScenarios extends ScenariosTestCase {
-
-	private TableViewer tableViewer;
-
-	Catalog catalog;
-
-	Category category;
-
-	private TableColumn firstNameColumn;
-
-	private TableColumn lastNameColumn;
-
-	private TableColumn stateColumn;
-
-	Image[] images;
-
-	private TableColumn fancyColumn;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		getComposite().setLayout(new FillLayout());
-		tableViewer = new TableViewer(getComposite());
-		tableViewer.getTable().setLinesVisible(true);
-		tableViewer.getTable().setHeaderVisible(true);
-		firstNameColumn = new TableColumn(tableViewer.getTable(), SWT.NONE);
-		firstNameColumn.setWidth(50);
-		lastNameColumn = new TableColumn(tableViewer.getTable(), SWT.NONE);
-		lastNameColumn.setWidth(50);
-		stateColumn = new TableColumn(tableViewer.getTable(), SWT.NONE);
-		stateColumn.setWidth(50);
-		fancyColumn = new TableColumn(tableViewer.getTable(), SWT.NONE);
-		fancyColumn.setWidth(250);
-
-		catalog = SampleData.CATALOG_2005; // Lodging source
-		category = SampleData.WINTER_CATEGORY;
-
-		images = new Image[] {
-				getShell().getDisplay().getSystemImage(SWT.ICON_ERROR),
-				getShell().getDisplay().getSystemImage(SWT.ICON_WARNING),
-				getShell().getDisplay().getSystemImage(SWT.ICON_INFORMATION), };
-	}
-
-	protected void tearDown() throws Exception {
-		// do any teardown work here
-		super.tearDown();
-		tableViewer.getTable().dispose();
-		tableViewer = null;
-		firstNameColumn = null;
-		lastNameColumn = null;
-		stateColumn = null;
-	}
-
-	String getValue(String text) {
-		if (text == null)
-			return "";
-		return text;
-	}
-
-	public void testScenario01() throws IntrospectionException {
-//		// Factory for directly creating IObservables for beans
-//		JavaBeans javaBeans = new JavaBeans();
-//		
-//		// Wrap the TableViewer in an IObservableCollectionWithLabels
-//		IObservableCollectionWithLabels accountTable = new TableViewerObservableTable(
-//				tableViewer);
-//
-//		// Create a readable set to track the catalog's accounts
-//		IReadableSet accountSet = javaBeans.createReadableSet(catalog,
-//				new PropertyDescriptor("accounts", Catalog.class, "getAccounts", null),
-//				Account.class);
-//		
-//		// Create an observable cell provider to track the given accounts' properties.
-//		IObservableCellProvider accountCellProvider = javaBeans.createObservableCellProvider(
-//				accountSet, new String[] { "firstName", "lastName", "state" });
-//
-//		// bind
-//		getDbc().bind(accountTable, accountCellProvider, null);
-//		
-//		// uncomment next line to see result interactively
-//		// interact();
-//
-//		// Verify the data in the table columns matches the accounts
-//		Account[] accounts = catalog.getAccounts();
-//		for (int i = 0; i < accounts.length; i++) {
-//			Account account = accounts[i];
-//			String col_0 = ((ITableLabelProvider) tableViewer
-//					.getLabelProvider()).getColumnText(account, 0);
-//			assertEquals(getValue(account.getFirstName()), col_0);
-//			String col_1 = ((ITableLabelProvider) tableViewer
-//					.getLabelProvider()).getColumnText(account, 1);
-//			assertEquals(getValue(account.getLastName()), col_1);
-//			String col_2 = ((ITableLabelProvider) tableViewer
-//					.getLabelProvider()).getColumnText(account, 2);
-//			assertEquals(getValue(account.getState()), col_2);
-//
-//		}
-	}
-
-	public void testScenario02() throws SecurityException,
-			IllegalArgumentException {
-//		// Show that a TableViewer with three columns can be used to update
-//		// columns
-//		Account[] accounts = catalog.getAccounts();
-//
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addEditableColumn("firstName");
-//		tableViewerDescription.addEditableColumn("lastName", null, null,
-//				new PhoneConverter());
-//		tableViewerDescription.addEditableColumn("state", null, null,
-//				new StateConverter());
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "accounts"), null);
-//
-//		Account account = accounts[0];
-//		// Select the first item in the table
-//		tableViewer.editElement(account, 0);
-//		// Set the text property of the cell editor which is now active over the
-//		// "firstName" column
-//		CellEditor[] cellEditors = tableViewer.getCellEditors();
-//		TextCellEditor firstNameEditor = (TextCellEditor) cellEditors[0];
-//		// Change the firstName and test it goes to the model
-//		enterText((Text) firstNameEditor.getControl(), "Bill");
-//		// Check whether the model has changed
-//		assertEquals("Bill", account.getFirstName());
-	}
-
-	public void testScenario04() {
-//		// Show that when an item is added to a collection the table gets an
-//		// extra item
-//		Account[] accounts = catalog.getAccounts();
-//
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addColumn("firstName");
-//		tableViewerDescription.addColumn("lastName");
-//		tableViewerDescription.addColumn("state");
-//		tableViewerDescription.addColumn(null, new IConverter() {
-//
-//			public Class getModelType() {
-//				return Account.class;
-//			}
-//
-//			public Class getTargetType() {
-//				return ViewerLabel.class;
-//			}
-//
-//			public Object convertTargetToModel(Object targetObject) {
-//				return null;
-//			}
-//
-//			public Object convertModelToTarget(Object modelObject) {
-//				Account account = (Account) modelObject;
-//				return new ViewerLabel(account.toString(), images[new Random()
-//						.nextInt(images.length)]);
-//			}
-//		});
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "accounts"), null);
-//
-//		// interact();
-//
-//		// Verify the number of accounts matches the number of items in the
-//		// table
-//		assertEquals(tableViewer.getTable().getItemCount(), accounts.length);
-//		// Add a new account and verify that the number of items in the table
-//		// increases
-//		Account newAccount = new Account();
-//		newAccount.setFirstName("Finbar");
-//		newAccount.setLastName("McGoo");
-//		newAccount.setLastName("NC");
-//		catalog.addAccount(newAccount);
-//		// The number of items should have gone up by one
-//		assertEquals(tableViewer.getTable().getItemCount(), accounts.length + 1);
-//		// The number of items should still match the number of accounts (i.e.
-//		// test the model)
-//		assertEquals(tableViewer.getTable().getItemCount(), catalog
-//				.getAccounts().length);
-//		// Remove the account that was just added
-//		catalog.removeAccount(newAccount);
-//		// The number of items should match the original
-//		assertEquals(tableViewer.getTable().getItemCount(), accounts.length);
-//		// The number of items should still match the number of accounts (i.e.
-//		// test the model is reset)
-//		assertEquals(tableViewer.getTable().getItemCount(), catalog
-//				.getAccounts().length);
-//
-//		// Test adding and removing to the model on a non UI thread
-//		int numberOfAccounts = catalog.getAccounts().length;
-//		final Account barney = new Account();
-//		barney.setFirstName("Barney");
-//		barney.setLastName("Smith");
-//		barney.setLastName("CA");
-//		invokeNonUI(new Runnable() {
-//			public void run() {
-//				catalog.addAccount(barney);
-//			}
-//		});
-//		spinEventLoop(0);
-//		// The number of items should have gone up by one
-//		assertEquals(tableViewer.getTable().getItemCount(),
-//				numberOfAccounts + 1);
-//
-//		invokeNonUI(new Runnable() {
-//			public void run() {
-//				catalog.removeAccount(barney);
-//			}
-//		});
-//		spinEventLoop(0);
-//		// The number of items should have reverted to the original number
-//		// before barney was added and removed
-//		assertEquals(tableViewer.getTable().getItemCount(), numberOfAccounts);
-//
-	}
-
-	public void testScenario03() {
-//		// Show that converters work for table columns
-//		Account[] accounts = catalog.getAccounts();
-//
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addEditableColumn("lastName");
-//		tableViewerDescription.addEditableColumn("phone", null, null,
-//				new PhoneConverter());
-//		tableViewerDescription.addEditableColumn("state", null, null,
-//				new StateConverter());
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "accounts"), null);
-//
-//		// Verify that the data in the the table columns matches the expected
-//		// What we are looking for is that the phone numbers are converterted to
-//		// nnn-nnn-nnnn and that
-//		// the state letters are converted to state names
-//		// Verify the data in the table columns matches the accounts
-//		PhoneConverter phoneConverter = new PhoneConverter();
-//		StateConverter stateConverter = new StateConverter();
-//		for (int i = 0; i < accounts.length; i++) {
-//			Account account = catalog.getAccounts()[i];
-//			// Check the phone number
-//			String col_phone = ((ITableLabelProvider) tableViewer
-//					.getLabelProvider()).getColumnText(account, 1);
-//			assertEquals(getValue((String) phoneConverter
-//					.convertModelToTarget(account.getPhone())), col_phone);
-//			String col_state = ((ITableLabelProvider) tableViewer
-//					.getLabelProvider()).getColumnText(account, 2);
-//			assertEquals(getValue((String) stateConverter
-//					.convertModelToTarget(account.getState())), col_state);
-//		}
-	}
-
-	public void testScenario05() {
-//		// Show that when the model changes then the UI refreshes to reflect
-//		// this
-//
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addColumn("lastName");
-//		tableViewerDescription.addColumn("phone", new PhoneConverter());
-//		tableViewerDescription.addColumn("state", new StateConverter());
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "accounts"), null);
-//
-//		final Account account = catalog.getAccounts()[0];
-//		String lastName = tableViewer.getTable().getItem(0).getText(0);
-//		// Check the firstName in the TableItem is the same as the model
-//		assertEquals(lastName, account.getLastName());
-//		// Now change the model and check again
-//		account.setLastName("Gershwin");
-//		lastName = tableViewer.getTable().getItem(0).getText(0);
-//		assertEquals(lastName, account.getLastName());
-//
-//		// Test the model update on a non UI thread
-//		invokeNonUI(new Runnable() {
-//			public void run() {
-//				account.setLastName("Mozart");
-//			}
-//		});
-//		spinEventLoop(0);
-//		lastName = tableViewer.getTable().getItem(0).getText(0);
-//		assertEquals(lastName, account.getLastName());
-//
-	}
-
-	public void testScenario06() {
-//		// Check that explicit type means that defaulting of converters works
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addEditableColumn("price");
-//		tableViewerDescription.getColumn(0).setPropertyType(Double.TYPE);
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "transporations"), null);
-//		Transportation transporation = catalog.getTransporations()[0];
-//		tableViewer.editElement(transporation, 0);
-//		// Set the text property of the cell editor which is now active over the
-//		// "firstName" column
-//		CellEditor[] cellEditors = tableViewer.getCellEditors();
-//		TextCellEditor priceEditor = (TextCellEditor) cellEditors[0];
-//		// Change the firstName and test it goes to the model
-//		enterText((Text) priceEditor.getControl(), "123.45");
-//		// Verify the model is updated
-//		assertEquals(transporation.getPrice(), 123.45, 0);
-
-	}
-
-	public void testScenario07() {
-//		// Verify that even when a column's property type is not set, that it is
-//		// worked out lazily from the target type
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addEditableColumn("price");
-//		// The column's type is not set to be Double.TYPE. This will be inferred
-//		// once the first Transportation object is set
-//		// into the ObservableCollection
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "transporations"), null);
-//		Transportation transporation = catalog.getTransporations()[0];
-//		tableViewer.editElement(transporation, 0);
-//		// Set the text property of the cell editor which is now active over the
-//		// "firstName" column
-//		CellEditor[] cellEditors = tableViewer.getCellEditors();
-//		TextCellEditor priceEditor = (TextCellEditor) cellEditors[0];
-//		// Change the firstName and test it goes to the model
-//		enterText((Text) priceEditor.getControl(), "123.45");
-//		// Verify the model is updated
-//		assertEquals(transporation.getPrice(), 123.45, 0);
-//
-	}
-
-	public void testScenario08_00() {
-//		// Verify that binding to a Collection property (rather than an array)
-//		// works when specifying data type
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addEditableColumn("userId");
-//		tableViewerDescription.addEditableColumn("password");
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "signons", Signon.class, null), null);
-//		Signon firstSignon = (Signon) catalog.getSignons().get(0);
-//		// Verify the UI matches the model
-//		TableItem firstTableItem = tableViewer.getTable().getItem(0);
-//		assertEquals(firstTableItem.getText(1), firstSignon.getPassword());
-//		// Change the model and ensure the UI refreshes
-//		firstSignon.setPassword("Eclipse123Rocks");
-//		assertEquals("Eclipse123Rocks", firstSignon.getPassword());
-//		assertEquals(firstTableItem.getText(1), firstSignon.getPassword());
-//		// Change the GUI and ensure the model refreshes
-//		tableViewer.editElement(firstSignon, 1);
-//		CellEditor[] cellEditors = tableViewer.getCellEditors();
-//		TextCellEditor passwordEditor = (TextCellEditor) cellEditors[1];
-//		enterText((Text) passwordEditor.getControl(), "Cricket11Players");
-//		assertEquals("Cricket11Players", firstSignon.getPassword());
-//
-	}
-
-	public void testScenario08_01() {
-//		// Verify that binding to a Collection property (rather than an array)
-//		// works without specifying data type
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addEditableColumn("userId");
-//		tableViewerDescription.addEditableColumn("password");
-//		getDbc().bind(tableViewerDescription, new Property(catalog, "signons"),
-//				null);
-//		Signon firstSignon = (Signon) catalog.getSignons().get(0);
-//		// Verify the UI matches the model
-//		TableItem firstTableItem = tableViewer.getTable().getItem(0);
-//		assertEquals(firstTableItem.getText(1), firstSignon.getPassword());
-//		// Change the model and ensure the UI refreshes
-//		firstSignon.setPassword("Eclipse123Rocks");
-//		assertEquals("Eclipse123Rocks", firstSignon.getPassword());
-//		assertEquals(firstTableItem.getText(1), firstSignon.getPassword());
-//		// Change the GUI and ensure the model refreshes
-//		tableViewer.editElement(firstSignon, 1);
-//		CellEditor[] cellEditors = tableViewer.getCellEditors();
-//		TextCellEditor passwordEditor = (TextCellEditor) cellEditors[1];
-//		enterText((Text) passwordEditor.getControl(), "Cricket11Players");
-//		assertEquals("Cricket11Players", firstSignon.getPassword());
-//
-	}
-
-	public void testScenario09() {
-//		// Verify that nested properties work. Catalog has adventures. Adventure
-//		// has defaultLodging. Loding has name.
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addColumn("name");
-//		tableViewerDescription.addColumn("defaultLodging.name");
-//		getDbc().bind(tableViewerDescription,
-//				new Property(category, "adventures"), null);
-	}
-	/**
-	 * public void testScenario10(){ // Verify that for TIME_EARLY updating
-	 * occurs on a per key basic for a TextCellEditor // Show that converters
-	 * work for table columns Account[] accounts = catalog.getAccounts();
-	 * Account firstAccount = accounts[0];
-	 * SampleData.getSWTObservableFactory().setUpdateTime(DataBindingContext.TIME_EARLY);
-	 * TableViewerDescription tableViewerDescription = new
-	 * TableViewerDescription(tableViewer);
-	 * tableViewerDescription.addEditableColumn("lastName");
-	 * tableViewerDescription.addColumn("lastName");
-	 * getDbc().bind(tableViewerDescription,new Property(catalog, "accounts"),
-	 * null); // Verify that the first account is shown in the first row with
-	 * the last name correctly
-	 * assertEquals(tableViewer.getTable().getItem(0).getData(),firstAccount);
-	 * assertEquals(tableViewer.getTable().getItem(0).getText(0),firstAccount.getLastName());
-	 * assertEquals(tableViewer.getTable().getItem(0).getText(1),firstAccount.getLastName()); //
-	 * Create a cell editor over the first column
-	 * tableViewer.editElement(firstAccount, 0); // Set the text property of the
-	 * cell editor which is now active over the "firstName" column CellEditor[]
-	 * cellEditors = tableViewer.getCellEditors(); TextCellEditor
-	 * lastNameCellEditor = (TextCellEditor) cellEditors[0];
-	 * ((Text)lastNameCellEditor.getControl()).setText("E"); // Verify that the
-	 * key press goes to the model assertEquals(firstAccount.getLastName(),"E"); }
-	 */
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ObservableFactoriesTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ObservableFactoriesTest.java
deleted file mode 100644
index 7817074..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ObservableFactoriesTest.java
+++ /dev/null
@@ -1,147 +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
- *******************************************************************************/
-/*
- *  Created Oct 21, 2005 by Gili Mendel
- * 
- *  $RCSfile: ObservableFactoriesTest.java,v $
- *  $Revision: 1.3 $  $Date: 2006/08/28 17:33:58 $ 
- */
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import org.eclipse.jface.databinding.observable.IChangeListener;
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.IStaleListener;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.factories.IObservableFactory;
-
-public class ObservableFactoriesTest extends ScenariosTestCase {
-
-	interface Root {
-	};
-
-	interface None extends Root {
-	};
-
-	interface Middle extends None {
-	};
-
-	interface StandAlone {
-	};
-
-	class RootClass implements Root {
-	};
-
-	class NoneClass implements None {
-	};
-
-	class MiddleClass implements Middle {
-	};
-
-	class AllClass implements StandAlone, Middle, Root {
-	};
-
-	class MiddleChild extends MiddleClass {
-	};
-
-	interface TestIObservable extends IObservable {
-		public Class getType();
-	}
-
-	class Factory implements IObservableFactory {
-		Class c;
-
-		public Factory(Class c) {
-			this.c = c;
-		}
-
-		public IObservable createObservable(Object description) {
-			if (c.isInstance(description)) {
-				return new TestIObservable() {
-					public void dispose() {
-					}
-
-					public boolean isStale() {
-						return false;
-					}
-
-					public void removeChangeListener(
-							IChangeListener changeListener) {
-					}
-
-					public void addChangeListener(IChangeListener changeListener) {
-					}
-
-					public Class getType() {
-						return c;
-					}
-
-					public void addStaleListener(IStaleListener listener) {
-					}
-
-					public void removeStaleListener(IStaleListener listener) {
-					}
-				};
-			}
-			return null;
-		}
-	}
-
-	IObservableFactory root = new Factory(Root.class);
-
-	IObservableFactory middle = new Factory(Middle.class);
-
-	IObservableFactory sa = new Factory(StandAlone.class);
-
-	IObservableFactory factory = new Factory(Object.class);
-
-	private DataBindingContext myDbc = null;
-
-	protected DataBindingContext getDbc() {
-		if (myDbc == null) {
-			myDbc = DataBindingContext.createContext(new IObservableFactory[0]);
-		}
-		return myDbc;
-	}
-
-	protected Class getFactoryType(Object src) {
-		TestIObservable u = (TestIObservable) getDbc().createObservable(src);
-		return u.getType();
-	}
-
-	public void test_factoryRegistration() {
-
-		getDbc().addObservableFactory(root);
-		getDbc().addObservableFactory(middle);
-
-		// Direct mapping
-		assertEquals(Root.class, getFactoryType(new RootClass()));
-		assertEquals(Middle.class, getFactoryType(new MiddleClass()));
-
-		// Inherent interface
-		assertEquals(Root.class, getFactoryType(new NoneClass()));
-
-		// AllClass inherent interface
-		assertEquals(Middle.class, getFactoryType(new AllClass()));
-
-		// class inheretence
-		assertEquals(Middle.class, getFactoryType(new MiddleChild()));
-
-		// Direct, first interface
-		getDbc().addObservableFactory(sa);
-		assertEquals(StandAlone.class, getFactoryType(new AllClass()));
-
-		// Class based contribution.
-		getDbc().addObservableFactory(factory);
-		assertEquals(Object.class, getFactoryType(new AllClass()));
-
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/PropertyScenarios.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/PropertyScenarios.java
deleted file mode 100644
index da7ffa2..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/PropertyScenarios.java
+++ /dev/null
@@ -1,570 +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.databinding.scenarios;
-
-import java.text.NumberFormat;
-import java.text.ParseException;
-import java.util.Date;
-import java.util.Locale;
-
-import org.eclipse.jface.databinding.observable.IChangeListener;
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.examples.databinding.model.Account;
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.Cart;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.BindSpec;
-import org.eclipse.jface.internal.databinding.provisional.Binding;
-import org.eclipse.jface.internal.databinding.provisional.conversion.Converter;
-import org.eclipse.jface.internal.databinding.provisional.conversion.IConverter;
-import org.eclipse.jface.internal.databinding.provisional.conversion.IdentityConverter;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.provisional.validation.IValidator;
-import org.eclipse.jface.internal.databinding.provisional.validation.ValidationError;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class PropertyScenarios extends ScenariosTestCase {
-
-	private Adventure adventure;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		// do any setup work here
-		adventure = SampleData.WINTER_HOLIDAY;
-	}
-
-	protected void tearDown() throws Exception {
-		// do any teardown work here
-		super.tearDown();
-	}
-
-	public void testEnterText() {
-		// just to make sure enterText() generates a FocusOut event.
-		Text text = new Text(getComposite(), SWT.BORDER);
-		final boolean[] focusLostHolder = { false };
-		text.addFocusListener(new FocusListener() {
-
-			public void focusGained(FocusEvent e) {
-				// only interested in focus lost events
-			}
-
-			public void focusLost(FocusEvent e) {
-				focusLostHolder[0] = true;
-			}
-		});
-		enterText(text, "hallo");
-		assertTrue(focusLostHolder[0]);
-	}
-
-	public void testScenario01() {
-		Text text = new Text(getComposite(), SWT.BORDER);
-		getDbc().bind(text, new Property(adventure, "name"), null);
-		// uncomment the following line to see what's happening
-		// spinEventLoop(1);
-		assertEquals(adventure.getName(), text.getText());
-		enterText(text, "foobar");
-		// uncomment the following line to see what's happening
-		// spinEventLoop(1);
-		assertEquals("foobar", adventure.getName());
-		adventure.setName("barfoo");
-		// uncomment the following line to see what's happening
-		// spinEventLoop(1);
-		assertEquals("barfoo", text.getText());
-	}
-
-	public void testScenario02() {
-		// Binding the name property of an Adventure object to the contents of
-		// Text controls, no conversion, no validation. The Text widget editable
-		// is set to false.by the developer (can not change the name)
-		Text text = new Text(getComposite(), SWT.READ_ONLY);
-		getDbc().bind(text, new Property(adventure, "name"), null);
-		assertEquals(adventure.getName(), text.getText());
-	}
-
-	public void testScenario03() {
-		// Binding of a read-only property of an Adventure object to the
-		// contents of Text controls, no conversion, no validation. Text control
-		// is not editable as a side effect of binding to a read-only property..
-		Cart cart = SampleData.CART;
-		cart.setAdventureDays(42);
-		// bind to the lodgingDays feature, which is read-only and always one
-		// less than the number of adventure days.
-		Text text = new Text(getComposite(), SWT.BORDER);
-		getDbc().bind(text, new Property(cart, "lodgingDays"),
-				new BindSpec(new IConverter() {
-					public Object getFromType() {
-						return int.class;
-					}
-
-					public Object getToType() {
-						return String.class;
-					}
-
-					public Object convert(Object object) {
-						return object.toString();
-					}
-				}, new IConverter() {
-					public Object getFromType() {
-						return String.class;
-					}
-
-					public Object getToType() {
-						return int.class;
-					}
-
-					public Object convert(Object object) {
-						return new Integer((String) object);
-					}
-				}, null, null));
-		assertEquals(new Integer(cart.getLodgingDays()).toString(), text
-				.getText());
-		// TODO API extension needed: getChangeable() and setChangeable() on
-		// IObservableValue or IObservable
-		// assertEquals(
-		// "Needs API extension: getChangeable() and setChangeable() on
-		// IObservableValue or IObservable.",
-		// false, text.getEditable());
-	}
-
-	public void testScenario04() {
-		// Binding a nested property of an Adventure object to the content of a
-		// Text control, no conversion, no validation.
-		Text text = new Text(getComposite(), SWT.BORDER);
-		// TODO Scenario needs to be more specific - I'm binding to the default
-		// lodging's description of an adventure. What do we expect to happen
-		// when the default lodging changes? If we expect no change, then this
-		// scenario does not introduce anything new. If we expect the binding to
-		// be to the new default lodging's description, shouldn't we move this
-		// scenario to the master/detail section? I'm assuming the latter for
-		// now.
-		IObservableValue defaultLodging = (IObservableValue) getDbc()
-				.createObservable(new Property(adventure, "defaultLodging"));
-		getDbc().bind(
-				text,
-				new Property(defaultLodging, "description", String.class,
-						Boolean.FALSE), null);
-
-		// test changing the description
-		assertEquals(adventure.getDefaultLodging().getDescription(), text
-				.getText());
-		enterText(text, "foobar");
-		assertEquals("foobar", adventure.getDefaultLodging().getDescription());
-		adventure.getDefaultLodging().setDescription("barfoo");
-		assertEquals(adventure.getDefaultLodging().getDescription(), text
-				.getText());
-
-		// test changing the default lodging
-		adventure.setDefaultLodging(SampleData.CAMP_GROUND);
-		assertEquals(adventure.getDefaultLodging().getDescription(), text
-				.getText());
-		adventure.getDefaultLodging().setDescription("barfo");
-		assertEquals(adventure.getDefaultLodging().getDescription(), text
-				.getText());
-
-		adventure.setDefaultLodging(null);
-		assertEquals("", text.getText());
-
-		adventure.setDefaultLodging(SampleData.FIVE_STAR_HOTEL);
-		assertEquals(adventure.getDefaultLodging().getDescription(), text
-				.getText());
-		adventure.getDefaultLodging().setDescription("barf");
-		assertEquals(adventure.getDefaultLodging().getDescription(), text
-				.getText());
-
-	}
-
-	public void testScenario05() {
-		// Binding the name property of an Adventure object to the contents of
-		// Text controls where conversion occurs � the model data is held all
-		// in
-		// uppercase and displayed in lowercase with the first letter
-		// capitalized.
-		Text text = new Text(getComposite(), SWT.BORDER);
-		adventure.setName("UPPERCASE");
-		getDbc().bind(text, new Property(adventure, "name"),
-				new BindSpec(new IConverter() {
-					public Object getFromType() {
-						return String.class;
-					}
-
-					public Object getToType() {
-						return String.class;
-					}
-
-					public Object convert(Object toObject) {
-						String modelValue = (String) toObject;
-						if (modelValue == null || modelValue.equals("")) {
-							return modelValue;
-						}
-						String firstChar = modelValue.substring(0, 1);
-						String remainingChars = modelValue.substring(1);
-						return firstChar.toUpperCase()
-								+ remainingChars.toLowerCase();
-					}
-				}, new IConverter() {
-					public Object getFromType() {
-						return String.class;
-					}
-
-					public Object getToType() {
-						return String.class;
-					}
-
-					public Object convert(Object fromObject) {
-						return ((String) fromObject).toUpperCase();
-					}
-				}, null, null));
-		// spinEventLoop(1);
-		assertEquals("Uppercase", text.getText());
-		enterText(text, "lowercase");
-		// spinEventLoop(1);
-		// TODO If we wanted to "canonicalize" the value in the text field, how
-		// could we do that?
-		assertEquals("LOWERCASE", adventure.getName());
-	}
-
-	public void testScenario06() {
-		// Binding the name property of an Adventure object to the contents of
-		// Text controls where validation occurs and the name cannot be longer
-		// than 15 characters and cannot contain spaces
-		Text text = new Text(getComposite(), SWT.BORDER);
-		final String noSpacesMessage = "Name must not contain spaces.";
-		final String max15CharactersMessage = "Maximum length for name is 15 characters.";
-		adventure.setName("ValidValue");
-		getDbc().bind(
-				text,
-				new Property(adventure, "name"),
-				new BindSpec(new IdentityConverter(String.class),
-						new IdentityConverter(String.class), new IValidator() {
-							public ValidationError isPartiallyValid(Object value) {
-								return isValid(value);
-							}
-
-							public ValidationError isValid(Object value) {
-								String stringValue = (String) value;
-								if (stringValue.length() > 15) {
-									return ValidationError
-											.error(max15CharactersMessage);
-								} else if (stringValue.indexOf(' ') != -1) {
-									return ValidationError
-											.error(noSpacesMessage);
-								} else {
-									return null;
-								}
-							}
-						}, null));
-		// no validation message
-		assertEquals(null, getDbc().getPartialValidationError().getValue());
-		enterText(text, "Invalid Value");
-		assertEquals(noSpacesMessage, ((ValidationError) getDbc()
-				.getPartialValidationError().getValue()).message);
-		assertEquals("ValidValue", text.getText());
-		text.setText("InvalidValueBecauseTooLong");
-		assertEquals(max15CharactersMessage, ((ValidationError) getDbc()
-				.getPartialValidationError().getValue()).message);
-		assertEquals("ValidValue", text.getText());
-		enterText(text, "anothervalid");
-		assertEquals(null, getDbc().getPartialValidationError().getValue());
-		assertEquals("anothervalid", text.getText());
-		assertEquals("anothervalid", adventure.getName());
-	}
-
-	public void testScenario07() {
-		// Binding the price property of an Adventure to a Text control. Price
-		// is a double and Text accepts String so conversion will have to occur.
-		// Validation ensure that the value is positive
-		Text text = new Text(getComposite(), SWT.BORDER);
-		adventure.setPrice(5.0);
-		final String cannotBeNegativeMessage = "Price cannot be negative.";
-		final String mustBeCurrencyMessage = "Price must be a currency.";
-		getDbc().bind(text, new Property(adventure, "price"),
-				new BindSpec(new Converter(double.class, String.class) {
-					public Object convert(Object toObject) {
-						return ((Double) toObject).toString();
-					}
-				}, new Converter(String.class, double.class) {
-
-					public Object convert(Object fromObject) {
-						return new Double((String) fromObject);
-					}
-				}, new IValidator() {
-					public ValidationError isPartiallyValid(Object value) {
-						return null;
-					}
-
-					public ValidationError isValid(Object value) {
-						String stringValue = (String) value;
-						try {
-							double doubleValue = new Double(stringValue)
-									.doubleValue();
-							if (doubleValue < 0.0) {
-								return ValidationError
-										.error(cannotBeNegativeMessage);
-							}
-							return null;
-						} catch (NumberFormatException ex) {
-							return ValidationError.error(mustBeCurrencyMessage);
-						}
-					}
-				}, null));
-		assertEquals("5.0", text.getText());
-		assertEquals(null, getDbc().getValidationError().getValue());
-		enterText(text, "0.65");
-		assertEquals(null, getDbc().getValidationError().getValue());
-		assertEquals(0.65, adventure.getPrice(), 0.0001);
-		adventure.setPrice(42.24);
-		assertEquals("42.24", text.getText());
-		assertEquals(null, getDbc().getValidationError().getValue());
-		enterText(text, "jygt");
-		assertEquals(mustBeCurrencyMessage, ((ValidationError) getDbc()
-				.getValidationError().getValue()).message);
-		enterText(text, "-23.9");
-		assertEquals(cannotBeNegativeMessage, ((ValidationError) getDbc()
-				.getValidationError().getValue()).message);
-		assertEquals(42.24, adventure.getPrice(), 0.0001);
-		adventure.setPrice(0.0);
-		assertEquals(null, getDbc().getValidationError().getValue());
-	}
-
-	public void testScenario08() {
-		// Binding the price property of an Adventure to a Text control but with
-		// custom conversion � the double will be validated to only have two
-		// decimal places and displayed with a leading currency symbol, and can
-		// be entered with or without the currency symbol.
-		Text text = new Text(getComposite(), SWT.BORDER);
-		adventure.setPrice(5.0);
-		final String cannotBeNegativeMessage = "Price cannot be negative.";
-		final String mustBeCurrencyMessage = "Price must be a currency.";
-		final NumberFormat currencyFormat = NumberFormat
-				.getCurrencyInstance(Locale.CANADA);
-		getDbc().bind(text, new Property(adventure, "price"),
-				new BindSpec(new Converter(double.class, String.class) {
-					public Object convert(Object toObject) {
-						return currencyFormat.format(((Double) toObject)
-								.doubleValue());
-					}
-				}, new Converter(String.class, double.class) {
-
-					public Object convert(Object fromObject) {
-						try {
-							return currencyFormat.parse((String) fromObject);
-						} catch (ParseException e) {
-							// TODO throw something like
-							// IllegalConversionException?
-							return new Double(0);
-						}
-					}
-				}, new IValidator() {
-					public ValidationError isPartiallyValid(Object value) {
-						return null;
-					}
-
-					public ValidationError isValid(Object value) {
-						String stringValue = (String) value;
-						try {
-							double doubleValue = currencyFormat.parse(
-									stringValue).doubleValue();
-							if (doubleValue < 0.0) {
-								return ValidationError
-										.error(cannotBeNegativeMessage);
-							}
-							return null;
-						} catch (ParseException e) {
-							return ValidationError.error(mustBeCurrencyMessage);
-						}
-					}
-				}, null));
-		assertEquals("$5.00", text.getText());
-		assertEquals(null, getDbc().getValidationError().getValue());
-		enterText(text, "$0.65");
-		assertEquals(null, getDbc().getValidationError().getValue());
-		assertEquals(0.65, adventure.getPrice(), 0.0001);
-		adventure.setPrice(42.24);
-		assertEquals("$42.24", text.getText());
-		assertEquals(null, getDbc().getValidationError().getValue());
-		enterText(text, "jygt");
-		assertEquals(mustBeCurrencyMessage, ((ValidationError) getDbc()
-				.getValidationError().getValue()).message);
-		enterText(text, "-$23.9");
-		assertEquals(cannotBeNegativeMessage, ((ValidationError) getDbc()
-				.getValidationError().getValue()).message);
-		assertEquals(42.24, adventure.getPrice(), 0.0001);
-		adventure.setPrice(0.0);
-		assertEquals(null, getDbc().getValidationError().getValue());
-	}
-
-	public void testScenario09() {
-		// Binding a boolean property to a CheckBox. Adventure will have a
-		// Boolean property �petsAllowed�
-		Button checkbox = new Button(getComposite(), SWT.CHECK);
-		// checkbox.setText("Pets allowed");
-		// checkbox.setLayoutData(new GridData(SWT.LEFT,SWT.TOP, false,false));
-		adventure.setPetsAllowed(true);
-		getDbc().bind(checkbox, new Property(adventure, "petsAllowed"), null);
-		assertEquals(true, checkbox.getSelection());
-		setButtonSelectionWithEvents(checkbox, false);
-		assertEquals(false, adventure.isPetsAllowed());
-		adventure.setPetsAllowed(true);
-		assertEquals(true, checkbox.getSelection());
-	}
-
-	public void testScenario10() {
-		// Binding a Transportation departure time to a Text control that
-		// formats and validates the time to and from a String. There are
-		// property bindings that bind elements of the GUI to elements to GUI
-		// and also elements of the domain to elements of the domain
-		// TODO fail("not implemented");
-	}
-
-	public void testScenario11() {
-		// Binding the max value of a spinner to another spinner.
-		Spinner spinner1 = new Spinner(getComposite(), SWT.NONE);
-		spinner1.setSelection(10);
-		spinner1.setMinimum(1);
-		spinner1.setMaximum(100);
-		Spinner spinner2 = new Spinner(getComposite(), SWT.NONE);
-		spinner2.setMaximum(1);
-		getDbc()
-				.bind(spinner1, new Property(spinner2, SWTProperties.MAX), null);
-		assertEquals(1, spinner1.getSelection());
-		spinner1.setSelection(10);
-		spinner1.notifyListeners(SWT.Modify, new Event());
-		assertEquals(10, spinner2.getMaximum());
-	}
-
-	public void testScenario12() {
-		// Binding the enabled state of several Text controls to a check box.
-		// There will be two check boxes, so as each is enabled/disabled the
-		// other one follows as do the states of the Text controls.
-		Button checkbox1 = new Button(getComposite(), SWT.CHECK);
-		checkbox1.setSelection(false);
-		Button checkbox2 = new Button(getComposite(), SWT.CHECK);
-		checkbox2.setSelection(false);
-		Text text1 = new Text(getComposite(), SWT.NONE);
-		Text text2 = new Text(getComposite(), SWT.NONE);
-		IObservableValue checkbox1Selected = (IObservableValue) getDbc()
-				.createObservable(checkbox1);
-		IObservableValue checkbox2Selected = (IObservableValue) getDbc()
-				.createObservable(checkbox2);
-		// bind the two checkboxes so that if one is checked, the other is not
-		// and vice versa.
-		Converter negatingConverter = new Converter(boolean.class,
-				boolean.class) {
-			private Boolean negated(Boolean booleanObject) {
-				return new Boolean(!booleanObject.booleanValue());
-			}
-
-			public Object convert(Object targetObject) {
-				return negated((Boolean) targetObject);
-			}
-		};
-		getDbc().bind(checkbox1Selected, checkbox2Selected,
-				new BindSpec(negatingConverter, negatingConverter, null, null));
-		// bind the enabled state of the two text widgets to one of the
-		// checkboxes each.
-		getDbc().bind(new Property(text1, SWTProperties.ENABLED),
-				checkbox1Selected, null);
-		getDbc().bind(new Property(text2, SWTProperties.ENABLED),
-				checkbox2Selected, null);
-		assertEquals(true, text1.getEnabled());
-		assertEquals(false, text2.getEnabled());
-		assertEquals(true, checkbox1.getSelection());
-		setButtonSelectionWithEvents(checkbox1, false);
-		assertEquals(false, text1.getEnabled());
-		assertEquals(true, text2.getEnabled());
-		assertEquals(true, checkbox2.getSelection());
-		setButtonSelectionWithEvents(checkbox2, false);
-		assertEquals(true, text1.getEnabled());
-		assertEquals(false, text2.getEnabled());
-		assertEquals(true, checkbox1.getSelection());
-	}
-
-	public void testScenario13() {
-		// Changing the update policy to be not automatic, but on explicit
-		// method call (e.g. triggered by a button click).
-		getSWTObservableFactory().setUpdateTime(org.eclipse.jface.databinding.DataBindingContext.TIME_LATE);
-		Text text = new Text(getComposite(), SWT.BORDER);
-		getDbc().bind(text, new Property(adventure, "name"), null);
-		// uncomment the following line to see what's happening
-		// happening
-		// spinEventLoop(1);
-		String adventureName = adventure.getName();
-		assertEquals(adventureName, text.getText());
-		enterText(text, "foobar");
-		// uncomment the following line to see what's happening
-		// spinEventLoop(1);
-		assertEquals("foobar", adventure.getName());
-		adventure.setName("barfoo");
-		// uncomment the following line to see what's happening
-		// spinEventLoop(1);
-		assertEquals("barfoo", text.getText());
-	}
-
-	public void testScenario14() {
-		Text t1 = new Text(getComposite(), SWT.BORDER);
-		Text t2 = new Text(getComposite(), SWT.BORDER);
-
-		getSWTObservableFactory().setUpdateTime(org.eclipse.jface.databinding.DataBindingContext.TIME_EARLY);
-		getDbc().bind(t1, new Property(adventure, "name"), null);
-		getDbc().bind(t2, new Property(adventure, "name"), null);
-
-		final int[] counter = { 0 };
-		IObservableValue uv = (IObservableValue) getDbc().createObservable(
-				new Property(adventure, "name"));
-		uv.addChangeListener(new IChangeListener() {
-			public void handleChange(IObservable source) {
-				// Count how many times adventure has changed
-				counter[0]++;
-			}
-		});
-
-		String name = adventure.getName() + "Foo";
-		enterText(t1, name);
-		assertEquals(name, adventure.getName());
-		assertEquals(name, t2.getText());
-		assertTrue(counter[0] == 1);
-
-		name = name + "Bar";
-		uv.setValue(name);
-		assertEquals(t1.getText(), adventure.getName());
-		assertEquals(2, counter[0]);
-
-	}
-
-	public void testScenario15() {
-		Text text = new Text(getComposite(), SWT.NONE);
-		Account account = new Account();
-		account.setExpiryDate(new Date());
-		Binding b = getDbc().bind(text, new Property(account, "expiryDate"),
-				null);
-		Text errorText = new Text(getComposite(), SWT.NONE);
-		getDbc().bind(errorText, b.getValidationError(),
-				new BindSpec().setUpdateModel(false));
-		assertEquals(null, b.getValidationError().getValue());
-		enterText(text, "foo");
-		assertNotNull(b.getValidationError().getValue());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ScenariosTestCase.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ScenariosTestCase.java
deleted file mode 100644
index 9800b0e..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ScenariosTestCase.java
+++ /dev/null
@@ -1,146 +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.databinding.scenarios;
-
-import java.util.Arrays;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.swt.SWTObservableFactory;
-import org.eclipse.swt.SWT;
-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;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Abstract base class of the JFace binding scenario test classes.
- */
-abstract public class ScenariosTestCase extends TestCase {
-
-	private Composite composite;
-	private DataBindingContext dbc;
-	protected Display display;
-	private boolean disposeDisplay = false;
-	protected Shell shell;
-	protected Text dummyText;
-
-	private SWTObservableFactory swtObservableFactory;
-
-	protected Composite getComposite() {
-		return composite;
-	}
-
-	protected DataBindingContext getDbc() {
-		return dbc;
-	}
-
-	protected SWTObservableFactory getSWTObservableFactory() {
-		return swtObservableFactory;
-	}
-
-	public Shell getShell() {
-		if (shell != null) {
-			return shell;
-		}
-		Shell result = BindingScenariosTestSuite.getShell();
-		if (result == null) {
-			display = Display.getDefault();
-			if (Display.getDefault() == null) {
-				display = new Display();
-				disposeDisplay = true;
-			}
-			shell = new Shell(display, SWT.SHELL_TRIM);
-			shell.setLayout(new FillLayout());
-			result = shell;
-		}
-		result.setText(getName()); // In the case that the shell() becomes
-		// visible.
-		return result;
-	}
-
-	protected void spinEventLoop(int secondsToWaitWithNoEvents) {
-		if (!composite.isVisible() && secondsToWaitWithNoEvents > 0) {
-			composite.getShell().open();
-		}
-		while (composite.getDisplay().readAndDispatch()) {
-			// do nothing, just process events
-		}
-		try {
-			Thread.sleep(secondsToWaitWithNoEvents * 1000);
-		} catch (InterruptedException e) {
-			Thread.currentThread().interrupt();
-		}
-	}
-
-	protected void interact() {
-		if (!getShell().isVisible()) {
-			getShell().open();
-		}
-		while (!getShell().isDisposed()) {
-			if (!getShell().getDisplay().readAndDispatch()) {
-				getShell().getDisplay().sleep();
-			}
-		}
-	}
-
-	protected void setButtonSelectionWithEvents(Button button, boolean value) {
-		if (button.getSelection() == value) {
-			return;
-		}
-		button.setSelection(value);
-		pushButtonWithEvents(button);
-	}
-
-	protected void pushButtonWithEvents(Button button) {
-		button.notifyListeners(SWT.Selection, null);
-	}
-
-	protected void setUp() throws Exception {
-		composite = new Composite(getShell(), SWT.NONE);
-		composite.setLayout(new FillLayout());
-		SampleData.initializeData(); // test may manipulate the data... let
-		// all start from fresh
-		dbc = SampleData.getDatabindingContext(composite);
-		swtObservableFactory = SampleData.getSWTObservableFactory();
-		dummyText = new Text(getComposite(), SWT.NONE);
-		dummyText.setText("dummy");
-	}
-
-	protected void tearDown() throws Exception {
-		getShell().setVisible(false); // same Shell may be reUsed across tests
-		composite.dispose();
-		composite = null;
-		if (shell != null) {
-			shell.close();
-			shell.dispose();
-		} else
-			dbc.dispose();
-		if (display != null && disposeDisplay) {
-			display.dispose();
-		}
-	}
-
-	protected void enterText(Text text, String string) {
-		text.notifyListeners(SWT.FocusIn, null);
-		text.setText(string);
-		text.notifyListeners(SWT.FocusOut, null);
-	}
-
-	protected void assertArrayEquals(Object[] expected, Object[] actual) {
-		assertEquals(Arrays.asList(expected), Arrays.asList(actual));
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/SpinnerControlScenario.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/SpinnerControlScenario.java
deleted file mode 100644
index f790859..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/SpinnerControlScenario.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.jface.tests.databinding.scenarios;
-
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class SpinnerControlScenario extends ScenariosTestCase {
-
-	private Adventure adventure;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		// do any setup work here
-		adventure = SampleData.WINTER_HOLIDAY;
-	}
-
-	protected void tearDown() throws Exception {
-		// do any teardown work here
-		super.tearDown();
-	}
-
-	public void testScenario01() {
-
-		// Bind the adventure "maxNumberOfPeople" property to a spinner
-		// Change the UI and verify the model changes
-		// Change the model and verify the UI changes
-		Spinner spinner = new Spinner(getComposite(), SWT.BORDER);
-		getDbc().bind(spinner, new Property(adventure, "maxNumberOfPeople"),
-				null);
-		assertEquals(adventure.getMaxNumberOfPeople(), spinner.getSelection());
-		// Verify the model is updated when the GUI is changed
-		spinner.setSelection(5);
-		assertEquals(5, adventure.getMaxNumberOfPeople());
-		// Verify the GUI is updated when the model changes
-		adventure.setMaxNumberOfPeople(7);
-		assertEquals(7, spinner.getSelection());
-		adventure.setMaxNumberOfPeople(11);
-		spinEventLoop(0);
-		assertEquals(11, spinner.getSelection());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/TableScenarios.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/TableScenarios.java
deleted file mode 100644
index 4f12e77..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/TableScenarios.java
+++ /dev/null
@@ -1,412 +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.databinding.scenarios;
-
-import org.eclipse.jface.examples.databinding.model.Account;
-import org.eclipse.jface.examples.databinding.model.Catalog;
-import org.eclipse.jface.examples.databinding.model.Category;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.description.TableModelDescription;
-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.layout.FillLayout;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class TableScenarios extends ScenariosTestCase {
-
-	private TableViewer tableViewer;
-
-	private Catalog catalog;
-	
-	Category category;
-
-	private TableColumn firstNameColumn;
-
-	private TableColumn lastNameColumn;
-
-	private TableColumn stateColumn;
-
-	Image[] images;
-
-	private TableColumn fancyColumn;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		getComposite().setLayout(new FillLayout());
-		tableViewer = new TableViewer(getComposite());
-		tableViewer.getTable().setLinesVisible(true);
-		tableViewer.getTable().setHeaderVisible(true);
-		firstNameColumn = new TableColumn(tableViewer.getTable(), SWT.NONE);
-		firstNameColumn.setWidth(50);
-		lastNameColumn = new TableColumn(tableViewer.getTable(), SWT.NONE);
-		lastNameColumn.setWidth(50);		
-		stateColumn = new TableColumn(tableViewer.getTable(), SWT.NONE);
-		stateColumn.setWidth(50);		
-		fancyColumn = new TableColumn(tableViewer.getTable(), SWT.NONE);
-		fancyColumn.setWidth(250);		
-
-		catalog = SampleData.CATALOG_2005; // Lodging source
-		category = SampleData.WINTER_CATEGORY; 
-
-		images = new Image[] {
-				getShell().getDisplay().getSystemImage(SWT.ICON_ERROR),
-				getShell().getDisplay().getSystemImage(SWT.ICON_WARNING),
-				getShell().getDisplay().getSystemImage(SWT.ICON_INFORMATION), };
-	}
-
-	protected void tearDown() throws Exception {
-		// do any teardown work here
-		super.tearDown();
-		tableViewer.getTable().dispose();
-		tableViewer = null;
-		firstNameColumn = null;
-		lastNameColumn = null;
-		stateColumn = null;
-	}
-
-	private String getValue(String text) {
-		if (text==null)
-			return "";
-		return text;
-	}
-	
-	public void testScenario01() {
-		// Show that a TableViewer with three columns renders the accounts
-		Account[] accounts = catalog.getAccounts();
-
-		TableModelDescription tableModelDescription = new TableModelDescription(new Property(catalog, "accounts"),new String[]{"firstName","lastName","state"});
-		getDbc().bind(tableViewer,
-				tableModelDescription, null);
-
-		// Verify the data in the table columns matches the accounts
-		for (int i = 0; i < accounts.length; i++) {
-			Account account = catalog.getAccounts()[i];
-			String col_0 = ((ITableLabelProvider) tableViewer
-					.getLabelProvider()).getColumnText(account, 0); 
-			assertEquals(getValue(account.getFirstName()), col_0);
-			String col_1 = ((ITableLabelProvider) tableViewer
-					.getLabelProvider()).getColumnText(account, 1);
-			assertEquals(getValue(account.getLastName()), col_1);
-			String col_2 = ((ITableLabelProvider) tableViewer
-					.getLabelProvider()).getColumnText(account, 2);
-			assertEquals(getValue(account.getState()), col_2);
-
-		}
-	}
-
-	public void testScenario02() throws SecurityException, IllegalArgumentException {
-		// Show that a TableViewer with three columns can be used to update
-		// columns
-//		Account[] accounts = catalog.getAccounts();
-//
-//		TableModelDescription tableModelDescription = new TableModelDescription(new Property(catalog, "accounts"), new String[]{"firstName","lastName","state"});
-////		tableViewerDescription.addEditableColumn("firstName");
-////		tableViewerDescription.addEditableColumn("lastName", null, null, new PhoneConverter());
-////		tableViewerDescription.addEditableColumn("state", null, null, new StateConverter());
-//		getDbc().bind(tableViewer,
-//				tableModelDescription, null);
-//
-//		Account account = accounts[0];
-//		// Select the first item in the table
-//		tableViewer.editElement(account, 0);
-//		// Set the text property of the cell editor which is now active over the "firstName" column
-//		CellEditor[] cellEditors = tableViewer.getCellEditors();
-//		TextCellEditor firstNameEditor = (TextCellEditor) cellEditors[0];
-//		// Change the firstName and test it goes to the model
-//		enterText((Text) firstNameEditor.getControl(), "Bill");
-//		// Check whether the model has changed
-//		assertEquals("Bill",account.getFirstName());
-	}
-	
-	public void testScenario04() {
-//		// Show that when an item is added to a collection the table gets an extra item
-//		Account[] accounts = catalog.getAccounts();	
-//		
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addColumn("firstName");
-//		tableViewerDescription.addColumn("lastName");
-//		tableViewerDescription.addColumn("state");
-//		tableViewerDescription.addColumn(null,new IConverter(){
-//			
-//			public Class getModelType() {
-//				return Account.class;
-//			}
-//			
-//			public Class getTargetType() {
-//				return ViewerLabel.class;
-//			}
-//			
-//			public Object convertTargetToModel(Object targetObject) {
-//				return null;
-//			}
-//			
-//			public Object convertModelToTarget(Object modelObject) {
-//				Account account = (Account) modelObject;
-//				return new ViewerLabel(account.toString(), images[new Random().nextInt(images.length)]);
-//			}});
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "accounts"), null);
-//
-//		//interact();
-//		
-//		// Verify the number of accounts matches the number of items in the table
-//		assertEquals(tableViewer.getTable().getItemCount(),accounts.length);
-//		// Add a new account and verify that the number of items in the table increases
-//		Account newAccount = new Account();
-//		newAccount.setFirstName("Finbar");
-//		newAccount.setLastName("McGoo");
-//		newAccount.setLastName("NC");
-//		catalog.addAccount(newAccount);
-//		// The number of items should have gone up by one
-//		assertEquals(tableViewer.getTable().getItemCount(),accounts.length + 1);
-//		// The number of items should still match the number of accounts (i.e. test the model)
-//		assertEquals(tableViewer.getTable().getItemCount(),catalog.getAccounts().length);
-//		// Remove the account that was just added
-//		catalog.removeAccount(newAccount);
-//		// The number of items should match the original
-//		assertEquals(tableViewer.getTable().getItemCount(),accounts.length);
-//		// The number of items should still match the number of accounts (i.e. test the model is reset)
-//		assertEquals(tableViewer.getTable().getItemCount(),catalog.getAccounts().length);		
-//		
-//		// Test adding and removing to the model on a non UI thread
-//		int numberOfAccounts = catalog.getAccounts().length;
-//		final Account barney = new Account();
-//		barney.setFirstName("Barney");
-//		barney.setLastName("Smith");
-//		barney.setLastName("CA");
-//		invokeNonUI(new Runnable(){
-//			public void run(){
-//				catalog.addAccount(barney);
-//			}
-//		});
-//		spinEventLoop(0);
-//		// The number of items should have gone up by one		
-//		assertEquals(tableViewer.getTable().getItemCount(),numberOfAccounts + 1);
-//		
-//		invokeNonUI(new Runnable(){
-//			public void run(){
-//				catalog.removeAccount(barney);
-//			}
-//		});
-//		spinEventLoop(0);
-//		// The number of items should have reverted to the original number before barney was added and removed		
-//		assertEquals(tableViewer.getTable().getItemCount(),numberOfAccounts);
-//		
-	}
-		
-	public void testScenario03() {
-//		// Show that converters work for table columns
-//		Account[] accounts = catalog.getAccounts();
-//
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addEditableColumn("lastName");
-//		tableViewerDescription.addEditableColumn("phone", null, null ,
-//				new PhoneConverter());
-//		tableViewerDescription.addEditableColumn("state", null, null ,
-//				new StateConverter());
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "accounts"), null);
-//
-//		// Verify that the data in the the table columns matches the expected
-//		// What we are looking for is that the phone numbers are converterted to
-//		// nnn-nnn-nnnn and that
-//		// the state letters are converted to state names
-//		// Verify the data in the table columns matches the accounts
-//		PhoneConverter phoneConverter = new PhoneConverter();
-//		StateConverter stateConverter = new StateConverter();
-//		for (int i = 0; i < accounts.length; i++) {
-//			Account account = catalog.getAccounts()[i];
-//			// Check the phone number
-//			String col_phone = ((ITableLabelProvider) tableViewer
-//					.getLabelProvider()).getColumnText(account, 1);
-//			assertEquals(getValue((String)phoneConverter
-//					.convertModelToTarget(account.getPhone())), col_phone);
-//			String col_state = ((ITableLabelProvider) tableViewer
-//					.getLabelProvider()).getColumnText(account, 2);
-//			assertEquals(getValue((String)stateConverter
-//					.convertModelToTarget(account.getState())), col_state);
-//		}
-	}
-	
-	public void testScenario05() {
-//		// Show that when the model changes then the UI refreshes to reflect this
-//
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addColumn("lastName");
-//		tableViewerDescription.addColumn("phone",
-//				new PhoneConverter());
-//		tableViewerDescription.addColumn("state",
-//				new StateConverter());
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "accounts"), null);
-//		
-//		final Account account = catalog.getAccounts()[0];
-//		String lastName = tableViewer.getTable().getItem(0).getText(0);
-//		// Check the firstName in the TableItem is the same as the model
-//		assertEquals(lastName,account.getLastName());
-//		// Now change the model and check again
-//		account.setLastName("Gershwin");
-//		lastName = tableViewer.getTable().getItem(0).getText(0);	
-//		assertEquals(lastName,account.getLastName());	
-//		
-//		// Test the model update on a non UI thread
-//		invokeNonUI(new Runnable(){
-//			public void run(){
-//				account.setLastName("Mozart");				
-//			}
-//		});
-//		spinEventLoop(0);
-//		lastName = tableViewer.getTable().getItem(0).getText(0);		
-//		assertEquals(lastName,account.getLastName());
-//		
-	}
-	
-	public void testScenario06(){
-//		// Check that explicit type means that defaulting of converters works
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addEditableColumn("price");
-//		tableViewerDescription.getColumn(0).setPropertyType(Double.TYPE);
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "transporations"), null);
-//		Transportation transporation = catalog.getTransporations()[0];
-//		tableViewer.editElement(transporation, 0);
-//		// Set the text property of the cell editor which is now active over the "firstName" column
-//		CellEditor[] cellEditors = tableViewer.getCellEditors();
-//		TextCellEditor priceEditor = (TextCellEditor) cellEditors[0];
-//		// Change the firstName and test it goes to the model
-//		enterText((Text) priceEditor.getControl(), "123.45");
-//		// Verify the model is updated
-//		assertEquals(transporation.getPrice(),123.45,0);
-		
-	}
-	
-	public void testScenario07(){
-//		// Verify that even when a column's property type is not set, that it is worked out lazily from the target type 
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addEditableColumn("price");
-//		// The column's type is not set to be Double.TYPE.  This will be inferred once the first Transportation object is set
-//		// into the ObservableCollection
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "transporations"), null);
-//		Transportation transporation = catalog.getTransporations()[0];
-//		tableViewer.editElement(transporation, 0);
-//		// Set the text property of the cell editor which is now active over the "firstName" column
-//		CellEditor[] cellEditors = tableViewer.getCellEditors();
-//		TextCellEditor priceEditor = (TextCellEditor) cellEditors[0];
-//		// Change the firstName and test it goes to the model
-//		enterText((Text) priceEditor.getControl(), "123.45");
-//		// Verify the model is updated
-//		assertEquals(transporation.getPrice(),123.45,0);
-//		
-	}
-	
-	public void testScenario08_00(){
-//		// Verify that binding to a Collection property (rather than an array) works when specifying data type
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addEditableColumn("userId");
-//		tableViewerDescription.addEditableColumn("password");	
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "signons", Signon.class, null), null);	
-//		Signon firstSignon = (Signon) catalog.getSignons().get(0);	
-//		// Verify the UI matches the model
-//		TableItem firstTableItem = tableViewer.getTable().getItem(0);
-//		assertEquals(firstTableItem.getText(1),firstSignon.getPassword());
-//		// Change the model and ensure the UI refreshes
-//		firstSignon.setPassword("Eclipse123Rocks");
-//		assertEquals("Eclipse123Rocks",firstSignon.getPassword());		
-//		assertEquals(firstTableItem.getText(1),firstSignon.getPassword());
-//		// Change the GUI and ensure the model refreshes
-//		tableViewer.editElement(firstSignon, 1);
-//		CellEditor[] cellEditors = tableViewer.getCellEditors();
-//		TextCellEditor passwordEditor = (TextCellEditor) cellEditors[1];
-//		enterText((Text) passwordEditor.getControl(), "Cricket11Players");
-//		assertEquals("Cricket11Players",firstSignon.getPassword());
-//		
-	}
-	
-	public void testScenario08_01(){
-//		// Verify that binding to a Collection property (rather than an array) works without specifying data type
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(
-//				tableViewer);
-//		tableViewerDescription.addEditableColumn("userId");
-//		tableViewerDescription.addEditableColumn("password");	
-//		getDbc().bind(tableViewerDescription,
-//				new Property(catalog, "signons"), null);	
-//		Signon firstSignon = (Signon) catalog.getSignons().get(0);	
-//		// Verify the UI matches the model
-//		TableItem firstTableItem = tableViewer.getTable().getItem(0);
-//		assertEquals(firstTableItem.getText(1),firstSignon.getPassword());
-//		// Change the model and ensure the UI refreshes
-//		firstSignon.setPassword("Eclipse123Rocks");
-//		assertEquals("Eclipse123Rocks",firstSignon.getPassword());		
-//		assertEquals(firstTableItem.getText(1),firstSignon.getPassword());
-//		// Change the GUI and ensure the model refreshes
-//		tableViewer.editElement(firstSignon, 1);
-//		CellEditor[] cellEditors = tableViewer.getCellEditors();
-//		TextCellEditor passwordEditor = (TextCellEditor) cellEditors[1];
-//		enterText((Text) passwordEditor.getControl(), "Cricket11Players");
-//		assertEquals("Cricket11Players",firstSignon.getPassword());
-//		
-	}
-	
-	public void testScenario09(){
-//		// Verify that nested properties work.  Catalog has adventures.  Adventure has defaultLodging.  Loding has name.
-//		TableViewerDescription tableViewerDescription = new TableViewerDescription(tableViewer);
-//		tableViewerDescription.addColumn("name");
-//		tableViewerDescription.addColumn("defaultLodging.name");
-//		getDbc().bind(tableViewerDescription,new Property(category, "adventures"),null);
-//		
-	}
-/**	
-	public void testScenario10(){
-		// Verify that for TIME_EARLY updating occurs on a per key basic for a TextCellEditor
-		// Show that converters work for table columns
-		Account[] accounts = catalog.getAccounts();
-		Account firstAccount = accounts[0];
-		SampleData.getSWTObservableFactory().setUpdateTime(DataBindingContext.TIME_EARLY);
-		TableViewerDescription tableViewerDescription = new TableViewerDescription(tableViewer);
-		tableViewerDescription.addEditableColumn("lastName");
-		tableViewerDescription.addColumn("lastName");
-		getDbc().bind(tableViewerDescription,new Property(catalog, "accounts"), null);
-		
-		// Verify that the first account is shown in the first row with the last name correctly
-		assertEquals(tableViewer.getTable().getItem(0).getData(),firstAccount);
-		assertEquals(tableViewer.getTable().getItem(0).getText(0),firstAccount.getLastName());
-		assertEquals(tableViewer.getTable().getItem(0).getText(1),firstAccount.getLastName());
-		// Create a cell editor over the first column
-		tableViewer.editElement(firstAccount, 0);
-		// Set the text property of the cell editor which is now active over the "firstName" column
-		CellEditor[] cellEditors = tableViewer.getCellEditors();
-		TextCellEditor lastNameCellEditor = (TextCellEditor) cellEditors[0];
-		((Text)lastNameCellEditor.getControl()).setText("E");
-		// Verify that the key press goes to the model
-		assertEquals(firstAccount.getLastName(),"E");
-		
-	}
- **/	
-}
-
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/TextControlScenario.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/TextControlScenario.java
deleted file mode 100644
index 0e67162..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/TextControlScenario.java
+++ /dev/null
@@ -1,297 +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.databinding.scenarios;
-
-import org.eclipse.jface.examples.databinding.model.Account;
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-import org.eclipse.jface.examples.databinding.model.Transportation;
-import org.eclipse.jface.internal.databinding.provisional.DataBindingContext;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.tests.databinding.BindingTestSuite;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * To run the tests in this class, right-click and select "Run As JUnit Plug-in
- * Test". This will also start an Eclipse instance. To clean up the launch
- * configuration, open up its "Main" tab and select "[No Application] - Headless
- * Mode" as the application to run.
- */
-
-public class TextControlScenario extends ScenariosTestCase {
-
-	private Text text;
-
-	private Adventure adventure;
-
-	private Transportation transportation;
-
-	Account account;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		// do any setup work here
-		adventure = SampleData.WINTER_HOLIDAY;
-		transportation = SampleData.EXECUTIVE_JET;
-		account = SampleData.PRESIDENT;
-		text = new Text(getComposite(), SWT.BORDER);
-	}
-
-	protected void tearDown() throws Exception {
-		text.dispose();
-		text = null;
-		super.tearDown();
-	}
-
-	public void testScenario01() {
-		// Bind the adventure "name" property to a text field
-		// Change the UI and verify the model changes
-		// Change the model and verify the UI changes
-		getDbc().bind(text, new Property(adventure, "name"), null);
-		assertEquals(adventure.getName(), text.getText());
-		text.setText("England");
-		text.notifyListeners(SWT.FocusOut, null);
-		assertEquals("England", adventure.getName());
-		adventure.setName("France");
-		assertEquals("France", text.getText());
-		adventure.setName("Germany");
-		spinEventLoop(0);
-		assertEquals("Germany", text.getText());
-	}
-
-	public void testScenario02() {
-
-		// Bind the transportation "price" property to a text field
-		// This is a Double.TYPE so we check that conversion and validation
-		// occurs
-		// Change the UI and verify the model changes
-		// Change the model and verify the UI changes
-		getDbc().bind(text, new Property(transportation, "price"), null);
-		assertEquals(Double.toString(transportation.getPrice()), text.getText());
-		text.setText("9876.54");
-		text.notifyListeners(SWT.FocusOut, null);
-		assertEquals(9876.54, transportation.getPrice(), 0);
-		transportation.setPrice(1234.56);
-		assertEquals("1234.56", text.getText());
-	}
-
-	public void testScenario03() {
-		// Show that the Escape key can be pressed in the middle of editing and
-		// the value will revert
-		// the updatePolicy for this test is TIME_LATE so it occurs when focus
-		// is lost from the Text control
-		getSWTObservableFactory().setUpdateTime(org.eclipse.jface.databinding.DataBindingContext.TIME_LATE);
-		getDbc().bind(text, new Property(adventure, "name"), null);
-		String currentText = text.getText();
-		text.setText("Switzerland");
-		// We do not notify FocusOut
-		// Verify that the model hasn't changed
-		assertEquals(currentText, adventure.getName());
-		Event event = new Event();
-		event.character = SWT.ESC;
-		event.keyCode = 27;
-		text.notifyListeners(SWT.KeyDown, event);
-		// Verify that the text has reverted
-		assertEquals(currentText, text.getText());
-		// And that the model didn't change
-		assertEquals(adventure.getName(), currentText);
-		// Now change the GUI and commit this change
-		currentText = "Austria";
-		text.setText(currentText);
-		text.notifyListeners(SWT.FocusOut, null);
-		assertEquals(text.getText(), adventure.getName());
-		// Now change the text again and press escape a second time
-		text.setText("Turkey");
-		// Send escape
-		text.notifyListeners(SWT.KeyDown, event);
-		// Verify it has reverted to "Austria" and not any other value, i.e. the
-		// last value it displayed
-		assertEquals(currentText, text.getText());
-
-	}
-
-	public void testScenario04() {
-		// Show that the Escape key can be pressed in the middle of editing and
-		// the value will revert
-		// the updatePolicy for this test is TIME_EARLY so it occurs when each
-		// keystroke occurs
-		getSWTObservableFactory().setUpdateTime(org.eclipse.jface.databinding.DataBindingContext.TIME_EARLY);
-		getDbc().bind(text, new Property(adventure, "name"), null);
-		String originalName = adventure.getName();
-		// Change the text field character by character and ensure that the
-		// model changes
-		String newName = "Switzerland";
-		for (int i = 0; i < newName.length(); i++) {
-			text.setText(newName.substring(0, i + 1));
-			// Verify the model has changed
-			assertEquals(newName.substring(0, i + 1), adventure.getName());
-		}
-		// Now send an escape key and verify that the model reverts
-		Event event = new Event();
-		event.character = SWT.ESC;
-		event.keyCode = 27;
-		text.notifyListeners(SWT.KeyDown, event);
-		assertEquals(adventure.getName(), originalName);
-		// Now send "Austria" key by key
-		newName = "Austria";
-		for (int i = 0; i < newName.length(); i++) {
-			text.setText(newName.substring(0, i + 1));
-			// Verify the model has changed
-			assertEquals(newName.substring(0, i + 1), adventure.getName());
-		}
-		// Send a focus lost event to commit the change
-		text.notifyListeners(SWT.FocusOut, null);
-		// Send an escape key
-		text.notifyListeners(SWT.KeyDown, event);
-		// Verify that the model has changed and has not reverted
-		assertEquals(newName, adventure.getName());
-	}
-
-	/**
-	 * public void testScenario05(){ // Show that nesting of properties works.
-	 * Adventure has defaultLodging and Lodging has name getDbc().bind(text,new
-	 * Property(adventure,"defaultLodging.name"),null); // Verify the GUI is
-	 * showing the model value
-	 * assertEquals(text.getText(),adventure.getDefaultLodging().getName());
-	 *  }
-	 */
-	public void testScenario06() {
-		// // Show that partial validation works for TIME_EARLY
-		// // We are using TIME_EARLY to verify that invalid states are not sent
-		// to the model
-		// getSWTObservableFactory().setUpdateTime(DataBindingContext.TIME_EARLY);
-		// getDbc().bind(text, new Property(account, "phone"), new BindSpec(new
-		// PhoneConverter(),new PhoneValidator()));
-		// // Verify we have no error message for partial validation or full
-		// validation yet
-		// assertTrue(((String)getDbc().getPartialValidationMessage().getValue()).length()
-		// == 0);
-		// assertTrue(((String)getDbc().getValidationMessage().getValue()).length()
-		// == 0);
-		// // Update some of the phone number
-		// String originalPhoneNumber = account.getPhone();
-		// text.setText("999");
-		// // Verify that the phone number is partially invalid and there is no
-		// validation message
-		// assertTrue(((String)getDbc().getPartialValidationMessage().getValue()).length()
-		// > 0);
-		// assertTrue(((String)getDbc().getValidationMessage().getValue()).length()
-		// == 0);
-		// // And that the model has not changed
-		// assertEquals(account.getPhone(),originalPhoneNumber);
-		// // Verify that fixing the phone removes the error and the model is
-		// updated too
-		// text.setText("999-888-7777");
-		// assertTrue(((String)getDbc().getPartialValidationMessage().getValue()).length()
-		// == 0);
-		// assertEquals(account.getPhone(),"9998887777");
-	}
-
-	public void testScenario07() {
-		// // Show that partial validation works for TIME_LATE
-		// getSWTObservableFactory().setUpdateTime(DataBindingContext.TIME_LATE);
-		// getDbc().bind(text, new Property(account, "phone"), new BindSpec(new
-		// PhoneConverter(),new PhoneValidator()));
-		// // Update some of the phone number
-		// String originalPhoneNumber = account.getPhone();
-		// text.setText("222");
-		// // Verify that we have no completion validation message and a partial
-		// one
-		// assertTrue(((String)getDbc().getPartialValidationMessage().getValue()).length()
-		// > 0);
-		// assertTrue(((String)getDbc().getValidationMessage().getValue()).length()
-		// == 0);
-		// // Fix the error
-		// text.setText("222-333-4444");
-		// // Verify that the errors are both fixed
-		// assertTrue(((String)getDbc().getPartialValidationMessage().getValue()).length()
-		// == 0);
-		// assertTrue(((String)getDbc().getValidationMessage().getValue()).length()
-		// == 0);
-		// // The model should not be changed
-		// assertEquals(originalPhoneNumber,account.getPhone());
-		// // Lose focus and verify that the complete validation message is
-		// fixed
-		// text.notifyListeners(SWT.FocusOut,null);
-		// assertTrue(((String)getDbc().getValidationMessage().getValue()).length()
-		// == 0);
-		// // The model should be changed
-		// assertEquals("2223334444",account.getPhone());
-	}
-
-	public void testScenario08() {
-
-		if(BindingTestSuite.failingTestsDisabled(this)) {
-			return;
-		}
-		
-		// Show that the CustomBeanBindSupportFactory will automatically pick up
-		// the
-		// validator on the MaxNumberOfPeople property
-
-		getSWTObservableFactory().setUpdateTime(org.eclipse.jface.databinding.DataBindingContext.TIME_EARLY);
-		DataBindingContext parentDbc = getDbc();
-		DataBindingContext childDbc = new DataBindingContext(parentDbc);
-		childDbc.addBindSupportFactory(new CustomBeanBindSupportFactory(
-				parentDbc));
-		childDbc
-				.addObservableFactory(new CustomBeanObservableFactory(parentDbc));
-		childDbc.bind(text, new Property(adventure, "maxNumberOfPeople"), null);
-		// make sure we can set a value inside the validator's range
-		text.setText("4");
-		assertEquals(4, adventure.getMaxNumberOfPeople());
-		// Now try to set a value outside the validator's range
-		text.setText("999");
-		assertEquals(4, adventure.getMaxNumberOfPeople());
-		childDbc.dispose();
-	}
-
-	public void testScenario09() {
-
-		// Verify direct binding between a Text and Label following bugzilla
-		// 118696
-		getSWTObservableFactory().setUpdateTime(org.eclipse.jface.databinding.DataBindingContext.TIME_LATE);
-		Label label = new Label(getComposite(), SWT.NONE);
-		getDbc().bind(text, label, null);
-		// Change the text
-		text.setText("Frog");
-		// Verify the label does not change
-		assertTrue(label.getText().length() == 0);
-		// Lose focus from the text field
-		text.notifyListeners(SWT.FocusOut, null);
-		assertEquals(label.getText(), "Frog");
-
-	}
-
-	public void testScenario10() {
-
-		// Verify direct binding between a Text and Label following bugzilla
-		// 118696 with TIME_EARLY
-		getSWTObservableFactory().setUpdateTime(org.eclipse.jface.databinding.DataBindingContext.TIME_EARLY);
-		Label label = new Label(getComposite(), SWT.NONE);
-		getDbc().bind(text, label, null);
-		// Change the text
-		String newTextValue = "Frog";
-		for (int i = 0; i < newTextValue.length(); i++) {
-			text.setText(newTextValue.substring(0, i + 1));
-			// Verify the label has changed key by key
-			assertEquals(text.getText(), label.getText());
-		}
-		// Lose focus
-		text.notifyListeners(SWT.FocusOut, null);
-		// Verify the text and label are the same following a lose focus
-		assertEquals(text.getText(), label.getText());
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/smoketest/swt.xswt b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/smoketest/swt.xswt
deleted file mode 100644
index 0097d63..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/smoketest/swt.xswt
+++ /dev/null
@@ -1,301 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<xswt xmlns:x="http://sweet_swt.sf.net/xswt">

-	<import xmlns="http://sweet_swt.sf.net/xswt">

-		<package name="java.lang"/>

-		<package name="org.eclipse.swt.widgets"/>

-		<package name="org.eclipse.swt.custom"/>

-		<package name="org.eclipse.swt.layout"/>

-	</import>

-

-	<!-- An XSWT example that uses nearly every SWT control and uses the new

-	     syntax wherever possible. 

-	     

-	     Get XSWT at:

-	     

-	     http://xswt.sourceforge.net/updates 

-	     

-	     then choose Window | Show View | Other... | XSWT Views | XSWT Preview -->

-

-	<layout x:class="gridLayout"/>

-	

-	<label text="SWT Controls:"/>

-	<tabFolder>

-		<layoutData x:class="gridData" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" horizontalAlignment="GridData.FILL" verticalAlignment="GridData.FILL"/>

-

-		<composite x:id="Text">

-			<layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL"/>

-			<layout x:class="gridLayout" numColumns="2"/>

-

-			<composite x:style="BORDER">

-				<layoutData x:class="gridData" grabExcessHorizontalSpace="true" verticalAlignment="GridData.FILL" horizontalAlignment="GridData.FILL"/>

-				<layout x:class="gridLayout" numColumns="2"/>

-

-				<label text="Integer:"/><text x:style="BORDER" x:id="intText" text="1"/>

-				<label text="Float:"/><text x:style="BORDER" x:id="floatText" text="1.0"/>

-				<label text="String:"/><text x:style="BORDER" x:id="stringText" text="The quick brown fox jumped over the lazy dog."/>

-				<label text="RegexValidated String:"/><text x:style="BORDER" x:id="regexStringText" text="The quick brown fox jumped over the lazy dog."/>

-				<label text="Masked String:"/><text x:style="BORDER" x:id="maskedStringText" background="208 128 128"/>

-			</composite>

-			<slider x:style="VERTICAL" x:id="buttonScroller">

-				<layoutData x:class="gridData" verticalAlignment="GridData.FILL"/>

-			</slider>

-		</composite>

-		<tabItem text="Text" control="Text"/>

-

-		<composite x:id="Labels">

-			<layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL"/>

-			<layout x:class="gridLayout" numColumns="2"/>

-

-			<composite x:style="BORDER">

-				<layoutData x:class="gridData" grabExcessHorizontalSpace="true" verticalAlignment="GridData.FILL" horizontalAlignment="GridData.FILL"/>

-				<layout x:class="gridLayout" numColumns="1"/>

-

-				<label text="Label with text"/>

-				<label text="Label with image"/>

-				<label text="Label with text and image"/>

-				<label x:style="SEPARATOR | HORIZONTAL"><layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL"/></label>

-				<cLabel text="CLabel with text"/>

-				<cLabel text="CLabel with image"/>

-				<cLabel text="CLabel with text and image"/>

-			</composite>

-			<slider x:style="VERTICAL" x:id="textScroller"/>

-		</composite>

-		<tabItem text="Label / CLabel" control="Labels"/>

-	

-		<composite x:id="Button">

-			<layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL"/>

-			<layout x:class="gridLayout" numColumns="2"/>

-

-			<composite x:style="BORDER">

-				<layoutData x:class="gridData" grabExcessHorizontalSpace="true" verticalAlignment="GridData.FILL" horizontalAlignment="GridData.FILL"/>

-				<layout x:class="gridLayout" numColumns="2"/>

-

-				<label text="Push:"/><button x:id="pushButton" text="PushButton"/>

-				<label text="Arrow:"/><button x:id="arrowButton" x:style="ARROW" text="ArrowButton"/>

-				<label text="Toggle:"/><button x:id="toggleButton" x:style="TOGGLE" text="ToggleButton"/>

-				<label text="Check:"/><button x:style="CHECK" x:id="checkButton" text="CheckBox"/>

-				<label text="Radio Group 1:"/>

-				<composite x:style="BORDER" x:id="radioGroup1">

-					<layoutData x:class="gridData" horizontalAlignment="GridData.FILL"/>

-					<layout x:class="gridLayout" numColumns="1"/>

-

-					<button x:style="RADIO" x:id="radioButton0.1" text="Radio"/>

-					<button x:style="RADIO" x:id="radioButton0.2" text="Radio2" selection="true"/>

-					<button x:style="RADIO" x:id="radioButton0.3" text="Radio3"/>

-				</composite>

-				<label text="Radio Group 2:"/>

-				<composite x:style="BORDER" x:id="radioGroup2">

-					<layoutData x:class="gridData" horizontalAlignment="GridData.FILL"/>

-					<layout x:class="gridLayout" numColumns="1"/>

-

-					<button x:style="RADIO" x:id="radioButton1.1" text="Radio"/>

-					<button x:style="RADIO" x:id="radioButton1.2" text="Radio2"/>

-					<button x:style="RADIO" x:id="radioButton1.3" text="Radio3"/>

-				</composite>

-			</composite>

-			<slider x:style="VERTICAL" x:id="1buttonScroller">

-				<layoutData x:class="gridData" verticalAlignment="GridData.FILL"/>

-			</slider>

-		</composite>

-		<tabItem text="Button" control="Button"/>

-

-		<composite x:id="List">

-			<layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL"/>

-			<layout x:class="gridLayout" numColumns="1"/>

-

-			<composite>

-				<layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL" grabExcessVerticalSpace="true" verticalAlignment="GridData.FILL"/>

-	            <layout x:class="fillLayout" type="VERTICAL"/>

-

-				<list x:style="BORDER | V_SCROLL | MULTI"/>

-				<list x:style="BORDER | V_SCROLL"/>

-			</composite>

-		</composite>

-		<tabItem text="List" control="List"/>

-

-		<composite x:id="Combos">

-			<layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL"/>

-			<layout x:class="gridLayout" numColumns="2"/>

-

-			<composite x:style="BORDER">

-				<layoutData x:class="gridData" grabExcessHorizontalSpace="true" verticalAlignment="GridData.FILL" horizontalAlignment="GridData.FILL"/>

-				<layout x:class="gridLayout" numColumns="1"/>

-

-				<combo>

-					<add x:p0="item1"/>

-					<add x:p0="item2"/>

-					<add x:p0="item3"/>

-				</combo>

-				<combo x:style="SIMPLE">

-					<add x:p0="item1"/>

-					<add x:p0="item2"/>

-					<add x:p0="item3"/>

-				</combo>

-				<combo x:style="READ_ONLY">

-					<add x:p0="item1"/>

-					<add x:p0="item2"/>

-					<add x:p0="item3"/>

-				</combo>

-				<label x:style="SEPARATOR | HORIZONTAL"><layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL"/></label>

-				<cCombo>

-					<add x:p0="item1"/>

-					<add x:p0="item2"/>

-					<add x:p0="item3"/>

-				</cCombo>

-				<cCombo x:style="READ_ONLY" background="255 255 255">

-					<add x:p0="item1"/>

-					<add x:p0="item2"/>

-					<add x:p0="item3"/>

-				</cCombo>

-			</composite>

-			<slider x:style="VERTICAL" x:id="2buttonScroller">

-				<layoutData x:class="gridData" verticalAlignment="GridData.FILL"/>

-			</slider>

-		</composite>

-		<tabItem text="Combo / CCombo" control="Combos"/>

-

-		<composite x:id="Table">

-			<layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL"/>

-			<layout x:class="gridLayout" numColumns="1"/>

-

-			<composite x:style="BORDER">

-				<layoutData x:class="gridData" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" horizontalAlignment="GridData.FILL" verticalAlignment="GridData.FILL"/>

-				<layout x:class="gridLayout" numColumns="2"/>

-

-				<table x:style="BORDER" linesVisible="true" headerVisible="true">

-					<layoutData x:class="gridData" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" horizontalAlignment="GridData.FILL" verticalAlignment="GridData.FILL"/>

-

-					<tableColumn width="50" text="Done"/>

-					<tableColumn width="200" text="Description"/>

-					<tableColumn width="60" text="Planned"/>

-					<tableColumn width="60" text="Revised"/>

-					<tableColumn width="60" text="Actual"/>

-					<!--<tableItem/>-->

-				</table>

-			</composite>

-		</composite>

-		<tabItem text="Table" control="Table"/>

-

-		<composite x:id="Tree">

-			<layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL"/>

-			<layout x:class="gridLayout" numColumns="1"/>

-

-			<composite x:style="BORDER">

-				<layoutData x:class="gridData" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" horizontalAlignment="GridData.FILL" verticalAlignment="GridData.FILL"/>

-				<layout x:class="gridLayout" numColumns="2"/>

-

-				<tree x:style="BORDER">

-					<layoutData x:class="gridData" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" horizontalAlignment="GridData.FILL" verticalAlignment="GridData.FILL"/>

-

-					<treeItem text="item">

-						<x:children>

-							<treeItem text="item"/>

-							<treeItem text="item"/>

-							<treeItem text="item">

-								<x:children>

-									<treeItem text="item"/>

-									<treeItem text="item"/>

-									<treeItem text="item"/>

-									<treeItem text="item"/>

-									<treeItem text="item"/>

-								</x:children>

-							</treeItem>

-							<treeItem text="item"/>

-						</x:children>

-					</treeItem>

-					<treeItem text="item with Image (or at least needs one)">

-						<x:children>

-							<treeItem text="item"/>

-							<treeItem text="item"/>

-						</x:children>

-					</treeItem>

-					<treeItem text="Another item">

-						<x:children>

-							<treeItem text="item"/>

-							<treeItem text="item"/>

-							<treeItem text="item"/>

-							<treeItem text="item"/>

-							<treeItem text="item"/>

-						</x:children>

-					</treeItem>

-				</tree>

-			</composite>

-		</composite>

-		<tabItem text="Tree" control="Tree"/>

-

-		<composite x:id="TableTree">

-			<layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL"/>

-			<layout x:class="gridLayout" numColumns="1"/>

-

-			<composite x:style="BORDER">

-				<layoutData x:class="gridData" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" horizontalAlignment="GridData.FILL" verticalAlignment="GridData.FILL"/>

-				<layout x:class="gridLayout" numColumns="2"/>

-

-				<tableTree x:style="BORDER">

-					<layoutData x:class="gridData" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" horizontalAlignment="GridData.FILL" verticalAlignment="GridData.FILL"/>

-

-					<tableTreeItem text="item">

-						<x:children>

-							<tableTreeItem text="subitem"/>

-							<tableTreeItem text="subitem"/>

-						</x:children>

-					</tableTreeItem>

-					<tableTreeItem text="item">

-						<x:children>

-							<tableTreeItem text="subitem"/>

-							<tableTreeItem text="subitem"/>

-							<tableTreeItem text="subitem"/>

-							<tableTreeItem text="subitem"/>

-							<tableTreeItem text="subitem"/>

-						</x:children>

-					</tableTreeItem>

-					<tableTreeItem text="item">

-						<x:children>

-							<tableTreeItem text="item">

-								<x:children>

-									<tableTreeItem text="subitem"/>

-								</x:children>

-							</tableTreeItem>

-							<tableTreeItem text="item">

-								<x:children>

-									<tableTreeItem text="subitem"/>

-									<tableTreeItem text="subitem"/>

-									<tableTreeItem text="subitem"/>

-									<tableTreeItem text="subitem"/>

-									<tableTreeItem text="subitem"/>

-								</x:children>

-							</tableTreeItem>

-							<tableTreeItem text="item">

-								<x:children>

-									<tableTreeItem text="subitem"/>

-									<tableTreeItem text="subitem"/>

-									<tableTreeItem text="subitem"/>

-								</x:children>

-							</tableTreeItem>

-						</x:children>

-					</tableTreeItem>

-				</tableTree>

-			</composite>

-		</composite>

-		<tabItem text="TableTree" control="TableTree"/>

-

-		<composite x:id="Progress">

-			<layoutData x:class="gridData" grabExcessHorizontalSpace="true" horizontalAlignment="GridData.FILL"/>

-			<layout x:class="gridLayout" numColumns="2"/>

-

-			<composite x:style="BORDER">

-				<layoutData x:class="gridData" grabExcessHorizontalSpace="true" verticalAlignment="GridData.FILL" horizontalAlignment="GridData.FILL"/>

-				<layout x:class="gridLayout" numColumns="1"/>

-

-				<progressBar x:style="INDETERMINATE"/>

-				<progressBar x:style="INDETERMINATE | SMOOTH"/>

-				<progressBar x:style="SMOOTH" minimum="0" maximum="100" selection="40"/>

-				<progressBar minimum="0" maximum="100" selection="60"/>

-			</composite>

-			<slider x:style="VERTICAL" x:id="3textScroller"/>

-		</composite>

-		<tabItem text="ProgressBar" control="Progress"/>

-

-	</tabFolder>

-</xswt>

-

diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AbstractGetAndSetSelectionObservableCollectionTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AbstractGetAndSetSelectionObservableCollectionTest.java
deleted file mode 100644
index acac2de..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AbstractGetAndSetSelectionObservableCollectionTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding.swt;
-
-import junit.framework.TestCase;
-
-/**
- * @since 1.0
- *
- */
-public abstract class AbstractGetAndSetSelectionObservableCollectionTest extends TestCase {
-//
-//	public void testGetSelectedObject() {		
-//		SelectionAwareObservableCollection observable = getSelectionAwareObservable(new String[] {"foo", "bar"}); 
-//		assertEquals("No initial selection should be found.", null, observable.getSelectedObject());
-//		setSelectedValueOfControl("bar");
-//		assertEquals("bar", observable.getSelectedObject());	
-//	}
-//
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.setSelectedObject(Object)'
-//	 */
-//	public void testSetSelectedObject() {
-//		SelectionAwareObservableCollection observable = getSelectionAwareObservable(new String[] {"foo", "bar"}); 
-//		observable.setSelectedObject("bar");
-//		assertEquals("bar", getSelectedObjectOfControl());
-//		observable.setSelectedObject("bar1");
-//		assertEquals("bar", getSelectedObjectOfControl());
-//		observable.setSelectedObject("foo");
-//		assertEquals("foo", getSelectedObjectOfControl());
-//		observable.setSelectedObject(null);
-//		assertEquals(null, getSelectedObjectOfControl());		
-//	}
-//	
-//	protected abstract SelectionAwareObservableCollection getSelectionAwareObservable(String[] values);
-//	
-//	protected abstract Object getSelectedObjectOfControl();
-//	
-//	protected abstract void setSelectedValueOfControl(String value);
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AutoSelectTableViewerCollectionExtendedTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AutoSelectTableViewerCollectionExtendedTest.java
deleted file mode 100644
index 7ae318b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AutoSelectTableViewerCollectionExtendedTest.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.jface.tests.databinding.swt;
-
-import junit.framework.TestCase;
-
-/**
- * @since 1.0
- *
- */
-public class AutoSelectTableViewerCollectionExtendedTest extends TestCase {
-//
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.getSelectedObject()'
-//	 */
-//	private TableViewer viewer;
-//	
-//	protected SelectionAwareObservableCollection getSelectionAwareObservable(String[] values) {
-//		Shell shell = BindingScenariosTestSuite.getShell();
-//		this.viewer = new TableViewer(shell, SWT.NONE);
-//		TableViewerDescription description = new TableViewerDescription(viewer);
-//		DataBindingContext ctx = DataBinding.createContext(new IObservableFactory[] {new AutoSelectTableViewerFactory()});
-//		SelectionAwareObservableCollection  observableCollection = (SelectionAwareObservableCollection) ctx.createObservable(description);
-//		observableCollection.setElements(Arrays.asList(values));
-//		return observableCollection;
-//	}
-//	
-//	protected Object getSelectedObjectOfControl() {
-//		StructuredSelection selection = (StructuredSelection) this.viewer.getSelection();
-//		if (selection.isEmpty()) {
-//			return null;
-//		}
-//		return selection.getFirstElement();
-//	}
-//	
-//	protected void setSelectedValueOfControl(String value) {
-//		this.viewer.setSelection(new StructuredSelection(new String[]{value}));
-//	}
-//	
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.setSelectedObject(Object)'
-//	 */
-//	public void testAutoSelect() {
-//		SelectionAwareObservableCollection observable = getSelectionAwareObservable(new String[] {"foo", "bar"}); 
-//		assertEquals("foo", getSelectedObjectOfControl());
-//	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AutoSelectTableViewerCollectionTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AutoSelectTableViewerCollectionTest.java
deleted file mode 100644
index 923b7f2..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/AutoSelectTableViewerCollectionTest.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.databinding.swt;
-
-import junit.framework.TestCase;
-
-/**
- * @since 1.0
- *
- */
-public class AutoSelectTableViewerCollectionTest extends TestCase {
-//
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.getSelectedObject()'
-//	 */
-//	private TableViewer viewer;
-//	
-//	protected SelectionAwareObservableCollection getSelectionAwareObservable(String[] values) {
-//		Shell shell = BindingScenariosTestSuite.getShell();
-//		this.viewer = new TableViewer(shell, SWT.NONE);
-//		DataBindingContext ctx = DataBinding.createContext(new IObservableFactory[] {new AutoSelectTableViewerFactory()});
-//		SelectionAwareObservableCollection  observableCollection = (SelectionAwareObservableCollection) ctx.createObservable(new Property(viewer, ViewersProperties.CONTENT, String.class, new Boolean(true)));
-//		observableCollection.setElements(Arrays.asList(values));
-//		return observableCollection;
-//	}
-//	
-//	protected Object getSelectedObjectOfControl() {
-//		StructuredSelection selection = (StructuredSelection) this.viewer.getSelection();
-//		if (selection.isEmpty()) {
-//			return null;
-//		}
-//		return selection.getFirstElement();
-//	}
-//	
-//	protected void setSelectedValueOfControl(String value) {
-//		this.viewer.setSelection(new StructuredSelection(new String[]{value}));
-//	}
-//	
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.setSelectedObject(Object)'
-//	 */
-//	public void testAutoSelect() {
-//		SelectionAwareObservableCollection observable = getSelectionAwareObservable(new String[] {"foo", "bar"}); 
-//		assertEquals("foo", getSelectedObjectOfControl());
-//	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/CComboObservableCollectionTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/CComboObservableCollectionTest.java
deleted file mode 100644
index 9e0f583..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/CComboObservableCollectionTest.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.jface.tests.databinding.swt;
-
-
-/**
- * @since 1.0
- *
- */
-public class CComboObservableCollectionTest extends AbstractGetAndSetSelectionObservableCollectionTest {
-
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.getSelectedObject()'
-//	 */
-//	private CCombo ccombo;
-//	
-//	protected SelectionAwareObservableCollection getSelectionAwareObservable(String[] values) {
-//		Shell shell = BindingScenariosTestSuite.getShell();
-//		this.ccombo = new CCombo(shell, SWT.NONE);
-//		for (int i = 0; i < values.length; i++) {
-//			this.ccombo.add(values[i]);
-//		}
-//		DataBindingContext ctx = DataBinding.createContext(new IObservableFactory[] {new SWTObservableFactory()});
-//		return (SelectionAwareObservableCollection) ctx.createObservable(new Property(ccombo, SWTProperties.ITEMS, String.class, new Boolean(true)));
-//	}
-//	
-//	protected Object getSelectedObjectOfControl() {
-//		int selectionIndex = this.ccombo.getSelectionIndex();
-//		if (selectionIndex != -1) {
-//			return this.ccombo.getItem(selectionIndex);
-//		} 
-//		return null;
-//	}
-//	
-//	protected void setSelectedValueOfControl(String value) {
-//		this.ccombo.setText(value);
-//	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ComboObservableCollectionTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ComboObservableCollectionTest.java
deleted file mode 100644
index 0bf4f77..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ComboObservableCollectionTest.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.jface.tests.databinding.swt;
-
-
-/**
- * @since 1.0
- *
- */
-public class ComboObservableCollectionTest extends AbstractGetAndSetSelectionObservableCollectionTest {
-//
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.getSelectedObject()'
-//	 */
-//	private Combo combo;
-//	
-//	protected SelectionAwareObservableCollection getSelectionAwareObservable(String[] values) {
-//		Shell shell = BindingScenariosTestSuite.getShell();
-//		this.combo = new Combo(shell, SWT.NONE);
-//		for (int i = 0; i < values.length; i++) {
-//			this.combo.add(values[i]);
-//		}
-//		DataBindingContext ctx = DataBinding.createContext(new IObservableFactory[] {new SWTObservableFactory()});
-//		return (SelectionAwareObservableCollection) ctx.createObservable(new Property(combo, SWTProperties.ITEMS, String.class, new Boolean(true)));
-//	}
-//	
-//	protected Object getSelectedObjectOfControl() {
-//		int selectionIndex = this.combo.getSelectionIndex();
-//		if (selectionIndex != -1) {
-//			return this.combo.getItem(selectionIndex);
-//		} 
-//		return null;
-//	}
-//	
-//	protected void setSelectedValueOfControl(String value) {
-//		this.combo.select(this.combo.indexOf(value));
-//	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/CopyOfAutoSelectTableViewerCollectionExtendedTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/CopyOfAutoSelectTableViewerCollectionExtendedTest.java
deleted file mode 100644
index bc36fa7..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/CopyOfAutoSelectTableViewerCollectionExtendedTest.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.databinding.swt;
-
-import junit.framework.TestCase;
-
-/**
- * @since 1.0
- *
- */
-public class CopyOfAutoSelectTableViewerCollectionExtendedTest extends TestCase {
-//
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.getSelectedObject()'
-//	 */
-//	private TableViewer viewer;
-//	
-//	protected SelectionAwareObservableCollection getSelectionAwareObservable(String[] values) {
-//		Shell shell = BindingScenariosTestSuite.getShell();
-//		this.viewer = new TableViewer(shell, SWT.NONE);
-//		DataBindingContext ctx = DataBinding.createContext(new IObservableFactory[] {new AutoSelectTableViewerFactory()});
-//		SelectionAwareObservableCollection  observableCollection = (SelectionAwareObservableCollection) ctx.createObservable(new Property(viewer, ViewersProperties.CONTENT, String.class, new Boolean(true)));
-//		observableCollection.setElements(Arrays.asList(values));
-//		return observableCollection;
-//	}
-//	
-//	protected Object getSelectedObjectOfControl() {
-//		StructuredSelection selection = (StructuredSelection) this.viewer.getSelection();
-//		if (selection.isEmpty()) {
-//			return null;
-//		}
-//		return selection.getFirstElement();
-//	}
-//	
-//	protected void setSelectedValueOfControl(String value) {
-//		this.viewer.setSelection(new StructuredSelection(new String[]{value}));
-//	}
-//	
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.setSelectedObject(Object)'
-//	 */
-//	public void testAutoSelect() {
-//		SelectionAwareObservableCollection observable = getSelectionAwareObservable(new String[] {"foo", "bar"}); 
-//		assertEquals("foo", getSelectedObjectOfControl());
-//	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ListObservableCollectionTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ListObservableCollectionTest.java
deleted file mode 100644
index ba03473..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ListObservableCollectionTest.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.jface.tests.databinding.swt;
-
-
-/**
- * @since 1.0
- *
- */
-public class ListObservableCollectionTest extends AbstractGetAndSetSelectionObservableCollectionTest {
-//
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.getSelectedObject()'
-//	 */
-//	private List listControl;
-//	
-//	protected SelectionAwareObservableCollection getSelectionAwareObservable(String[] values) {
-//		Shell shell = BindingScenariosTestSuite.getShell();
-//		this.listControl = new List(shell, SWT.NONE);
-//		for (int i = 0; i < values.length; i++) {
-//			this.listControl.add(values[i]);
-//		}
-//		DataBindingContext ctx = DataBinding.createContext(new IObservableFactory[] {new SWTObservableFactory()});
-//		return (SelectionAwareObservableCollection) ctx.createObservable(new Property(listControl, SWTProperties.ITEMS, String.class, new Boolean(true)));
-//	}
-//	
-//	protected Object getSelectedObjectOfControl() {
-//		int selectionIndex = this.listControl.getSelectionIndex();
-//		if (selectionIndex != -1) {
-//			return this.listControl.getItem(selectionIndex);
-//		} 
-//		return null;
-//	}
-//	
-//	protected void setSelectedValueOfControl(String value) {
-//		this.listControl.setSelection(new String[] {value});
-//	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ObservableCollectionViewerTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ObservableCollectionViewerTest.java
deleted file mode 100644
index 8d1a584..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/ObservableCollectionViewerTest.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.databinding.swt;
-
-
-/**
- * @since 1.0
- *
- */
-public class ObservableCollectionViewerTest extends AbstractGetAndSetSelectionObservableCollectionTest {
-//
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.getSelectedObject()'
-//	 */
-//	private AbstractListViewer viewer;
-//	
-//	protected SelectionAwareObservableCollection getSelectionAwareObservable(String[] values) {
-//		Shell shell = BindingScenariosTestSuite.getShell();
-//		this.viewer = new ListViewer(shell, SWT.NONE);
-//		DataBindingContext ctx = DataBinding.createContext(new IObservableFactory[] {new SWTObservableFactory()});		
-//		SelectionAwareObservableCollection  observableCollection = (SelectionAwareObservableCollection) ctx.createObservable(new Property(viewer, ViewersProperties.CONTENT, String.class, new Boolean(true)));
-//		observableCollection.setElements(Arrays.asList(values));
-//		return observableCollection;
-//	}
-//	
-//	protected Object getSelectedObjectOfControl() {
-//		StructuredSelection selection = (StructuredSelection) this.viewer.getSelection();
-//		if (selection.isEmpty()) {
-//			return null;
-//		}
-//		return selection.getFirstElement();
-//	}
-//	
-//	protected void setSelectedValueOfControl(String value) {
-//		this.viewer.setSelection(new StructuredSelection(new String[]{value}));
-//	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/TableViewerObservableCollectionTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/TableViewerObservableCollectionTest.java
deleted file mode 100644
index 309bd6e..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/TableViewerObservableCollectionTest.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.databinding.swt;
-
-
-/**
- * @since 1.0
- *
- */
-public class TableViewerObservableCollectionTest extends AbstractGetAndSetSelectionObservableCollectionTest {
-//
-//	/*
-//	 * Test method for 'org.eclipse.jface.internal.databinding.swt.CComboObservableCollection.getSelectedObject()'
-//	 */
-//	private TableViewer viewer;
-//	
-//	protected SelectionAwareObservableCollection getSelectionAwareObservable(String[] values) {
-//		Shell shell = BindingScenariosTestSuite.getShell();
-//		this.viewer = new TableViewer(shell, SWT.NONE);
-//		DataBindingContext ctx = DataBinding.createContext(new IObservableFactory[] {new SWTObservableFactory()});
-//		SelectionAwareObservableCollection  observableCollection = (SelectionAwareObservableCollection) ctx.createObservable(new Property(viewer, ViewersProperties.CONTENT, String.class, new Boolean(true)));
-//		observableCollection.setElements(Arrays.asList(values));
-//		return observableCollection;
-//	}
-//	
-//	protected Object getSelectedObjectOfControl() {
-//		StructuredSelection selection = (StructuredSelection) this.viewer.getSelection();
-//		if (selection.isEmpty()) {
-//			return null;
-//		}
-//		return selection.getFirstElement();
-//	}
-//	
-//	protected void setSelectedValueOfControl(String value) {
-//		this.viewer.setSelection(new StructuredSelection(new String[]{value}));
-//	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/TextObservableValueTests.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/TextObservableValueTests.java
deleted file mode 100644
index cca96a9..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/TextObservableValueTests.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.eclipse.jface.tests.databinding.swt;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.internal.databinding.internal.swt.TextObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Tests to assert the inputs of the TextObservableValue constructor.
- * 
- * @since 3.2
- */
-public class TextObservableValueTests extends TestCase {
-	private Text text;
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		Shell shell = new Shell();
-		text = new Text(shell, SWT.NONE);
-	}
-	
-	/**
-	 * Asserts that if the a <code>null</code> Text is passed TextObservableValue throws a IAE.
-	 */
-	public void testConstructor() {
-		try {
-			new TextObservableValue(null, SWT.NONE);
-			fail();
-		} catch (IllegalArgumentException e) {
-			assertTrue(true);
-		}
-	}
-	
-	/**
-	 * Asserts that only valid SWT event types are accepted on construction of TextObservableValue.
-	 */
-	public void testConstructorUpdateEventTypes() {
-		try {
-			new TextObservableValue(text, SWT.NONE);
-			new TextObservableValue(text, SWT.FocusOut);
-			new TextObservableValue(text, SWT.Modify);
-			assertTrue(true);
-		} catch (IllegalArgumentException e) {
-			fail();
-		}
-		
-		try {
-			new TextObservableValue(text, SWT.Verify);
-			fail();
-		} catch (IllegalArgumentException e) {
-			assertTrue(true);
-		}
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/util/Mocks.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/util/Mocks.java
deleted file mode 100644
index cb3a759..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/util/Mocks.java
+++ /dev/null
@@ -1,321 +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.jface.tests.databinding.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;
-
-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;
-			}
-		}
-
-		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 + ")");
-				}
-				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());
-					}
-				}
-			}
-		}
-
-		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.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/util/MocksTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/util/MocksTest.java
deleted file mode 100644
index affa6fc..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/util/MocksTest.java
+++ /dev/null
@@ -1,200 +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.jface.tests.databinding.util;
-
-import java.lang.reflect.UndeclaredThrowableException;
-
-import junit.framework.TestCase;
-
-/**
- * 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);
-	}
-
-	private 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.jface.tests.databinding/src/org/eclipse/jface/tests/examples/model/PersonTests.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/examples/model/PersonTests.java
deleted file mode 100644
index 1c9b9c1..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/examples/model/PersonTests.java
+++ /dev/null
@@ -1,52 +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.jface.tests.examples.model;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.model.SimplePerson;
-
-/**
- * @since 3.2
- *
- */
-public class PersonTests extends TestCase {
-	public void testSetName() {
-		SimplePerson person = new SimplePerson();
-		Listener listener = new Listener();
-		
-		person.addPropertyChangeListener(listener);
-		assertEquals(0, listener.count);
-		assertNull(listener.lastEvent);
-		person.setState("new state"); //$NON-NLS-1$
-		
-		assertEquals(1, listener.count);
-		assertNotNull(listener.lastEvent);
-		assertEquals("state", listener.lastEvent.getPropertyName()); //$NON-NLS-1$
-		assertEquals("", listener.lastEvent.getOldValue());
-		assertEquals("new state", listener.lastEvent.getNewValue()); //$NON-NLS-1$
-		assertEquals("new state", person.getState());
-	}
-	
-	private class Listener implements PropertyChangeListener {
-		private int count;
-		private PropertyChangeEvent lastEvent;
-		
-		public void propertyChange(PropertyChangeEvent evt) {
-			count++;
-			this.lastEvent = evt;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/ValueBindingTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/ValueBindingTest.java
deleted file mode 100644
index ddc7be3..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/ValueBindingTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.tests.internal.databinding.internal;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.BindSpec;
-import org.eclipse.jface.databinding.DataBindingContext;
-import org.eclipse.jface.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.jface.internal.databinding.internal.ValueBinding;
-
-/**
- * @since 3.2
- * 
- */
-public class ValueBindingTest extends TestCase {
-	/**
-	 * Bug 152543.
-	 * 
-	 * @throws Exception
-	 */
-	public void testNoUpdateTargetFromModel() throws Exception {
-		BindSpec spec = new BindSpec();
-		spec.setUpdateModel(false);
-		spec.setUpdateTarget(false);
-
-		try {
-			new ValueBinding(new DataBindingContext(),
-					new ObservableValueStub(), new ObservableValueStub(), spec);
-		} catch (Exception e) {
-			fail();
-		}
-	}
-
-	private static class ObservableValueStub extends AbstractObservableValue {
-		protected Object doGetValue() {
-			// do nothing
-			return null;
-		}
-
-		public Object getValueType() {
-			// do nothing
-			return null;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/observable/UnmodifiableObservableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/observable/UnmodifiableObservableListTest.java
deleted file mode 100644
index ac23b38..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/observable/UnmodifiableObservableListTest.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Cerner Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms 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.internal.databinding.internal.observable;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.Diffs;
-import org.eclipse.jface.databinding.observable.IChangeListener;
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.IStaleListener;
-import org.eclipse.jface.databinding.observable.Observables;
-import org.eclipse.jface.databinding.observable.list.IListChangeListener;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.observable.list.ListDiffEntry;
-import org.eclipse.jface.databinding.observable.list.ObservableList;
-
-public class UnmodifiableObservableListTest extends TestCase {
-	ObservableList unmodifiable;
-	ObservableList mutable;
-	
-	protected void setUp() throws Exception {
-		List list = new ArrayList();
-		list.add("1");
-		list.add("2");
-		
-		mutable = new MutableObservableList(list, String.class);
-		unmodifiable = (ObservableList) Observables.unmodifiableObservableList(mutable);
-	}
-	
-	public void testFiresChangeEvents() throws Exception {
-		ChangeCounter mutableListener = new ChangeCounter();
-		ChangeCounter unmodifiableListener = new ChangeCounter();
-		
-		mutable.addChangeListener(mutableListener);
-		unmodifiable.addChangeListener(unmodifiableListener);
-		
-		assertEquals(0, mutableListener.count);
-		assertEquals(0, unmodifiableListener.count);
-		mutable.add("3");
-		assertEquals(1, mutableListener.count);
-		assertEquals(1, unmodifiableListener.count);
-	}
-	
-	public void testFiresListChangeEvents() throws Exception {
-		ListChangeCounter mutableListener = new ListChangeCounter();
-		ListChangeCounter unmodifiableListener = new ListChangeCounter();
-		
-		mutable.addListChangeListener(mutableListener);
-		unmodifiable.addListChangeListener(unmodifiableListener);
-		
-		assertEquals(0, mutableListener.count);
-		assertEquals(0, unmodifiableListener.count);
-
-		String element = "3";
-		mutable.add(element);
-		assertEquals(1, mutableListener.count);
-		assertEquals(mutable, mutableListener.source);
-		assertEquals(1, mutableListener.diff.getDifferences().length);
-		
-		ListDiffEntry difference = mutableListener.diff.getDifferences()[0];
-		assertEquals(element, difference.getElement());
-		assertTrue(difference.isAddition());
-		assertEquals(3, mutable.size());
-		
-		assertEquals(1, unmodifiableListener.count);
-		assertEquals(unmodifiable, unmodifiableListener.source);
-		assertEquals(1, unmodifiableListener.diff.getDifferences().length);
-		
-		difference = unmodifiableListener.diff.getDifferences()[0];
-		assertEquals(element, difference.getElement());
-		assertTrue(difference.isAddition());
-		assertEquals(3, unmodifiable.size());
-	}
-	
-	public void testFiresStaleEvents() throws Exception {
-		StaleCounter mutableListener = new StaleCounter();
-		StaleCounter unmodifiableListener = new StaleCounter();
-		
-		mutable.addStaleListener(mutableListener);
-		unmodifiable.addStaleListener(unmodifiableListener);
-		
-		assertEquals(0, mutableListener.count);
-		assertEquals(0, unmodifiableListener.count);
-		mutable.setStale(true);
-		assertEquals(1, mutableListener.count);
-		assertEquals(mutable, mutableListener.source);
-		assertTrue(mutable.isStale());
-		assertEquals(1, unmodifiableListener.count);
-		assertEquals(unmodifiable, unmodifiableListener.source);
-		assertTrue(unmodifiable.isStale());
-	}
-	
-	public void testIsStale() throws Exception {
-		assertFalse(mutable.isStale());
-		assertFalse(unmodifiable.isStale());
-		mutable.setStale(true);
-		assertTrue(mutable.isStale());
-		assertTrue(unmodifiable.isStale());
-	}
-	
-	public void testSetStaleOnUnmodifiableList() throws Exception {
-		try {
-			unmodifiable.setStale(true);
-			fail("UnsupportedOperationException should have been thrown");
-		} catch (UnsupportedOperationException e) {
-		}		
-	}
-	
-	private static class StaleCounter implements IStaleListener {
-		int count;
-		IObservable source;
-		
-		public void handleStale(IObservable source) {
-			count++;
-			this.source = source;
-		}
-	}
-	
-	private static class ChangeCounter implements IChangeListener {
-		int count;
-		IObservable source;
-		public void handleChange(IObservable source) {
-			count++;
-			this.source = source;
-		}
-	}
-	
-	private static class ListChangeCounter implements IListChangeListener {
-		int count;
-		IObservableList source;
-		ListDiff diff;
-
-		public void handleListChange(IObservableList source, ListDiff diff) {
-			count++;
-			this.source = source;
-			this.diff = diff;
-		}
-	}
-	
-	private static class MutableObservableList extends ObservableList {
-		/**
-		 * @param wrappedList
-		 * @param elementType
-		 */
-		public MutableObservableList(List wrappedList, Object elementType) {
-			super(wrappedList, elementType);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.internal.databinding.provisional.observable.list.ObservableList#add(java.lang.Object)
-		 */
-		public boolean add(Object o) {
-			boolean result = wrappedList.add(o);
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(wrappedList.size() - 1, true, o)));
-			
-			return result;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SVOCWLTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SVOCWLTest.java
deleted file mode 100644
index 37a4474..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SVOCWLTest.java
+++ /dev/null
@@ -1,114 +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.jface.tests.internal.databinding.internal.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.internal.databinding.internal.viewers.StructuredViewerObservableCollectionWithLabels;
-import org.eclipse.jface.internal.databinding.provisional.conversion.IConverter;
-import org.eclipse.jface.internal.databinding.provisional.observable.mapping.IMultiMapping;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- * 
- */
-public class SVOCWLTest extends TestCase {
-	private Shell shell;
-
-	private TableViewer viewer;
-
-	/**
-	 * {@inheritDoc}
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		shell = new Shell();
-		shell.setLayout(new FillLayout());
-		viewer = new TableViewer(shell);
-	}
-
-	private static class SVOCWL extends
-			StructuredViewerObservableCollectionWithLabels {
-		Object[] addedElements = null;
-
-		public SVOCWL(StructuredViewer structuredViewer) {
-			super(structuredViewer);
-		}
-
-		protected void addToViewer(Object element) {
-		}
-
-		protected void addToViewer(Object[] elements) {
-			addedElements = elements;
-		}
-
-		protected void addToViewer(int index, Object element) {
-		}
-
-		public void init(IMultiMapping labelMapping) {
-		}
-
-		protected void removeFromViewer(Object element) {
-		}
-
-		protected void removeFromViewer(Object[] elements) {
-		}
-
-		public void updateElements(Object[] elements) {
-		}
-
-		public void setModelToTargetConverters(IConverter[] converters) {
-		}
-	};
-
-	/**
-	 * Asserts the order that items are added to the viewer is maintained in
-	 * {@link StructuredViewerObservableCollectionWithLabels#addAll(java.util.Collection)}.
-	 */
-	public void test_addAllOrder() {
-		SVOCWL svocwl = new SVOCWL(viewer);
-
-		List list = new ArrayList();
-		for (int i = 0; i < 10; i++) {
-			list.add(Integer.toString(i));
-		}
-
-		svocwl.addAll(list);
-		assertNotNull(svocwl.addedElements);
-		assertEquals(list.size(), svocwl.size());
-		for (int i = 0; i < list.size(); i++) {
-			assertEquals(list.get(i), svocwl.addedElements[i]);
-		}
-	}
-
-	/**
-	 * Asserts that if <code>null</code> is passed to addAll() a NPE is
-	 * thrown.
-	 */
-	public void test_checkNull() {
-		SVOCWL sv = new SVOCWL(viewer);
-
-		try {
-			sv.addAll(null);
-			fail();
-		} catch (IllegalArgumentException e) {
-			assertTrue(true);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValueTest.java
deleted file mode 100644
index 9353bb9..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValueTest.java
+++ /dev/null
@@ -1,141 +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.jface.tests.internal.databinding.internal.viewers;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.internal.databinding.internal.viewers.SelectionProviderSingleSelectionObservableValue;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-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.widgets.Shell;
-
-/**
- * Tests for SelectionProviderSingleSelectionObservableValue. 
- * 
- * @since 1.1
- */
-public class SelectionProviderSingleSelectionObservableValueTest extends TestCase {
-	private ISelectionProvider selectionProvider;
-	private TableViewer viewer;
-	private static String[] model = new String[] { "0", "1" };
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		Shell shell = new Shell();
-		viewer = new TableViewer(shell, SWT.NONE);
-		viewer.setContentProvider(new ContentProvider());
-		viewer.setInput(model);
-		selectionProvider = viewer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		Shell shell = viewer.getTable().getShell();
-		if (!shell.isDisposed())
-			shell.dispose();
-	}
-
-	public void testConstructorIllegalArgumentException() {
-		try {
-			new SelectionProviderSingleSelectionObservableValue(null);
-			fail();
-		} catch (IllegalArgumentException e) {
-		}
-	}
-
-	/**
-	 * Asserts that when a selection is set on the viewer:
-	 * <ul>
-	 * <li>the selection is available in the observable</li>
-	 * <li>Value change events are fired with appropriate diff values</li>
-	 * </ul>
-	 */
-	public void testGetSetValue() {
-		SelectionProviderSingleSelectionObservableValue observable = new SelectionProviderSingleSelectionObservableValue(
-				selectionProvider);
-		ChangeListener listener = new ChangeListener();
-		observable.addValueChangeListener(listener);
-		assertNull(observable.getValue());
-
-		selectionProvider.setSelection(new StructuredSelection(model[0]));
-		assertEquals(1, listener.count);
-		assertNull(listener.diff.getOldValue());
-		assertEquals(model[0], listener.diff.getNewValue());
-		assertEquals(observable, listener.source);
-		assertEquals(model[0], observable.getValue());
-
-		selectionProvider.setSelection(new StructuredSelection(model[1]));
-		assertEquals(2, listener.count);
-		assertEquals(model[0], listener.diff.getOldValue());
-		assertEquals(model[1], listener.diff.getNewValue());
-		assertEquals(observable, listener.source);
-		assertEquals(model[1], observable.getValue());
-
-		selectionProvider.setSelection(StructuredSelection.EMPTY);
-		assertEquals(3, listener.count);
-		assertEquals(model[1], listener.diff.getOldValue());
-		assertNull(listener.diff.getNewValue());
-		assertEquals(observable, listener.source);
-		assertEquals(null, observable.getValue());
-	}
-
-	private class ChangeListener implements IValueChangeListener {
-		int count = 0;
-
-		IObservable source;
-
-		ValueDiff diff;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.databinding.observable.value.IValueChangeListener#handleValueChange(org.eclipse.jface.databinding.observable.value.IObservableValue,
-		 *      org.eclipse.jface.databinding.observable.value.ValueDiff)
-		 */
-		public void handleValueChange(IObservableValue source, ValueDiff diff) {
-			count++;
-			this.source = source;
-			this.diff = diff;
-		}
-	}
-
-	private class ContentProvider implements IStructuredContentProvider {
-		public void dispose() {
-			// TODO Auto-generated method stub
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			// TODO Auto-generated method stub
-
-		}
-
-		public Object[] getElements(Object inputElement) {
-			return (String[]) inputElement;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/observable/AbstractObservableTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/observable/AbstractObservableTest.java
deleted file mode 100644
index f521f64..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/observable/AbstractObservableTest.java
+++ /dev/null
@@ -1,216 +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.jface.tests.internal.databinding.provisional.observable;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.AbstractObservable;
-import org.eclipse.jface.databinding.observable.IChangeListener;
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.observable.IStaleListener;
-
-/**
- * Tests for AbstractObservable.
- * 
- * @since 1.1
- */
-public class AbstractObservableTest extends TestCase {
-	private ObservableStub stub;
-	
-	protected void setUp() throws Exception {
-		stub = new ObservableStub();
-	}
-	
-	public void testStaleListener() throws Exception {
-		assertFalse(stub.hasListeners());
-		
-		StaleListener listener1 = new StaleListener();
-		
-		assertFalse(stub.firstListenerAdded);
-		stub.addStaleListener(listener1);
-		assertTrue(stub.firstListenerAdded);
-		stub.firstListenerAdded = false; //reset
-		
-		assertTrue(stub.hasListeners());
-		assertEquals(0, listener1.count);
-		
-		stub.fireStale();
-		
-		assertEquals(1, listener1.count);
-		assertSame(stub, listener1.source);
-		
-		//Add a second stale listener as 1 vs. 2 listener code is different.
-		StaleListener listener2 = new StaleListener();
-		assertEquals(0, listener2.count);
-		stub.addStaleListener(listener2);
-		stub.fireStale();
-		
-		assertEquals(2, listener1.count);
-		assertEquals(1, listener2.count);
-		
-		//Add a third stale listener as 2 vs. 3 or greater code is different.
-		StaleListener listener3 = new StaleListener();
-		stub.addStaleListener(listener3);
-		assertEquals(0, listener3.count);
-		
-		stub.fireStale();
-		
-		assertEquals(3, listener1.count);
-		assertEquals(2, listener2.count);
-		assertEquals(1, listener3.count);
-		
-		assertFalse(stub.lastListenerRemoved);
-		stub.removeStaleListener(listener1);
-		stub.removeStaleListener(listener2);
-		stub.removeStaleListener(listener3);
-		assertTrue(stub.lastListenerRemoved);
-	
-		assertFalse(stub.hasListeners());
-	}
-	
-	public void testChangeListener() throws Exception {
-		assertFalse(stub.hasListeners());
-		
-		ChangeListener listener1 = new ChangeListener();
-		
-		assertFalse(stub.firstListenerAdded);
-		stub.addChangeListener(listener1);
-		assertTrue(stub.firstListenerAdded);
-		stub.firstListenerAdded = false;
-		
-		assertTrue(stub.hasListeners());
-		assertEquals(0, listener1.count);
-		
-		stub.fireChange();
-		
-		assertEquals(1, listener1.count);
-		assertSame(stub, listener1.source);
-		
-		//Add a second listener as the 1 vs. 2 listener code is different.
-		ChangeListener listener2 = new ChangeListener();
-		stub.addChangeListener(listener2);
-		assertEquals(0, listener2.count);
-		
-		stub.fireChange();
-		assertEquals(2, listener1.count);
-		assertEquals(1, listener2.count);
-		
-		//Add a third listener as the 2 vs. 3 or greater code is different.
-		ChangeListener listener3 = new ChangeListener();
-		stub.addChangeListener(listener3);
-		assertEquals(0, listener3.count);
-		
-		stub.fireChange();
-		
-		assertEquals(3, listener1.count);
-		assertEquals(2, listener2.count);
-		assertEquals(1, listener3.count);
-		
-		assertFalse(stub.lastListenerRemoved);
-		stub.removeChangeListener(listener1);
-		stub.removeChangeListener(listener2);
-		stub.removeChangeListener(listener3);
-		assertTrue(stub.lastListenerRemoved);
-		
-		assertFalse(stub.hasListeners());
-	}
-	
-	public void testHasListenersWithChangeAndStaleListeners() throws Exception {
-		ChangeListener changeListener = new ChangeListener();
-		StaleListener staleListener = new StaleListener();
-		
-		assertFalse(stub.hasListeners());
-		assertFalse(stub.firstListenerAdded);
-		assertFalse(stub.lastListenerRemoved);
-		
-		stub.addChangeListener(changeListener);
-		assertTrue(stub.hasListeners());
-		assertTrue(stub.firstListenerAdded);
-		assertFalse(stub.lastListenerRemoved);
-		
-		//reset
-		stub.firstListenerAdded = false;
-		stub.lastListenerRemoved = false;
-		
-		stub.addStaleListener(staleListener);
-		assertTrue(stub.hasListeners());
-		assertFalse(stub.firstListenerAdded);
-		assertFalse(stub.lastListenerRemoved);
-		
-		stub.removeChangeListener(changeListener);
-		assertTrue(stub.hasListeners());
-		assertFalse(stub.firstListenerAdded);
-		assertFalse(stub.lastListenerRemoved);
-		
-		stub.removeStaleListener(staleListener);
-		assertFalse(stub.hasListeners());
-		assertFalse(stub.firstListenerAdded);
-		assertTrue(stub.lastListenerRemoved);
-	}
-	
-	private class ChangeListener implements IChangeListener {
-		int count;
-		IObservable source;
-		
-		public void handleChange(IObservable source) {
-			count++;
-			this.source = source;
-		}
-	}
-	
-	private class StaleListener implements IStaleListener {
-		int count;
-		IObservable source;
-		
-		public void handleStale(IObservable source) {
-			count++;
-			this.source = source;
-		}
-	}
-	
-	private static class ObservableStub extends AbstractObservable {
-		private boolean firstListenerAdded;
-		private boolean lastListenerRemoved;
-		
-		protected Object doGetValue() {
-			return null;
-		}
-		
-		public Object getValueType() {
-			return null;
-		}
-		
-		protected void fireStale() {
-			super.fireStale();
-		}
-
-		protected void fireChange() {
-			super.fireChange();
-		}
-		
-		public boolean isStale() {
-			return false;
-		}
-		
-		protected boolean hasListeners() {
-			return super.hasListeners();
-		}
-		
-		protected void firstListenerAdded() {
-			firstListenerAdded = true;
-		}
-		
-		protected void lastListenerRemoved() {
-			lastListenerRemoved = true;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/observable/ObservablesTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/observable/ObservablesTest.java
deleted file mode 100644
index b2f13cc..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/observable/ObservablesTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Cerner Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms 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.internal.databinding.provisional.observable;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.Observables;
-import org.eclipse.jface.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.observable.list.ObservableList;
-import org.eclipse.jface.internal.databinding.internal.observable.UnmodifiableObservableList;
-
-public class ObservablesTest extends TestCase {
-	public void testUnmodifableObservableListExceptions() throws Exception {
-		try {
-			Observables.unmodifiableObservableList(null);
-			fail("IllegalArgumentException should have been thrown.");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-	
-	public void testUnmodifiableObservableList() throws Exception {
-		IObservableList unmodifiable = Observables.unmodifiableObservableList(new ObservableListStub(new ArrayList(0), String.class));
-		assertTrue(unmodifiable instanceof UnmodifiableObservableList);
-	}
-	
-	private static class ObservableListStub extends ObservableList {
-		/**
-		 * @param wrappedList
-		 * @param elementType
-		 */
-		protected ObservableListStub(List wrappedList, Object elementType) {
-			super(wrappedList, elementType);
-		}		
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/viewers/ViewersObservableFactoryTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/viewers/ViewersObservableFactoryTest.java
deleted file mode 100644
index 74ca0f0..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/provisional/viewers/ViewersObservableFactoryTest.java
+++ /dev/null
@@ -1,92 +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.jface.tests.internal.databinding.provisional.viewers;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.observable.IObservable;
-import org.eclipse.jface.internal.databinding.internal.viewers.SelectionProviderSingleSelectionObservableValue;
-import org.eclipse.jface.internal.databinding.provisional.description.Property;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersObservableFactory;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewersProperties;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Tests for ViewerObservableFactory.
- * 
- * @since 1.1
- */
-public class ViewersObservableFactoryTest extends TestCase {
-	private Shell shell;
-	private ViewersObservableFactory factory;
-	
-	protected void setUp() throws Exception {
-		shell = new Shell();
-		factory = new ViewersObservableFactory();
-	}
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		if (shell != null && !shell.isDisposed()) {
-			shell.dispose();
-		}
-	}
-	
-	public void testGetObservableForSelectionProvider() throws Exception {
-		ISelectionProvider selectionProvider = new SelectionProviderStub();
-		IObservable observable = factory.createObservable(new Property(selectionProvider, ViewersProperties.SINGLE_SELECTION));
-		
-		assertNotNull(observable);
-		assertTrue(observable instanceof SelectionProviderSingleSelectionObservableValue);
-	}
-	
-	public void testGetObservableForTableViewer() throws Exception {		
-		TableViewer viewer = new TableViewer(shell);
-		IObservable observable = factory.createObservable(new Property(viewer, ViewersProperties.SINGLE_SELECTION));
-		
-		assertNotNull(observable);
-		assertTrue(observable instanceof SelectionProviderSingleSelectionObservableValue);
-	}
-	
-	public void testGetObservableForListViewer() throws Exception {
-		ListViewer viewer = new ListViewer(shell);
-		IObservable observable = factory.createObservable(new Property(viewer, ViewersProperties.SINGLE_SELECTION));
-		
-		assertNotNull(observable);
-		assertTrue(observable instanceof SelectionProviderSingleSelectionObservableValue);
-	}
-	
-	/**
-	 * Empty stub to satisfy the requirement that we have a type of ISelectionProvider that is not a viewer.
-	 */
-	private class SelectionProviderStub implements ISelectionProvider {
-		public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		}
-
-		public ISelection getSelection() {
-			return null;
-		}
-
-		public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-		}
-
-		public void setSelection(ISelection selection) {
-		}		
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/test.xml b/tests/org.eclipse.jface.tests.databinding/test.xml
deleted file mode 100644
index 73284d5..0000000
--- a/tests/org.eclipse.jface.tests.databinding/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.jface.tests.databinding"/>
-  <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}/databinding_sniff_folder"/>
-    <delete dir="${sniff-folder}" quiet="true"/>
-    <ant target="core-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.jface.tests.databinding.BindingTestSuite"/>
-    </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.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.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 0adc5a5..0000000
--- a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Fri Mar 03 16:41:41 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=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.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 cad2ab6..0000000
--- a/tests/org.eclipse.ui.tests.harness/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +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.0.0
-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,
- org.eclipse.ui.ide
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.ui.tests.harness.util
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/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/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/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/PlatformUtil.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/PlatformUtil.java
deleted file mode 100644
index fc1ca93..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/PlatformUtil.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.tests.harness.util;
-
-import org.eclipse.swt.SWT;
-
-/**
- * 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() {
-        String platform = SWT.getPlatform();
-        return platform.equals("carbon");
-    }
-}
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 9bcdc26..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/UITestCase.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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())
-                ;
-    }
-
-    /** 
-     * 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 8fb7895..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/VerifyDialog.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.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.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(SWT.getPlatform())
-                .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.navigator/.classpath b/tests/org.eclipse.ui.tests.navigator/.classpath
deleted file mode 100644
index 117bd34..0000000
--- a/tests/org.eclipse.ui.tests.navigator/.classpath
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.navigator/.cvsignore b/tests/org.eclipse.ui.tests.navigator/.cvsignore
deleted file mode 100644
index e91529a..0000000
--- a/tests/org.eclipse.ui.tests.navigator/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin 
diff --git a/tests/org.eclipse.ui.tests.navigator/.project b/tests/org.eclipse.ui.tests.navigator/.project
deleted file mode 100644
index 89770ed..0000000
--- a/tests/org.eclipse.ui.tests.navigator/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tests.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/tests/org.eclipse.ui.tests.navigator/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests.navigator/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ac2f029..0000000
--- a/tests/org.eclipse.ui.tests.navigator/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-#Thu Sep 14 08:14:32 EDT 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-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.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=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=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.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=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=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.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
diff --git a/tests/org.eclipse.ui.tests.navigator/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.ui.tests.navigator/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index afed118..0000000
--- a/tests/org.eclipse.ui.tests.navigator/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Thu Sep 14 08:14:32 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.navigator/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests.navigator/META-INF/MANIFEST.MF
deleted file mode 100644
index e0c446b..0000000
--- a/tests/org.eclipse.ui.tests.navigator/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %bundlename
-Bundle-SymbolicName: org.eclipse.ui.tests.navigator;singleton:=true
-Bundle-Activator: org.eclipse.ui.tests.navigator.NavigatorTestsPlugin
-Bundle-Version: 3.2.1.qualifier
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.ui.navigator,
- org.eclipse.ui,
- org.eclipse.ui.ide,
- org.eclipse.ui.workbench,
- org.junit,
- org.eclipse.ui.navigator.resources
-Eclipse-LazyStart: true
-Bundle-Vendor: Eclipse.org
-Bundle-ClassPath: uinavtests.jar
diff --git a/tests/org.eclipse.ui.tests.navigator/Navigator Test Suite.launch b/tests/org.eclipse.ui.tests.navigator/Navigator Test Suite.launch
deleted file mode 100644
index c24d57c..0000000
--- a/tests/org.eclipse.ui.tests.navigator/Navigator Test Suite.launch
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<stringAttribute key="bootstrap" value=""/>
-<booleanAttribute key="useProduct" value="true"/>
-<booleanAttribute key="tracing" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<stringAttribute key="checked" value="[NONE]"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.tests.navigator.NavigatorTestSuite"/>
-<stringAttribute key="pde.version" value="3.2a"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests.navigator"/>
-<booleanAttribute key="askclear" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests.navigator"/>
-</listAttribute>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.ui.tests.navigator/about.html b/tests/org.eclipse.ui.tests.navigator/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.ui.tests.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/tests/org.eclipse.ui.tests.navigator/build.properties b/tests/org.eclipse.ui.tests.navigator/build.properties
deleted file mode 100644
index 49309fa..0000000
--- a/tests/org.eclipse.ui.tests.navigator/build.properties
+++ /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
-###############################################################################
-source.uinavtests.jar = src/
-               
-src.includes = about.html
-output.uinavtests.jar = bin/
-bin.includes = testdata/,\
-               META-INF/,\
-               about.html,\
-               test.xml,\
-               plugin.xml,\
-               *.html,\
-               *.jar,\
-               *.xml,\
-               plugin.properties
diff --git a/tests/org.eclipse.ui.tests.navigator/plugin.properties b/tests/org.eclipse.ui.tests.navigator/plugin.properties
deleted file mode 100644
index d592e25..0000000
--- a/tests/org.eclipse.ui.tests.navigator/plugin.properties
+++ /dev/null
@@ -1,16 +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
-###############################################################################
-bundlename=Common Navigator Tests
-
-test.navigator.viewName=Test Navigator Viewer
-test.navigator.programmaticViewName=Test Programmatic Navigator View
-test.navigator.pipelineViewName=Test Pipline View
-test.navigator.extension=Test Navigator Extension
diff --git a/tests/org.eclipse.ui.tests.navigator/plugin.xml b/tests/org.eclipse.ui.tests.navigator/plugin.xml
deleted file mode 100644
index 53d370e..0000000
--- a/tests/org.eclipse.ui.tests.navigator/plugin.xml
+++ /dev/null
@@ -1,279 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            allowMultiple="false"
-            class="org.eclipse.ui.navigator.CommonNavigator"
-            id="org.eclipse.ui.tests.navigator.TestView"
-            name="%test.navigator.viewName"/>
-            
-      <view
-            allowMultiple="false"
-            class="org.eclipse.ui.navigator.CommonNavigator"
-            id="org.eclipse.ui.tests.navigator.ProgrammaticTestView"
-            name="%test.navigator.programmaticViewName"/>     
-            
-      <view
-            allowMultiple="false"
-            class="org.eclipse.ui.navigator.CommonNavigator"
-            id="org.eclipse.ui.tests.navigator.PipelineTestView"
-            name="%test.navigator.pipelineViewName"/>            
-   </extension>
-   <extension
-         point="org.eclipse.ui.navigator.navigatorContent">
-      <navigatorContent 
-            id="org.eclipse.ui.tests.navigator.testContent" 
-            name="%test.navigator.extension"
-            contentProvider="org.eclipse.ui.tests.navigator.extension.TestContentProvider"
-            labelProvider="org.eclipse.ui.tests.navigator.extension.TestLabelProvider"
-            activeByDefault="true"
-            priority="higher">
-         <triggerPoints>
-			<adapt type="org.eclipse.core.resources.IProject"/>
-         </triggerPoints> 
-         <possibleChildren>
-            <or>
-				<instanceof value="org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"/>
-				<instanceof value="org.eclipse.core.resources.IFile" />
-			</or>
-    
-         </possibleChildren> 
-      	 <actionProvider
-            class="org.eclipse.ui.tests.navigator.extension.TestNestedActionProvider"
-            id="org.eclipse.ui.tests.navigator.extension.TestNestedActionProvider"> 
-      	 </actionProvider>
-        <commonSorter
-              class="org.eclipse.ui.tests.navigator.extension.TestDataSorter"
-              id="org.eclipse.ui.tests.navigator.commonSorter">
-           <parentExpression>
-              <or>
-                 <adapt type="org.eclipse.core.resources.IProject"/>
-                 <instanceof value="org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"/>
-              </or>
-           </parentExpression>
-        </commonSorter>
-	      <actionProvider
-	            class="org.eclipse.ui.tests.navigator.extension.TestActionProvider"
-	            id="org.eclipse.ui.tests.navigator.extension.TestActionProvider"
-	            overrides="org.eclipse.ui.navigator.resources.actions.RefactorActions">
-	         <enablement>
-	            <instanceof value="org.eclipse.core.resources.IFile"/>
-	         </enablement>
-	      </actionProvider>
-      </navigatorContent>
-      <actionProvider
-            class="org.eclipse.ui.tests.navigator.extension.DependentActionProvider"
-            dependsOn="org.eclipse.ui.tests.navigator.extension.TestActionProvider"
-            id="org.eclipse.ui.tests.navigator.extension.DependentActionProvider">
-         <enablement>
-            <instanceof value="org.eclipse.core.resources.IResource"/>
-         </enablement>
-      </actionProvider>
-      <actionProvider
-            class="org.eclipse.ui.tests.navigator.extension.DependentActionProvider"
-            dependsOn="Invalid Id"
-            id="org.eclipse.ui.tests.navigator.extension.[If this menu option shows, it is an INTENTIONAL ERROR from org.eclipse.ui.tests.navigator! A warning SHOULD appear in the log!]">
-         <enablement>
-            <instanceof value="org.eclipse.core.resources.IResource"/>
-         </enablement>
-      </actionProvider>
-      <actionProvider
-            class="org.eclipse.ui.tests.navigator.extension.DependentActionProvider"
-            dependsOn="org.eclipse.ui.tests.navigator.extension.DependentActionProvider"
-            id="org.eclipse.ui.tests.navigator.extension.[Second Dependent Action]">
-         <enablement>
-            <instanceof value="org.eclipse.core.resources.IResource"/>
-         </enablement>
-      </actionProvider>
-      <navigatorContent
-            contentProvider="org.eclipse.ui.tests.navigator.extension.TestContentProvider"
-            id="org.eclipse.ui.tests.navigator.testContent2"
-            labelProvider="org.eclipse.ui.tests.navigator.extension.TestLabelProvider"
-            name="Test Navigator Extension [Programmatic Binding]">
-	     <triggerPoints>
-            <instanceof value="org.eclipse.core.resources.IProject"/>
-         </triggerPoints>            
-      </navigatorContent>
-      <commonFilter
-            class="org.eclipse.ui.tests.navigator.extension.TestItemsThatEndIn3"
-            description="Hide TestItem objects that end in the number &quot;3&quot;"
-            id="org.eclipse.ui.tests.navigator.filters.TestItemsThatEndWith3"
-            name="TestItems that end with &quot;3&quot;"
-            activeByDefault="true"
-            /> 
-      <commonFilter
-            description="Hides all instances of Test Item"
-            id="org.eclipse.ui.tests.navigator.filters.AllTestItems"
-            name="A TestItem Exp Filter (should be sorted alphab..)">
-         <filterExpression>
-            <instanceof value="org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"/>
-         </filterExpression>
-      </commonFilter>      
-      <commonFilter
-            class="org.eclipse.ui.tests.navigator.extension.TestItemsThatEndIn3"
-            description="This filter specifies a class an an expression; selecting it should result in a warning in the log."
-            id="org.eclipse.ui.tests.navigator.filters.ErrantFilter"
-            name="An errant filter">
-         <filterExpression>
-            <instanceof value="org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"/>
-         </filterExpression>
-      </commonFilter>
-   </extension>
-   <extension
-         point="org.eclipse.ui.navigator.viewer">
-      <viewer
-            popupMenuId="org.eclipse.ui.tests.navigator.TestView#PopupMenu"
-            viewerId="org.eclipse.ui.tests.navigator.TestView">
-         <options>
-            <!-- 
-            <property
-                  name="org.eclipse.ui.navigator.hideAvailableExtensionsTab"
-                  value="true"/>
-            
-            <property
-                  name="org.eclipse.ui.navigator.hideAvailableCustomizationsDialog"
-                  value="true"/>
-                  
-             --> 
-             <!--   -->
-            <property
-                  name="org.eclipse.ui.navigator.hideLinkWithEditorAction"
-                  value="true"/> 
-             <!--  -->
-            <property
-                  name="org.eclipse.ui.navigator.hideCollapseAllAction"
-                  value="true"/>  
-         </options>
-      </viewer>
-      <viewerContentBinding viewerId="org.eclipse.ui.tests.navigator.TestView">
-         <includes>
-            <contentExtension pattern="org.eclipse.ui.tests.navigator.testContent"/>
-            <contentExtension pattern="org.eclipse.ui.navigator.resourceContent"/>
-            <contentExtension pattern="org.eclipse.ui.tests.navigator.filters.*"/> 
-            <!-- pick up the resource filters for free --> 
-            <contentExtension pattern="org.eclipse.ui.navigator.resources.filters.*"/> 
-         </includes>
-      </viewerContentBinding>
-      
-      <!-- For testing -->
-      <viewerContentBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
-         <includes>
-            <contentExtension pattern="org.eclipse.ui.tests.navigator.testContent"/> 
-            <contentExtension pattern="org.eclipse.ui.tests.navigator.filters.*"/> 
-         </includes>
-      </viewerContentBinding>
-      <viewerActionBinding viewerId="org.eclipse.ui.tests.navigator.TestView">
-         <includes>
-            <actionExtension pattern="org.eclipse.ui.tests.navigator.extension.*"/>
-            <actionExtension pattern="org.eclipse.ui.navigator.resources.PropertiesActionProvider"/>
-         </includes>
-      </viewerActionBinding>
-      <dragAssistant
-            class="org.eclipse.ui.navigator.resources.ResourceDragAdapterAssistant"
-            viewerId="org.eclipse.ui.tests.navigator.TestView"/>
-   </extension>
- 
- 
-   <extension
-         point="org.eclipse.core.runtime.adapters">
-      <factory
-            adaptableType="org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"
-            class="org.eclipse.ui.tests.navigator.extension.TestExtensionAdapterFactory">
-         <adapter type="org.eclipse.core.resources.IResource"/>
-         <adapter type="org.eclipse.core.resources.IFile"/>
-      </factory>
-   </extension>
-   <extension
-         point="org.eclipse.ui.navigator.viewer">
-      <viewer viewerId="org.eclipse.ui.tests.navigator.ProgrammaticTestView"/>      
-      <viewer viewerId="org.eclipse.ui.tests.navigator.PipelineTestView"/>      
-      
-   </extension>
-   
-   
-   <!-- Verify decorator extension: Adds ">>" to Test Items that end in "3" --> 
-   <extension
-         point="org.eclipse.ui.decorators">
-      <decorator
-            class="org.eclipse.ui.tests.navigator.extension.TestLabelDecorator"
-            id="org.eclipse.ui.tests.navigator.threeDecorator"
-            label="Items that end in 3 decorator"
-            lightweight="false"
-            state="true">
-         <enablement>
-            <objectClass name="org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"/>
-         </enablement>
-      </decorator>
-   </extension>
-   <extension
-         point="org.eclipse.ui.activities">
-      <activityPatternBinding
-            activityId="org.eclipse.wst.web"
-            pattern="org\.eclipse\.ui\.tests\.navigator\.*"/> 
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <wizard
-            class="org.eclipse.ui.tests.navigator.wizards.NewWizard1"
-            id="org.eclipse.ui.tests.navigator.SampleNewWizard"
-            name="Sample New Wizard (Does Nothing)"/>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.importWizards">
-      <wizard
-            class="org.eclipse.ui.tests.navigator.wizards.ImportWizard1"
-            id="org.eclipse.ui.tests.navigator.SampleImportWizard"
-            name="Sample Import Wizard  (Does Nothing)"/>
-   </extension>
-  
-   <extension
-         point="org.eclipse.ui.exportWizards">
-      <wizard
-            class="org.eclipse.ui.tests.navigator.wizards.ExportWizard1"
-            id="org.eclipse.ui.tests.navigator.SampleExportWizard"
-            name="Sample Export Wizard  (Does Nothing)"/>
-   </extension>
-	<extension
-	      point="org.eclipse.ui.navigator.navigatorContent"> 
-      <commonWizard
-            associatedExtensionId="org.eclipse.ui.tests.navigator.testContent"
-            menuGroupId="org.eclipse.ui.tests.navigator"
-            type="import"
-            wizardId="org.eclipse.ui.tests.navigator.SampleImportWizard">
-         <enablement>
-            <or>
-				<instanceof value="org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"/>
-				<instanceof value="org.eclipse.core.resources.IFile" />
-			</or>         
-         </enablement>
-      </commonWizard>
-      <commonWizard
-            associatedExtensionId="org.eclipse.ui.tests.navigator.testContent"
-            menuGroupId="org.eclipse.ui.tests.navigator"
-            type="export"
-            wizardId="org.eclipse.ui.tests.navigator.SampleExportWizard">
-         <enablement>
-            <or>
-				<instanceof value="org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"/>
-				<instanceof value="org.eclipse.core.resources.IFile" />
-			</or>         
-         </enablement>
-      </commonWizard>
-      <commonWizard
-            associatedExtensionId="org.eclipse.ui.tests.navigator.testContent"
-            menuGroupId="org.eclipse.ui.tests.navigator"
-            type="new"
-            wizardId="org.eclipse.ui.tests.navigator.SampleNewWizard">  
-         <enablement>
-            <or>
-				<instanceof value="org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"/>
-				<instanceof value="org.eclipse.core.resources.IFile" />
-			</or>         
-         </enablement>            
-      </commonWizard>
-   </extension> 
-</plugin>
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/DisplayHelper.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/DisplayHelper.java
deleted file mode 100644
index fc9959b..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/DisplayHelper.java
+++ /dev/null
@@ -1,222 +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.navigator;
-
-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 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.navigator/src/org/eclipse/ui/tests/navigator/DisplayWaiter.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/DisplayWaiter.java
deleted file mode 100644
index 3517ad6..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/DisplayWaiter.java
+++ /dev/null
@@ -1,410 +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.navigator;
-
-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.navigator/src/org/eclipse/ui/tests/navigator/EditorTestHelper.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/EditorTestHelper.java
deleted file mode 100644
index 01b49b1..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/EditorTestHelper.java
+++ /dev/null
@@ -1,265 +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.navigator;
-
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Logger;
-
-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.Platform;
-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()) {
-			// do nothing
-		}
-	}
-	
-	/**
-	 * 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() throws CoreException {
-		// Join Building
-		Logger.global.entering("EditorTestHelper", "joinBackgroundActivities"); //$NON-NLS-1$ //$NON-NLS-2$
-		Logger.global.finer("join builder"); //$NON-NLS-1$
-		boolean interrupted= true;
-		while (interrupted) {
-			try {
-				Platform.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
-				interrupted= false;
-			} catch (InterruptedException e) {
-				interrupted= true;
-			}
-		} 
-		// Join jobs
-		joinJobs(0, 0, 500);
-		Logger.global.exiting("EditorTestHelper", "joinBackgroundActivities"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public static boolean joinJobs(long minTime, long maxTime, long intervalTime) {
-		Logger.global.entering("EditorTestHelper", "joinJobs"); //$NON-NLS-1$ //$NON-NLS-2$
-		runEventQueue(minTime);
-		
-		DisplayHelper helper= new DisplayHelper() {
-			public boolean condition() {
-				return allJobsQuiet();
-			}
-		};
-		boolean quiet= helper.waitForCondition(getActiveDisplay(), maxTime > 0 ? maxTime : Long.MAX_VALUE, intervalTime);
-		Logger.global.exiting("EditorTestHelper", "joinJobs", new Boolean(quiet)); //$NON-NLS-1$ //$NON-NLS-2$
-		return quiet;
-	}
-	
-	public static void sleep(int intervalTime) {
-		try {
-			Thread.sleep(intervalTime);
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-	}
-	
-	public static boolean allJobsQuiet() {
-		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();
-			if (state == Job.RUNNING || state == Job.WAITING) {
-				Logger.global.finest(job.getName());
-				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.navigator/src/org/eclipse/ui/tests/navigator/INavigatorContentServiceTests.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/INavigatorContentServiceTests.java
deleted file mode 100644
index 5e61529..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/INavigatorContentServiceTests.java
+++ /dev/null
@@ -1,246 +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.navigator;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.INavigatorContentDescriptor;
-import org.eclipse.ui.navigator.INavigatorContentExtension;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.NavigatorContentServiceFactory;
-import org.eclipse.ui.tests.navigator.extension.TestContentProvider;
-import org.eclipse.ui.tests.navigator.util.TestWorkspace;
-
-public class INavigatorContentServiceTests extends TestCase {
-
-	public static final String COMMON_NAVIGATOR_INSTANCE_ID = "org.eclipse.ui.tests.navigator.TestView";
-
-	public static final String TEST_EXTENSION_ID = "org.eclipse.ui.tests.navigator.testContent";
-
-	public static final String TEST_EXTENSION_2_ID = "org.eclipse.ui.tests.navigator.testContent2";
-
-	public static final String RESOURCE_EXTENSION_ID = "org.eclipse.ui.navigator.resourceContent";
-
-	private final Map expectedChildren = new HashMap();
-
-	private IProject project;
-
-	private INavigatorContentService contentService;
-
-	private CommonViewer viewer;
-
-	protected void setUp() throws Exception {
-
-		TestWorkspace.init();
-
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		project = root.getProject("Test");
-		Map projectMap = new HashMap();
-
-		expectedChildren.put(project, (projectMap = new HashMap()));
-
-		projectMap.put(project.getFolder("src"), new HashMap());
-		projectMap.put(project.getFolder("bin"), new HashMap());
-		projectMap.put(project.getFile(".project"), null);
-		projectMap.put(project.getFile(".classpath"), null);
-		projectMap.put(project.getFile("model.properties"), null);
-
-		EditorTestHelper.showView(COMMON_NAVIGATOR_INSTANCE_ID, true);
-
-		IWorkbenchWindow activeWindow = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		IWorkbenchPage activePage = activeWindow.getActivePage();
-
-		IViewPart commonNavigator = activePage
-				.findView(COMMON_NAVIGATOR_INSTANCE_ID);
-
-		viewer = (CommonViewer) commonNavigator.getAdapter(CommonViewer.class);
-		viewer.expandAll();
-
-		contentService = viewer.getNavigatorContentService();
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-
-	public void testFindValidExtensions() {
-
-		contentService
-				.getActivationService()
-				.activateExtensions(
-						new String[] { TEST_EXTENSION_ID, RESOURCE_EXTENSION_ID },
-						true);
-
-		ITreeContentProvider contentServiceContentProvider = contentService
-				.createCommonContentProvider();
-
-		ILabelProvider contentServiceLabelProvider = contentService
-				.createCommonLabelProvider();
-
-		ITreeContentProvider[] rootContentProviders = ((NavigatorContentService) contentService)
-				.findRootContentProviders(ResourcesPlugin.getWorkspace()
-						.getRoot());
-
-		assertEquals("Ensure there is only one root content provider.", 1,
-				rootContentProviders.length);
-
-		Set projectContentExtensions = contentService
-				.findContentExtensionsByTriggerPoint(project);
-
-		assertEquals("Ensure there are two content providers for an IProject.",
-				2, projectContentExtensions.size());
-
-		boolean found = false;
-		INavigatorContentExtension ext;
-		for (Iterator i = projectContentExtensions.iterator(); i.hasNext();) {
-			ext = (INavigatorContentExtension) i.next();
-			if (ext.getContentProvider() instanceof TestContentProvider) {
-
-				TestContentProvider testContentProvider = (TestContentProvider) ext
-						.getContentProvider();
-				Object[] projectChildren = testContentProvider
-						.getChildren(project);
-				assertEquals(
-						"There should be one test-type child of the project.",
-						1, projectChildren.length);
-				assertEquals("Parent", contentServiceLabelProvider
-						.getText(projectChildren[0]));
-				Object[] testRootChildren = contentServiceContentProvider
-						.getChildren(projectChildren[0]);
-				assertEquals(
-						"There should be one test-type child of the root test-type item.",
-						3, testRootChildren.length);
-				found = true;
-			}
-		}
-
-		assertTrue("The test content provider was not found.", found);
-
-	}
-
-	public void testDeactivateTestExtension() {
-
-		contentService.getActivationService().activateExtensions(
-				new String[] { RESOURCE_EXTENSION_ID }, true);
-
-		contentService.createCommonContentProvider();
-
-		contentService.createCommonLabelProvider();
-
-		Set rootContentProviders = contentService
-				.findRootContentExtensions(ResourcesPlugin.getWorkspace()
-						.getRoot());
-
-		assertEquals("Ensure there is only one root content provider.", 1,
-				rootContentProviders.size());
-
-		Set projectContentExtensions = contentService
-				.findContentExtensionsByTriggerPoint(project);
-
-		assertEquals("Ensure there is one content provider for an IProject.",
-				1, projectContentExtensions.size());
-
-	}
-
-	public void testBindTestExtension() {
-
-		INavigatorContentService contentServiceWithProgrammaticBindings = NavigatorContentServiceFactory.INSTANCE
-				.createContentService(COMMON_NAVIGATOR_INSTANCE_ID);
-		INavigatorContentDescriptor[] boundDescriptors = contentServiceWithProgrammaticBindings
-				.bindExtensions(new String[] { TEST_EXTENSION_2_ID }, false);
-		contentServiceWithProgrammaticBindings
-				.getActivationService()
-				.activateExtensions(
-						new String[] { RESOURCE_EXTENSION_ID,
-								TEST_EXTENSION_ID, TEST_EXTENSION_2_ID }, false);
-
-		assertEquals("One descriptor should have been returned.", 1,
-				boundDescriptors.length);
-
-		assertEquals(
-				"The declarative content service should have one fewer visible extension ids than the one created programmatically.",
-				contentService.getVisibleExtensionIds().length + 1,
-				contentServiceWithProgrammaticBindings.getVisibleExtensionIds().length);
-
-		INavigatorContentDescriptor[] visibleDescriptors = contentServiceWithProgrammaticBindings
-				.getVisibleExtensions();
-		boolean found = false;
-		for (int i = 0; i < visibleDescriptors.length; i++)
-			if (TEST_EXTENSION_2_ID.equals(visibleDescriptors[i].getId()))
-				found = true;
-		assertTrue("The programmatically bound extension should be bound.",
-				found);
-
-		Set enabledDescriptors = contentServiceWithProgrammaticBindings
-				.findContentExtensionsByTriggerPoint(project);
-
-		assertEquals("There should be a three extensions.", 3,
-				enabledDescriptors.size());
-
-	}
-
-	public void testTestExtensionVisibility() {
-		assertTrue("The test extension should be visible.", contentService
-				.getViewerDescriptor().isVisibleContentExtension(
-						TEST_EXTENSION_ID));
-	}
-
-	public void testResourceExtensionVisibility() {
-		assertTrue("The test extension should be visible.", contentService
-				.getViewerDescriptor().isVisibleContentExtension(
-						RESOURCE_EXTENSION_ID));
-	}
-
-	public void testVisibleExtensionIds() {
-		String[] visibleIds = contentService.getVisibleExtensionIds();
-
-		assertEquals("There should be two visible extensions.", 2,
-				visibleIds.length);
-
-		for (int i = 0; i < visibleIds.length; i++) {
-			if (!TEST_EXTENSION_ID.equals(visibleIds[i])
-					&& !RESOURCE_EXTENSION_ID.equals(visibleIds[i])) {
-				assertTrue("The extension id is invalid:" + visibleIds[i],
-						false);
-			}
-		}
-
-		INavigatorContentDescriptor[] visibleDescriptors = contentService
-				.getVisibleExtensions();
-
-		for (int i = 0; i < visibleIds.length; i++) {
-			if (!TEST_EXTENSION_ID.equals(visibleDescriptors[i].getId())
-					&& !RESOURCE_EXTENSION_ID.equals(visibleDescriptors[i]
-							.getId())) {
-				assertTrue("The extension id is invalid:"
-						+ visibleDescriptors[i].getId(), false);
-			}
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/NavigatorTestSuite.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/NavigatorTestSuite.java
deleted file mode 100644
index a077793..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/NavigatorTestSuite.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.navigator;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public final class NavigatorTestSuite extends TestSuite {
-
-	/**
-	 * Returns the suite. This is required to use the JUnit Launcher.
-	 */
-	public static final Test suite() {
-		return new NavigatorTestSuite();
-	}
-
-	/**
-	 * Construct the test suite.
-	 */
-	public NavigatorTestSuite() {
-		addTest(new TestSuite(OpenTest.class));
-		addTest(new TestSuite(INavigatorContentServiceTests.class));
-		addTest(new TestSuite(ProgrammaticOpenTest.class));
-		addTest(new TestSuite(PipelineTest.class));
-		
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/NavigatorTestsPlugin.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/NavigatorTestsPlugin.java
deleted file mode 100644
index 97babda..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/NavigatorTestsPlugin.java
+++ /dev/null
@@ -1,111 +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.navigator;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * 
- * Not exposed as API.
- * @since 3.2
- *
- */
-public class NavigatorTestsPlugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static NavigatorTestsPlugin plugin; 
-	/**
-	 * The plugin id
-	 */
-	public static String PLUGIN_ID = "org.eclipse.ui.tests.navigator"; //$NON-NLS-1$
-
-	/**
-	 * Creates a new instance of the receiver
-	 */
-	public NavigatorTestsPlugin() {
- 		super();
-		plugin = this;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static NavigatorTestsPlugin getDefault() {
-		return plugin;
-	}
- 
-
-	/**
-	 * Log the given status to the ISV log.
-	 * 
-	 * When to use this:
-	 * 
-	 * This should be used when a PluginException or a ExtensionException occur but for which an
-	 * error dialog cannot be safely shown.
-	 * 
-	 * If you can show an ErrorDialog then do so, and do not call this method.
-	 * 
-	 * If you have a plugin exception or core exception in hand call log(String, IStatus)
-	 * 
-	 * This convenience method is for internal use by the Workbench only and must not be called
-	 * outside the workbench.
-	 * 
-	 * This method is supported in the event the log allows plugin related information to be logged
-	 * (1FTTJKV). This would be done by this method.
-	 * 
-	 * This method is internal to the workbench and must not be called by any plugins, or examples.
-	 * 
-	 * @param message
-	 *            A high level UI message describing when the problem happened.
-	 *  
-	 */
-
-	public static void log(String message) {
-		getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, 0, message, null));
-		System.err.println(message);
-		//1FTTJKV: ITPCORE:ALL - log(status) does not allow plugin information to be recorded
-	}
-
-	/**
-	 * Logs errors.
-	 */
-	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$
-		}
-		getDefault().getLog().log(status);
-		System.err.println(status.getMessage());
-	} 
-	
-
-	public static void logError(int aCode, String aMessage, Throwable anException) { 
-		getDefault().getLog().log(createErrorStatus(aCode, aMessage, anException)); 
-	}
-
-	public static void log(int severity, int aCode, String aMessage, Throwable exception) {
-		log(createStatus(severity, aCode, aMessage, exception));
-	}
-
-	public static void log(IStatus aStatus) { 
-		getDefault().getLog().log(aStatus); 
-	} 
-	 
-	public static IStatus createStatus(int severity, int aCode, String aMessage, Throwable exception) {
-		return new Status(severity, PLUGIN_ID, aCode, aMessage, exception);
-	}
- 
-	public static IStatus createErrorStatus(int aCode, String aMessage, Throwable exception) {
-		return createStatus(IStatus.ERROR, aCode, aMessage, exception);
-	} 
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/OpenTest.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/OpenTest.java
deleted file mode 100644
index 575a342..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/OpenTest.java
+++ /dev/null
@@ -1,130 +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.navigator;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.navigator.filters.UpdateActiveFiltersOperation;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.tests.navigator.util.TestWorkspace;
-
-public class OpenTest extends TestCase {
-
-	public static final String COMMON_NAVIGATOR_INSTANCE_ID = "org.eclipse.ui.navigator.ProjectExplorer"; //$NON-NLS-1$
-	public static final String COMMON_NAVIGATOR_RESOURCE_EXT = "org.eclipse.ui.navigator.resourceContent"; //$NON-NLS-1$
-
-	private Set expectedChildren = new HashSet();
-
-	private IProject project;
-
-	private CommonViewer viewer;
-
-	private INavigatorContentService contentService;
-
-	protected void setUp() throws Exception {
-
-		TestWorkspace.init();
-
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		project = root.getProject("Test"); //$NON-NLS-1$
-
-		expectedChildren.add(project.getFolder("src")); //$NON-NLS-1$
-		expectedChildren.add(project.getFolder("bin")); //$NON-NLS-1$
-		expectedChildren.add(project.getFile(".project")); //$NON-NLS-1$
-		expectedChildren.add(project.getFile(".classpath")); //$NON-NLS-1$ 
-		expectedChildren.add(project.getFile("model.properties")); //$NON-NLS-1$
-		
-
-		EditorTestHelper.showView(COMMON_NAVIGATOR_INSTANCE_ID, true);
-
-		IWorkbenchWindow activeWindow = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		IWorkbenchPage activePage = activeWindow.getActivePage();
-
-		IViewPart commonNavigator = activePage
-				.findView(COMMON_NAVIGATOR_INSTANCE_ID);
-		commonNavigator.setFocus();
-		viewer = (CommonViewer) commonNavigator
-						.getAdapter(CommonViewer.class);
-
-		contentService = viewer
-						.getNavigatorContentService(); 
-
-		IUndoableOperation updateFilters = new UpdateActiveFiltersOperation(viewer, new String[0], true);
-		updateFilters.execute(null, null);
- 
-	}
-
-	public void testNavigatorRootContents() throws Exception {
-
-
-		contentService.getActivationService().activateExtensions(
-				new String[] { COMMON_NAVIGATOR_RESOURCE_EXT }, true); 
-
-		viewer.refresh();
-		viewer.expandAll();
-
-		TreeItem[] items = viewer.getTree().getItems();
-
-		assertTrue("There should be some items.", items.length > 0); //$NON-NLS-1$		
-
-		assertEquals(project, items[0].getData());
-
-		// we do this to force the rendering of the children of items[0]
-		viewer
-				.setSelection(new StructuredSelection(project
-						.getFile(".project"))); //$NON-NLS-1$
-
-		TreeItem[] children = items[0].getItems();
-
-		assertEquals(expectedChildren.size(), children.length);
-		for (int i = 0; i < children.length; i++) {
-			assertTrue(expectedChildren.contains(children[i].getData()));
-		}
-
-	}
-
-	public void testNavigatorExtensionEnablement() throws Exception { 
-
-		contentService.getActivationService().activateExtensions(new String[] {}, true);
-
-		viewer.refresh();
-		viewer.expandAll();
-
-		TreeItem[] items = viewer.getTree().getItems();
-
-		assertTrue("There should be NO items.", items.length == 0); //$NON-NLS-1$
-
-		contentService.getActivationService().deactivateExtensions(new String[] {}, true);
-
-		viewer.expandToLevel(2);
-
-		items = viewer.getTree().getItems();
-
-		assertTrue("There should be some items.", items.length > 0); //$NON-NLS-1$
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/PipelineTest.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/PipelineTest.java
deleted file mode 100644
index 18ceacf..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/PipelineTest.java
+++ /dev/null
@@ -1,151 +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.navigator;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.navigator.filters.UpdateActiveFiltersOperation;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.tests.navigator.util.TestWorkspace;
-
-public class PipelineTest extends TestCase {
-
-	public static final String COMMON_NAVIGATOR_INSTANCE_ID = "org.eclipse.ui.tests.navigator.PipelineTestView"; //$NON-NLS-1$
-
-	public static final String COMMON_NAVIGATOR_RESOURCE_EXT = "org.eclipse.ui.navigator.resourceContent"; //$NON-NLS-1$
-	
-	public static final String COMMON_NAVIGATOR_JAVA_EXT = "org.eclipse.jdt.java.ui.javaContent"; //$NON-NLS-1$
-
-	private Set expectedChildren = new HashSet();
-
-	private IProject project;
-
-	private CommonViewer viewer;
-
-	private INavigatorContentService contentService;
-
-	protected void setUp() throws Exception {
-
-		TestWorkspace.init();
-
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		project = root.getProject("Test"); //$NON-NLS-1$
-
-		expectedChildren.add(project.getFolder("src")); //$NON-NLS-1$
-		expectedChildren.add(project.getFolder("bin")); //$NON-NLS-1$
-		expectedChildren.add(project.getFile(".project")); //$NON-NLS-1$
-		expectedChildren.add(project.getFile(".classpath")); //$NON-NLS-1$ 
-		expectedChildren.add(project.getFile("model.properties")); //$NON-NLS-1$
-
-		EditorTestHelper.showView(COMMON_NAVIGATOR_INSTANCE_ID, true);
-
-		IWorkbenchWindow activeWindow = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		IWorkbenchPage activePage = activeWindow.getActivePage();
-
-		IViewPart commonNavigator = activePage
-				.findView(COMMON_NAVIGATOR_INSTANCE_ID);
-		commonNavigator.setFocus();
-		viewer = (CommonViewer) commonNavigator.getAdapter(CommonViewer.class);
-
-		contentService = viewer.getNavigatorContentService();
-
-		IUndoableOperation updateFilters = new UpdateActiveFiltersOperation(
-				viewer, new String[0], true);
-		updateFilters.execute(null, null);
-
-	}
-
-	public void testNavigatorRootContents() throws Exception {
-
-		assertEquals(
-				"There should be no visible extensions for the pipeline viewer.", 0,
-				contentService.getVisibleExtensionIds().length);
-
-		contentService.bindExtensions(
-				new String[] { COMMON_NAVIGATOR_RESOURCE_EXT, COMMON_NAVIGATOR_JAVA_EXT }, false);
-
-		assertEquals(
-				"There should be two visible extension for the pipeline viewer.", 2,
-				contentService.getVisibleExtensionIds().length);
-
-		contentService.getActivationService().activateExtensions(
-				new String[] { COMMON_NAVIGATOR_RESOURCE_EXT, COMMON_NAVIGATOR_JAVA_EXT }, true);
-
-		viewer.refresh();
-		
-
-		// we do this to force the rendering of the children of items[0]
-		viewer
-				.setSelection(new StructuredSelection(project
-						.getFile(".project")), true); //$NON-NLS-1$
-
-		TreeItem[] rootItems = viewer.getTree().getItems();
-		
-		assertEquals("There should be one item.", 1, rootItems.length); //$NON-NLS-1$		
-		
-		assertTrue("The root object should be an IJavaProject, which is IAdaptable.", rootItems[0].getData() instanceof IAdaptable); //$NON-NLS-1$
-
-		IProject adaptedProject = (IProject) ((IAdaptable)rootItems[0].getData()).getAdapter(IProject.class); 
-		assertEquals(project, adaptedProject);
-		
-		IFolder sourceFolder = project.getFolder(new Path("src"));
-		viewer.add(project, sourceFolder);
-		  
-		TreeItem[] projectChildren = rootItems[0].getItems(); 
-
-		assertTrue("There should be some items.", projectChildren.length > 0); //$NON-NLS-1$
-		 
-		for (int i = 0; i < projectChildren.length; i++) {
-			if(projectChildren[i].getData() == sourceFolder)
-				fail("The src folder should not be added as an IFolder.");			
-		}
-		
-		// a new project without a Java nature should add without an issue.
-		IProject newProject = ResourcesPlugin.getWorkspace().getRoot().getProject("New Project");
-		viewer.add(viewer.getInput(), newProject);
-		
-		rootItems = viewer.getTree().getItems();
-		
-		assertEquals("There should be two items.", 2, rootItems.length); //$NON-NLS-1$
-		
-		boolean found = false;
-		for (int i = 0; i < rootItems.length; i++) {
-			if(rootItems[i].getData() instanceof IProject) {
-				IProject newProjectFromTree = (IProject) rootItems[i].getData();
-				assertEquals(newProject, newProjectFromTree);
-				found = true;
-			}	
-		}
-		assertTrue(found);
-
-		
-	}
- 
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/ProgrammaticOpenTest.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/ProgrammaticOpenTest.java
deleted file mode 100644
index 55e08bf..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/ProgrammaticOpenTest.java
+++ /dev/null
@@ -1,141 +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.navigator;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.navigator.filters.UpdateActiveFiltersOperation;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.tests.navigator.util.TestWorkspace;
-
-public class ProgrammaticOpenTest extends TestCase {
-
-	public static final String COMMON_NAVIGATOR_INSTANCE_ID = "org.eclipse.ui.tests.navigator.ProgrammaticTestView"; //$NON-NLS-1$
-
-	public static final String COMMON_NAVIGATOR_RESOURCE_EXT = "org.eclipse.ui.navigator.resourceContent"; //$NON-NLS-1$
-
-	private Set expectedChildren = new HashSet();
-
-	private IProject project;
-
-	private CommonViewer viewer;
-
-	private INavigatorContentService contentService;
-
-	protected void setUp() throws Exception {
-
-		TestWorkspace.init();
-
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		project = root.getProject("Test"); //$NON-NLS-1$
-
-		expectedChildren.add(project.getFolder("src")); //$NON-NLS-1$
-		expectedChildren.add(project.getFolder("bin")); //$NON-NLS-1$
-		expectedChildren.add(project.getFile(".project")); //$NON-NLS-1$
-		expectedChildren.add(project.getFile(".classpath")); //$NON-NLS-1$ 
-		expectedChildren.add(project.getFile("model.properties")); //$NON-NLS-1$
-
-		EditorTestHelper.showView(COMMON_NAVIGATOR_INSTANCE_ID, true);
-
-		IWorkbenchWindow activeWindow = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		IWorkbenchPage activePage = activeWindow.getActivePage();
-
-		IViewPart commonNavigator = activePage
-				.findView(COMMON_NAVIGATOR_INSTANCE_ID);
-		commonNavigator.setFocus();
-		viewer = (CommonViewer) commonNavigator.getAdapter(CommonViewer.class);
-
-		contentService = viewer.getNavigatorContentService();
-
-		IUndoableOperation updateFilters = new UpdateActiveFiltersOperation(
-				viewer, new String[0], true);
-		updateFilters.execute(null, null);
-
-	}
-
-	public void testNavigatorRootContents() throws Exception {
-
-		assertEquals(
-				"There should be no visible extensions for the programmatic viewer.", 0, 
-				contentService.getVisibleExtensionIds().length);
-
-		contentService.bindExtensions(
-				new String[] { COMMON_NAVIGATOR_RESOURCE_EXT }, false);
-
-		assertEquals(
-				"There should be one visible extension for the programmatic viewer.", 1,
-				contentService.getVisibleExtensionIds().length);
-
-		contentService.getActivationService().activateExtensions(
-				new String[] { COMMON_NAVIGATOR_RESOURCE_EXT }, true);
-
-		viewer.refresh();
-		viewer.expandAll();
-
-		TreeItem[] items = viewer.getTree().getItems();
-
-		assertTrue("There should be some items.", items.length > 0); //$NON-NLS-1$		
-
-		assertEquals(project, items[0].getData());
-
-		// we do this to force the rendering of the children of items[0]
-		viewer
-				.setSelection(new StructuredSelection(project
-						.getFile(".project"))); //$NON-NLS-1$
-
-		TreeItem[] children = items[0].getItems();
-
-		assertEquals(expectedChildren.size(), children.length);
-		for (int i = 0; i < children.length; i++) {
-			assertTrue(expectedChildren.contains(children[i].getData()));
-		}
-
-	}
-
-	public void testNavigatorExtensionEnablement() throws Exception {
-
-		contentService.getActivationService().activateExtensions(
-				new String[] {}, true);
-
-		viewer.refresh();
-		viewer.expandAll();
-
-		TreeItem[] items = viewer.getTree().getItems();
-
-		assertTrue("There should be NO items.", items.length == 0); //$NON-NLS-1$
-
-		contentService.getActivationService().deactivateExtensions(
-				new String[] {}, true);
-
-		viewer.expandToLevel(2);
-
-		items = viewer.getTree().getItems();
-
-		assertTrue("There should be some items.", items.length > 0); //$NON-NLS-1$
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/SWTEventHelper.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/SWTEventHelper.java
deleted file mode 100644
index 77ef6b0..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/SWTEventHelper.java
+++ /dev/null
@@ -1,139 +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.navigator;
-
-import junit.framework.Assert;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-
-
-/**
- * @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);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/DependentAction.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/DependentAction.java
deleted file mode 100644
index 8179ddc..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/DependentAction.java
+++ /dev/null
@@ -1,31 +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.navigator.extension;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-
-public class DependentAction extends Action implements IAction {
- 
-	private Shell shell;
-
-	public DependentAction(Shell aShell, String isValid) {
-		super("Dependent Action: " + isValid);
-		shell = aShell;
-		
-	}
-	
-	public void run() {
-		MessageDialog.openInformation(shell, "DependentAction", "The dependent action ran!");
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/DependentActionProvider.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/DependentActionProvider.java
deleted file mode 100644
index 7415868..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/DependentActionProvider.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.navigator.extension;
-
-import junit.framework.Assert;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-
-public class DependentActionProvider extends CommonActionProvider {
-
-	private IAction action = null;
-	
-	public void init(ICommonActionExtensionSite aConfig) {
-		 action = new DependentAction(aConfig.getViewSite().getShell(), aConfig.getExtensionId());
-	}
-	
-	public void fillContextMenu(IMenuManager menu) { 
-		IMenuManager submenu = menu.findMenuUsingPath(TestActionProvider.GROUP_TEST_MENU);
-		Assert.assertNotNull("The submenu should have been added by TestActionProvider!", submenu);
-		submenu.insertAfter(TestActionProvider.GROUP_TEST_DEPENDENCY, action);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestAction.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestAction.java
deleted file mode 100644
index 2d4ba86..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestAction.java
+++ /dev/null
@@ -1,36 +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.navigator.extension;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-
-public class TestAction extends Action implements IAction {
-
-	private Shell shell;
-
-	public TestAction(Shell aShell) {
-		super("Test Action");
-		shell = aShell;
-	}
-
-	public TestAction(Shell aShell, String label) {
-		super(label);
-		shell = aShell;
-	}
-
-	public void run() {
-		MessageDialog.openInformation(shell, "Shell", "The " + getText()
-				+ " ran!");
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestActionProvider.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestActionProvider.java
deleted file mode 100644
index b6547aa..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestActionProvider.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.navigator.extension;
-
-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.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonMenuConstants;
-
-public class TestActionProvider extends CommonActionProvider {
-
-	public static final String GROUP_TEST_MENU = "group.testMenu";
-
-	public static final String GROUP_TEST_DEPENDENCY = "group.testDependency";
-
-	private IAction action = null;
-
-	public void init(ICommonActionExtensionSite aSite) {
-		action = new TestAction(aSite.getViewSite().getShell());
-		
-
-	}
-
-	public void fillContextMenu(IMenuManager menu) {
-		IMenuManager submenu = new MenuManager("CN Test Menu", GROUP_TEST_MENU);
-		submenu.add(action);
-		submenu.add(new GroupMarker(GROUP_TEST_DEPENDENCY));
-		menu.insertAfter(ICommonMenuConstants.GROUP_REORGANIZE, submenu);
-	}
-
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestContentProvider.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestContentProvider.java
deleted file mode 100644
index b2485ba..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestContentProvider.java
+++ /dev/null
@@ -1,195 +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.navigator.extension;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-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.IResourceDeltaVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-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.runtime.Platform;
-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;
-
-public class TestContentProvider implements ITreeContentProvider,
-		IResourceChangeListener, IResourceDeltaVisitor {
-
-	private static final String MODEL_ROOT = "root";
-
-	private static final Object[] NO_CHILDREN = new Object[0];
-
-	private static final IPath MODEL_FILE_PATH = new Path("model.properties");
-
-	private final Map rootElements = new HashMap();
-
-	private StructuredViewer viewer;
-	
-	public TestContentProvider() {
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	public Object[] getChildren(Object parentElement) {
-		
-		
-		
-		if (parentElement instanceof TestExtensionTreeData) {
-			TestExtensionTreeData data = (TestExtensionTreeData) parentElement;
-			return data.getChildren();
-		} else {
-
-			IProject project = adaptToProject(parentElement);  
-			if (project != null && project.isAccessible()) {
-				IFile modelFile = project.getFile(MODEL_FILE_PATH);
-				if (rootElements.containsKey(modelFile)) {
-					TestExtensionTreeData model = (TestExtensionTreeData) rootElements
-							.get(modelFile);
-					return model != null ? model.getChildren() : NO_CHILDREN;
-				} else {
-					TestExtensionTreeData model = updateModel(modelFile);
-					return model != null ? model.getChildren() : NO_CHILDREN;
-				}
-			}
-		}  
-		return NO_CHILDREN;
-	}
-
-	/**
-	 * @param parentElement
-	 * @param class1
-	 * @return
-	 */
-	private IProject adaptToProject(Object parentElement) {
-		if(parentElement instanceof IProject)
-			return (IProject) parentElement;
-		else if(parentElement instanceof IAdaptable)
-			return (IProject) ((IAdaptable) parentElement).getAdapter(IProject.class);
-		else 
-			return (IProject) Platform.getAdapterManager().getAdapter(parentElement, IProject.class); 
-	}
-
-	/**
-	 * @param modelFile
-	 */
-	private TestExtensionTreeData updateModel(IFile modelFile) {
-		Properties model = new Properties();
-		if (modelFile.exists()) {
-			try {
-				model.load(modelFile.getContents());
-				TestExtensionTreeData root = new TestExtensionTreeData(null,
-						MODEL_ROOT, model, modelFile);
-				rootElements.put(modelFile, root);
-				return root;
-			} catch (IOException e) {
-			} catch (CoreException e) {
-			}
-		} else {
-			rootElements.remove(modelFile);
-		}
-		return null;
-
-	}
-
-	public Object getParent(Object element) {
-		if (element instanceof TestExtensionTreeData) {
-			TestExtensionTreeData data = (TestExtensionTreeData) element;
-			return data.getParent();
-		}
-		return null;
-	}
-
-	public boolean hasChildren(Object element) {
-		if (element instanceof TestExtensionTreeData) {
-			TestExtensionTreeData data = (TestExtensionTreeData) element;
-			return data.getChildren().length > 0;
-		}
-		return false;
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return getChildren(inputElement);
-	}
-
-	public void dispose() {
-		rootElements.clear();
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
-
-	}
-
-	public void inputChanged(Viewer aViewer, Object oldInput, Object newInput) {
-		if (oldInput != null && !oldInput.equals(newInput))
-			rootElements.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) throws CoreException {
-
-		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 ("model.properties".equals(file.getName())) {
-				updateModel(file);
-				new UIJob("Update Test Model in CommonViewer") {
-					public IStatus runInUIThread(IProgressMonitor monitor) {
-						if (viewer != null && !viewer.getControl().isDisposed())
-							viewer.refresh(file.getParent());
-						return Status.OK_STATUS;						
-					}
-				}.schedule();
-			}
-			return false;
-		}
-		return false;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestDataSorter.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestDataSorter.java
deleted file mode 100644
index c5776a1..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestDataSorter.java
+++ /dev/null
@@ -1,48 +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.navigator.extension;
-
-import java.text.Collator;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-public class TestDataSorter extends ViewerSorter {
-
-	public TestDataSorter() {
-		super(); 
-	}
-
-	public TestDataSorter(Collator collator) {
-		super(collator); 
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-	 */
-	public int compare(Viewer viewer, Object e1, Object e2) {
-	
-		if(e1 instanceof TestExtensionTreeData) {
-			if(e2 instanceof TestExtensionTreeData) {
-				TestExtensionTreeData lvalue = (TestExtensionTreeData) e1;
-				TestExtensionTreeData rvalue = (TestExtensionTreeData) e2;
-				
-				return lvalue.getName().compareTo(rvalue.getName());
-			}
-			return -1;
-		} else if(e2 instanceof TestExtensionTreeData) {
-			return +1;
-		}
-		
-		return super.compare(viewer, e1, e2);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestExtensionAdapterFactory.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestExtensionAdapterFactory.java
deleted file mode 100644
index 56109bd..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestExtensionAdapterFactory.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.navigator.extension;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdapterFactory;
-
-public class TestExtensionAdapterFactory implements IAdapterFactory {
-	
-	private static final Class IRESOURCE_TYPE = IResource.class;
-	private static final Class IFILE_TYPE = IFile.class;
-
-	private static final Class[] ADAPTED_TYPES = new Class[] { IRESOURCE_TYPE, IFILE_TYPE };
-
-	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		 if(IRESOURCE_TYPE == adapterType || IFILE_TYPE == adapterType) {
-			 TestExtensionTreeData data = (TestExtensionTreeData) adaptableObject;
-			 return data.getFile();
-		 }
-		 return null;
-	}
-
-	public Class[] getAdapterList() { 
-		return ADAPTED_TYPES;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestExtensionTreeData.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestExtensionTreeData.java
deleted file mode 100644
index 1e6f0bd..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestExtensionTreeData.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.ui.tests.navigator.extension;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-
-public class TestExtensionTreeData {
-
-	private final Map children = new HashMap();
-
-	private TestExtensionTreeData parent;
-
-	private String name;
-
-	private Properties model;
-
-	private IFile container;
-
-	public TestExtensionTreeData(TestExtensionTreeData aParent, String aName,
-			Properties theModel, IFile aFile) {
-		parent = aParent;
-		name = aName;
-		model = theModel;
-		container = aFile;
-	}
-
-	public TestExtensionTreeData getParent() {
-		return parent;
-	}
-
-	public TestExtensionTreeData[] getChildren() {
-		Set updatedChildren = new HashSet();
-		String childrenString = model.getProperty(getName());
-		if (childrenString != null) {
-			String[] childrenElements = childrenString.split(",");
-			for (int i = 0; i < childrenElements.length; i++) {
-				if (children.containsKey(childrenElements[i])) {
-					updatedChildren.add(children.get(childrenElements[i]));
-				} else {
-					TestExtensionTreeData newChild = new TestExtensionTreeData(
-							this, childrenElements[i], model, container);
-					children.put(newChild.getName(), newChild);
-					updatedChildren.add(newChild);
-				}
-			}
-		}
-		return (TestExtensionTreeData[]) updatedChildren
-				.toArray(new TestExtensionTreeData[updatedChildren.size()]);
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public int hashCode() {
-		return name.hashCode();
-	}
-
-	public boolean equals(Object obj) {
-		return obj instanceof TestExtensionTreeData
-				&& ((TestExtensionTreeData) obj).getName().equals(name);
-	}
-
-	public String toString() {
-		StringBuffer toString = new StringBuffer(getName()).append(":");
-
-		toString.append("[");
-		// update local children to remove any stale kids
-		for (Iterator childIterator = children.keySet().iterator(); childIterator
-				.hasNext();) {
-			String childName = (String) childIterator.next();
-			TestExtensionTreeData child = (TestExtensionTreeData) children
-					.get(childName);
-			toString.append(child.toString());
-		}
-		toString.append("]");
-		return toString.toString();
-	}
-
-	/**
-	 * @return
-	 */
-	public IFile getFile() { 
-		return container;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestItemsThatEndIn3.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestItemsThatEndIn3.java
deleted file mode 100644
index 3917989..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestItemsThatEndIn3.java
+++ /dev/null
@@ -1,35 +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.navigator.extension;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-
-/**
- * @since 3.2
- *
- */
-public class TestItemsThatEndIn3 extends ViewerFilter {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-	 */
-	public boolean select(Viewer viewer, Object parentElement, Object element) {
-
-		if(element instanceof TestExtensionTreeData) {
-			TestExtensionTreeData data = (TestExtensionTreeData)element;
-			return (data.getName() != null && !data.getName().endsWith("3"));
-		}
-		return true;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestLabelDecorator.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestLabelDecorator.java
deleted file mode 100644
index 1ea6c01..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestLabelDecorator.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.tests.navigator.extension;
-
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-public class TestLabelDecorator implements ILabelDecorator {
-	
-	/**
-	 * 
-	 */
-	public TestLabelDecorator() {
-		
-	}
-
-	public Image decorateImage(Image image, Object element) { 
-		if(element != null && element instanceof TestExtensionTreeData) {
-			TestExtensionTreeData data = (TestExtensionTreeData) element;
-			if(data.getName().endsWith("3")) {
-				return PlatformUI.getWorkbench().getSharedImages().getImage(
-						ISharedImages.IMG_OBJS_INFO_TSK);
-			}
-		}
-		return null;
-	}
-
-	public String decorateText(String text, Object element) { 
-		if(element instanceof TestExtensionTreeData) {
-			
-			if(text != null && text.endsWith("3")) {
-				return "x " + text + " x";
-			}
-		}
-		return null;
-	}
-
-	public void addListener(ILabelProviderListener listener) {
-		// no-op
-
-	}
-
-	public void dispose() {
-		// no-op
-
-	}
-
-	public boolean isLabelProperty(Object element, String property) {
-		return true;
-	}
-
-	public void removeListener(ILabelProviderListener listener) {
-		// no-op
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestLabelProvider.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestLabelProvider.java
deleted file mode 100644
index 1124f12..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestLabelProvider.java
+++ /dev/null
@@ -1,123 +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.navigator.extension;
-
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.IFontProvider;
-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.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonLabelProvider;
-import org.eclipse.ui.navigator.IDescriptionProvider;
-
-public class TestLabelProvider extends LabelProvider implements
-		ICommonLabelProvider, IDescriptionProvider, IColorProvider,
-		IFontProvider {
-
-	private FontData boldFontData = new FontData();
-
-	private Font boldFont;
-	
-	private Color backgroundColor;
-
-	public void init(ICommonContentExtensionSite aSite) {
-
-		boldFontData.setStyle(SWT.BOLD);
-
-		boldFont = new Font(Display.getDefault(), boldFontData);
-
-		backgroundColor = new Color(Display.getDefault(), 100, 149, 237);
-	}
-
-	public Image getImage(Object element) {
-		if (element instanceof TestExtensionTreeData)
-			return PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJ_ELEMENT);
-		return null;
-	}
-
-	public String getText(Object element) {
-		if (element instanceof TestExtensionTreeData) {
-			TestExtensionTreeData data = (TestExtensionTreeData) element;
-			return data.getName();
-		}
-		return null;
-	}
-
-	public String getDescription(Object anElement) {
-		if (anElement instanceof TestExtensionTreeData) {
-			TestExtensionTreeData data = (TestExtensionTreeData) anElement;
-			return "TestItem: " + data.getName();
-		}
-		return null;
-	}
-
-	public void restoreState(IMemento aMemento) {
-
-	}
-
-	public void saveState(IMemento aMemento) {
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-	 */
-	public Color getForeground(Object element) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-	 */
-	public Color getBackground(Object element) {
-		return backgroundColor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-	 */
-	public Font getFont(Object element) {
-		if (element instanceof TestExtensionTreeData) {
-			TestExtensionTreeData data = (TestExtensionTreeData) element;
-			if (data.getParent() != null
-					&& data.getParent().getParent() == null)
-				return boldFont;
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.LabelProvider#dispose()
-	 */
-	public void dispose() {
-		boldFont.dispose();
-		backgroundColor.dispose();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestNestedActionProvider.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestNestedActionProvider.java
deleted file mode 100644
index 4a6b6a7..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestNestedActionProvider.java
+++ /dev/null
@@ -1,89 +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.navigator.extension;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.ide.IDE;
-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;
-
-public class TestNestedActionProvider extends CommonActionProvider {
-
-	public static final String GROUP_TEST_MENU = "group.testMenu";
-
-	public static final String GROUP_TEST_DEPENDENCY = "group.testDependency";
-
-	private IAction action = null;
-
-	private IAction openAction;
-
-	private ICommonActionExtensionSite site;
-
-	public void init(ICommonActionExtensionSite aSite) {
-		site = aSite;
-		action = new TestAction(aSite.getViewSite().getShell(),
-				"Nested action (only visible if test ext active)");
-
-		openAction = new Action() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.action.Action#run()
-			 */
-			public void run() {
-
-				IStructuredSelection selection = (IStructuredSelection) getContext()
-						.getSelection();
-				if (selection.size() == 1) {
-					TestExtensionTreeData data = (TestExtensionTreeData) selection
-							.getFirstElement();
-					((TreeViewer) site.getStructuredViewer()).setExpandedState(
-							data, true);
-					try {
-						IDE
-								.openEditor(((ICommonViewerWorkbenchSite) site
-										.getViewSite()).getPage(), data
-										.getFile(), true);
-					} catch (PartInitException e) {
-						e.printStackTrace();
-					}
-				}
-			}
-		};
-	}
-
-	public void fillContextMenu(IMenuManager menu) {
-		menu.insertAfter(ICommonMenuConstants.GROUP_ADDITIONS, action);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars)
-	 */
-	public void fillActionBars(IActionBars actionBars) {
-		super.fillActionBars(actionBars);
-		
-		actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, openAction);
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/ProjectUnzipUtil.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/ProjectUnzipUtil.java
deleted file mode 100644
index 84591cf..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/ProjectUnzipUtil.java
+++ /dev/null
@@ -1,169 +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.navigator.util;
-
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-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.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.ui.tests.navigator.NavigatorTestsPlugin;
-
-public class ProjectUnzipUtil {
-
-	private IPath zipLocation;
-	private String[] projectNames;
-	private IPath rootLocation = ResourcesPlugin.getWorkspace().getRoot().getLocation();
-	private static final String META_PROJECT_NAME = ".project";   //$NON-NLS-1$
-
-	public ProjectUnzipUtil(IPath aLocalZipFilePath, String[] aProjectNames) {
-		zipLocation = getLocalPath(aLocalZipFilePath);
-		projectNames = aProjectNames;
-
-	} 
-
-	public IPath getLocalPath(IPath zipFilePath) {
-		URL url = NavigatorTestsPlugin.getDefault().find(zipFilePath);
-		try {
-			url = Platform.asLocalURL(url);
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return new Path(url.getPath());
-	}
-
-	public boolean createProjects() {
-		try {
-			expandZip();
-			ResourcesPlugin.getWorkspace().getRoot().refreshLocal(IResource.DEPTH_INFINITE, null);
-			buildProjects();
-		} catch (CoreException e) {
-			e.printStackTrace();
-			return false;
-		} catch (IOException e) {
-			e.printStackTrace();
-			return false;
-		}
-
-		return true; 
-	}
-	
-	public boolean reset() {
-		try {
-			expandZip();
-			ResourcesPlugin.getWorkspace().getRoot().refreshLocal(IResource.DEPTH_INFINITE, null); 
-		} catch (CoreException e) {
-			e.printStackTrace();
-			return false;
-		} catch (IOException e) {
-			e.printStackTrace();
-			return false;
-		}
-
-		return true; 
-	}
-
-	private IProgressMonitor getProgessMonitor() {
-		return new NullProgressMonitor();
-	}
-
-	private void expandZip() throws CoreException, IOException {
-		IProgressMonitor monitor = getProgessMonitor();
-		ZipFile zipFile = null;
-		try {
-			zipFile = new ZipFile(zipLocation.toFile());
-		} catch (IOException e1) {
-			throw e1;
-		}
-		Enumeration entries = zipFile.entries();
-		while (entries.hasMoreElements()) {
-			ZipEntry entry = (ZipEntry) entries.nextElement();
-			monitor.subTask(entry.getName());
-			File aFile = computeLocation(entry.getName()).toFile();
-			File parentFile = null;
-			try {
-				if (entry.isDirectory()) {
-					aFile.mkdirs();
-				} else {
-					parentFile = aFile.getParentFile();
-					if (!parentFile.exists())
-						parentFile.mkdirs();
-					if (!aFile.exists())
-						aFile.createNewFile();
-					copy(zipFile.getInputStream(entry), new FileOutputStream(aFile));
-					if (entry.getTime() > 0)
-						aFile.setLastModified(entry.getTime());
-				}
-			} catch (IOException e) {
-				throw e;
-			}
-			monitor.worked(1);
-		}
-	}
-
-	private IPath computeLocation(String name) {
-		return rootLocation.append(name);
-	}
-
-
-	public static void copy(InputStream in, OutputStream out) throws IOException {
-		byte[] buffer = new byte[1024];
-		try {
-			int n = in.read(buffer);
-			while (n > 0) {
-				out.write(buffer, 0, n);
-				n = in.read(buffer);
-			}
-		} finally {
-			in.close();
-			out.close();
-		}
-	}
-
-	public void setRootLocation(IPath rootLocation) {
-		this.rootLocation = rootLocation;
-	}
-
-	private void buildProjects() throws IOException, CoreException {
-		for (int i = 0; i < projectNames.length; i++) {
-
-			IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-			IPath projectPath = new Path("/" + projectNames[i] + "/" + META_PROJECT_NAME); //$NON-NLS-1$//$NON-NLS-2$
-			IPath path = rootLocation.append(projectPath);
-			IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectNames[i]);
-			IProjectDescription description = workspace.loadProjectDescription(path);
-			project.create(description, (getProgessMonitor()));
-			project.open(getProgessMonitor());
-
-		}
-	}
-
-
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/TestWorkspace.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/TestWorkspace.java
deleted file mode 100644
index 4f6bdfe..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/TestWorkspace.java
+++ /dev/null
@@ -1,37 +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.navigator.util;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-
-public class TestWorkspace {
-	public static final String TEST_PROJECT_NAME= "Test"; //$NON-NLS-1$
-
-	private static final String TEST_TESTDATA= "/testdata/Test.zip"; //$NON-NLS-1$
-
-
-	public static void init() {
-
-		// setup test resource project
-		ProjectUnzipUtil util= new ProjectUnzipUtil(new Path(TEST_TESTDATA), new String[]{TEST_PROJECT_NAME});
-
-		if (!getTestProject().isAccessible()) {
-			util.createProjects();
-		} else {
-			util.reset();
-		}
-
-	}
-
-	public static IProject getTestProject() {
-		return ResourcesPlugin.getWorkspace().getRoot().getProject(TEST_PROJECT_NAME);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/ExportWizard1.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/ExportWizard1.java
deleted file mode 100644
index fc95ff3..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/ExportWizard1.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.ui.tests.navigator.wizards;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.IExportWizard;
-import org.eclipse.ui.IWorkbench;
-/**
- * Does nothing. Used to test the Capability-awareness of the <b>commonWizard</b> extension.
- * 
- * @since 3.2
- *
- */
-public class ExportWizard1 extends Wizard implements IExportWizard {
-
-	public ExportWizard1() { 
-	}
-
-	public boolean performFinish() { 
-		return false;
-	}
-
-	public void init(IWorkbench workbench, IStructuredSelection selection) { 
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/ImportWizard1.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/ImportWizard1.java
deleted file mode 100644
index 48da680..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/ImportWizard1.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.ui.tests.navigator.wizards;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.IImportWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * Does nothing. Used to test the Capability-awareness of the <b>commonWizard</b> extension.
- * 
- * @since 3.2
- *
- */
-public class ImportWizard1 extends Wizard implements IImportWizard {
-
-	public ImportWizard1() { 
-	}
- 
-	public boolean performFinish() { 
-		return false;
-	}
-
-	public void init(IWorkbench workbench, IStructuredSelection selection) { 
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/NewWizard1.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/NewWizard1.java
deleted file mode 100644
index a1e2479..0000000
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/wizards/NewWizard1.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.ui.tests.navigator.wizards;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * Does nothing. Used to test the Capability-awareness of the <b>commonWizard</b> extension.
- * 
- * @since 3.2
- *
- */
-public class NewWizard1 extends Wizard implements INewWizard {
-
-	public NewWizard1() { 
-	}
- 
-	public boolean performFinish() { 
-		return false;
-	}
-
-	public void init(IWorkbench workbench, IStructuredSelection selection) { 
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.navigator/test.xml b/tests/org.eclipse.ui.tests.navigator/test.xml
deleted file mode 100644
index a1b2a7a..0000000
--- a/tests/org.eclipse.ui.tests.navigator/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.navigator"/>
-  <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}/navigator_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.navigator.NavigatorTestSuite"/>
-    </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.navigator/testdata/Test.zip b/tests/org.eclipse.ui.tests.navigator/testdata/Test.zip
deleted file mode 100644
index fc36e6e..0000000
--- a/tests/org.eclipse.ui.tests.navigator/testdata/Test.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/.classpath b/tests/org.eclipse.ui.tests.performance/.classpath
deleted file mode 100644
index 751c8f2..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="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.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 141bae8..0000000
--- a/tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Fri Mar 03 16:41:54 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=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.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 2e2b302..0000000
--- a/tests/org.eclipse.ui.tests.performance/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +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.0.0
-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
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 63d086f..0000000
--- a/tests/org.eclipse.ui.tests.performance/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.uiperformance.jar = src/
-bin.includes = META-INF/,\
-               *.xml,\
-               icons/,\
-               uiperformance.jar
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/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/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 56fbeff..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 TreeTest {
-
-
-	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/JFacePerformanceSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/JFacePerformanceSuite.java
deleted file mode 100644
index 8be55a0..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/JFacePerformanceSuite.java
+++ /dev/null
@@ -1,50 +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 junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-import org.eclipse.ui.tests.performance.UIPerformanceTestSetup;
-
-/**
- * The JFacePerformanceSuite are the performance tests for JFace.
- */
-public class JFacePerformanceSuite extends TestSuite {
-	
-	//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 TreeTest("testAddThousand"));
-		addTest(new FastTreeTest("testAddHundredTenTimes", BasicPerformanceTest.LOCAL));
-		addTest(new TreeTest("testAddThousandPreSort", BasicPerformanceTest.GLOBAL));
-
-	}
-}
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/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 b33218b..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 < TreeTest.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 < TreeTest.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 < TreeTest.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/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/TreeTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeTest.java
deleted file mode 100644
index 6186d7f..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeTest.java
+++ /dev/null
@@ -1,273 +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 java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.core.runtime.CoreException;
-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;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-public class TreeTest extends ViewerTest {
-
-	TreeViewer viewer;
-
-	static int TEST_COUNT = 1000;
-
-	public TreeTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public TreeTest(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(browserShell);
-		viewer.setContentProvider(getContentProvider());
-		viewer.setLabelProvider(getLabelProvider());
-		viewer.setSorter(new ViewerSorter());
-		viewer.setUseHashlookup(true);
-		return viewer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.performance.ViewerTest#getInitialInput()
-	 */
-	protected Object getInitialInput() {
-		return new TestTreeElement(0, null);
-	}
-
-	/**
-	 * Get a content provider for the tree viewer.
-	 * 
-	 * @return
-	 */
-	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 new Object[] { 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
-			}
-
-		};
-	}
-
-	/**
-	 * @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/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 057c94d..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-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;
-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(SWT.getPlatform().equals("gtk"))
-			return ITERATIONS / 5;
-		return ITERATIONS;
-	}
-	
-	
-	/**
-	 * Return the number of iterations for tests that are slow on Linux
-	 * @return int
-	 */
-	public int slowWindowsIterations(){
-		if(SWT.getPlatform().equals("win32"))
-			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 5d529b2..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/BasicPerformanceTest.java
+++ /dev/null
@@ -1,273 +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.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;
-
-/**
- * Baseclass for simple performance tests.
- * 
- * @since 3.1
- */
-public abstract class BasicPerformanceTest extends UITestCase {
-
-	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;
-
-	public BasicPerformanceTest(String testName) {
-		this(testName, NONE);
-	}
-
-	/**
-	 * @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();
-		tester = new PerformanceTester(this);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		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() {
-		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) {
-		tester.assertPerformanceInRelativeBand(dim, lowerPercentage,
-				upperPercentage);
-	}
-
-	public void commitMeasurements() {
-		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() {
-		tester.startMeasuring();
-	}
-
-	public void stopMeasuring() {
-		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);
-		tester.tagAsGlobalSummary(shortName, dimension);
-	}
-
-	private void tagAsSummary(String shortName, Dimension dimension) {
-		System.out.println("LOCAL " + shortName);
-		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 {
-		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) {
-		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 17f7a4f..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.swt.SWT;
-
-/**
- * <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 = SWT.getPlatform();
-
-		// 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 3b9be5d..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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, (closeAll && i == 0) ? BasicPerformanceTest.LOCAL : 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/GenerateIdentifiersTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/GenerateIdentifiersTest.java
deleted file mode 100644
index ba474b7..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/GenerateIdentifiersTest.java
+++ /dev/null
@@ -1,53 +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 org.eclipse.test.performance.Dimension;
-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", BasicPerformanceTest.LOCAL);
-        this.count = numberOfIdentifiers;
-    }
-    
-    protected void runTest() throws Throwable {       
-        final IActivityManager activityManager = fWorkbench.getActivitySupport().getActivityManager();
-        
-        tagIfNecessary("UI - Generate Identifiers", Dimension.CPU_TIME);
-        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/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 67491f5..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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=88274>See Bug 88274</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 ac8d04a..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenClosePerspectiveTest.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;
-
-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.internal.ClosePerspectiveAction;
-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) {
-        // we dont have API to close a perspective so use the close perspective action instead.
-        ClosePerspectiveAction action = new ClosePerspectiveAction(activePage.getWorkbenchWindow());            
-        action.run();
-        action.dispose();
-    }
-}
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 d01c59f..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.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.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);
-       	setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=98144>See Bug 98144</a> ");
-       	
-		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 3ba53d3..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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=143842>See Bug 143842</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 ce4d9a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenMultipleEditorTest.java
+++ /dev/null
@@ -1,65 +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 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 {
-		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 1c3af37..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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");
-		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 bfb6fcb..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerspectiveSwitchTest.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.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 {
-        // 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 789c978..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformancePlugin.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.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;
-	
-	/**
-	 * 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 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 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);
-	}
-}
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 f4756a8..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformanceTestSuite.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
- *******************************************************************************/
-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 TestSuite {
-
-    /**
-     * 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() {
-        addTest(new ActivitiesPerformanceSuite());
-        addTest(new PresentationPerformanceTestSuite());
-        addTest(new WorkbenchPerformanceSuite());
-        addTest(new ViewPerformanceSuite());
-        addTest(new EditorPerformanceSuite());
-        addTest(new TestSuite(CommandsPerformanceTest.class));
-    }
-}
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 484da0e..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ViewPerformanceSuite.java
+++ /dev/null
@@ -1,107 +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.util.HashSet;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.internal.Workbench;
-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 RESOURCE_NAVIGATOR = "org.eclipse.ui.views.ResourceNavigator";
-
-	public static final String BASIC_PATH = "org.eclipse.ui";
-	
-	public static final String VIEWS_PATTERN = "org.eclipse.ui.views";
-
-	// public static final String [] VIEW_IDS = {BASIC_VIEW,
-	// IPageLayout.ID_RES_NAV, MockViewPart.ID};
-
-	/**
-	 * 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];
-
-			// Use the BASIC_VIEW as the fingerprint test.
-			// Do not change this as this is an empty view
-			// and not dependant on other components
-			addTest(new OpenCloseViewTest(id,
-					id.equals(RESOURCE_NAVIGATOR) ? 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 = Workbench.getInstance()
-				.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) {
-						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 e9c72b0..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.internal.Workbench;
-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], i == 0 ? BasicPerformanceTest.GLOBAL : 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 = Workbench.getInstance().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 a492a01..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationPerformanceTestSuite.java
+++ /dev/null
@@ -1,126 +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 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.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("org.eclipse.ui.presentations.default"))
-        	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 0eec3a2..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationTestbed.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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;
-        }
-    };
-    
-    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 337c05f..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/TestPresentablePart.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
- *******************************************************************************/
-package org.eclipse.ui.tests.performance.presentations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-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);
-    }
-    
-}
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 a9a07ae..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 66bfe77..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 266428e..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/PlatformUITest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.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.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());
-    }
-}
-
-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 73b74aa..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchAdvisorTest.java
+++ /dev/null
@@ -1,338 +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;
-
-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) {
-                if (false) // which should be called first?
-                    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 4811ec4..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchConfigurerTest.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.ui.tests.rcp;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-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);
-    }
-}
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 8c0d2a2..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 6567ea8..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchWindowConfigurerTest.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.ui.tests.rcp;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.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.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() throws Throwable {
-		doTest104558(true, true);
-		doTest104558(false, true);
-		doTest104558(true, false);
-		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);
-	}
-    
-    
-}
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 1cbf5a4..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/EmptyWorkbenchPerfTest.java
+++ /dev/null
@@ -1,93 +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.Dimension;
-import org.eclipse.test.performance.Performance;
-import org.eclipse.test.performance.PerformanceTestCase;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.IPerformanceMeterArray;
-import org.eclipse.ui.tests.rcp.util.IntervalMeters;
-import org.eclipse.ui.tests.rcp.util.RestoreWorkbenchIntervalMonitor;
-import org.eclipse.ui.tests.rcp.util.OpenWorkbenchIntervalMonitor;
-
-/**
- * @since 3.1
- */
-public class EmptyWorkbenchPerfTest extends PerformanceTestCase {
-
-    private static final int REPEAT_COUNT = 10;
-
-    public void testOpen() {
-        Display display = PlatformUI.createDisplay();
-
-        Performance perf = Performance.getDefault();
-
-        String baseScenarioId = perf.getDefaultScenarioId(this);
-        IPerformanceMeterArray meters = new IntervalMeters(perf, baseScenarioId, OpenWorkbenchIntervalMonitor.intervalNames);
-        tagAsSummary("Open RCP App", Dimension.CPU_TIME);
-        for (int i = 0; i < REPEAT_COUNT; ++i ) {
-            meters.start(OpenWorkbenchIntervalMonitor.firstInterval);
-            int code = PlatformUI.createAndRunWorkbench(display,
-                    new OpenWorkbenchIntervalMonitor(meters));
-            meters.stop(OpenWorkbenchIntervalMonitor.finalInterval);
-
-            assertEquals(PlatformUI.RETURN_OK, code);
-        }
-
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        meters.commit();
-        meters.assertPerformance();
-        meters.dispose();
-    }
-
-    public void testRestore() {
-        Display display = PlatformUI.createDisplay();
-
-        // create an advisor that will just start the workbench long enough to create
-        // something to be restored later
-        WorkbenchAdvisor wa = new RestoreWorkbenchIntervalMonitor();
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_RESTART, code);
-        assertFalse(display.isDisposed());
-
-        // the rest is a bunch of code to restore the workbench and monitor performance
-        // while doing so
-
-        Performance perf = Performance.getDefault();
-
-        String baseScenarioId = perf.getDefaultScenarioId(this);
-        IPerformanceMeterArray meters = new IntervalMeters(perf, baseScenarioId, RestoreWorkbenchIntervalMonitor.intervalNames);
-
-        tagAsSummary("Restore RCP App", Dimension.CPU_TIME);
-        
-        for (int i = 0; i < REPEAT_COUNT; ++i ) {
-            meters.start(RestoreWorkbenchIntervalMonitor.firstInterval);
-            code = PlatformUI.createAndRunWorkbench(display,
-                    new RestoreWorkbenchIntervalMonitor(meters));
-            meters.stop(RestoreWorkbenchIntervalMonitor.finalInterval);
-
-            assertEquals(PlatformUI.RETURN_OK, code);
-        }
-
-        meters.commit();
-        meters.assertPerformance();
-        meters.dispose();
-
-        display.dispose();
-        assertTrue(display.isDisposed());
-    }
-}
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 e7bedfd..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 08c10e0..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 94ad24a..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/IPerformanceMeterArray.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/IPerformanceMeterArray.java
deleted file mode 100644
index a686267..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/IPerformanceMeterArray.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.rcp.util;
-
-/**
- * An array of performance meters that can be used for things like interval timing.
- * 
- * @since 3.1
- */
-public interface IPerformanceMeterArray {
-
-    /**
-     * Start the meter at the argument index.
-     */
-    public void start(int meterIndex);
-
-    /**
-     * Stop the meter at the argument index.
-     */
-    public void stop(int meterIndex);
-
-    /**
-     * Commit all meters in this array.
-     */
-    public void commit();
-
-    /**
-     * Assert the performance of all meters in this array.
-     */
-    public void assertPerformance();
-
-    /**
-     * Dispose all meters in this array.
-     */
-    public void dispose();
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/IntervalMeters.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/IntervalMeters.java
deleted file mode 100644
index a05edda..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/IntervalMeters.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.rcp.util;
-
-import org.eclipse.test.performance.Performance;
-import org.eclipse.test.performance.PerformanceMeter;
-
-/**
- * A set of meters that should be used to check performance of intervals.  For example, this
- * collection is used to check performance between all stages of the workbench life-cycle
- * (the significant events are marked in the WorkbenchAdvisor callbacks).
- * 
- * @since 3.1
- */
-public class IntervalMeters implements IPerformanceMeterArray {
-
-    private Performance perf;
-    private String baseScenarioId;
-
-    /**
-     * Clients instantiate the interval meter set as a specific size and are then responsible
-     * for controlling by index.
-     */
-    private PerformanceMeter[] meters;
-
-    /**
-     * Create an set of performance meters using the argument array of strings in the name
-     * for each one
-     * @param intervals
-     */
-    public IntervalMeters(Performance perf, String baseScenarioId, String[] intervals) {
-        this.perf = perf;
-        this.baseScenarioId = baseScenarioId;
-
-        meters = new PerformanceMeter[intervals.length];
-        for (int i = 0; i < intervals.length; ++i) {
-            meters[i] = perf.createPerformanceMeter(getScenarioId(intervals[i]));
-        }
-    }
-
-    private String getScenarioId(String intervalName) {
-        return baseScenarioId + " [" + intervalName + ']'; //$NON-NLS-1$
-    }
-
-    public void start(int meterIndex) {
-        meters[meterIndex].start();
-    }
-
-    public void stop(int meterIndex) {
-        meters[meterIndex].stop();
-    }
-
-    /**
-     * The interval at the argument has completed.  Stop that meter and start the next.
-     * @param completedIntervalIndex
-     */
-    public void intervalBoundary(int completedIntervalIndex) {
-        meters[completedIntervalIndex].stop();
-        meters[completedIntervalIndex + 1].start();
-    }
-
-    public void commit() {
-        for (int i = 0; i < meters.length; ++i)
-            meters[i].commit();
-    }
-
-    public void assertPerformance() {
-        for (int i = 0; i < meters.length; ++i)
-            perf.assertPerformance(meters[i]);
-    }
-
-    public void dispose() {
-        for (int i = 0; i < meters.length; ++i)
-            meters[i].dispose();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/NullMeters.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/NullMeters.java
deleted file mode 100644
index ba97b83..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/NullMeters.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.rcp.util;
-
-/**
- * An empty array of meters, all calls are ignored.
- * 
- * @since 3.1
- */
-public class NullMeters implements IPerformanceMeterArray {
-
-    public NullMeters() {
-        // do nothing
-    }
-
-    public void start(int meterIndex) {
-        // do nothing
-    }
-
-    public void stop(int meterIndex) {
-        // do nothing
-    }
-
-    public void intervalBoundary(int completedIntervalIndex) {
-        // do nothing
-    }
-
-    public void commit() {
-        // do nothing
-    }
-
-    public void assertPerformance() {
-        // do nothing
-    }
-
-    public void dispose() {
-        // do nothing
-    }
-}
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 f3097de..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/OpenWorkbenchIntervalMonitor.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.tests.rcp.util;
-
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-
-
-/**
- * This implementation of the workbench advisor tracks performance for the intervals between
- * lifecycle events.
- * 
- * @since 3.1
- */
-public class OpenWorkbenchIntervalMonitor extends RCPTestWorkbenchAdvisor {
-
-    public static final String[] intervalNames = new String[] {
-        "open", //$NON-NLS-1$
-        "close" //$NON-NLS-1$
-	};
-	
-	public static final int openInterval = 0;
-	public static final int closeInterval = 1;
-	
-	public static final int firstInterval = openInterval;
-	public static final int finalInterval = closeInterval;
-
-//    public static final String[] intervalNames = new String[] {
-//            "to initialize", //$NON-NLS-1$
-//            "initialize to preStartup", //$NON-NLS-1$
-//            "preStartup to preWindowOpen", //$NON-NLS-1$
-//            "preWindowOpen to fillActionBars", //$NON-NLS-1$
-//            "fillActionBars to postWindowOpen", //$NON-NLS-1$
-//            "postWindowOpen to postStartup", //$NON-NLS-1$
-//            "preShutdown to postShutdown", //$NON-NLS-1$
-//            "postShutdown to complete" //$NON-NLS-1$
-//    };
-//
-//    public static final int initializeInterval = 0;
-//    public static final int preStartupInterval = 1;
-//    public static final int preWindowOpenInterval = 2;
-//    public static final int fillActionBarsInterval = 3;
-//    public static final int postWindowOpenInterval = 4;
-//    public static final int postStartupInterval = 5;
-//    public static final int shutdownInterval = 6;
-//    public static final int workbenchDestroyedInterval = 7;
-//
-//    public static final int firstInterval = initializeInterval;
-//    public static final int finalInterval = workbenchDestroyedInterval;
-
-    private IPerformanceMeterArray meters;
-
-    public OpenWorkbenchIntervalMonitor(IPerformanceMeterArray meters) {
-        super(2);
-        this.meters = meters;
-    }
-
-    public void initialize(IWorkbenchConfigurer configurer) {
-//        meters.stop(initializeInterval);
-//        meters.start(preStartupInterval);
-        super.initialize(configurer);
-    }
-
-    public void preStartup() {
-//        meters.stop(preStartupInterval);
-//        meters.start(preWindowOpenInterval);
-        super.preStartup();
-    }
-
-    public void preWindowOpen(IWorkbenchWindowConfigurer configurer) {
-//        meters.stop(preWindowOpenInterval);
-//        meters.start(fillActionBarsInterval);
-        super.preWindowOpen(configurer);
-    }
-
-    public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) {
-//        meters.stop(fillActionBarsInterval);
-//        meters.start(postWindowOpenInterval);
-        super.fillActionBars(window, configurer, flags);
-
-    }
-
-    public void postWindowOpen(IWorkbenchWindowConfigurer configurer) {
-//        meters.stop(postWindowOpenInterval);
-//        meters.start(postStartupInterval);
-        super.postWindowOpen(configurer);
-    }
-
-    public void postStartup() {
-//        meters.stop(postStartupInterval);
-    	meters.stop(openInterval);
-    	
-        // no reason to track performace between when startup completes and shutdown starts
-        // since that is just testing overhead
-
-        super.postStartup();
-    }
-
-    public boolean preShutdown() {
-//        meters.start(shutdownInterval);
-    	meters.start(closeInterval);
-        return super.preShutdown();
-    }
-
-    public void postShutdown() {
-//        meters.stop(shutdownInterval);
-//        meters.start(workbenchDestroyedInterval);
-        super.postShutdown();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/RCPTestWorkbenchAdvisor.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/RCPTestWorkbenchAdvisor.java
deleted file mode 100644
index 6b98e83..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/RCPTestWorkbenchAdvisor.java
+++ /dev/null
@@ -1,79 +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.util;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PlatformUI;
-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 {
-
-    /** Default value of -1 causes the option to be ignored. */
-    private int idleBeforeExit = -1;
-
-    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 (!"carbon".equals(SWT.getPlatform()))
-//            super.eventLoopIdle(display);
-
-        if (idleBeforeExit == -1)
-            return;
-    }
-}
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 b8e4e8a..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/RestoreWorkbenchIntervalMonitor.java
+++ /dev/null
@@ -1,157 +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.util;
-
-import org.eclipse.swt.widgets.Display;
-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;
-
-
-/**
- * This implementation of the workbench advisor tracks performance for the intervals between
- * lifecycle events.
- * 
- * @since 3.1
- */
-public class RestoreWorkbenchIntervalMonitor extends RCPTestWorkbenchAdvisor {
-
-    public static final String[] intervalNames = new String[] {
-        "open", //$NON-NLS-1$
-        "close" //$NON-NLS-1$
-	};
-	
-	public static final int openInterval = 0;
-	public static final int closeInterval = 1;
-	
-	public static final int firstInterval = openInterval;
-	public static final int finalInterval = closeInterval;
-	
-	private boolean createRestorableWorkbench = false;
-	private IPerformanceMeterArray meters = new NullMeters();
-	
-//    public static final String[] intervalNames = new String[] {
-//            "to initialize", //$NON-NLS-1$
-//            "initialize to preStartup", //$NON-NLS-1$
-//            "preStartup to preWindowOpen", //$NON-NLS-1$
-//            "preWindowOpen to fillActionBars", //$NON-NLS-1$
-//            "fillActionBars to postWindowRestore", //$NON-NLS-1$
-//            "postWindowRestore to postWindowOpen", //$NON-NLS-1$
-//            "postWindowOpen to postStartup", //$NON-NLS-1$
-//            "preShutdown to postShutdown", //$NON-NLS-1$
-//            "postShutdown to complete" //$NON-NLS-1$
-//    };
-//
-//    public static final int initializeInterval = 0;
-//    public static final int preStartupInterval = 1;
-//    public static final int preWindowOpenInterval = 2;
-//    public static final int fillActionBarsInterval = 3;
-//    public static final int postWindowRestoreInterval = 4;
-//    public static final int postWindowOpenInterval = 5;
-//    public static final int postStartupInterval = 6;
-//    public static final int shutdownInterval = 7;
-//    public static final int workbenchDestroyedInterval = 8;
-//
-//    public static final int firstInterval = initializeInterval;
-//    public static final int finalInterval = workbenchDestroyedInterval;
-//
-//    private boolean createRestorableWorkbench = false;
-//    private IPerformanceMeterArray meters = new NullMeters();
-
-    private IWorkbenchConfigurer workbenchConfigurer;
-
-    /**
-     * The default behaviour is to create a workbench that can be restored later.  This
-     * constructor starts that behaviour by setting a flag that will be checked in the
-     * appropriate methods.
-     */
-    public RestoreWorkbenchIntervalMonitor() {
-        super(2);
-        createRestorableWorkbench = true;
-    }
-
-    public RestoreWorkbenchIntervalMonitor(IPerformanceMeterArray meters) {
-        super(2);
-        this.meters = meters;
-    }
-
-    public void initialize(IWorkbenchConfigurer configurer) {
-//        meters.stop(initializeInterval);
-
-        super.initialize(configurer);
-        workbenchConfigurer = configurer;
-        workbenchConfigurer.setSaveAndRestore(true);
-
-//        meters.start(preStartupInterval);
-    }
-
-    public void preStartup() {
-//        meters.stop(preStartupInterval);
-        super.preStartup();
-//        meters.start(preWindowOpenInterval);
-    }
-
-    public void preWindowOpen(IWorkbenchWindowConfigurer configurer) {
-//        meters.stop(preWindowOpenInterval);
-        super.preWindowOpen(configurer);
-//        meters.start(fillActionBarsInterval);
-    }
-
-    public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) {
-//        meters.stop(fillActionBarsInterval);
-        super.fillActionBars(window, configurer, flags);
-//        meters.start(postWindowRestoreInterval);
-    }
-
-    public void postWindowRestore(IWorkbenchWindowConfigurer configurer) throws WorkbenchException {
-//        meters.stop(postWindowRestoreInterval);
-        super.postWindowRestore(configurer);
-//        meters.start(postWindowOpenInterval);
-    }
-
-    public void postWindowOpen(IWorkbenchWindowConfigurer configurer) {
-//        meters.stop(postWindowOpenInterval);
-        super.postWindowOpen(configurer);
-//        meters.start(postStartupInterval);
-    }
-
-    public void postStartup() {
-//        meters.stop(postStartupInterval);
-        meters.stop(openInterval);
-
-        // no reason to track performace between when startup completes and shutdown starts
-        // since that is just testing overhead
-
-        super.postStartup();
-    }
-
-    public boolean preShutdown() {
-        boolean ret = super.preShutdown();
-//        meters.start(shutdownInterval);
-        meters.start(closeInterval);
-        return ret;
-    }
-
-    public void postShutdown() {
-//        meters.stop(shutdownInterval);
-        super.postShutdown();
-//        meters.start(workbenchDestroyedInterval);
-    }
-
-    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 4b0e333..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/WorkbenchAdvisorObserver.java
+++ /dev/null
@@ -1,152 +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.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;
-
-/**
- * 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 637a961..0000000
--- a/tests/org.eclipse.ui.tests.rcp/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +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.2.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
-Eclipse-LazyStart: 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 ada07e1..0000000
--- a/tests/org.eclipse.ui.tests.rcp/RCP Test Suite.launch
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<stringAttribute key="bootstrap" value=""/>
-<booleanAttribute key="useProduct" value="false"/>
-<booleanAttribute key="tracing" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<stringAttribute key="checked" value="[NONE]"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.tests.rcp.RcpTestSuite"/>
-<stringAttribute key="pde.version" value="3.2a"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests.rcp"/>
-<booleanAttribute key="askclear" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests.rcp"/>
-</listAttribute>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-</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 2a9ae39..0000000
--- a/tests/org.eclipse.ui.tests.rcp/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 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 0215967..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="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.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 dd632fd..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.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.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 7a722f6..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.tests.views.properties.tabbed;singleton:=true
-Bundle-Version: 3.2.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
-Eclipse-LazyStart: true
-Bundle-Vendor: %Plugin.providerName
-Bundle-ClassPath: uitptests.jar
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 47a96b7..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/Tabbed Properties View-All Tests.launch
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<stringAttribute key="bootstrap" value=""/>
-<booleanAttribute key="useProduct" value="true"/>
-<booleanAttribute key="tracing" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<stringAttribute key="checked" value="[NONE]"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.tests.views.properties.tabbed.AllTests"/>
-<stringAttribute key="pde.version" value="3.2a"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests.views.properties.tabbed"/>
-<booleanAttribute key="askclear" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests.views.properties.tabbed"/>
-</listAttribute>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-</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/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 7cd25d7..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.properties
+++ /dev/null
@@ -1,15 +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
-###############################################################################
-Plugin.name = Tabbed Properties View Tests
-Plugin.providerName = Eclipse.org
-
-Views.category.name = Tabbed Properties View
-Views.example.name = Tabbed Properties Tests View
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 95e435a..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.xml
+++ /dev/null
@@ -1,152 +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>
-   </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"/>
-      </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>
-
-
-</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 0f1c513..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/AllTests.java
+++ /dev/null
@@ -1,31 +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 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);

-        return suite;

-    }

-

-}

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 ea2a32e..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageTest.java
+++ /dev/null
@@ -1,252 +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 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.Control;

-import org.eclipse.ui.IPageLayout;

-import org.eclipse.ui.IViewPart;

-import org.eclipse.ui.IWorkbenchPage;

-import org.eclipse.ui.IWorkbenchWindow;

-import org.eclipse.ui.PlatformUI;

-import org.eclipse.ui.internal.views.properties.tabbed.view.Tab;

-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyComposite;

-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyList;

-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.TestsView;

-import org.eclipse.ui.tests.views.properties.tabbed.views.TestsViewContentProvider;

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

-

-public class TabbedPropertySheetPageTest

-    extends TestCase {

-

-    private IViewPart propertiesView;

-

-    private TestsView testsView;

-

-    private TreeNode[] treeNodes;

-

-    protected void setUp()

-        throws Exception {

-        super.setUp();

-

-        /**

-         * Open the properties view.

-         */

-        IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench()

-            .getActiveWorkbenchWindow();

-        assertNotNull(workbenchWindow);

-        IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();

-        assertNotNull(workbenchPage);

-        propertiesView = workbenchPage.showView(IPageLayout.ID_PROP_SHEET);

-        assertNotNull(propertiesView);

-

-        /**

-         * Open 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();

-

-        /**

-         * Close the properties view.

-         */

-        IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench()

-            .getActiveWorkbenchWindow();

-        assertNotNull(workbenchWindow);

-        IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();

-        assertNotNull(workbenchPage);

-        workbenchPage.hideView(propertiesView);

-        propertiesView = null;

-        /**

-         * Close the Tests view.

-         */

-        workbenchPage.hideView(testsView);

-        testsView = null;

-

-        treeNodes = null;

-    }

-

-    /**

-     * 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);

-    }

-

-    /**

-     * Get the list of tabs from the tabbed properties view.

-     * 

-     * @return the tab list.

-     */

-    private TabbedPropertyList getTabbedPropertyList() {

-        Control control = testsView.getTabbedPropertySheetPage().getControl();

-        assertTrue(control instanceof TabbedPropertyComposite);

-        TabbedPropertyComposite tabbedPropertyComposite = (TabbedPropertyComposite) control;

-        return tabbedPropertyComposite.getList();

-    }

-

-    /**

-     * 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]});

-        TabbedPropertyList tabbedPropertyList = getTabbedPropertyList();

-        /**

-         * First tab is Name

-         */

-        assertEquals(tabbedPropertyList.getElementAt(0).toString(), "Name");//$NON-NLS-1$

-        /**

-         * Second tab is Information

-         */

-        assertEquals(tabbedPropertyList.getElementAt(1).toString(),

-            "Information");//$NON-NLS-1$

-        /**

-         * Third tab is Message

-         */

-        assertEquals(tabbedPropertyList.getElementAt(2).toString(), "Message");//$NON-NLS-1$

-        /**

-         * No fourth tab

-         */

-        assertNull(tabbedPropertyList.getElementAt(3));

-    }

-

-    /**

-     * 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]});

-        TabbedPropertyList tabbedPropertyList = getTabbedPropertyList();

-        /**

-         * First tab is Information

-         */

-        assertEquals(tabbedPropertyList.getElementAt(0).toString(),

-            "Information");//$NON-NLS-1$

-        /**

-         * Second tab is Message

-         */

-        assertEquals(tabbedPropertyList.getElementAt(1).toString(), "Message");//$NON-NLS-1$

-        /**

-         * No other tab

-         */

-        assertNull(tabbedPropertyList.getElementAt(2));

-    }

-

-    /**

-     * 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]});

-        TabbedPropertyList tabbedPropertyList = getTabbedPropertyList();

-        /**

-         * First tab is Information

-         */

-        assertEquals(tabbedPropertyList.getElementAt(0).toString(), "Name");//$NON-NLS-1$

-        Tab tab = testsView.getTabbedPropertySheetPage().getCurrentTab();

-        /**

-         * the tab has two sections.

-         */

-        ISection[] sections = tab.getSections();

-        assertEquals(sections.length, 2);

-        assertEquals(sections[0].getClass(), NameSection.class);

-        assertEquals(sections[1].getClass(), InformationTwoSection.class);

-    }

-

-    /**

-     * 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],});

-        TabbedPropertyList tabbedPropertyList = getTabbedPropertyList();

-        /**

-         * Only tab is Message

-         */

-        assertEquals(tabbedPropertyList.getElementAt(0).toString(), "Message");//$NON-NLS-1$

-        /**

-         * No other tab

-         */

-        assertNull(tabbedPropertyList.getElementAt(1));

-    }

-

-    /**

-     * 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],});

-        TabbedPropertyList tabbedPropertyList = getTabbedPropertyList();

-        /**

-         * Only tab is Resource

-         */

-        assertEquals(tabbedPropertyList.getElementAt(0).toString(), "Resource");//$NON-NLS-1$

-        /**

-         * No other tab

-         */

-        assertNull(tabbedPropertyList.getElementAt(1));

-    }

-

-    /**

-     * 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() {

-        Tab tab = testsView.getTabbedPropertySheetPage().getCurrentTab();

-        assertNull(tab);

-        TabbedPropertyList tabbedPropertyList = getTabbedPropertyList();

-        assertNull(tabbedPropertyList.getElementAt(0));

-    }

-

-}

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/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/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/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 f951a6a..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"/>
-	<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 751e7f9..0000000
--- a/tests/org.eclipse.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Fri Mar 03 16:40:25 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=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/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.ui.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index fb9a780..0000000
--- a/tests/org.eclipse.ui.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:19:38 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/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.ui.tests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d70dbb1..0000000
--- a/tests/org.eclipse.ui.tests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Mon Jan 30 11:27:32 EST 2006
-compilers.p.build=1
-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=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/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 a1bf433..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/AllTests.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;
-
-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());
-    }
-}
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 e94d21e..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 dfc0202..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/ContributionItemTest.java
+++ /dev/null
@@ -1,49 +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.action;
-
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionManager;
-
-/**
- * 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());
-    }
-}
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 305bae9..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 25bd73c..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 80e8dcb..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 0ab85e0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/MenuManagerTest.java
+++ /dev/null
@@ -1,134 +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.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);
-    }
-
-    /**
-     * 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 2b511a8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/AllTests.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.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(DialogSettingsTest.class);
-    	addTestSuite(InputDialogTest.class);
-        addTestSuite(TitleAreaDialogTest.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/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/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 d880b5d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/AllTests.java
+++ /dev/null
@@ -1,30 +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.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);
-    }
-}
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 f3642fd..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 2c7675e..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 = 7;
-    }
-    
-    /* (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/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 0975e11..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/AllTests.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.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(CheckboxTreeViewerTest.class);
-		addTestSuite(ComboViewerTest.class);
-		addTestSuite(TreeViewerComparatorTest.class);
-		addTestSuite(ListViewerComparatorTest.class);
-		addTestSuite(TableViewerComparatorTest.class);
-		addTestSuite(Bug138608Test.class);
-		addTestSuite(ComboViewerComparerTest.class);
-		addTestSuite(ListViewerRefreshTest.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/CheckboxTableViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTableViewerTest.java
deleted file mode 100644
index c9212e1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTableViewerTest.java
+++ /dev/null
@@ -1,145 +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.tests.viewers;
-
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-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.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;
-
-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 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);
-    }
-}
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 f47ca09..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 fa06809..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTreeViewerTest.java
+++ /dev/null
@@ -1,108 +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.tests.viewers;
-
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-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);
-    }
-}
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 66729f5..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 46120a7..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 44d8211..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 16fed8e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerRefreshTest.java
+++ /dev/null
@@ -1,151 +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.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)));
-					}
-				});
-
-		run("Refreshed viewer with selection.", new Runnable() { //$NON-NLS-1$
-					public void run() {
-						viewer.refresh();
-					}
-				});
-
-		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 061cc36..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerTest.java
+++ /dev/null
@@ -1,145 +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
- *     Tom Schindl - test case for bug 157309
- *     Brad Reynolds - test case for bug 141435
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-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.SWT;
-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 ("carbon".equals(SWT.getPlatform())) {
-    		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.");
-		}		
-	}
-}
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 edfd75f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleTableViewerTest.java
+++ /dev/null
@@ -1,67 +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.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @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) {
-			}
-		});
-	}
-}
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 97d4b34..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleTreeViewerTest.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.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreePathViewerSorter;
-import org.eclipse.jface.viewers.TreeViewer;
-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) {
-			}});
-	}
-
-}
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 0eaa1b4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleVirtualLazyTreeViewerTest.java
+++ /dev/null
@@ -1,171 +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.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 class LazyTreeContentProvider implements ILazyTreeContentProvider {
-		/**
-		 * 
-		 */
-		private Object input;
-
-		public void updateElement(Object parent, int index) {
-			updateElementCallCount++;
-			String parentString = (String) parent;
-			Object childElement = parentString + "-" + index;
-			// System.out.println(childElement);
-			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 (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;
-		treeViewer.remove(treeViewer.getInput(), 3);
-		assertEquals(NUM_ROOTS - 1, treeViewer.getTree().getItemCount());
-		treeViewer.getTree().update();
-		treeViewer.setSelection(new StructuredSelection(new Object[] { "R-0",
-				"R-1" }));
-		assertEquals(2, ((IStructuredSelection) treeViewer.getSelection())
-				.size());
-		assertTrue(updateElementCallCount < NUM_ROOTS / 2);
-		updateElementCallCount = 0;
-		treeViewer.remove(treeViewer.getInput(), 1);
-		assertEquals(NUM_ROOTS - 2, treeViewer.getTree().getItemCount());
-		processEvents();
-		assertEquals(1, ((IStructuredSelection) treeViewer.getSelection())
-				.size());
-		assertEquals(1, updateElementCallCount);
-	}
-}
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 c3e42f1..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 7fb9d1e..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 81ca37f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredViewerTest.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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));
-    }
-
-    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 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/TableColorProviderTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableColorProviderTest.java
deleted file mode 100644
index 26afb07..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms 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 2c882f6..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 241bc38..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 9571ea0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerTest.java
+++ /dev/null
@@ -1,166 +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.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.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 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;
-	}
-
-	/**
-	 * 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 4c0f45b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestElement.java
+++ /dev/null
@@ -1,228 +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.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";
-        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 1109135..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 b4bc6ef..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 9408a78..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 4416418..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelLazyTreeContentProvider.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.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);
-		treeViewer.getTree().setItemCount(0);
-	}
-
-	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/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 89d26e3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerColumnTest.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.jface.tests.viewers;
-
-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;
-
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-
-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);
-    }
-
-    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 2f9a935..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 0b3b1cd..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ViewerTestCase.java
+++ /dev/null
@@ -1,137 +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.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.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);
-	    fShell.setSize(500, 500);
-	    fShell.setLayout(new FillLayout());
-	    fViewer = createViewer(fShell);
-	    fViewer.setUseHashlookup(true);
-	    setInput();
-	    fShell.open();
-	    //processEvents();
-	}
-
-	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 623c59e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualLazyTableViewerTest.java
+++ /dev/null
@@ -1,133 +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;
-
-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));
-	}
-	
-
-}
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 9b75442..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualLazyTreeViewerTest.java
+++ /dev/null
@@ -1,112 +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
- *     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();
-		((TreeViewer) fTreeViewer).setChildCount(fTreeViewer.getInput(), fRootElement.getChildCount());
-	}
-    
-    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 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 d891959..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualTableViewerTest.java
+++ /dev/null
@@ -1,294 +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
- *     Tom Schindl - bug 151205
- *******************************************************************************/
-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;
-
-/**
- * The TableViewerTest is a test of the SWT#VIRTUAL support in TableViewers,
- */
-public class VirtualTableViewerTest extends TableViewerTest {
-
-	int currentVisibleIndex = -1;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param name
-	 */
-	public VirtualTableViewerTest(String name) {
-		super(name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.TableViewerTest#createTableViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected TableViewer createTableViewer(Composite parent) {
-		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;
-				int index = table.indexOf(item);
-				if (index > currentVisibleIndex)
-					currentVisibleIndex = index;
-
-			}
-		});
-		return viewer;
-	}
-
-	/**
-	 * Get the collection of currently visible table items.
-	 * 
-	 * @return TableItem[]
-	 */
-	private TableItem[] getVisibleItems() {
-		if (currentVisibleIndex < 0)// Anything shown yet?
-			return new TableItem[0];
-		Table table = ((TableViewer) fViewer).getTable();
-		TableItem[] visible = new TableItem[currentVisibleIndex];
-		for (int i = 0; i < visible.length; i++) {
-			visible[i] = table.getItem(i);
-		}
-		return visible;
-	}
-
-	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), 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() {
-		// The filter test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-
-	public void testSetFilters() {
-		// The filter 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#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() {
-		// 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#testSetInput()
-	 */
-	public void testSetInput() {
-		// This test us based on findItem assuming all items
-		// are created so it is not valid.
-	}
-
-	public void testRenameWithSorter() {
-		// 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#testSorter()
-	 */
-	public void testSorter() {
-		// 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#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 8439646..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 c57f861..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 c50f4c0..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 7c60a78..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 1c416de..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 75737e3..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 86b6ce3..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 238fdb9..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 0bf2a25..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 3de444a..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 aa401e6..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 a0eb827..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 5010095..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 4dd7460..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 705a341..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 e4c2766..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 9508a64..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/LazyVirtualTableView.java
+++ /dev/null
@@ -1,65 +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.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 {
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public LazyVirtualTableView() {
-		super();
-	}
-
-	/* (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("Element " + String.valueOf(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#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 a9dc1be..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 c864f90..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 d00dd9d..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 2d563a2..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 dd97e18..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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/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 902a79e..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 ff1fe89..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 fbf977c..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 9eb79b3..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 bd5c0ed..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 e6814c0..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 87d564e..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 462c773..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 d400d0b..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 2263fa0..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 ff382c9..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 5d5800d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/VirtualTableView.java
+++ /dev/null
@@ -1,144 +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.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) {
-
-				viewer.remove(((IStructuredSelection) viewer.getSelection()).toArray());
-			}
-		});
-
-	}
-
-	/**
-	 * 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 ceedebd..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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/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 fd4cbe1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/propertyPages/TestPropertyPage.java
+++ /dev/null
@@ -1,24 +0,0 @@
-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 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 22fa7f6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/EditorsReferencesTest.java
+++ /dev/null
@@ -1,229 +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.parts.tests;
-
-import junit.framework.TestCase;
-
-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.PlatformUI;
-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();
-        display = PlatformUI.createDisplay();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see junit.framework.TestCase#tearDown()
-     */
-    protected void tearDown() throws Exception {
-        display.dispose();
-        super.tearDown();
-    }
-
-    /**
-     * Test that only file0's part has been created (ideally).
-     *  
-     */
-    public void testActivePartFile0() {
-        openEditors(0);
-        checkEditorsParts(0);
-
-    }
-
-    /**
-     * Test that only file1's part has been created (ideally).
-     *  
-     */
-    public void testActivePartFile1() {
-        openEditors(1);
-        checkEditorsParts(1);
-
-    }
-
-    /**
-     * Test that only file2's part has been created (ideally).
-     *  
-     */
-    public void testActivePartFile2() {
-        openEditors(2);
-        checkEditorsParts(2);
-
-    }
-
-    /**
-     * Test that zooming file0 on start up and navigating to other editors
-     * behaves correcly.
-     *  
-     */
-    public void testZoomActivePartFile0() {
-        openEditors(0);
-        zoomEditor(0);
-    }
-
-    /**
-     * Test that zooming file1 on start up and navigating to other editors
-     * behaves correcly.
-     *  
-     */
-    public void testZoomActivePartFile1() {
-        openEditors(1);
-        zoomEditor(1);
-    }
-
-    /**
-     * Test that zooming file2 on start up and navigating to other editors
-     * behaves correcly.
-     *  
-     */
-    public void testZoomActivePartFile2() {
-        openEditors(2);
-        zoomEditor(2);
-    }
-
-    /**
-     * 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);
-    }
-
-}
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 37b0951..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/PartsReferencesTestSuite.java
+++ /dev/null
@@ -1,81 +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;
-
-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;
-
-/**
- * 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 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 80b9659..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/ViewsReferencesTest.java
+++ /dev/null
@@ -1,235 +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.parts.tests;
-
-import junit.framework.TestCase;
-
-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.PartInitException;
-import org.eclipse.ui.PlatformUI;
-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();
-        display = PlatformUI.createDisplay();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see junit.framework.TestCase#tearDown()
-     */
-    protected void tearDown() throws Exception {
-        display.dispose();
-        super.tearDown();
-    }
-
-    /**
-     * Test that only view0's part has been created (ideally).
-     *  
-     */
-    public void testActivePartView0() {
-        openViews(0);
-        checkViewsParts(0);
-
-    }
-
-    /**
-     * Test that only view1's part has been created (ideally).
-     *  
-     */
-    public void testActivePartView1() {
-        openViews(1);
-        checkViewsParts(1);
-
-    }
-
-    /**
-     * Test that only view2's part has been created (ideally).
-     *  
-     */
-    public void testActivePartView2() {
-        openViews(2);
-        checkViewsParts(2);
-    }
-
-    /**
-     * Test that zooming view0 on start up and navigating to other views behaves
-     * correcly.
-     *  
-     */
-    public void testZoomActivePartView0() {
-        openViews(0);
-        zoomView(0);
-    }
-
-    /**
-     * Test that zooming view1 on start up and navigating to other views behaves
-     * correcly.
-     *  
-     */
-    public void testZoomActivePartView1() {
-        openViews(1);
-        zoomView(1);
-    }
-
-    /**
-     * Test that zooming view2 on start up and navigating to other views behaves
-     * correcly.
-     *  
-     */
-    public void testZoomActivePartView2() {
-        openViews(2);
-        zoomView(2);
-    }
-
-    /**
-     * 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 8ecd31b..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 ea11082..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 1b267ba..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/TestPlugin.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.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.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;
-
-    /**
-     * 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);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-     */
-    public void stop(BundleContext context) throws Exception {
-        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 56c4c8b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/UiTestSuite.java
+++ /dev/null
@@ -1,94 +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;
-
-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.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.propertysheet.PropertySheetTestSuite;
-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 TestSuite(StartupTest.class));
-        addTest(new UIAutomatedSuite());
-        addTest(new ApiTestSuite());
-        addTest(new PropertySheetTestSuite());
-        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));
-    }
-}
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 908eb0d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ActivitiesTestSuite.java
+++ /dev/null
@@ -1,38 +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.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));
-    }
-}
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 90c0420..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 a77397c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/DynamicTest.java
+++ /dev/null
@@ -1,433 +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.HashSet;
-import java.util.Set;
-
-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.ICategory;
-import org.eclipse.ui.activities.ICategoryListener;
-import org.eclipse.ui.activities.IIdentifier;
-import org.eclipse.ui.activities.IIdentifierListener;
-import org.eclipse.ui.activities.IdentifierEvent;
-import org.eclipse.ui.activities.NotDefinedException;
-import org.eclipse.ui.internal.activities.MutableActivityManager;
-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(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);
-    }
-}
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/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 395a7dd..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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.Workbench;
-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 = Workbench.getInstance().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 3ba8082..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/UtilTest.java
+++ /dev/null
@@ -1,292 +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.activities;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.activities.IActivityManager;
-import org.eclipse.ui.activities.WorkbenchActivityHelper;
-
-/**
- * Tests various utility methods on WorkbenchActivityHelper.
- * 
- * @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));
-	}
-	
-	/**
-	 * 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();
-    }
-    
-	/* (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 6e547aa..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 36b4dde..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableTestSuite.java
+++ /dev/null
@@ -1,39 +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.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));
-    }
-
-}
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 4c3471a..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 cf588bc..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 89b8404..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/TestAdaptableContentProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestAdaptableContentProvider.java
deleted file mode 100644
index 548a660..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 5caec9e..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 a411b07..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 5e13ab7..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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(shell);
-        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 57234d4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ApiTestSuite.java
+++ /dev/null
@@ -1,79 +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 junit.framework.Test;
-import junit.framework.TestSuite;
-
-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(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));
-    }
-}
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/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/IActionBarsTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionBarsTest.java
deleted file mode 100644
index 6b94fdb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionBarsTest.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.api;
-
-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.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;
-        ActionUtil.runActionUsingPath(this, fWindow,
-                IWorkbenchActionConstants.M_EDIT + '/'
-                        + IWorkbenchActionConstants.CUT);
-        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;
-        ActionUtil.runActionUsingPath(this, fWindow,
-                IWorkbenchActionConstants.M_EDIT + '/'
-                        + IWorkbenchActionConstants.CUT);
-        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;
-        ActionUtil.runActionUsingPath(this, fWindow,
-                IWorkbenchActionConstants.M_EDIT + '/'
-                        + IWorkbenchActionConstants.CUT);
-        ActionUtil.runActionUsingPath(this, fWindow,
-                IWorkbenchActionConstants.M_EDIT + '/'
-                        + IWorkbenchActionConstants.UNDO);
-        assertTrue(cut.hasRun);
-        assertTrue(!copy.hasRun);
-        assertTrue(undo.hasRun);
-    }
-}
-
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/IConstants.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IConstants.java
deleted file mode 100644
index ec16363..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 b24dc7d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IDeprecatedWorkbenchPageTest.java
+++ /dev/null
@@ -1,816 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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);
-		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 c42a0fd..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 56ad20c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorPartTest.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 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"));
-    }
-    
-}
-
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 5edd123..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorRegistryTest.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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);
-        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 9b72de9..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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);
-            assertTrue(label.equals(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 124ef54..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageServiceTest.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.IPerspectiveDescriptor;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-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();
-    }
-
-    /**
-     * 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 39fa295..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPartServiceTest.java
+++ /dev/null
@@ -1,554 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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.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);
-    }
-
-    /**
-     * 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."
-        fWindow.getPartService().addPartListener(partListener);
-        fWindow.getPartService().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);
-    }
-
-    /**
-     * 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.
-        fWindow.getPartService().addPartListener(partListener);
-        fWindow.getPartService().addPartListener(partListener2);
-        fWindow.getPartService().removePartListener(partListener);
-        fWindow.getPartService().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 d8e2f22..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 ae94b91..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveRegistryTest.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.api;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-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]);
-    }
-}
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 7b23a6a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ISelectionServiceTest.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.tests.api;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.ISelectionListener;
-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.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());
-    }
-
-    /**
-     * 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 36308af..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 f589ae5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPageTest.java
+++ /dev/null
@@ -1,2123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.HashSet;
-import java.util.List;
-import java.util.Set;
-
-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.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.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.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.ide.IDE;
-import org.eclipse.ui.internal.ClosePerspectiveAction;
-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.part.FileEditorInput;
-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;
-
-public class IWorkbenchPageTest extends UITestCase {
-
-    private IWorkbenchPage fActivePage;
-
-    private IWorkbenchWindow fWin;
-
-    private IProject proj;
-
-    public IWorkbenchPageTest(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 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);
-		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());
-
-        ClosePerspectiveAction closePespective = new ClosePerspectiveAction(
-                fWin);
-        closePespective.run();
-
-    }
-
-    /**
-     * 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(IPageLayout.ID_RES_NAV));
-        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));
-    }
-}
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 4d8d6b3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartSiteTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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());
-    }
-
-    /**
-     * 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/IWorkbenchTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchTest.java
deleted file mode 100644
index 31a136b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchTest.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.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]);
-    }
-
-    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 bed5a65..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/IWorkingSetManagerTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetManagerTest.java
deleted file mode 100644
index f3e191d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetManagerTest.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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.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;
-    }
-
-    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]);
-    }
-
-    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()));
-    }
-}
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 ed0947e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-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() });
-    }
-
-    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());
-
-        fWorkingSet.setName("");
-        assertEquals("", fWorkingSet.getName());
-
-        fWorkingSet.setName(" ");
-        assertEquals(" ", fWorkingSet.getName());
-    }
-    
-    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());
-	}
-}
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 1efe88d..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 4979d32..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 83d1d9c..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 52e7b38..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 ac9f8b5..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 dc9e92a..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/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/MockSelectionProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockSelectionProvider.java
deleted file mode 100644
index b48ba04..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 d1a1549..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 f8eed51..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 a51c085..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 d68009e..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 f7f101d..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 5265fac..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 eaa1f17..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 a873f4d..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 1094765..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 c67ac38..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 c7dac96..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StickyViewTest.java
+++ /dev/null
@@ -1,458 +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.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-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.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.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 {
-		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);
-		}
-	}
-
-    /*
-	 * (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 8c934f1..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 a1ccba6..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/CustomTitleView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/CustomTitleView.java
deleted file mode 100644
index b6ecbd2..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/EditorWithCreateControlsException.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithCreateControlsException.java
deleted file mode 100644
index e5ebce2..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 85c3000..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 4ec3d8a..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 a0ff69c..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 757116f..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 33dccd7..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 f63bd79..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/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 b399697..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 d339814..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/TitleTestEditor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TitleTestEditor.java
deleted file mode 100644
index 1482892b..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 12e4cc3..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 74df792..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 1903cab..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 69d202b..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 e28bc48..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 313ee5f..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 675513b..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/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 2c263aa..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug73756Test.java
+++ /dev/null
@@ -1,66 +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.core.runtime.ILog;
-import org.eclipse.core.runtime.ILogListener;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.action.ExternalActionManager;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * A tests whether is active will log an exception if the command is not
- * defined.
- * 
- * @since 3.1
- */
-public final class Bug73756Test extends UITestCase {
-
-    /**
-     * Whether a log message has occurred.
-     */
-    private boolean logWritten = false;
-
-    /**
-     * 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() {
-        // Attach the log listener.
-        final ILog log = WorkbenchPlugin.getDefault().getLog();
-        final ILogListener logListener = new ILogListener() {
-            public void logging(IStatus status, String plugin) {
-                logWritten = true;
-            }
-        };
-        log.addLogListener(logListener);
-
-        // Check if a bogus command is active.
-        ExternalActionManager.getInstance().getCallback().isActive(
-                "a command that is not defined");
-
-        // Check to see if the log was written to.
-        assertTrue("A warning should have been logged.", logWritten);
-    }
-}
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/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 4020fb1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandParameterTypeTest.java
+++ /dev/null
@@ -1,267 +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.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.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;
-	}
-}
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 10ebb82..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandsTestSuite.java
+++ /dev/null
@@ -1,46 +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.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));
-	}
-}
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 c1b246e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/HandlerActivationTest.java
+++ /dev/null
Binary files differ
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 6773158..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/HelpContextIdTest.java
+++ /dev/null
Binary files differ
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/StateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/StateTest.java
deleted file mode 100644
index bfd0d0a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/StateTest.java
+++ /dev/null
Binary files differ
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/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 3f6ed9b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/ConcurrencyTestSuite.java
+++ /dev/null
@@ -1,41 +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.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(NestedSyncExecDeadlockTest.class);
-        addTestSuite(TestBug98621.class);
-        addTestSuite(TestBug108162.class);
-        addTestSuite(TestBug138695.class);
-        addTestSuite(TransferRuleTest.class);
-    }
-}
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/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 8ead8bf..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug108162.java
+++ /dev/null
@@ -1,70 +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.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
- * 
- * 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 TestBug108162 extends TestCase {
-	class LockAcquringOperation 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 LockAcquringOperation());
-					//should not succeed
-					assertTrue("Should not get here", false);
-				} catch (InvocationTargetException e) {
-					e.printStackTrace();
-					fail(e.getMessage());
-				} 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 ea34a8a..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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(ImportExistingTest.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/ImportExistingTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingTest.java
deleted file mode 100644
index 0685e15..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingTest.java
+++ /dev/null
@@ -1,869 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the 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.net.URL;
-import java.util.ArrayList;
-import java.util.HashSet;
-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.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.tests.harness.FileSystemHelper;
-import org.eclipse.jface.dialogs.IDialogSettings;
-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.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.ImportExportWizard;
-import org.eclipse.ui.internal.wizards.datatransfer.ArchiveFileManipulations;
-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;
-
-public class ImportExistingTest 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[] 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 ImportExistingTest(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 {
-			Platform.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_REFRESH, new NullProgressMonitor());
-		} catch (OperationCanceledException 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.getValidProjects();
-			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));
-		} 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.getValidProjects();
-			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));
-		} 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.getValidProjects();
-			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));
-		} 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.getValidProjects();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertEquals("there should only be the WorldHello project left", 
-					1, projectNames.size());
-			
-			assertTrue("HelloWorld project should not be found in project list.",
-					!projectNames.contains("HelloWorld"));
-		} 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.getValidProjects();
-			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 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.getValidProjects();
-			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.getValidProjects();
-			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.getValidProjects();
-			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.getValidProjects();
-			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.getValidProjects();
-			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.getValidProjects();
-			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.getValidProjects();
-			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.getValidProjects();
-			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.getValidProjects();
-			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 testImportArchiveMultiProject(){
-		Shell shell = getShell();
-		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();
-			shell = wpip.getShell();
-			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.getValidProjects();
-			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());
-		}
-		finally{
-			// archive file is not closed before attempt to delete it in tearDown
-			ArchiveFileManipulations.clearProviderCache(shell);
-		}
-	}
-	
-	/**
-	 * 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;
-	}
-}
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 b64f7ae..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 e26cba6..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 0f1b129..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BadIndexDecorator.java
+++ /dev/null
@@ -1,94 +0,0 @@
-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/DecoratorEnablementTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorEnablementTestCase.java
deleted file mode 100644
index 63dc961..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 affcb77..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 9adde2d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorsTestSuite.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.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));
-	}
-
-}
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 cc29266..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 8b9037a..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 9ff7cbf..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 b3c1713..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 70fd73d..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 9ccfee2..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 e56e74b..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 bb45df4..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 48c3b76..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 583b885..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 d96af4a..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 b64bee0..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 77cdfb8..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 8444dcc..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 483b223..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/TaskListTestStub.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TaskListTestStub.java
deleted file mode 100644
index 38f7022..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 0d3ef44..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/UIAutomatedSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIAutomatedSuite.java
deleted file mode 100644
index b7fb66f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIAutomatedSuite.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.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));
-    }
-}
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 6476ea3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIDialogs.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.WorkbenchException;
-import org.eclipse.ui.dialogs.ContainerSelectionDialog;
-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.EditorSelectionDialog;
-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);
-    }
-
-    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 dca8ba5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIDialogsAuto.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.ListSelectionDialog;
-import org.eclipse.ui.dialogs.ProjectLocationSelectionDialog;
-import org.eclipse.ui.dialogs.SaveAsDialog;
-import org.eclipse.ui.dialogs.TypeFilteringDialog;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.AboutDialog;
-import org.eclipse.ui.internal.dialogs.EditorSelectionDialog;
-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;
-
-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 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/UIInteractiveSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIInteractiveSuite.java
deleted file mode 100644
index aa07946..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIInteractiveSuite.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.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));
-    }
-
-}
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 97c998c..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 d344d8c..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 4a8e63a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTest.java
+++ /dev/null
@@ -1,260 +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.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();
-
-    	dragSource.setPage(page);
-
-        dragSource.drag(dropTarget);
-
-        page.testInvariants();
-        
-        // Uncomment the following line to 'stall' the tests here...
-        //stallTest();
-        
-        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 27a1d18..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 5011dac..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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) - 8, bounds.y + 8);
-    }
-}
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 37e5a30..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionSetTests.java
+++ /dev/null
@@ -1,145 +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.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]);
-        
-    }
-
-    /**
-     * @return
-     */
-    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 6ef13b8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/CommandsExtensionDynamicTest.java
+++ /dev/null
@@ -1,287 +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.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.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);
-		}
-	}
-}
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/DynamicPluginsTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicPluginsTestSuite.java
deleted file mode 100644
index 983ce36..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicPluginsTestSuite.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.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(
-				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(DynamicSupportTests.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 95d11cb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicTestCase.java
+++ /dev/null
@@ -1,285 +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.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;		
-		
-		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 6c85b6a..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 02698fc..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.FieldMarkerGroup;
-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()) {
-			FieldMarkerGroup element = (FieldMarkerGroup) groups.next();
-			if(element.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/TestInstallUtil.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/TestInstallUtil.java
deleted file mode 100644
index 71bdc59..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 3eb7475..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ViewTests.java
+++ /dev/null
@@ -1,242 +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.commands.Command;
-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.commands.ICommandService;
-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.ViewDescriptor;
-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));		
-	}
-    
-    /**
-     * Tests to ensure that the showView handler is removed when the plugin is unloaded.
-     */
-    public void testHandlerRemoval() {
-        IViewRegistry registry = WorkbenchPlugin.getDefault().getViewRegistry();
-        
-        assertNull(registry.find(VIEW_ID1));
-        getBundle();
-        ViewDescriptor desc = (ViewDescriptor) registry.find(VIEW_ID1);
-        assertNotNull(desc);
-		final ICommandService commandService = (ICommandService) fWorkbench.getAdapter(ICommandService.class);
-        final Command command = commandService.getCommand(desc.getId());
-        assertTrue(command.isHandled());
-        removeBundle();
-        assertFalse(command.isHandled());
-    }
-    
-    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/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 42900a2..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 845f833..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/fieldassist/FieldAssistAPITest.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.fieldassist;
-
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-
-import junit.framework.TestCase;
-
-/**
- * Tests the Operations Framework API.
- * 
- * @since 3.1
- */
-public class FieldAssistAPITest extends TestCase {
-
-	public FieldAssistAPITest() {
-		super();
-	}
-
-	/**
-	 * @param testName
-	 */
-	public FieldAssistAPITest(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-	}
-
-	protected void tearDown() throws Exception {
-		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);
-
-	}
-}
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 183bce9..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/ide/api/FileEditorInputTest.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.ide.api;
-
-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.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-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;
-        }
-
-        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/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 400fa93..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug99858Test.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-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.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().getShell());
-		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(Shell shell) {
-			super(shell);
-			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())
-			;
-	}
-}
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 d6c50d1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/EditorActionBarsTest.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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) {
-                    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
-                            + "\"");
-                }
-            }
-
-        }
-    }
-}
-
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 0c455fe..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 a8383d7..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 3e75a11..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 509b697..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/InternalTestSuite.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.ui.tests.markers.Bug75909Test;
-import org.eclipse.ui.tests.markers.DeclarativeFilterActivityTest;
-import org.eclipse.ui.tests.markers.DeclarativeFilterDeclarationTest;
-import org.eclipse.ui.tests.markers.MarkerSupportRegistryTests;
-import org.eclipse.ui.tests.markers.ResourceMappingMarkersTest;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * 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(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(Bug99858Test.suite());
-    }
-}
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/TestMemento.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TestMemento.java
deleted file mode 100644
index 05fb443..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TestMemento.java
+++ /dev/null
@@ -1,158 +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.util.Collection;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-
-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;
-
-	}
-
-}
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/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 ec49249..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTest.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.ui.tests.intro;
-
-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.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.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() {
-        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());
-    }
-
-    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();
-        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 73edcae..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 7373638..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 c53d380..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingInteractionsTest.java
+++ /dev/null
@@ -1,766 +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.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.swt.SWT;
-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());
-		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, SWT
-				.getPlatform(), Binding.SYSTEM, null);
-		bindingManager.addBinding(deletion);
-		final Binding platformSpecific = new TestBinding("platformSpecific",
-				na, na, null, SWT.getPlatform(), 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, SWT
-				.getPlatform(), Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-		final Binding binding3 = new TestBinding("platform-specific", "na",
-				"na", null, SWT.getPlatform(), 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 954c6cc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingManagerTest.java
+++ /dev/null
@@ -1,864 +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.keys;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Map;
-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.BindingManagerEvent;
-import org.eclipse.jface.bindings.IBindingManagerListener;
-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 {
-
-	/**
-	 * A test listener that should be attached to the binding manager. The
-	 * listener records the last fired event.
-	 * 
-	 * @since 3.1
-	 */
-	private static final class TestListener implements IBindingManagerListener {
-
-		/**
-		 * The last event that this listener saw. <code>null</code> if none.
-		 */
-		private BindingManagerEvent event = null;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.bindings.IBindingManagerListener#bindingManagerChanged(org.eclipse.jface.bindings.BindingManagerEvent)
-		 */
-		public void bindingManagerChanged(BindingManagerEvent e) {
-			this.event = e;
-		}
-
-		/**
-		 * Returns the last event.
-		 * 
-		 * @return The last event; may be <code>null</code> if none.
-		 */
-		public final BindingManagerEvent getLastEvent() {
-			return event;
-		}
-	}
-
-	/**
-	 * 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;
-
-	/**
-	 * The listener attached to the binding manager. This listener is attached
-	 * at the beginning of each test case, and it is disposed when the test is
-	 * over.
-	 */
-	private TestListener listener = 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);
-		listener = new TestListener();
-		bindingManager.addBindingManagerListener(listener);
-	}
-
-	/**
-	 * Releases the context manager and binding manager for garbage collection.
-	 */
-	protected final void doTearDown() {
-		bindingManager.removeBindingManagerListener(listener);
-		listener = null;
-		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());
-	}
-
-	/**
-	 * 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]);
-	}
-}
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 695c04f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingPersistenceTest.java
+++ /dev/null
@@ -1,118 +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.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.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));
-    }
-}
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 4017bbe..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43597Test.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.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 {
-
-    /**
-     * 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);
-        text.setFont(new Font(text.getDisplay(),
-                "Lucida Grande", 13, SWT.NORMAL)); //$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();
-    }
-}
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/KeysTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysTestSuite.java
deleted file mode 100644
index ed91a95..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysTestSuite.java
+++ /dev/null
@@ -1,59 +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 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));
-        //		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));
-    }
-}
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/leaks/LeakTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/LeakTests.java
deleted file mode 100644
index ec7d772..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/LeakTests.java
+++ /dev/null
@@ -1,182 +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.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.jface.dialogs.Dialog;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.dialogs.SaveAsDialog;
-import org.eclipse.ui.ide.IDE;
-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();
-        }
-    }
-
-      /**
-       * 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 cd722e1..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/UIPreferencesManual.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/UIPreferencesManual.java
deleted file mode 100644
index 429a531..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/markers/Bug75909Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/Bug75909Test.java
deleted file mode 100644
index a825775..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 1e7818a..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 problems",
-				((MarkerType) types.get(0)).getId().equals(
-						"org.eclipse.core.resources.problemmarker"));
-	}
-
-}
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/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/ResourceMappingMarkersTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingMarkersTest.java
deleted file mode 100644
index b66cc86..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingMarkersTest.java
+++ /dev/null
@@ -1,89 +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 org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.IJobChangeListener;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-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.navigator.AbstractNavigatorTest;
-import org.eclipse.ui.views.markers.internal.ProblemView;
-
-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 boolean[] waiting = new boolean[] { true };
-
-		final ProblemView problemView;
-		try {
-			problemView = (ProblemView) page
-					.showView("org.eclipse.ui.views.ProblemView");
-		} catch (PartInitException e) {
-			assertTrue(e.getLocalizedMessage(), false);
-			return;
-		}
-
-		IJobChangeListener doneListener = new JobChangeAdapter() {
-			public void done(IJobChangeEvent event) {
-				if (problemView.getCurrentMarkers().toArray().length > 0)
-					waiting[0] = false;
-			}
-		};
-
-		problemView.addUpdateFinishListener(doneListener);
-		view.addMarkerToFirstProject();
-		long timeOut = System.currentTimeMillis() + 2000;
-		waiting[0] = problemView.getCurrentMarkers().toArray().length == 0;
-
-		while (waiting[0] && System.currentTimeMillis() < timeOut) {
-			view.getSite().getShell().getDisplay().readAndDispatch();
-		}
-
-		assertTrue("No markers generated", problemView.getCurrentMarkers()
-				.toArray().length > 0);
-		problemView.removeUpdateFinishListener(doneListener);
-
-	}
-}
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 23dfae7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingTestView.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.markers;
-
-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 void addMarkerToFirstProject() {
-		
-		TestResourceMapping top = ((TestResourceMapping) viewer.getInput());
-		IResource element = top.getChildren()[0].element;
-		
-		try {
-			element.createMarker("org.eclipse.core.resources.problemmarker");
-		} catch (CoreException e) {
-			return;
-		}
-
-		
-		
-	}
-}
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/MenusTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenusTestSuite.java
deleted file mode 100644
index e753bf1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenusTestSuite.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.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(OrderingTest.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 5d5f152..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/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.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 {
-	}
-	
-	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/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/OrderingTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/OrderingTest.java
deleted file mode 100644
index 19563aa..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/OrderingTest.java
+++ /dev/null
Binary files differ
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/multieditor/MultiEditorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/MultiEditorTest.java
deleted file mode 100644
index cdc9521..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/MultiEditorTest.java
+++ /dev/null
@@ -1,524 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 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 = fWorkbench.getActiveWorkbenchWindow();
-		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 = fWorkbench.getActiveWorkbenchWindow();
-		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 = fWorkbench.getActiveWorkbenchWindow();
-		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 testTrackOutline() throws Throwable {
-		final String[] simpleFiles = { TEST01_TXT, TEST02_TXT,
-				TEST04_PROPERTIES, BUILD_XML, TEST03_ETEST };
-
-		IWorkbenchWindow window = fWorkbench.getActiveWorkbenchWindow();
-		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);
-
-			assertTrue("Creation error: " + fErrorListener.fErrorMsg,
-					fErrorListener.fNoError);
-		} 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 boolean fNoError = true;
-
-		public String fErrorMsg = null;
-
-		public void logging(IStatus status, String plugin) {
-			fNoError = false;
-			fErrorMsg = status.getMessage();
-			Throwable ex = status.getException();
-			if (ex != null) {
-				fErrorMsg += ": " + ex.getMessage();
-			}
-		}
-	}
-}
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 05fb2ab..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 d5ea4a6..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 b808872..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiVariablePageEditor.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.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;
-	}
-
-	/**
-	 * 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 f2ff980..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiVariablePageTest.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.ide.IDE;
-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 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.
-		IEditorPart part = openMultivarFile();
-
-		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.
-		IEditorPart part = openMultivarFile();
-
-		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.
-		// Create and open a blurb file.
-		IEditorPart part = openMultivarFile();
-
-		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() throws CoreException,
-			PartInitException {
-		IWorkbenchPage page = openTestWindow().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(MTEST01_FILE);
-		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.
-		IEditorPart part = openMultivarFile();
-
-		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));
-	}
-}
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 58a1de0..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 f2b363e..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 8aaf8e5..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 0009bfd..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 b7004e7..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 2a2ce36..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkbenchOperationHistoryTests.java
+++ /dev/null
@@ -1,91 +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 {
-		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);
-	}
-	
-	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 54dd8c1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkspaceOperationsTests.java
+++ /dev/null
@@ -1,475 +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 java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.ExecutionException;
-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.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.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.CreateMarkersOperation;
-import org.eclipse.ui.ide.undo.DeleteMarkersOperation;
-import org.eclipse.ui.ide.undo.UpdateMarkersOperation;
-
-import junit.framework.TestCase;
-
-/**
- * Tests the undo of various workspace operations.
- * 
- * @since 3.3
- */
-public class WorkspaceOperationsTests extends TestCase {
-
-	IProject testProject;
-
-	IFolder testFolder;
-
-	IFile testFile1, testFile2, testFile3;
-
-	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");
-	};
-
-	static String CUSTOM_TYPE = "TestMarkerType";
-
-	public WorkspaceOperationsTests() {
-		super();
-	}
-
-	/**
-	 * @param testName
-	 */
-	public WorkspaceOperationsTests(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-		testProject = getWorkspace().getRoot().getProject("UndoTestProject");
-		testProject.create(getMonitor());
-		testProject.open(getMonitor());
-		assertTrue(testProject.exists());
-		testFolder = testProject.getFolder("UndoTestFolder");
-		testFolder.create(true, true, getMonitor());
-		assertTrue(testFolder.exists());
-		testFile1 = testFolder.getFile("UndoTestFile1.txt");
-		testFile1.create(getContents("Test File Content"), true, getMonitor());
-		testFile2 = testFolder.getFile("UndoTestFile2.txt");
-		testFile2.create(getContents("Test File Content"), true, getMonitor());
-		testFile3 = testFolder.getFile("UndoTestFile3.txt");
-		testFile3.create(getContents("Test File Content"), true, getMonitor());
-
-		history = PlatformUI.getWorkbench().getOperationSupport()
-				.getOperationHistory();
-		context = PlatformUI.getWorkbench().getOperationSupport()
-				.getUndoContext();
-
-	}
-
-	protected void tearDown() throws Exception {
-		testFile1.delete(true, getMonitor());
-		testFile2.delete(true, getMonitor());
-		testFile3.delete(true, getMonitor());
-		testFolder.delete(true, getMonitor());
-		testProject.close(getMonitor());
-		testProject.delete(true, true, getMonitor());
-	}
-
-	private IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	private IProgressMonitor getMonitor() {
-		return null;
-	}
-
-	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 void execute(IUndoableOperation operation)
-			throws ExecutionException {
-		assertTrue("Operation can be executed", operation.canExecute());
-		assertTrue("Execution should be OK status", history.execute(operation,
-				getMonitor(), null).equals(Status.OK_STATUS));
-	}
-
-	private void undo() throws ExecutionException {
-		assertTrue("Operation can be undone", history.canUndo(context));
-		assertTrue("Undo should be OK status", history.undo(context,
-				getMonitor(), null).equals(Status.OK_STATUS));
-	}
-
-	private void redo() throws ExecutionException {
-		assertTrue("Operation can be redone", history.canRedo(context));
-		assertTrue("Redo should be OK status", history.redo(context,
-				getMonitor(), null).equals(Status.OK_STATUS));
-	}
-
-	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(), testFile1,
-				"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[] { testFile1, testFile2, testFile3 },
-				"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[] { testFile1, testFile2, testFile3 },
-				"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(), testFile1,
-				"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[] { testFile1, testFile2, testFile3 },
-				"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(), testFile1,
-				"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[] { testFile1, testFile2, testFile3 },
-				"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[] { testFile1, testFile2, testFile3 },
-				"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[] { testFile1, testFile2, testFile3 },
-				"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[] { testFile1, testFile2, testFile3 },
-				"Create Multiple Markers Same Type Test");
-		execute(op);
-		testFile1.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[] { testFile1, testFile2, testFile3 },
-				"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[] { testFile1, testFile2, testFile3 },
-				"Create Multiple Markers Same Type Test");
-		execute(op);
-		UpdateMarkersOperation updateOp = new UpdateMarkersOperation(op
-				.getMarkers(), getUpdatedMarkerAttributes(),
-				"Update and Merge Multiple Markers", true);
-		execute(updateOp);
-		testFile3.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());
-	}
-}
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 9e5f0d5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/FontPreferenceTestCase.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 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());
-    }
-}
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/PreferencesTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesTestSuite.java
deleted file mode 100644
index 7360b19..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesTestSuite.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.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));
-	}
-}
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 7b2a093..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/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 2950704..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.TableColumnAdapter;
-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);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		table.setLayoutData(data);
-
-		table.setHeaderVisible(true);
-		TableColumn column = new TableColumn(table, SWT.NULL);
-		column.setText("Column 1");
-
-		column = new TableColumn(table, SWT.NULL);
-		column.setText("Column 2");
-
-		TableColumnAdapter adapter = new TableColumnAdapter(
-				table);
-		adapter.addColumnData(new ColumnWeightData(50, 100, true));
-		adapter.addColumnData(new ColumnWeightData(50, 100, true));
-		enclosingComposite.addControlListener(adapter);
-
-	}
-
-	/**
-	 * @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 380288d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/TreeResizePropertyPage.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.tests.propertyPages;
-
-import org.eclipse.jface.layout.TreeColumnAdapter;
-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);
-
-		tree.setHeaderVisible(true);
-		TreeColumn column = new TreeColumn(tree, SWT.NULL);
-		column.setText("Column 1");
-
-		column = new TreeColumn(tree, SWT.NULL);
-		column.setText("Column 2");
-
-		TreeColumnAdapter adapter = new TreeColumnAdapter(tree);
-		adapter.addColumnData(new ColumnWeightData(50, 100, true));
-		adapter.addColumnData(new ColumnWeightData(50, 100, true));
-		enclosingComposite.addControlListener(adapter);
-
-	}
-
-	/**
-	 * @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/ComboBoxPropertyDescriptorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/ComboBoxPropertyDescriptorTest.java
deleted file mode 100644
index b5f5ccf..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/PropertySheetAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetAuto.java
deleted file mode 100644
index 52d77b1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetAuto.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 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.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.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();
-    }
-
-    protected IWorkbenchPart createTestPart(IWorkbenchPage page)
-            throws Throwable {
-        IViewPart view = page.showView("org.eclipse.ui.views.PropertySheet");
-        selectionProviderView = (SelectionProviderView) page
-                .showView(SelectionProviderView.ID);
-        return view;
-
-    }
-
-    /** 
-     * Supply selection events with a random car selection
-     */
-    public void testInput() throws Throwable {
-        createTestPart(activePage);
-        createCars();
-        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())
-                ;
-        }
-    }
-    
-    /**
-     * 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 {
-    	IWorkbenchPart propView = createTestPart(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/PropertySheetTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetTestSuite.java
deleted file mode 100644
index d7073c3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetTestSuite.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.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(PropertySheetAuto.class));
-        addTest(new TestSuite(ComboBoxPropertyDescriptorTest.class));
-    }
-}
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/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 6ee9506..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/SessionTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/SessionTests.java
deleted file mode 100644
index ed4c8f6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/SessionTests.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.session;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.1
- */
-public class SessionTests extends TestSuite {
-
-	/**
-	 * @return
-	 */
-	public static Test suite() {
-		return new SessionTests();
-	}
-
-	/**
-	 * 
-	 */
-	public SessionTests() {
-		addHandlerStateTests();
-		addIntroTests();
-		addEditorTests();
-		addViewStateTests();
-	}
-
-	/**
-	 * Add editor tests that involve starting and stopping sessions.
-	 */
-	private void addEditorTests() {
-		addTest(new WorkbenchSessionTest("editorSessionTests",
-				Bug95357Test.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));
-	}
-}
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 fa6e3c3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/WorkbenchSessionTest.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.session;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-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 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) {
-		super("org.eclipse.ui.tests", clazz);
-		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());
-		} 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/stress/OpenCloseTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/stress/OpenCloseTest.java
deleted file mode 100644
index de32c21..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/stress/OpenCloseTest.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 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.internal.ClosePerspectiveAction;
-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 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() {
-        ClosePerspectiveAction closePespective = new ClosePerspectiveAction(
-                workbenchWindow);
-        for (index = 0; index < numIterations; index++) {
-            try {
-                PlatformUI.getWorkbench().showPerspective(
-                        "org.eclipse.jdt.ui.JavaPerspective", workbenchWindow);
-                closePespective.run();
-            } 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.JavaPerspective", 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 20ac1a6..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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/themes/JFaceThemeTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/JFaceThemeTest.java
deleted file mode 100644
index ba79930..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/JFaceThemeTest.java
+++ /dev/null
@@ -1,78 +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.themes;
-
-import java.util.Iterator;
-
-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.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());
-    }
-}
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 c8b69b4..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 0ce0f8b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemeAPITest.java
+++ /dev/null
@@ -1,580 +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.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 {
-
-    /**
-     * @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("extendedTheme1");
-        ITheme ext2 = fManager.getTheme("extendedTheme2");
-        ITheme ext3 = fManager.getTheme("extendedTheme3");
-        
-        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("extendedTheme1");
-        assertNotNull(ext1.getString("d1"));
-        assertEquals("d1", ext1.getString("d1"));
-        assertNotNull(ext1.getString("d2"));
-    }
-    
-    public void testThemeExtensionColor() {
-        ITheme ext1 = fManager.getTheme("extendedTheme1");
-        assertEquals(Display.getDefault().getSystemColor(SWT.COLOR_DARK_GREEN)
-                .getRGB(), ext1.getColorRegistry().getRGB("swtcolor")); 
-
-        assertEquals(Display.getDefault().getSystemColor(SWT.COLOR_DARK_GREEN)
-                .getRGB(), ext1.getColorRegistry().getRGB("rgbcolor")); 
-    }
-    
-    public void testThemeExtensionFont() {
-        ITheme ext1 = fManager.getTheme("extendedTheme1");
-        
-        FontData[] fd = new FontData[] { new FontData("Sans", 10,
-                SWT.NORMAL) };
-        
-        assertArrayEquals(fd, ext1.getFontRegistry()
-                .getFontData("valfont"));
-
-        assertArrayEquals(fd, ext1.getFontRegistry()
-                .getFontData("novalfont"));
-    }
-}
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 c40f4dd..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 7c224cf..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 6647f14..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 23d8672..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 8fab8b2..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 2ccab74..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 7651f84..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestCase.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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;
-    
-    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();
-    }
-    
-    protected void doSetUp() throws Exception {
-        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
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        apiStore.setValue(
-                IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS,
-                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 4d33c3f..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 fc2d21f..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 75806fb..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 6e263fa..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 c34e7cc..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, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 6bb4907..0000000
--- a/tests/org.eclipse.ui.tests/JFace-All Tests.launch
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<stringAttribute key="bootstrap" value=""/>
-<booleanAttribute key="useProduct" value="false"/>
-<booleanAttribute key="tracing" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<stringAttribute key="checked" value="[NONE]"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.jface.tests.AllTests"/>
-<stringAttribute key="pde.version" value="3.2a"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests"/>
-<booleanAttribute key="askclear" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests"/>
-</listAttribute>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-</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 4eaaa16..0000000
--- a/tests/org.eclipse.ui.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +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.2.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
-Eclipse-AutoStart: true
-Plugin-Class: org.eclipse.ui.tests.TestPlugin
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/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/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 3fbec7d..0000000
--- a/tests/org.eclipse.ui.tests/UI Test Suite.launch
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<stringAttribute key="bootstrap" value=""/>
-<booleanAttribute key="useProduct" value="true"/>
-<booleanAttribute key="tracing" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<stringAttribute key="checked" value="[NONE]"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.tests.UiTestSuite"/>
-<stringAttribute key="pde.version" value="3.2a"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx96m"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests"/>
-<booleanAttribute key="askclear" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests"/>
-</listAttribute>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-</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 8deafb8..0000000
--- a/tests/org.eclipse.ui.tests/UI-Parts References Test Suite.launch
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<stringAttribute key="bootstrap" value=""/>
-<booleanAttribute key="useProduct" value="true"/>
-<booleanAttribute key="tracing" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<stringAttribute key="checked" value="[NONE]"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.parts.tests.PartsReferencesTestSuite"/>
-<stringAttribute key="pde.version" value="3.2a"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests"/>
-<booleanAttribute key="askclear" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests"/>
-</listAttribute>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-</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 ded6ce3..0000000
--- a/tests/org.eclipse.ui.tests/UI-Session Tests.launch
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<stringAttribute key="bootstrap" value=""/>
-<booleanAttribute key="useProduct" value="true"/>
-<booleanAttribute key="tracing" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<stringAttribute key="checked" value="[NONE]"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.tests.session.SessionTests"/>
-<stringAttribute key="pde.version" value="3.2a"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests"/>
-<booleanAttribute key="askclear" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests"/>
-</listAttribute>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-</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 a9e25c7..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes.txt
+++ /dev/null
@@ -1 +0,0 @@
-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/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 ec3cee6..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/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.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.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 724e121..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="newProblemFilter"
-   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 0a627c2..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test04.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
-###############################################################################
-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.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/testContentType.zip b/tests/org.eclipse.ui.tests/data/testContentType.zip
deleted file mode 100644
index 14e323b..0000000
--- a/tests/org.eclipse.ui.tests/data/testContentType.zip
+++ /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/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/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/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 5680d62..0000000
--- a/tests/org.eclipse.ui.tests/plugin.xml
+++ /dev/null
@@ -1,2878 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-    
-<!-- 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"/>
-   </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"/>
-
-   </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="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"/>
-   </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>
-      
-   </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.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
-            name="Mock Working Set"
-            pageClass="org.eclipse.ui.tests.api.MockWorkingSetPage"
-            icon="icons/anything.gif"
-            id="org.eclipse.ui.tests.api.MockWorkingSet">
-      </workingSet>
-   </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>
-      <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"/>
-   </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="not honoured"
-               id="swtcolor">
-         </colorOverride>
-
-         <colorOverride
-               value="COLOR_DARK_GREEN"
-               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="defaultedcolor2">
-         </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="defaultedcolor"
-            defaultsTo="rgbcolor"
-            id="defaultedcolor">
-      </colorDefinition>
-      <colorDefinition
-            label="defaultedcolor2"
-            defaultsTo="defaultedcolor"
-            id="defaultedcolor2">
-      </colorDefinition>
-      <colorDefinition
-            label="defaultedcolor3"
-            defaultsTo="defaultedcolor2"
-            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>
-      <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="doesntmatter">
-   	     <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>  
-                             
-   	</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$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"/>
-   </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.core.resources.problemmarker"/>
-      </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="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>    
-   </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="doesn't matter"
-            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>
-</plugin>            
diff --git a/tests/org.eclipse.ui.tests/test.xml b/tests/org.eclipse.ui.tests/test.xml
deleted file mode 100644
index ad144de..0000000
--- a/tests/org.eclipse.ui.tests/test.xml
+++ /dev/null
@@ -1,99 +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"/>
-  <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>
-    
-    <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>
-    
-    <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 d7d3f10..0000000
--- a/tests/org.eclipse.ui.tests/uiSniff.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-@echo off
-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
-